mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-24 16:01:09 +02:00
Merge pull request #2227 from flatcar/buildbot/weekly-portage-stable-package-updates-2024-08-12
Weekly portage-stable package updates 2024-08-12
This commit is contained in:
commit
100b0d45d2
2
changelog/security/2024-08-14-weekly-updates.md
Normal file
2
changelog/security/2024-08-14-weekly-updates.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
- SDK: re2c ([CVE-2022-23901](https://nvd.nist.gov/vuln/detail/CVE-2022-23901))
|
||||||
|
- curl ([CVE-2024-7264](https://nvd.nist.gov/vuln/detail/CVE-2024-7264))
|
6
changelog/updates/2024-08-14-weekly-updates.md
Normal file
6
changelog/updates/2024-08-14-weekly-updates.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
- curl ([8.9.1](https://curl.se/ch/8.9.1.html))
|
||||||
|
- elfutils ([0.191](https://inbox.sourceware.org/elfutils-devel/CAJDtP-SJhJ8cjTpkNpi+F0nzVJ2pZsEai8Ewpp4yJmsO_H5-NA@mail.gmail.com/T/#u))
|
||||||
|
- gce, sysext-python: setuptools ([71.1.0](https://github.com/pypa/setuptools/blob/v71.1.0/NEWS.rst) (includes [71.0.0](https://github.com/pypa/setuptools/blob/v71.0.0/NEWS.rst)))
|
||||||
|
- libmicrohttpd ([1.0.1](https://lists.gnu.org/archive/html/libmicrohttpd/2024-02/msg00005.html) (inlcudes [1.0.0](https://lists.gnu.org/archive/html/libmicrohttpd/2024-02/msg00000.html)))
|
||||||
|
- lz4 ([1.10.0](https://github.com/lz4/lz4/releases/tag/v1.10.0))
|
||||||
|
- npth ([1.7](https://git.gnupg.org/cgi-bin/gitweb.cgi?p=npth.git;a=blob;f=NEWS;h=c1b631b4294eabfef29baefd60e1b0dfecce710d;hb=75c68399ef3bbb5d024f2a60474a7214fa479016))
|
@ -23,7 +23,7 @@
|
|||||||
=app-containers/runc-1.1.13 ~amd64 ~arm64
|
=app-containers/runc-1.1.13 ~amd64 ~arm64
|
||||||
|
|
||||||
# Seems to be the only available ebuild in portage-stable right now.
|
# Seems to be the only available ebuild in portage-stable right now.
|
||||||
=app-crypt/adcli-0.9.2 ~amd64 ~arm64
|
=app-crypt/adcli-0.9.2 ~arm64
|
||||||
|
|
||||||
# Needed by arm64-native SDK
|
# Needed by arm64-native SDK
|
||||||
=app-crypt/ccid-1.5.4 ~arm64
|
=app-crypt/ccid-1.5.4 ~arm64
|
||||||
@ -46,6 +46,7 @@
|
|||||||
|
|
||||||
# Keep versions on both arches in sync.
|
# Keep versions on both arches in sync.
|
||||||
=dev-cpp/glog-0.6.0 ~arm64
|
=dev-cpp/glog-0.6.0 ~arm64
|
||||||
|
=dev-lang/python-3.11.9_p1 ~amd64
|
||||||
|
|
||||||
# Accept unstable host Rust compilers.
|
# Accept unstable host Rust compilers.
|
||||||
=dev-lang/rust-1.80.0 ~amd64 ~arm64
|
=dev-lang/rust-1.80.0 ~amd64 ~arm64
|
||||||
@ -91,8 +92,8 @@ dev-util/catalyst ~amd64 ~arm64
|
|||||||
=net-libs/libnetfilter_cthelper-1.0.1-r1 ~arm64
|
=net-libs/libnetfilter_cthelper-1.0.1-r1 ~arm64
|
||||||
=net-libs/libnetfilter_cttimeout-1.0.1 ~arm64
|
=net-libs/libnetfilter_cttimeout-1.0.1 ~arm64
|
||||||
|
|
||||||
# Needed to address CVE-2024-6197 and CVE-2024-6874.
|
# Needed to address CVE-2024-6197, CVE-2024-6874 and CVE-2024-7264.
|
||||||
=net-misc/curl-8.9.0 ~amd64 ~arm64
|
=net-misc/curl-8.9.1-r1 ~amd64 ~arm64
|
||||||
|
|
||||||
# Keep versions on both arches in sync.
|
# Keep versions on both arches in sync.
|
||||||
=sys-apps/kexec-tools-2.0.28 ~arm64
|
=sys-apps/kexec-tools-2.0.28 ~arm64
|
||||||
@ -106,7 +107,3 @@ dev-util/catalyst ~amd64 ~arm64
|
|||||||
|
|
||||||
# Accept unstable host Rust compilers.
|
# Accept unstable host Rust compilers.
|
||||||
=virtual/rust-1.80.0 ~amd64 ~arm64
|
=virtual/rust-1.80.0 ~amd64 ~arm64
|
||||||
|
|
||||||
# Accept unstable aardvark-dns to fix 'time'
|
|
||||||
# dependency compilation issue with Rust 1.80
|
|
||||||
=app-containers/aardvark-dns-1.11.0 ~amd64 ~arm64
|
|
||||||
|
@ -10,7 +10,10 @@ dev-libs/libxml2 -python
|
|||||||
dev-libs/libxslt -python
|
dev-libs/libxslt -python
|
||||||
dev-util/perf -doc
|
dev-util/perf -doc
|
||||||
dev-vcs/git webdav curl
|
dev-vcs/git webdav curl
|
||||||
net-misc/curl kerberos telnet
|
|
||||||
|
# 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
|
||||||
net-misc/iputils arping tracepath
|
net-misc/iputils arping tracepath
|
||||||
sys-devel/gettext -git
|
sys-devel/gettext -git
|
||||||
|
|
||||||
|
@ -0,0 +1,26 @@
|
|||||||
|
From 6ff1cd1e487ddf545337b88da3f1f5ca69a2f958 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tim Kientzle <kientzle@acm.org>
|
||||||
|
Date: Mon, 6 May 2024 20:46:26 -0700
|
||||||
|
Subject: [PATCH] Define INT_MAX via `#include <limits.h>` (#2170)
|
||||||
|
|
||||||
|
#2110 added usages of INT_MAX here without adding the necessary header.
|
||||||
|
|
||||||
|
Resolves #2162
|
||||||
|
---
|
||||||
|
tar/bsdtar.c | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/tar/bsdtar.c b/tar/bsdtar.c
|
||||||
|
index 42baab286..f0e71afd1 100644
|
||||||
|
--- a/tar/bsdtar.c
|
||||||
|
+++ b/tar/bsdtar.c
|
||||||
|
@@ -43,6 +43,9 @@
|
||||||
|
#ifdef HAVE_LANGINFO_H
|
||||||
|
#include <langinfo.h>
|
||||||
|
#endif
|
||||||
|
+#ifdef HAVE_LIMITS_H
|
||||||
|
+#include <limits.h>
|
||||||
|
+#endif
|
||||||
|
#ifdef HAVE_LOCALE_H
|
||||||
|
#include <locale.h>
|
||||||
|
#endif
|
@ -74,6 +74,8 @@ PATCHES=(
|
|||||||
# https://github.com/libarchive/libarchive/issues/2069
|
# https://github.com/libarchive/libarchive/issues/2069
|
||||||
# (we can simply update the command since we don't support old lrzip)
|
# (we can simply update the command since we don't support old lrzip)
|
||||||
"${FILESDIR}/${PN}-3.7.2-lrzip.patch"
|
"${FILESDIR}/${PN}-3.7.2-lrzip.patch"
|
||||||
|
# https://github.com/libarchive/libarchive/commit/6ff1cd1e487ddf545337b88da3f1f5ca69a2f958
|
||||||
|
"${FILESDIR}/${PN}-3.7.4-INT_MAX.patch"
|
||||||
)
|
)
|
||||||
|
|
||||||
src_prepare() {
|
src_prepare() {
|
||||||
|
@ -0,0 +1,44 @@
|
|||||||
|
https://github.com/lz4/lz4/pull/1485
|
||||||
|
|
||||||
|
From bce6a94c25a9077fdcd7c94079a24f9713b192e1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Fabian Groffen <grobian@gentoo.org>
|
||||||
|
Date: Tue, 30 Jul 2024 21:50:06 +0200
|
||||||
|
Subject: [PATCH] meson: do not force c99 mode
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
On Solaris/OpenIndiana hosts forcing (old) C99 means disabling POSIX
|
||||||
|
2001 functionality, resulting in errors like
|
||||||
|
|
||||||
|
In file included from ../../../net/ptah/export/gentoo/working-repos/lz4/programs/bench.c:39:
|
||||||
|
../../../net/ptah/export/gentoo/working-repos/lz4/programs/util.h: In function UTIL_getOpenFileSize’:
|
||||||
|
../../../net/ptah/export/gentoo/working-repos/lz4/programs/util.h:156:23: error: implicit declaration of function ‘fileno’ [-Wimplicit-function-declaration]
|
||||||
|
156 | # define UTIL_fileno fileno
|
||||||
|
| ^~~~~~
|
||||||
|
../../../net/ptah/export/gentoo/working-repos/lz4/programs/util.h:325:10: note: in expansion of macro ‘UTIL_fileno’
|
||||||
|
325 | fd = UTIL_fileno(file);
|
||||||
|
| ^~~~~~~~~~~
|
||||||
|
|
||||||
|
These can be fixed either by forcing a standard to be applied in programs/platform.h or by not forcing the compiler to use an old standard.
|
||||||
|
|
||||||
|
Since CMake and Makefile don't force C99 by default either, just drop it from
|
||||||
|
meson.build.
|
||||||
|
|
||||||
|
Signed-off-by: Fabian Groffen <grobian@gentoo.org>
|
||||||
|
---
|
||||||
|
build/meson/meson.build | 1 -
|
||||||
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/build/meson/meson.build b/build/meson/meson.build
|
||||||
|
index fc6408af6..7e1696802 100644
|
||||||
|
--- a/build/meson/meson.build
|
||||||
|
+++ b/build/meson/meson.build
|
||||||
|
@@ -16,7 +16,6 @@ project(
|
||||||
|
'c',
|
||||||
|
license: 'BSD-2-Clause-Patent AND GPL-2.0-or-later',
|
||||||
|
default_options: [
|
||||||
|
- 'c_std=c99',
|
||||||
|
'buildtype=release',
|
||||||
|
'warning_level=3'
|
||||||
|
],
|
@ -11,7 +11,7 @@ SRC_URI="https://github.com/lz4/lz4/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
|||||||
|
|
||||||
LICENSE="BSD-2 GPL-2"
|
LICENSE="BSD-2 GPL-2"
|
||||||
SLOT="0/1.10.0-meson"
|
SLOT="0/1.10.0-meson"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ~ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
IUSE="static-libs test"
|
IUSE="static-libs test"
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
@ -19,6 +19,8 @@ EMESON_SOURCE=${S}/build/meson
|
|||||||
|
|
||||||
PATCHES=(
|
PATCHES=(
|
||||||
"${FILESDIR}/${PV}-fix-freestanding-test.patch"
|
"${FILESDIR}/${PV}-fix-freestanding-test.patch"
|
||||||
|
# https://github.com/lz4/lz4/pull/1485
|
||||||
|
"${FILESDIR}/${PV}-meson-do-not-force-c99-mode.patch"
|
||||||
)
|
)
|
||||||
|
|
||||||
multilib_src_configure() {
|
multilib_src_configure() {
|
||||||
|
@ -15,7 +15,7 @@ if [[ ${PV} == 9999* ]]; then
|
|||||||
else
|
else
|
||||||
SRC_URI="${CARGO_CRATE_URIS}"
|
SRC_URI="${CARGO_CRATE_URIS}"
|
||||||
SRC_URI+="https://github.com/containers/aardvark-dns/releases/download/v${PV}/${PN}-v${PV}-vendor.tar.gz"
|
SRC_URI+="https://github.com/containers/aardvark-dns/releases/download/v${PV}/${PN}-v${PV}-vendor.tar.gz"
|
||||||
KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
|
KEYWORDS="amd64 arm64 ~ppc64 ~riscv"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# main
|
# main
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright 2021-2023 Gentoo Authors
|
# Copyright 2021-2024 Gentoo Authors
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
EAPI=8
|
EAPI=8
|
||||||
@ -11,7 +11,7 @@ SRC_URI="https://gitlab.freedesktop.org/realmd/adcli/-/archive/${PV}/${P}.tar.bz
|
|||||||
|
|
||||||
LICENSE="LGPL-2.1"
|
LICENSE="LGPL-2.1"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~amd64 ~arm64 ~x86"
|
KEYWORDS="amd64 ~arm64 ~x86"
|
||||||
IUSE="doc"
|
IUSE="doc"
|
||||||
|
|
||||||
DEPEND="
|
DEPEND="
|
||||||
@ -31,5 +31,7 @@ src_prepare() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
src_configure() {
|
src_configure() {
|
||||||
econf $(use_enable doc)
|
econf \
|
||||||
|
$(use_enable doc) \
|
||||||
|
KRB5_CONFIG="${ESYSROOT}"/usr/bin/krb5-config
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
<pkgmetadata>
|
<pkgmetadata>
|
||||||
<maintainer type="person">
|
<!-- maintainer-needed -->
|
||||||
<email>tamiko@gentoo.org</email>
|
|
||||||
</maintainer>
|
|
||||||
</pkgmetadata>
|
</pkgmetadata>
|
||||||
|
@ -95,6 +95,10 @@ src_prepare() {
|
|||||||
# which in turn requires discovery in Autoconf, something that upstream deeply resents.
|
# 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" \
|
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
|
-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() {
|
my_src_configure() {
|
||||||
@ -132,7 +136,7 @@ my_src_configure() {
|
|||||||
--enable-large-secmem
|
--enable-large-secmem
|
||||||
|
|
||||||
CC_FOR_BUILD="$(tc-getBUILD_CC)"
|
CC_FOR_BUILD="$(tc-getBUILD_CC)"
|
||||||
ac_cv_path_GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config"
|
GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config"
|
||||||
|
|
||||||
$("${S}/configure" --help | grep -o -- '--without-.*-prefix')
|
$("${S}/configure" --help | grep -o -- '--without-.*-prefix')
|
||||||
)
|
)
|
||||||
|
@ -152,6 +152,7 @@ gpgme_src_configure() {
|
|||||||
$(use test || echo "--disable-gpgconf-test --disable-gpg-test --disable-gpgsm-test --disable-g13-test")
|
$(use test || echo "--disable-gpgconf-test --disable-gpg-test --disable-gpgsm-test --disable-g13-test")
|
||||||
--enable-languages="${languages[*]}"
|
--enable-languages="${languages[*]}"
|
||||||
$(use_enable static-libs static)
|
$(use_enable static-libs static)
|
||||||
|
GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config"
|
||||||
)
|
)
|
||||||
|
|
||||||
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
|
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
DIST eclass-manpages-20240512.tar.xz 452732 BLAKE2B e39fe919e90d24247ff1a5153359d4bc9dae8d4d8a47c0d2231a6364e64b046f813d507aa95cf5b7fca9de862678d7d584381fa94d6a4019cc07d5474d73f8e3 SHA512 a798cd71eb33a63bc8ceeaf1103f130425e4b82d379d413ce09605f4c9648447d01f97875cfe2efdd09a2dace7a73bf3a74f223168da8035ef13f1a52dd58677
|
DIST eclass-manpages-20240512.tar.xz 452732 BLAKE2B e39fe919e90d24247ff1a5153359d4bc9dae8d4d8a47c0d2231a6364e64b046f813d507aa95cf5b7fca9de862678d7d584381fa94d6a4019cc07d5474d73f8e3 SHA512 a798cd71eb33a63bc8ceeaf1103f130425e4b82d379d413ce09605f4c9648447d01f97875cfe2efdd09a2dace7a73bf3a74f223168da8035ef13f1a52dd58677
|
||||||
DIST eclass-manpages-20240614.tar.xz 450756 BLAKE2B 50435ab646a238f47cc96573af3d8ed53e14b700c9284253a2a9efbda40fc058f475a9900e56c3d6575ceafa4385eec89d9d1df87dd5ec94425c69daf258ab0e SHA512 80c0ba3eac7affc670f10d2eca58293bb79de94cc3b9d2349dd9b2227efd02b08d7e8a095161b484f87b3e23042afea73fadbd0cff867006bfbbb748a5051c55
|
DIST eclass-manpages-20240614.tar.xz 450756 BLAKE2B 50435ab646a238f47cc96573af3d8ed53e14b700c9284253a2a9efbda40fc058f475a9900e56c3d6575ceafa4385eec89d9d1df87dd5ec94425c69daf258ab0e SHA512 80c0ba3eac7affc670f10d2eca58293bb79de94cc3b9d2349dd9b2227efd02b08d7e8a095161b484f87b3e23042afea73fadbd0cff867006bfbbb748a5051c55
|
||||||
|
DIST eclass-manpages-20240811.tar.xz 455124 BLAKE2B dde9ffe7baa7fcb6904af47a5fb7bf05103c2646b682e27fd3454eaf2ee4708d059c666eddbd39571899d23bcc8ef411e75f16c905048a103f818f396e390794 SHA512 d62979614e1301bba51798280f21baa46a55c594f4345f07b1c21b772bb22cc0be2db55a2d3b190bf2a5921c727329266743a2f2b0ad0ef2a14f1a967c779e55
|
||||||
|
@ -0,0 +1,24 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
# Instructions to make a dist tarball:
|
||||||
|
# git clone https://github.com/projg2/eclass-to-manpage.git
|
||||||
|
# cd eclass-to-manpage
|
||||||
|
# make dist ECLASSDIR=~/g/eclass/
|
||||||
|
|
||||||
|
DESCRIPTION="Collection of Gentoo eclass manpages"
|
||||||
|
HOMEPAGE="https://github.com/projg2/eclass-to-manpage"
|
||||||
|
SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz"
|
||||||
|
|
||||||
|
LICENSE="GPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
# Keep the keywords stable. No need to change to ~arch.
|
||||||
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
|
||||||
|
|
||||||
|
BDEPEND="sys-apps/gawk"
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
emake install DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
|
||||||
|
}
|
@ -30,6 +30,8 @@ DIST bash-5.3_alpha_p20240706-a91b8b077300b0a2a7daefe02f0363f9116e00d5.tar.xz 85
|
|||||||
DIST bash-5.3_alpha_p20240711-d3e86e66ce857a8dc02e3116fd98b6e5b34d6364.tar.xz 8532476 BLAKE2B bae60589e733f29f4dab827c1c68899f4770c4cb2ca58af19e10bb833820644d336ada480be60b4dabb82441ae68f64494074387057d8b56efe8d5b9befd2a13 SHA512 ef677d2641607b75a000bef4b6eb9b359553ae6c3f930285989b97c036bfd1f7ecfa9240af1873af11dda42d1eca68da9c4b7567876e0bca878e8469dde0d0af
|
DIST bash-5.3_alpha_p20240711-d3e86e66ce857a8dc02e3116fd98b6e5b34d6364.tar.xz 8532476 BLAKE2B bae60589e733f29f4dab827c1c68899f4770c4cb2ca58af19e10bb833820644d336ada480be60b4dabb82441ae68f64494074387057d8b56efe8d5b9befd2a13 SHA512 ef677d2641607b75a000bef4b6eb9b359553ae6c3f930285989b97c036bfd1f7ecfa9240af1873af11dda42d1eca68da9c4b7567876e0bca878e8469dde0d0af
|
||||||
DIST bash-5.3_alpha_p20240718-6c703092759ace29263ea96374e18412c59acc7f.tar.xz 8535120 BLAKE2B 7dd47829ca71689c138af9acd2657cee732f43abc82506ad76e65eb038e39acd31e208e985714460d76fbfb354517c3597fd85d459969541af950382ae7796c9 SHA512 41e07ed4fa90f8b645faf6c26766048fa51a3e3bd420dc875898fc9a1d674c05fe35f12b1c4d6ac6e6374736e6052e17e235a94c205c4bda80183f8065035182
|
DIST bash-5.3_alpha_p20240718-6c703092759ace29263ea96374e18412c59acc7f.tar.xz 8535120 BLAKE2B 7dd47829ca71689c138af9acd2657cee732f43abc82506ad76e65eb038e39acd31e208e985714460d76fbfb354517c3597fd85d459969541af950382ae7796c9 SHA512 41e07ed4fa90f8b645faf6c26766048fa51a3e3bd420dc875898fc9a1d674c05fe35f12b1c4d6ac6e6374736e6052e17e235a94c205c4bda80183f8065035182
|
||||||
DIST bash-5.3_alpha_p20240726-d5ef283cbdd08217efdc55974a6a8a2c52a7562f.tar.xz 8534860 BLAKE2B 93ced89c621522554bb3f8c2e23ab2a6d8500beedb023064006cbd5777719195c2dbaabe6a04d737cb33d940c8a40ad2b3cdbce43b18e2b074d0d050dac77559 SHA512 d651cf0da9ed62d2e54ac526ef55a2a8eba274b430b627fc9e146bbc1d936363cf248388439dac485b653f6bfedcb21269c4b5f4662646080ecfe07390572450
|
DIST bash-5.3_alpha_p20240726-d5ef283cbdd08217efdc55974a6a8a2c52a7562f.tar.xz 8534860 BLAKE2B 93ced89c621522554bb3f8c2e23ab2a6d8500beedb023064006cbd5777719195c2dbaabe6a04d737cb33d940c8a40ad2b3cdbce43b18e2b074d0d050dac77559 SHA512 d651cf0da9ed62d2e54ac526ef55a2a8eba274b430b627fc9e146bbc1d936363cf248388439dac485b653f6bfedcb21269c4b5f4662646080ecfe07390572450
|
||||||
|
DIST bash-5.3_alpha_p20240730-e45ec6f76bea49cf8df306ac45022306831ed086.tar.xz 8535992 BLAKE2B 3f05f740987d3119f5e3c6bee1521a66c634737f9cf30fb911d1f03351e6c946a5c3de45fbdf817854613e23165ccf329b0c332639b593060dde33b53eae0e3d SHA512 2d1d6302ea60f1bec1d67d9f5f237573219080dea35ea29dd2cc3df4a8f41a2f89845ca3775e7044a1751fdb0b18db2ab4bc05cbd8679b745205868d048fbcc9
|
||||||
|
DIST bash-5.3_alpha_p20240810-772e7e760e8a098e4d8dee21cf11090be4757918.tar.xz 8537400 BLAKE2B c12004b20b64e51c82e845d6c80bfb3cc70be19ec2a0e74cc0b25a86ad37bfb16ad9a115f128d895244485f869c1504b084775536e694000126bef2726126807 SHA512 87a97e6cf365d4780d9ec308b3f12f0d271c57eb69e716912004ececc038ff0db79a91ff6d1a04a14dba4785893b3f5dd0ca1e9f461c72c89476525acadbdf8f
|
||||||
DIST bash205b-001 1132 BLAKE2B 0c5eef29777d54ef05957ea3d63b1556fb380bd20c238dc28993d822b37bc4e78ff4048ad069f6b8cd25da77ccdeb7aecd86c4349cb9d81e5e94c7001eeae5e6 SHA512 5ce4357468821b05e747201f3aa57225ad8f540c9e2c87051720490e039c30b478b9b662a68f14a0800fefe40184e4495e2645665200f9d75e9a115b2ac08071
|
DIST bash205b-001 1132 BLAKE2B 0c5eef29777d54ef05957ea3d63b1556fb380bd20c238dc28993d822b37bc4e78ff4048ad069f6b8cd25da77ccdeb7aecd86c4349cb9d81e5e94c7001eeae5e6 SHA512 5ce4357468821b05e747201f3aa57225ad8f540c9e2c87051720490e039c30b478b9b662a68f14a0800fefe40184e4495e2645665200f9d75e9a115b2ac08071
|
||||||
DIST bash205b-002 755 BLAKE2B 6a6ed5679d451f02f8104b345c1722d11718ce3b4043b581c17786d40d8da69a34786fb56d0c363dba277b8e9dd33f12f70c9cc73a9fc39ba4a8319406f0458d SHA512 46947b0229478d5c2cfeff68b8ebc00e4ef0c8b94e336ca12f72b4490ba3622c0240c01c17c1641c3b07adc2c64ec94d6d780365e8990768ec8888f3a9526883
|
DIST bash205b-002 755 BLAKE2B 6a6ed5679d451f02f8104b345c1722d11718ce3b4043b581c17786d40d8da69a34786fb56d0c363dba277b8e9dd33f12f70c9cc73a9fc39ba4a8319406f0458d SHA512 46947b0229478d5c2cfeff68b8ebc00e4ef0c8b94e336ca12f72b4490ba3622c0240c01c17c1641c3b07adc2c64ec94d6d780365e8990768ec8888f3a9526883
|
||||||
DIST bash205b-003 2356 BLAKE2B b7887d00d92fd298cd07a15e1c73b516dabd22ecd74c97091636dd97a0cd55024ed698e5cc924c4311d994dd326b1ad074bea35e7650cf9cf4e25c60d2713fa7 SHA512 74528ca5d165b812d299f1c69b47757bd677c0b22ce4217e155cd641708b02364a93c6709fb57b546b376b36da74429a61493921c7c199563da40ddcf1c1f399
|
DIST bash205b-003 2356 BLAKE2B b7887d00d92fd298cd07a15e1c73b516dabd22ecd74c97091636dd97a0cd55024ed698e5cc924c4311d994dd326b1ad074bea35e7650cf9cf4e25c60d2713fa7 SHA512 74528ca5d165b812d299f1c69b47757bd677c0b22ce4217e155cd641708b02364a93c6709fb57b546b376b36da74429a61493921c7c199563da40ddcf1c1f399
|
||||||
@ -432,3 +434,15 @@ DIST bash52-025 1454 BLAKE2B 5d18e00cc44710f078037f25c61741a078bb0fc906d6d5555e5
|
|||||||
DIST bash52-025.sig 95 BLAKE2B aff63f1a0a753b632f0d2ce4cf8f4117689469150d41dd0e0d7f76fca973d52fb16f3957b12709826e50705f921fe141108b1046de05d17b40216ed5d4a00893 SHA512 079888adce1cb8583b547d67005f179614f1c42756de20acdb9e24763dec145a421c68e7ceb48d42b853ae7fcb07e051cc1ca56f9dfd337c9a1b001618df2828
|
DIST bash52-025.sig 95 BLAKE2B aff63f1a0a753b632f0d2ce4cf8f4117689469150d41dd0e0d7f76fca973d52fb16f3957b12709826e50705f921fe141108b1046de05d17b40216ed5d4a00893 SHA512 079888adce1cb8583b547d67005f179614f1c42756de20acdb9e24763dec145a421c68e7ceb48d42b853ae7fcb07e051cc1ca56f9dfd337c9a1b001618df2828
|
||||||
DIST bash52-026 1372 BLAKE2B ebe3bc47dadf5d689258c5ccf9883838d3383dc43bec68d2a6767b6348cf1515a98ec9e445c3110e8eb0d87e742c20a0d4ddb70649ec94217f55aad7d18552af SHA512 571993da2b8067ef5b7b705aee65dd414ee70b216ffbcb9fab7c08807b87a72465594c3f1576c795ae86bf951911cdde70ad1037e851b88ee379c4237ccff6fe
|
DIST bash52-026 1372 BLAKE2B ebe3bc47dadf5d689258c5ccf9883838d3383dc43bec68d2a6767b6348cf1515a98ec9e445c3110e8eb0d87e742c20a0d4ddb70649ec94217f55aad7d18552af SHA512 571993da2b8067ef5b7b705aee65dd414ee70b216ffbcb9fab7c08807b87a72465594c3f1576c795ae86bf951911cdde70ad1037e851b88ee379c4237ccff6fe
|
||||||
DIST bash52-026.sig 95 BLAKE2B 175df0703ee5374094d41761ebc2827d34cb97328ea8e486cc9e5c946e482a7d0a16a7ac45e11296500cff8ac4c013e60b07d34abf8b3478527a80f742fbe85e SHA512 6db725ffcf429e04551b2fde329067696b20bef9418b57cff56a62f31c262d0b800061284469eb9f809ca49516516735213dc05defab52ff864ac3b214336559
|
DIST bash52-026.sig 95 BLAKE2B 175df0703ee5374094d41761ebc2827d34cb97328ea8e486cc9e5c946e482a7d0a16a7ac45e11296500cff8ac4c013e60b07d34abf8b3478527a80f742fbe85e SHA512 6db725ffcf429e04551b2fde329067696b20bef9418b57cff56a62f31c262d0b800061284469eb9f809ca49516516735213dc05defab52ff864ac3b214336559
|
||||||
|
DIST bash52-027 1881 BLAKE2B b76ce03456e064f17db00e9026aa53656a063c195faa02c7d51da8d173f7525fe5411bf526f19ee9e717ee1ec957de7e73f5af851a68d5cb554f2c4492ab3844 SHA512 644ef1ea0ce002913b443cfc74d1376b3b8d1c7c976c88cfcec663313563ea905af3aa7ab7236e0ee8336195b01cfc7f2a5a738c5f787a637be92cda937f571e
|
||||||
|
DIST bash52-027.sig 95 BLAKE2B 7120dc764120e108fbafd80dcd5010aea2f79f7508fda375740f7601c5e7508f2c830673101fe528a79cb4a7a5718ebd5dcf5e7ae81943008b128b10bb57ab8b SHA512 ad76bc672e53c62a8554a2889d420294f7dde0a996cb3058ca8a3a4108b53d35ed56dbcd0601f1984b3ae26dfe5eb6d99c9d46ebe78f0947b82502bef2419152
|
||||||
|
DIST bash52-028 1571 BLAKE2B 58fdeecf6dd685103c7dc0e7c200cae65206e5fb3360d798b9cec05fc935ebae139bdf142f6018c9837d1780eb7c5cecff0a945369c14fa575e6801c46a15a31 SHA512 0e59ee230c2f9394814578e56270efa93e5ed8ed2fbf0c0777fdfad4d3f01f560923a80792998789c901068d88371f984f539fdebbec726759eeb7966d324328
|
||||||
|
DIST bash52-028.sig 95 BLAKE2B 62d4663cfb25b470635321815e0860434c2edb35b220450d0123fc0bee2d80f29af060c34c765a48d75b49030f17d50852a1540be28fc615ebdd3f32391fe4d1 SHA512 e3e37ac8e6a29688c4c9dd318fc767331eec39bf947670060ebd42fd8262aad400152dc02d1d459f00170e6b788cf95d4a0a6dd62a2eae4af5bc67ebc80ece5d
|
||||||
|
DIST bash52-029 3619 BLAKE2B 01ddb0acc5b6067e729320692284d61735ace62eeede81a74b7628fe6899da61d921a11bd0d22d0e6f2e241e7b0cb64591654a34a33916739e35e23d5cc6f5bd SHA512 b0b134347fbe0916b9c0fc60a9dbc6b6ebc7439bd5a12d0cda29a0012cbbcc16414392597764c24b8ca716ce727bce7da7fae39acc3cdba9506efb01014a43ae
|
||||||
|
DIST bash52-029.sig 95 BLAKE2B 49c408e8da095c130868b3fab7afb85408307a10d9154dda818e014cec2ec973e1fc2a96dcd7a1769d1581e3c1d758d172bfa066d7b1ea6fdbb80e062d24ef64 SHA512 11aeca6b46a5cdf518b26a59a972e956455cb4d15aedd968ad36f8100bfc38448f89fe7a72dbecfa8da9fe556a194dda9bb34f1d16c2408b92b0e594f163f262
|
||||||
|
DIST bash52-030 4111 BLAKE2B d0cf114642393eb2e2d060eac339674c8ce10af4d54bbcee0f450854d27373ede9dd159caf6d05fc69429ad357d666b47f6781ef590287f33a535b2c26d8754d SHA512 515902fd567dfbbca3d4f6d98a7f2f5a9d1ad323d829f9b90839de4807592708dea3d52f67cb868617278f9c8c6bb299ab3310d898be344d63e824043f17fe2d
|
||||||
|
DIST bash52-030.sig 95 BLAKE2B b8edc295a6646721ce7be79ebac2331a36c0b84ca9f5a6b6e8c2da0674f1279debaf941bbbddd56e2b868afc60a92a34fd312e049fc8524ba1e88ca5cb952acc SHA512 2592d5b7f62a23dd16153691053e462342ae33f347349348de98487c52d2e73ab0d46216505925bc887bceb069bcb5c1c5ce7ce803e62eec7ef0458dbaf1fb69
|
||||||
|
DIST bash52-031 1159 BLAKE2B dac378115906e21fc754267c42e129e2374c9b63f879d1717d79930589618d4d8d17821b2f529d1851db7567d3efdfb0410c18e6869047e3d87443b29d507289 SHA512 08f3e3cb6a6554ea6d1b1f5cbcd156cb75f9c0c5350801b67352a1c2ffec0d02d90c0947736fd52de304e549a1b919ea0ff42e23a8cf63a721a351ea1732bea5
|
||||||
|
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
|
||||||
|
402
sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p32.ebuild
vendored
Normal file
402
sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p32.ebuild
vendored
Normal file
@ -0,0 +1,402 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/chetramey.asc
|
||||||
|
inherit flag-o-matic toolchain-funcs prefix verify-sig
|
||||||
|
|
||||||
|
# Uncomment if we have a patchset.
|
||||||
|
#GENTOO_PATCH_DEV="sam"
|
||||||
|
#GENTOO_PATCH_VER="${PV}"
|
||||||
|
|
||||||
|
MY_PV=${PV/_p*}
|
||||||
|
MY_PV=${MY_PV/_/-}
|
||||||
|
MY_P=${PN}-${MY_PV}
|
||||||
|
MY_PATCHES=()
|
||||||
|
|
||||||
|
# Determine the patchlevel. See ftp://ftp.gnu.org/gnu/bash/bash-5.2-patches/.
|
||||||
|
case ${PV} in
|
||||||
|
*_p*)
|
||||||
|
PLEVEL=${PV##*_p}
|
||||||
|
;;
|
||||||
|
9999|*_alpha*|*_beta*|*_rc*)
|
||||||
|
# Set a negative patchlevel to indicate that it's a pre-release.
|
||||||
|
PLEVEL=-1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
PLEVEL=0
|
||||||
|
esac
|
||||||
|
|
||||||
|
# The version of readline this bash normally ships with. Note that we only use
|
||||||
|
# the bundled copy of readline for pre-releases.
|
||||||
|
READLINE_VER="8.2_p1"
|
||||||
|
|
||||||
|
DESCRIPTION="The standard GNU Bourne again shell"
|
||||||
|
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html https://git.savannah.gnu.org/cgit/bash.git"
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]]; then
|
||||||
|
EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git"
|
||||||
|
EGIT_BRANCH=devel
|
||||||
|
inherit git-r3
|
||||||
|
else
|
||||||
|
my_urls=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}.tar.gz" )
|
||||||
|
|
||||||
|
# bash-5.1 -> bash51
|
||||||
|
my_p=${PN}$(ver_cut 1-2) my_p=${my_p/.}
|
||||||
|
|
||||||
|
for (( my_patch_idx = 1; my_patch_idx <= PLEVEL; my_patch_idx++ )); do
|
||||||
|
printf -v my_patch_ver %s-%03d "${my_p}" "${my_patch_idx}"
|
||||||
|
my_urls+=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}-patches/${my_patch_ver}" )
|
||||||
|
MY_PATCHES+=( "${DISTDIR}/${my_patch_ver}" )
|
||||||
|
done
|
||||||
|
|
||||||
|
SRC_URI="${my_urls[*]} verify-sig? ( ${my_urls[*]/%/.sig} )"
|
||||||
|
|
||||||
|
unset -v my_urls my_p my_patch_idx my_patch_ver
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${GENTOO_PATCH_VER} ]]; then
|
||||||
|
SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV:?}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER:?}-patches.tar.xz"
|
||||||
|
fi
|
||||||
|
|
||||||
|
S=${WORKDIR}/${MY_P}
|
||||||
|
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
SLOT="0"
|
||||||
|
if (( PLEVEL >= 0 )); then
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
fi
|
||||||
|
IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
>=sys-libs/ncurses-5.2-r2:=
|
||||||
|
nls? ( virtual/libintl )
|
||||||
|
"
|
||||||
|
if (( PLEVEL >= 0 )); then
|
||||||
|
DEPEND+=" readline? ( >=sys-libs/readline-${READLINE_VER}:= )"
|
||||||
|
fi
|
||||||
|
RDEPEND="
|
||||||
|
${DEPEND}
|
||||||
|
"
|
||||||
|
# We only need bison (yacc) when the .y files get patched (bash42-005, bash51-011).
|
||||||
|
BDEPEND="
|
||||||
|
pgo? ( dev-util/gperf )
|
||||||
|
verify-sig? ( sec-keys/openpgp-keys-chetramey )
|
||||||
|
"
|
||||||
|
|
||||||
|
# EAPI 8 tries to append it but it doesn't exist here.
|
||||||
|
QA_CONFIGURE_OPTIONS="--disable-static"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
#"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}/
|
||||||
|
|
||||||
|
# Patches to or from Chet, posted to the bug-bash mailing list.
|
||||||
|
"${FILESDIR}/${PN}-5.0-syslog-history-extern.patch"
|
||||||
|
"${FILESDIR}/${PN}-5.2_p15-random-ub.patch"
|
||||||
|
"${FILESDIR}/${PN}-5.2_p15-configure-clang16.patch"
|
||||||
|
"${FILESDIR}/${PN}-5.2_p21-wpointer-to-int.patch"
|
||||||
|
"${FILESDIR}/${PN}-5.2_p21-configure-strtold.patch"
|
||||||
|
"${FILESDIR}/${PN}-5.2_p32-memory-leaks.patch"
|
||||||
|
)
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
# bug #7332
|
||||||
|
if is-flag -malign-double; then
|
||||||
|
eerror "Detected bad CFLAGS '-malign-double'. Do not use this"
|
||||||
|
eerror "as it breaks LFS (struct stat64) on x86."
|
||||||
|
die "remove -malign-double from your CFLAGS mr ricer"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use bashlogger; then
|
||||||
|
ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs."
|
||||||
|
ewarn "This will log ALL output you enter into the shell, you have been warned."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
local patch
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]]; then
|
||||||
|
git-r3_src_unpack
|
||||||
|
else
|
||||||
|
if use verify-sig; then
|
||||||
|
verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig}
|
||||||
|
|
||||||
|
for patch in "${MY_PATCHES[@]}"; do
|
||||||
|
verify-sig_verify_detached "${patch}"{,.sig}
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
unpack "${MY_P}.tar.gz"
|
||||||
|
|
||||||
|
if [[ ${GENTOO_PATCH_VER} ]]; then
|
||||||
|
unpack "${PN}-${GENTOO_PATCH_VER}-patches.tar.xz"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# Include official patches.
|
||||||
|
(( PLEVEL > 0 )) && eapply -p0 "${MY_PATCHES[@]}"
|
||||||
|
|
||||||
|
# Clean out local libs so we know we use system ones w/releases. The
|
||||||
|
# touch utility is invoked for the benefit of config.status.
|
||||||
|
if (( PLEVEL >= 0 )); then
|
||||||
|
rm -rf lib/{readline,termcap}/* \
|
||||||
|
&& touch lib/{readline,termcap}/Makefile.in \
|
||||||
|
&& sed -i -E 's:\$[{(](RL|HIST)_LIBSRC[)}]/[[:alpha:]_-]*\.h::g' Makefile.in \
|
||||||
|
|| die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Prefixify hardcoded path names. No-op for non-prefix.
|
||||||
|
hprefixify pathnames.h.in
|
||||||
|
|
||||||
|
# Avoid regenerating docs after patches, bug #407985.
|
||||||
|
sed -i -E '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in \
|
||||||
|
&& touch -r . doc/* \
|
||||||
|
|| die
|
||||||
|
|
||||||
|
# Sometimes hangs (more noticeable w/ pgo), bug #907403.
|
||||||
|
rm tests/run-jobs || die
|
||||||
|
|
||||||
|
eapply -p0 "${PATCHES[@]}"
|
||||||
|
eapply_user
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local -a myconf
|
||||||
|
|
||||||
|
# Upstream only test with Bison and require GNUisms like YYEOF and
|
||||||
|
# YYERRCODE. The former at least may be in POSIX soon:
|
||||||
|
# https://www.austingroupbugs.net/view.php?id=1269.
|
||||||
|
# configure warns on use of non-Bison but doesn't abort. The result
|
||||||
|
# may misbehave at runtime.
|
||||||
|
unset -v YACC
|
||||||
|
|
||||||
|
myconf=(
|
||||||
|
--disable-profiling
|
||||||
|
|
||||||
|
# Force linking with system curses ... the bundled termcap lib
|
||||||
|
# sucks bad compared to ncurses. For the most part, ncurses
|
||||||
|
# is here because readline needs it. But bash itself calls
|
||||||
|
# ncurses in one or two small places :(.
|
||||||
|
--with-curses
|
||||||
|
|
||||||
|
$(use_enable mem-scramble)
|
||||||
|
$(use_enable net net-redirections)
|
||||||
|
$(use_enable readline)
|
||||||
|
$(use_enable readline bang-history)
|
||||||
|
$(use_enable readline history)
|
||||||
|
$(use_with afs)
|
||||||
|
$(use_with mem-scramble bash-malloc)
|
||||||
|
)
|
||||||
|
|
||||||
|
# For descriptions of these, see config-top.h.
|
||||||
|
# bashrc/#26952 bash_logout/#90488 ssh/#24762 mktemp/#574426
|
||||||
|
append-cppflags \
|
||||||
|
-DDEFAULT_PATH_VALUE=\'\""${EPREFIX}"/usr/local/sbin:"${EPREFIX}"/usr/local/bin:"${EPREFIX}"/usr/sbin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/bin\"\' \
|
||||||
|
-DSTANDARD_UTILS_PATH=\'\""${EPREFIX}"/bin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/usr/sbin\"\' \
|
||||||
|
-DSYS_BASHRC=\'\""${EPREFIX}"/etc/bash/bashrc\"\' \
|
||||||
|
-DSYS_BASH_LOGOUT=\'\""${EPREFIX}"/etc/bash/bash_logout\"\' \
|
||||||
|
-DNON_INTERACTIVE_LOGIN_SHELLS \
|
||||||
|
-DSSH_SOURCE_BASHRC \
|
||||||
|
$(use bashlogger && echo -DSYSLOG_HISTORY)
|
||||||
|
|
||||||
|
use nls || myconf+=( --disable-nls )
|
||||||
|
|
||||||
|
if (( PLEVEL >= 0 )); then
|
||||||
|
# Historically, we always used the builtin readline, but since
|
||||||
|
# our handling of SONAME upgrades has gotten much more stable
|
||||||
|
# in the PM (and the readline ebuild itself preserves the old
|
||||||
|
# libs during upgrades), linking against the system copy should
|
||||||
|
# be safe.
|
||||||
|
# Exact cached version here doesn't really matter as long as it
|
||||||
|
# is at least what's in the DEPEND up above.
|
||||||
|
export ac_cv_rl_version=${READLINE_VER%%_*}
|
||||||
|
|
||||||
|
# Use system readline only with released versions.
|
||||||
|
myconf+=( --with-installed-readline=. )
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use plugins; then
|
||||||
|
append-ldflags "-Wl,-rpath,${EPREFIX}/usr/$(get_libdir)/bash"
|
||||||
|
else
|
||||||
|
# Disable the plugins logic by hand since bash doesn't provide
|
||||||
|
# a way of doing it.
|
||||||
|
export ac_cv_func_dl{close,open,sym}=no \
|
||||||
|
ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no
|
||||||
|
|
||||||
|
sed -i -e '/LOCAL_LDFLAGS=/s:-rdynamic::' configure || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# bug #444070
|
||||||
|
tc-export AR
|
||||||
|
|
||||||
|
econf "${myconf[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
local -a pgo_generate_flags pgo_use_flags
|
||||||
|
local flag
|
||||||
|
|
||||||
|
# -fprofile-partial-training because upstream notes the test suite isn't
|
||||||
|
# super comprehensive.
|
||||||
|
# https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo
|
||||||
|
if use pgo; then
|
||||||
|
pgo_generate_flags=(
|
||||||
|
-fprofile-update=atomic
|
||||||
|
-fprofile-dir="${T}"/pgo
|
||||||
|
-fprofile-generate="${T}"/pgo
|
||||||
|
)
|
||||||
|
pgo_use_flags=(
|
||||||
|
-fprofile-use="${T}"/pgo
|
||||||
|
-fprofile-dir="${T}"/pgo
|
||||||
|
)
|
||||||
|
if flag=$(test-flags-CC -fprofile-partial-training); then
|
||||||
|
pgo_generate_flags+=( "${flag}" )
|
||||||
|
pgo_use_flags+=( "${flag}" )
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}"
|
||||||
|
use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" all others
|
||||||
|
|
||||||
|
# Build Bash and run its tests to generate profiles.
|
||||||
|
if (( ${#pgo_generate_flags[@]} )); then
|
||||||
|
# Used in test suite.
|
||||||
|
unset -v A
|
||||||
|
|
||||||
|
emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check
|
||||||
|
|
||||||
|
if tc-is-clang; then
|
||||||
|
llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Rebuild Bash using the profiling data we just generated.
|
||||||
|
emake clean
|
||||||
|
emake CFLAGS="${CFLAGS} ${pgo_use_flags[*]}"
|
||||||
|
use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_use_flags[*]}" all others
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
# Used in test suite.
|
||||||
|
unset -v A
|
||||||
|
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local d f
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
my_prefixify() {
|
||||||
|
while read -r; do
|
||||||
|
if [[ $REPLY == *$1* ]]; then
|
||||||
|
REPLY=${REPLY/"/etc/"/"${EPREFIX}/etc/"}
|
||||||
|
fi
|
||||||
|
printf '%s\n' "${REPLY}" || ! break
|
||||||
|
done < "$2" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
dodir /bin
|
||||||
|
mv -- "${ED}"/usr/bin/bash "${ED}"/bin/ || die
|
||||||
|
dosym bash /bin/rbash
|
||||||
|
|
||||||
|
insinto /etc/bash
|
||||||
|
doins "${FILESDIR}"/bash_logout
|
||||||
|
my_prefixify bashrc.d "${FILESDIR}"/bashrc-r1 | newins - bashrc
|
||||||
|
|
||||||
|
insinto /etc/bash/bashrc.d
|
||||||
|
my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color.bash | newins - 10-gentoo-color.bash
|
||||||
|
newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r1.bash 10-gentoo-title.bash
|
||||||
|
if [[ ! ${EPREFIX} ]]; then
|
||||||
|
doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto /etc/skel
|
||||||
|
for f in bash{_logout,_profile,rc}; do
|
||||||
|
newins "${FILESDIR}/dot-${f}" ".${f}"
|
||||||
|
done
|
||||||
|
|
||||||
|
if use plugins; then
|
||||||
|
exeinto "/usr/$(get_libdir)/bash"
|
||||||
|
set -- examples/loadables/*.o
|
||||||
|
doexe "${@%.o}"
|
||||||
|
|
||||||
|
insinto /usr/include/bash-plugins
|
||||||
|
doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use examples; then
|
||||||
|
for d in examples/{functions,misc,scripts,startup-files}; do
|
||||||
|
exeinto "/usr/share/doc/${PF}/${d}"
|
||||||
|
docinto "${d}"
|
||||||
|
for f in "${d}"/*; do
|
||||||
|
if [[ ${f##*/} != @(PERMISSION|*README) ]]; then
|
||||||
|
doexe "${f}"
|
||||||
|
else
|
||||||
|
dodoc "${f}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install bash_builtins.1 and rbash.1.
|
||||||
|
emake -C doc DESTDIR="${D}" install_builtins
|
||||||
|
sed 's:bash\.1:man1/&:' doc/rbash.1 > "${T}"/rbash.1 || die
|
||||||
|
doman "${T}"/rbash.1
|
||||||
|
|
||||||
|
newdoc CWRU/changelog ChangeLog
|
||||||
|
dosym bash.info /usr/share/info/bashref.info
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_preinst() {
|
||||||
|
if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]]; then
|
||||||
|
mkdir -p -- "${EROOT}"/etc/bash \
|
||||||
|
&& mv -f -- "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/ \
|
||||||
|
|| die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
local old_ver
|
||||||
|
|
||||||
|
# If /bin/sh does not exist, provide it.
|
||||||
|
if [[ ! -e ${EROOT}/bin/sh ]]; then
|
||||||
|
ln -sf -- bash "${EROOT}"/bin/sh || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
read -r old_ver <<<"${REPLACING_VERSIONS}"
|
||||||
|
if [[ ! $old_ver ]]; then
|
||||||
|
:
|
||||||
|
elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
while read -r; do ewarn "${REPLY}"; done <<'EOF'
|
||||||
|
Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash.
|
||||||
|
|
||||||
|
Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the
|
||||||
|
characteristics of the operating environment, it may contain a command to set
|
||||||
|
the terminal's window title. Those who were already choosing to customise the
|
||||||
|
PROMPT_COMMAND variable are now advised to append their commands like so:
|
||||||
|
|
||||||
|
PROMPT_COMMAND+=('custom command goes here')
|
||||||
|
|
||||||
|
Gentoo no longer defaults to having bash set the window title in the case
|
||||||
|
that the terminal is controlled by sshd(8), unless screen is launched on the
|
||||||
|
remote side or the terminal reliably supports saving and restoring the title
|
||||||
|
(as alacritty, foot and tmux do). Those wanting for the title to be set
|
||||||
|
regardless may adjust ~/.bashrc - or create a custom /etc/bash/bashrc.d
|
||||||
|
drop-in - to set PROMPT_COMMMAND like so:
|
||||||
|
|
||||||
|
PROMPT_COMMAND=(genfun_set_win_title)
|
||||||
|
|
||||||
|
Those who would prefer for bash never to interfere with the window title may
|
||||||
|
now opt out of the default title setting behaviour, either with the "unset -v
|
||||||
|
PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired.
|
||||||
|
EOF
|
||||||
|
}
|
411
sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20240730.ebuild
vendored
Normal file
411
sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20240730.ebuild
vendored
Normal file
@ -0,0 +1,411 @@
|
|||||||
|
# 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="e45ec6f76bea49cf8df306ac45022306831ed086"
|
||||||
|
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 ~ia64 ~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
|
||||||
|
}
|
411
sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20240810.ebuild
vendored
Normal file
411
sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20240810.ebuild
vendored
Normal file
@ -0,0 +1,411 @@
|
|||||||
|
# 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="772e7e760e8a098e4d8dee21cf11090be4757918"
|
||||||
|
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 ~ia64 ~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
|
||||||
|
}
|
130
sdk_container/src/third_party/portage-stable/app-shells/bash/files/bash-5.2_p32-memory-leaks.patch
vendored
Normal file
130
sdk_container/src/third_party/portage-stable/app-shells/bash/files/bash-5.2_p32-memory-leaks.patch
vendored
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
[Compared to bash-5.2_p26-memory-leaks.patch, this drops a hunk for
|
||||||
|
builtins/evalstring.c as the open_redir_file issue is fixed in patch 31
|
||||||
|
upstream for bash-5.2]
|
||||||
|
|
||||||
|
https://lists.gnu.org/archive/html/bug-bash/2024-01/msg00036.html
|
||||||
|
https://lists.gnu.org/archive/html/bug-bash/2024-01/txtm8yNNPR9RQ.txt
|
||||||
|
|
||||||
|
For evalstring.c:
|
||||||
|
* https://lists.gnu.org/archive/html/bug-bash/2024-01/msg00011.html
|
||||||
|
* https://git.savannah.gnu.org/cgit/bash.git/diff/builtins/evalstring.c?h=devel&id=81f7b44564cd1510788035cea7c59631865a7db2&dt=1#n766
|
||||||
|
|
||||||
|
From 711ab85262884f2b91f09eceb9aefd0e2426ce67 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Grisha Levit <grishalevit@gmail.com>
|
||||||
|
Date: Sat, 3 Jun 2023 16:51:26 -0400
|
||||||
|
Subject: [PATCH] various leaks
|
||||||
|
|
||||||
|
Found mostly by normal usage running a no-bash-malloc build with clang's
|
||||||
|
LeakSanitizer enabled. So far seems to provide very accurate results.
|
||||||
|
|
||||||
|
* arrayfunc.c
|
||||||
|
- quote_compound_array_word: make sure to free VALUE
|
||||||
|
- bind_assoc_var_internal: if assigning to a dynamic variable, make sure
|
||||||
|
to free the key (usually assoc_insert would do it)
|
||||||
|
|
||||||
|
* bashline.c
|
||||||
|
- bash_command_name_stat_hook: free original *NAME if we are going to
|
||||||
|
change what it points to (what the callers seem to expect)
|
||||||
|
|
||||||
|
* builtins/evalstring.c
|
||||||
|
- parse_and_execute: make sure to dispose of the parsed command
|
||||||
|
resulting from a failed function import attempt
|
||||||
|
|
||||||
|
* examples/loadables/stat.c
|
||||||
|
- loadstat: bind_assoc_variable does not free its VALUE argument so make
|
||||||
|
sure to do it
|
||||||
|
|
||||||
|
* subst.c
|
||||||
|
- param_expand: free temp1 value for codepaths that don't do it
|
||||||
|
---
|
||||||
|
arrayfunc.c | 6 +++++-
|
||||||
|
bashline.c | 1 +
|
||||||
|
builtins/evalstring.c | 4 ++++
|
||||||
|
examples/loadables/stat.c | 1 +
|
||||||
|
subst.c | 2 ++
|
||||||
|
5 files changed, 13 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/arrayfunc.c b/arrayfunc.c
|
||||||
|
index 2c05d15b..8ba64084 100644
|
||||||
|
--- arrayfunc.c
|
||||||
|
+++ arrayfunc.c
|
||||||
|
@@ -208,7 +208,10 @@ bind_assoc_var_internal (entry, hash, key, value, flags)
|
||||||
|
newval = make_array_variable_value (entry, 0, key, value, flags);
|
||||||
|
|
||||||
|
if (entry->assign_func)
|
||||||
|
- (*entry->assign_func) (entry, newval, 0, key);
|
||||||
|
+ {
|
||||||
|
+ (*entry->assign_func) (entry, newval, 0, key);
|
||||||
|
+ FREE (key);
|
||||||
|
+ }
|
||||||
|
else
|
||||||
|
assoc_insert (hash, key, newval);
|
||||||
|
|
||||||
|
@@ -985,6 +988,7 @@ quote_compound_array_word (w, type)
|
||||||
|
if (t != w+ind)
|
||||||
|
free (t);
|
||||||
|
strcpy (nword + i, value);
|
||||||
|
+ free (value);
|
||||||
|
|
||||||
|
return nword;
|
||||||
|
}
|
||||||
|
diff --git a/bashline.c b/bashline.c
|
||||||
|
index c85b05b6..bd7548cc 100644
|
||||||
|
--- bashline.c
|
||||||
|
+++ bashline.c
|
||||||
|
@@ -1928,6 +1928,7 @@ bash_command_name_stat_hook (name)
|
||||||
|
result = search_for_command (cname, 0);
|
||||||
|
if (result)
|
||||||
|
{
|
||||||
|
+ FREE (*name);
|
||||||
|
*name = result;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
diff --git a/builtins/evalstring.c b/builtins/evalstring.c
|
||||||
|
index df3dd68e..20c6a4a7 100644
|
||||||
|
--- builtins/evalstring.c
|
||||||
|
+++ builtins/evalstring.c
|
||||||
|
@@ -461,6 +461,8 @@ parse_and_execute (string, from_file, flags)
|
||||||
|
should_jump_to_top_level = 0;
|
||||||
|
last_result = last_command_exit_value = EX_BADUSAGE;
|
||||||
|
set_pipestatus_from_exit (last_command_exit_value);
|
||||||
|
+ dispose_command(command);
|
||||||
|
+ global_command = (COMMAND *)NULL;
|
||||||
|
reset_parser ();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/examples/loadables/stat.c b/examples/loadables/stat.c
|
||||||
|
index 1e60e7b6..ed5c9764 100644
|
||||||
|
--- examples/loadables/stat.c
|
||||||
|
+++ examples/loadables/stat.c
|
||||||
|
@@ -349,6 +349,7 @@ loadstat (vname, var, fname, flags, fmt, sp)
|
||||||
|
key = savestring (arraysubs[i]);
|
||||||
|
value = statval (i, fname, flags, fmt, sp);
|
||||||
|
v = bind_assoc_variable (var, vname, key, value, ASS_FORCE);
|
||||||
|
+ free (value);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
diff --git a/subst.c b/subst.c
|
||||||
|
index 1ac6eb2d..ff0602da 100644
|
||||||
|
--- subst.c
|
||||||
|
+++ subst.c
|
||||||
|
@@ -10727,6 +10727,7 @@ comsub:
|
||||||
|
{
|
||||||
|
chk_atstar (temp, quoted, pflags, quoted_dollar_at_p, contains_dollar_at);
|
||||||
|
tdesc = parameter_brace_expand_word (temp, SPECIAL_VAR (temp, 0), quoted, pflags, 0);
|
||||||
|
+ free (temp1);
|
||||||
|
if (tdesc == &expand_wdesc_error || tdesc == &expand_wdesc_fatal)
|
||||||
|
return (tdesc);
|
||||||
|
ret = tdesc;
|
||||||
|
@@ -10739,6 +10740,7 @@ comsub:
|
||||||
|
{
|
||||||
|
set_exit_status (EXECUTION_FAILURE);
|
||||||
|
report_error (_("%s: invalid variable name for name reference"), temp);
|
||||||
|
+ free (temp1);
|
||||||
|
return (&expand_wdesc_error); /* XXX */
|
||||||
|
}
|
||||||
|
else
|
||||||
|
--
|
||||||
|
2.43.0
|
@ -1,7 +1,3 @@
|
|||||||
DIST cmake-3.27.0-docs.tar.xz 521348 BLAKE2B 319c84195c37b1944bb5d3fde1aeae75623fc90a734c1ba74d730cd5678bff75806f7aa8aa8171fd7878a09b3316c9c0ee23c0c055e869a4385f54987f86d801 SHA512 e9c300526f9fe4e450e921308b7af42f4b8972f2f546f7bbf2dffb4ca696793fe09f1610636b05c82b1cf74ed8ef95377bec69e15f8c9197d6960e674e0d5400
|
|
||||||
DIST cmake-3.27.9-SHA-256.txt 1646 BLAKE2B abfef38f8994d7684a44caaa4a5efa1ac8fbe38bd8e8c98bf341cf813f77ee54bea58f7b3ab7f68b3f5d992519396fd15a1f72a1d9587f593d80b8d2f8ba36e7 SHA512 310c45281735cf9812d9d1cf22a656c5b44e596ef7032a8b7b09900ef838e74b884599b42ed2f5469946f371d431b7d4b1e44f6cd49dfb36ea49d88b187b4804
|
|
||||||
DIST cmake-3.27.9-SHA-256.txt.asc 833 BLAKE2B 57d52fc2f3233662af13eb362ec82626c4821267f55f1313907513b61cee5b8481936da2b03c908c507b3e0919e4811e90c6cb47568420a8b2187c7942de9f1e SHA512 cad2007e356eac480b2cb93778f90152788e33be2e565b38535a2d205794054e5d67d4ed7db0765a05017aedc5f1af21556535a084014fe6c446bc13258253da
|
|
||||||
DIST cmake-3.27.9.tar.gz 10984490 BLAKE2B 66f8fb6e301ed19f993fde6c4f9e336124be6373d49b58d130ce59f4e5225cd27e02813856636b51c2521403c3a56c200ce646de5c35be2b25b5e6240c98bdb4 SHA512 56ce723b0b6d09b420a2f89ba1636cdfb1bc305bc2df91ae716f866bee07f5d702d75efbddfbaf724f47382df809107fe1e6d046314cd2f1ff07bca34ad6340a
|
|
||||||
DIST cmake-3.28.0-docs.tar.xz 525776 BLAKE2B b643f76012768f0100c51f0dd146230eba25b634ab4f9abd9c739b0b257e4b1d54aa01be8d2dcd27a7b1d9822bf13eb8af16ff3c6984eeefdeb58988a164bc26 SHA512 474dc77e44240de921013219bd7cdc4aee80214fbf38d60dc2ddb53c0fda8a11c466c01bbee2abbd32b711ec7524678515e39a79a5634354a6cb38f9683e229f
|
DIST cmake-3.28.0-docs.tar.xz 525776 BLAKE2B b643f76012768f0100c51f0dd146230eba25b634ab4f9abd9c739b0b257e4b1d54aa01be8d2dcd27a7b1d9822bf13eb8af16ff3c6984eeefdeb58988a164bc26 SHA512 474dc77e44240de921013219bd7cdc4aee80214fbf38d60dc2ddb53c0fda8a11c466c01bbee2abbd32b711ec7524678515e39a79a5634354a6cb38f9683e229f
|
||||||
DIST cmake-3.28.5-SHA-256.txt 1646 BLAKE2B 763cbec9ede58cc43a7435e3fe97a9a9f28b201712f52d98ecdf8035887232fe6000675c9bab90f275ff6d44406839f04352784a921dcbc9d65c5e2440b53f52 SHA512 0fdeed277d113e4642c11b87b98305da43213bd89566e3aaaf427a11e168d9e6754632c2fd76fae542d29fddfa8b67c3c0df19f741c53fdd3aea8ce7bec73ff3
|
DIST cmake-3.28.5-SHA-256.txt 1646 BLAKE2B 763cbec9ede58cc43a7435e3fe97a9a9f28b201712f52d98ecdf8035887232fe6000675c9bab90f275ff6d44406839f04352784a921dcbc9d65c5e2440b53f52 SHA512 0fdeed277d113e4642c11b87b98305da43213bd89566e3aaaf427a11e168d9e6754632c2fd76fae542d29fddfa8b67c3c0df19f741c53fdd3aea8ce7bec73ff3
|
||||||
DIST cmake-3.28.5-SHA-256.txt.asc 833 BLAKE2B bde735a577b556bc30ae1a5de0df8533243c955cc5d222537b3323e7108900af2f01799a4bfa843d953b141cc76a19aed77bfba15cf4e2c3cc36a0e7e844e853 SHA512 d495afd2ce4e16f8d3ecc0b319d59c3634aae71c26110d14225f9dd628bfe173cdd94818c69c930ef5cfff3b331445e192db0082188e0822155184e3f6f80e7d
|
DIST cmake-3.28.5-SHA-256.txt.asc 833 BLAKE2B bde735a577b556bc30ae1a5de0df8533243c955cc5d222537b3323e7108900af2f01799a4bfa843d953b141cc76a19aed77bfba15cf4e2c3cc36a0e7e844e853 SHA512 d495afd2ce4e16f8d3ecc0b319d59c3634aae71c26110d14225f9dd628bfe173cdd94818c69c930ef5cfff3b331445e192db0082188e0822155184e3f6f80e7d
|
||||||
@ -22,3 +18,6 @@ DIST cmake-3.30.0.tar.gz 11500060 BLAKE2B 62b3f3d5ed92f7f118991f36ba7098ff20c202
|
|||||||
DIST cmake-3.30.1-SHA-256.txt 1646 BLAKE2B 39c8a32acb873f3b2b35af543006ef4ebc976f1939f4a857e55048654c60c23ee79cde0f1c625a7388f612d5ad594fa4ddfc89e4bb6e13764ffc78ce2e70f0e4 SHA512 bf3ba7218d504c75474b048b7c8b5db3928994fa269ea3762e68a751905403f87946c3dfdfbf63836d87f5180c905ed57b0d287bec97b04ee0e81f1f420a8c5f
|
DIST cmake-3.30.1-SHA-256.txt 1646 BLAKE2B 39c8a32acb873f3b2b35af543006ef4ebc976f1939f4a857e55048654c60c23ee79cde0f1c625a7388f612d5ad594fa4ddfc89e4bb6e13764ffc78ce2e70f0e4 SHA512 bf3ba7218d504c75474b048b7c8b5db3928994fa269ea3762e68a751905403f87946c3dfdfbf63836d87f5180c905ed57b0d287bec97b04ee0e81f1f420a8c5f
|
||||||
DIST cmake-3.30.1-SHA-256.txt.asc 833 BLAKE2B 5232626cc85bbcf0f44a9df4904ede8935c4d028b9604c9749a04b6eb2d51f648c817412b7870ae7f3e635dd88a44143568985d4ed2322d5239c5935e073a92b SHA512 b2a7b344a2d6350e55721860e7579a70c767b94b04a88b73a9fb1e9830658689561f9467d09eed87b2dce00106917543cf69ede5c7ed66a529359a1f6427dbc5
|
DIST cmake-3.30.1-SHA-256.txt.asc 833 BLAKE2B 5232626cc85bbcf0f44a9df4904ede8935c4d028b9604c9749a04b6eb2d51f648c817412b7870ae7f3e635dd88a44143568985d4ed2322d5239c5935e073a92b SHA512 b2a7b344a2d6350e55721860e7579a70c767b94b04a88b73a9fb1e9830658689561f9467d09eed87b2dce00106917543cf69ede5c7ed66a529359a1f6427dbc5
|
||||||
DIST cmake-3.30.1.tar.gz 11500521 BLAKE2B 0e604ecc6b7da1c1c1baa81488a033aef6fa39cbddaaf43364193dda3e30d02a072f58a75573723e71653a2d1b34d09a7e1d0cc98280d76801d262bf54ffe77d SHA512 e3b38d309554a4239b8048434d770d3ac4533280a82c1bec65c37c9b0996cdf1753185e38deb4fb5da890ddc3d39c1d5c075e2ab0f7e0c52d61f5d556851fd20
|
DIST cmake-3.30.1.tar.gz 11500521 BLAKE2B 0e604ecc6b7da1c1c1baa81488a033aef6fa39cbddaaf43364193dda3e30d02a072f58a75573723e71653a2d1b34d09a7e1d0cc98280d76801d262bf54ffe77d SHA512 e3b38d309554a4239b8048434d770d3ac4533280a82c1bec65c37c9b0996cdf1753185e38deb4fb5da890ddc3d39c1d5c075e2ab0f7e0c52d61f5d556851fd20
|
||||||
|
DIST cmake-3.30.2-SHA-256.txt 1646 BLAKE2B b36e1e099261d80bde7c57564d3030bc99b12ed3f6a70f69de16d81f6e6da567e3cfa792d010921017a02eaf238b056e7eb2cf330e6c6711aa3a4bd835732b57 SHA512 7991c834ed2e384d863793725fbe0b6195824f4e14a665ddd71348ecfa8bd03dddb46d0e9f26cc75b7d9e0a2eb90bdec01b7e79f32ff1a9cc9a8fcdd1d060de3
|
||||||
|
DIST cmake-3.30.2-SHA-256.txt.asc 833 BLAKE2B cf99bfec2bd4cc8c828162353ceac9ebae2d7ad02c5df77873a751df7314eb56266525c755ba2f9015e043c9bb6c8218251b47744741c02fb81a80f93809ab32 SHA512 d7f07fcdd02b1846bafff4a3e08e38a2cce38131358a783097555d7934dddc82a67c3a6b84cbd8731171d82e293ff18f7e5e66d0d3bbb7d200da3904089e923d
|
||||||
|
DIST cmake-3.30.2.tar.gz 11500719 BLAKE2B 85873311000831d2a8acb2c9d7f107e7fcef9dcd56f47307bd384a26c1b63d8f15b41989944e41969d6637139d916101fe236d3fe448a76f5b18b7809570ad5d SHA512 2b4c4ebb2213e19a08b9bf5a3cf0427dd2bfc44c7d86734abf5524c311bbce7e79f76d08e4df87a1e4508fe9fa05a28333068dc3bab308ef9724a9beeb39daab
|
||||||
|
@ -19,8 +19,8 @@ CMAKE_DOCS_USEFLAG="+doc"
|
|||||||
# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759.
|
# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759.
|
||||||
CMAKE_MAKEFILE_GENERATOR="emake"
|
CMAKE_MAKEFILE_GENERATOR="emake"
|
||||||
CMAKE_REMOVE_MODULES_LIST=( none )
|
CMAKE_REMOVE_MODULES_LIST=( none )
|
||||||
inherit bash-completion-r1 cmake elisp-common flag-o-matic multiprocessing \
|
inherit bash-completion-r1 cmake flag-o-matic multiprocessing \
|
||||||
toolchain-funcs virtualx xdg-utils
|
toolchain-funcs xdg-utils
|
||||||
|
|
||||||
MY_P="${P/_/-}"
|
MY_P="${P/_/-}"
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ else
|
|||||||
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc
|
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc
|
||||||
)"
|
)"
|
||||||
|
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
|
||||||
BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20230817 )"
|
BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20230817 )"
|
||||||
fi
|
fi
|
||||||
@ -59,7 +59,7 @@ S="${WORKDIR}/${MY_P}"
|
|||||||
|
|
||||||
LICENSE="BSD"
|
LICENSE="BSD"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
IUSE="${CMAKE_DOCS_USEFLAG} dap emacs gui ncurses qt6 test"
|
IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses qt6 test"
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
RDEPEND="
|
RDEPEND="
|
||||||
@ -72,7 +72,6 @@ RDEPEND="
|
|||||||
sys-libs/zlib
|
sys-libs/zlib
|
||||||
virtual/pkgconfig
|
virtual/pkgconfig
|
||||||
dap? ( dev-cpp/cppdap )
|
dap? ( dev-cpp/cppdap )
|
||||||
emacs? ( >=app-editors/emacs-23.1:* )
|
|
||||||
gui? (
|
gui? (
|
||||||
!qt6? (
|
!qt6? (
|
||||||
dev-qt/qtcore:5
|
dev-qt/qtcore:5
|
||||||
@ -102,12 +101,8 @@ PATCHES=(
|
|||||||
"${FILESDIR}"/${PN}-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch
|
"${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-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
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
|
||||||
"${FILESDIR}"/${PN}-3.27.0_rc1-0006-Filter-out-distcc-warnings-to-avoid-confusing-CMake.patch
|
|
||||||
|
|
||||||
# Upstream fixes (can usually be removed with a version bump)
|
# Upstream fixes (can usually be removed with a version bump)
|
||||||
# pkgconf
|
|
||||||
# fixes https://github.com/pkgconf/pkgconf/issues/317
|
|
||||||
"${FILESDIR}"/${PN}-3.27.4-0001-FindPkgConfig-ignore-whitespace-separators-in-versio.patch
|
|
||||||
)
|
)
|
||||||
|
|
||||||
cmake_src_bootstrap() {
|
cmake_src_bootstrap() {
|
||||||
@ -157,6 +152,14 @@ src_prepare() {
|
|||||||
sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
|
sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
|
||||||
-e '/cmGlobalXCodeGenerator.h/d' \
|
-e '/cmGlobalXCodeGenerator.h/d' \
|
||||||
Source/cmake.cxx || die
|
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
|
# Disable isysroot usage with GCC, we've properly instructed
|
||||||
# where things are via GCC configuration and ldwrapper
|
# where things are via GCC configuration and ldwrapper
|
||||||
@ -182,13 +185,9 @@ src_prepare() {
|
|||||||
-e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \
|
-e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \
|
||||||
Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed"
|
Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed"
|
||||||
|
|
||||||
if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then
|
## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must*
|
||||||
CMAKE_BINARY="${S}/Bootstrap.cmk/cmake"
|
## handle them as part of bootstrapping, sadly.
|
||||||
cmake_src_bootstrap
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
# Fix linking on Solaris
|
# Fix linking on Solaris
|
||||||
[[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl
|
[[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl
|
||||||
|
|
||||||
@ -196,6 +195,13 @@ src_configure() {
|
|||||||
# https://gitlab.kitware.com/cmake/cmake/-/issues/20740
|
# https://gitlab.kitware.com/cmake/cmake/-/issues/20740
|
||||||
filter-lto
|
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=(
|
local mycmakeargs=(
|
||||||
-DCMAKE_USE_SYSTEM_LIBRARIES=ON
|
-DCMAKE_USE_SYSTEM_LIBRARIES=ON
|
||||||
-DCMake_ENABLE_DEBUGGER=$(usex dap)
|
-DCMake_ENABLE_DEBUGGER=$(usex dap)
|
||||||
@ -214,11 +220,6 @@ src_configure() {
|
|||||||
cmake_src_configure
|
cmake_src_configure
|
||||||
}
|
}
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
cmake_src_compile
|
|
||||||
use emacs && elisp-compile Auxiliary/cmake-mode.el
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
src_test() {
|
||||||
# Fix OutDir and SelectLibraryConfigurations tests
|
# Fix OutDir and SelectLibraryConfigurations tests
|
||||||
# these are altered thanks to our eclass
|
# these are altered thanks to our eclass
|
||||||
@ -226,6 +227,8 @@ src_test() {
|
|||||||
"${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \
|
"${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \
|
||||||
|| die
|
|| die
|
||||||
|
|
||||||
|
unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS
|
||||||
|
|
||||||
pushd "${BUILD_DIR}" > /dev/null || die
|
pushd "${BUILD_DIR}" > /dev/null || die
|
||||||
|
|
||||||
# Excluded tests:
|
# Excluded tests:
|
||||||
@ -246,7 +249,9 @@ src_test() {
|
|||||||
-E "(BootstrapTest|BundleUtilities|CMakeOnly.AllFindModules|CompileOptions|CTest.UpdateCVS|Fortran|RunCMake.CompilerLauncher|RunCMake.CPack_(DEB|RPM)|TestUpload|RunCMake.CMP0125)" \
|
-E "(BootstrapTest|BundleUtilities|CMakeOnly.AllFindModules|CompileOptions|CTest.UpdateCVS|Fortran|RunCMake.CompilerLauncher|RunCMake.CPack_(DEB|RPM)|TestUpload|RunCMake.CMP0125)" \
|
||||||
)
|
)
|
||||||
|
|
||||||
virtx cmake_src_test
|
local -x QT_QPA_PLATFORM=offscreen
|
||||||
|
|
||||||
|
cmake_src_test
|
||||||
}
|
}
|
||||||
|
|
||||||
src_install() {
|
src_install() {
|
||||||
@ -257,11 +262,6 @@ src_install() {
|
|||||||
doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8]
|
doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8]
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if use emacs; then
|
|
||||||
elisp-install ${PN} Auxiliary/cmake-mode.el Auxiliary/cmake-mode.elc
|
|
||||||
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
insinto /usr/share/vim/vimfiles/syntax
|
insinto /usr/share/vim/vimfiles/syntax
|
||||||
doins Auxiliary/vim/syntax/cmake.vim
|
doins Auxiliary/vim/syntax/cmake.vim
|
||||||
|
|
||||||
@ -275,8 +275,6 @@ src_install() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pkg_postinst() {
|
pkg_postinst() {
|
||||||
use emacs && elisp-site-regen
|
|
||||||
|
|
||||||
if use gui; then
|
if use gui; then
|
||||||
xdg_icon_cache_update
|
xdg_icon_cache_update
|
||||||
xdg_desktop_database_update
|
xdg_desktop_database_update
|
||||||
@ -285,8 +283,6 @@ pkg_postinst() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pkg_postrm() {
|
pkg_postrm() {
|
||||||
use emacs && elisp-site-regen
|
|
||||||
|
|
||||||
if use gui; then
|
if use gui; then
|
||||||
xdg_icon_cache_update
|
xdg_icon_cache_update
|
||||||
xdg_desktop_database_update
|
xdg_desktop_database_update
|
68
sdk_container/src/third_party/portage-stable/dev-cpp/abseil-cpp/abseil-cpp-20230125.3-r5.ebuild
vendored
Normal file
68
sdk_container/src/third_party/portage-stable/dev-cpp/abseil-cpp/abseil-cpp-20230125.3-r5.ebuild
vendored
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# Copyright 2020-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{10..12} )
|
||||||
|
|
||||||
|
inherit cmake-multilib python-any-r1
|
||||||
|
|
||||||
|
DESCRIPTION="Abseil Common Libraries (C++), LTS Branch"
|
||||||
|
HOMEPAGE="https://abseil.io/"
|
||||||
|
SRC_URI="https://github.com/abseil/abseil-cpp/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
|
||||||
|
LICENSE="Apache-2.0"
|
||||||
|
SLOT="0/${PV%%.*}.0"
|
||||||
|
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
|
||||||
|
IUSE="test"
|
||||||
|
|
||||||
|
RDEPEND=">=dev-cpp/gtest-1.13.0[${MULTILIB_USEDEP}]"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
${PYTHON_DEPS}
|
||||||
|
test? (
|
||||||
|
sys-libs/timezone-data
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${PN}-20230125.2-musl-1.2.4.patch #906218
|
||||||
|
"${FILESDIR}"/${PN}-random-tests.patch #935417
|
||||||
|
"${FILESDIR}/${PN}-20230802.0-conditional-use-of-lzcnt.patch" #934337
|
||||||
|
"${FILESDIR}/${PN}-include-cstdint.patch" #937307
|
||||||
|
)
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
cmake_src_prepare
|
||||||
|
|
||||||
|
# un-hardcode abseil compiler flags
|
||||||
|
sed -i \
|
||||||
|
-e '/"-maes",/d' \
|
||||||
|
-e '/"-msse4.1",/d' \
|
||||||
|
-e '/"-mfpu=neon"/d' \
|
||||||
|
-e '/"-march=armv8-a+crypto"/d' \
|
||||||
|
absl/copts/copts.py || die
|
||||||
|
|
||||||
|
# now generate cmake files
|
||||||
|
python_fix_shebang absl/copts/generate_copts.py
|
||||||
|
absl/copts/generate_copts.py || die
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_configure() {
|
||||||
|
local mycmakeargs=(
|
||||||
|
# We use -std=c++14 here so that abseil-cpp's string_view is used
|
||||||
|
# See the discussion in https://github.com/gentoo/gentoo/pull/32281.
|
||||||
|
-DCMAKE_CXX_STANDARD=14
|
||||||
|
-DABSL_ENABLE_INSTALL=TRUE
|
||||||
|
-DABSL_USE_EXTERNAL_GOOGLETEST=ON
|
||||||
|
-DABSL_PROPAGATE_CXX_STD=TRUE
|
||||||
|
# TEST_HELPERS needed for protobuf (bug #915902)
|
||||||
|
-DABSL_BUILD_TEST_HELPERS=ON
|
||||||
|
-DABSL_BUILD_TESTING=$(usex test ON OFF)
|
||||||
|
$(usex test -DBUILD_TESTING=ON '') # intentional usex, it used both variables for tests.
|
||||||
|
)
|
||||||
|
|
||||||
|
cmake_src_configure
|
||||||
|
}
|
68
sdk_container/src/third_party/portage-stable/dev-cpp/abseil-cpp/abseil-cpp-20230802.0-r4.ebuild
vendored
Normal file
68
sdk_container/src/third_party/portage-stable/dev-cpp/abseil-cpp/abseil-cpp-20230802.0-r4.ebuild
vendored
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# Copyright 2020-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{10..12} )
|
||||||
|
|
||||||
|
inherit cmake-multilib python-any-r1
|
||||||
|
|
||||||
|
DESCRIPTION="Abseil Common Libraries (C++), LTS Branch"
|
||||||
|
HOMEPAGE="https://abseil.io/"
|
||||||
|
SRC_URI="https://github.com/abseil/abseil-cpp/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
|
||||||
|
LICENSE="Apache-2.0"
|
||||||
|
SLOT="0/${PV%%.*}"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~sparc ~x86"
|
||||||
|
IUSE="test"
|
||||||
|
|
||||||
|
RDEPEND=">=dev-cpp/gtest-1.13.0[${MULTILIB_USEDEP}]"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
${PYTHON_DEPS}
|
||||||
|
test? (
|
||||||
|
sys-libs/timezone-data
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}/${PN}-20230802.0-sdata-tests.patch"
|
||||||
|
"${FILESDIR}/${PN}-random-tests.patch" #935417
|
||||||
|
"${FILESDIR}/${PN}-20230802.0-conditional-use-of-lzcnt.patch" #934337
|
||||||
|
"${FILESDIR}/${PN}-include-cstdint.patch"
|
||||||
|
)
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
cmake_src_prepare
|
||||||
|
|
||||||
|
# un-hardcode abseil compiler flags
|
||||||
|
sed -i \
|
||||||
|
-e '/"-maes",/d' \
|
||||||
|
-e '/"-msse4.1",/d' \
|
||||||
|
-e '/"-mfpu=neon"/d' \
|
||||||
|
-e '/"-march=armv8-a+crypto"/d' \
|
||||||
|
absl/copts/copts.py || die
|
||||||
|
|
||||||
|
# now generate cmake files
|
||||||
|
python_fix_shebang absl/copts/generate_copts.py
|
||||||
|
absl/copts/generate_copts.py || die
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_configure() {
|
||||||
|
local mycmakeargs=(
|
||||||
|
# We use -std=c++14 here so that abseil-cpp's string_view is used
|
||||||
|
# See the discussion in https://github.com/gentoo/gentoo/pull/32281.
|
||||||
|
-DCMAKE_CXX_STANDARD=14
|
||||||
|
-DABSL_ENABLE_INSTALL=TRUE
|
||||||
|
-DABSL_USE_EXTERNAL_GOOGLETEST=ON
|
||||||
|
-DABSL_PROPAGATE_CXX_STD=TRUE
|
||||||
|
# TEST_HELPERS needed for protobuf (bug #915902)
|
||||||
|
-DABSL_BUILD_TEST_HELPERS=ON
|
||||||
|
-DABSL_BUILD_TESTING=$(usex test ON OFF)
|
||||||
|
$(usex test -DBUILD_TESTING=ON '') # intentional usex, it used both variables for tests.
|
||||||
|
)
|
||||||
|
|
||||||
|
cmake_src_configure
|
||||||
|
}
|
68
sdk_container/src/third_party/portage-stable/dev-cpp/abseil-cpp/abseil-cpp-20240116.2-r4.ebuild
vendored
Normal file
68
sdk_container/src/third_party/portage-stable/dev-cpp/abseil-cpp/abseil-cpp-20240116.2-r4.ebuild
vendored
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# Copyright 2020-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{10..12} )
|
||||||
|
|
||||||
|
inherit cmake-multilib python-any-r1
|
||||||
|
|
||||||
|
DESCRIPTION="Abseil Common Libraries (C++), LTS Branch"
|
||||||
|
HOMEPAGE="https://abseil.io/"
|
||||||
|
SRC_URI="https://github.com/abseil/abseil-cpp/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
|
||||||
|
LICENSE="Apache-2.0"
|
||||||
|
SLOT="0/${PV%%.*}"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||||
|
IUSE="test"
|
||||||
|
|
||||||
|
RDEPEND=">=dev-cpp/gtest-1.13.0[${MULTILIB_USEDEP}]"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
${PYTHON_DEPS}
|
||||||
|
test? (
|
||||||
|
sys-libs/timezone-data
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}/${PN}-20230802.0-sdata-tests.patch"
|
||||||
|
"${FILESDIR}/${PN}-random-tests.patch" #935417
|
||||||
|
"${FILESDIR}/${PN}-20230802.0-conditional-use-of-lzcnt.patch" #934337
|
||||||
|
"${FILESDIR}/${PN}-include-cstdint.patch" #937307
|
||||||
|
)
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
cmake_src_prepare
|
||||||
|
|
||||||
|
# un-hardcode abseil compiler flags
|
||||||
|
sed -i \
|
||||||
|
-e '/"-maes",/d' \
|
||||||
|
-e '/"-msse4.1",/d' \
|
||||||
|
-e '/"-mfpu=neon"/d' \
|
||||||
|
-e '/"-march=armv8-a+crypto"/d' \
|
||||||
|
absl/copts/copts.py || die
|
||||||
|
|
||||||
|
# now generate cmake files
|
||||||
|
python_fix_shebang absl/copts/generate_copts.py
|
||||||
|
absl/copts/generate_copts.py || die
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_configure() {
|
||||||
|
local mycmakeargs=(
|
||||||
|
# We use -std=c++14 here so that abseil-cpp's string_view is used
|
||||||
|
# See the discussion in https://github.com/gentoo/gentoo/pull/32281.
|
||||||
|
-DCMAKE_CXX_STANDARD=14
|
||||||
|
-DABSL_ENABLE_INSTALL=TRUE
|
||||||
|
-DABSL_USE_EXTERNAL_GOOGLETEST=ON
|
||||||
|
-DABSL_PROPAGATE_CXX_STD=TRUE
|
||||||
|
# TEST_HELPERS needed for protobuf (bug #915902)
|
||||||
|
-DABSL_BUILD_TEST_HELPERS=ON
|
||||||
|
-DABSL_BUILD_TESTING=$(usex test ON OFF)
|
||||||
|
$(usex test -DBUILD_TESTING=ON '') # intentional usex, it used both variables for tests.
|
||||||
|
)
|
||||||
|
|
||||||
|
cmake_src_configure
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
https://github.com/abseil/abseil-cpp/commit/809e5de7b92950849289236a5a09e9cb4f32c7b9
|
||||||
|
|
||||||
|
From: Christopher Fore <csfore@posteo.net>
|
||||||
|
Date: Mon, 5 Aug 2024 10:48:19 -0400
|
||||||
|
Subject: [PATCH] container/internal: Explicitly include <cstdint>
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
GCC 15 will no longer include <cstdint> by default, resulting in build
|
||||||
|
failures in projects that do not explicitly include it.
|
||||||
|
|
||||||
|
Error:
|
||||||
|
absl/container/internal/container_memory.h:66:27: error: ‘uintptr_t’ does not name a type
|
||||||
|
66 | assert(reinterpret_cast<uintptr_t>(p) % Alignment == 0 &&
|
||||||
|
| ^~~~~~~~~
|
||||||
|
absl/container/internal/container_memory.h:31:1: note: ‘uintptr_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
|
||||||
|
30 | #include "absl/utility/utility.h"
|
||||||
|
+++ |+#include <cstdint>
|
||||||
|
31 |
|
||||||
|
|
||||||
|
See-also: https://gcc.gnu.org/pipermail/gcc-cvs/2024-August/407124.html
|
||||||
|
Signed-off-by: Christopher Fore <csfore@posteo.net>
|
||||||
|
--- a/absl/container/internal/container_memory.h
|
||||||
|
+++ b/absl/container/internal/container_memory.h
|
||||||
|
@@ -17,6 +17,7 @@
|
||||||
|
|
||||||
|
#include <cassert>
|
||||||
|
#include <cstddef>
|
||||||
|
+#include <cstdint>
|
||||||
|
#include <cstring>
|
||||||
|
#include <memory>
|
||||||
|
#include <new>
|
@ -2,8 +2,8 @@
|
|||||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
<pkgmetadata>
|
<pkgmetadata>
|
||||||
<maintainer type="person">
|
<maintainer type="person">
|
||||||
<email>matthew@gentoo.org</email>
|
<email>arthurzam@gentoo.org</email>
|
||||||
<name>Matthew Smith</name>
|
<name>Arthur Zamarin</name>
|
||||||
</maintainer>
|
</maintainer>
|
||||||
<longdescription>
|
<longdescription>
|
||||||
The Netwide Assembler, NASM, is an 80x86 assembler designed for portability
|
The Netwide Assembler, NASM, is an 80x86 assembler designed for portability
|
||||||
|
@ -12,8 +12,8 @@ S="${WORKDIR}"/${P/_}
|
|||||||
|
|
||||||
LICENSE="BSD-2"
|
LICENSE="BSD-2"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~amd64 ~arm64 ~ia64 ~loong ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
|
KEYWORDS="amd64 arm64 ~ia64 ~loong ppc64 ~riscv x86 ~amd64-linux ~x86-linux"
|
||||||
IUSE="doc lto"
|
IUSE="doc"
|
||||||
|
|
||||||
QA_CONFIG_IMPL_DECL_SKIP=(
|
QA_CONFIG_IMPL_DECL_SKIP=(
|
||||||
# Windows.
|
# Windows.
|
||||||
@ -75,10 +75,9 @@ src_prepare() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
src_configure() {
|
src_configure() {
|
||||||
local myconfargs=(
|
# --enable-lto just appends -flto to *FLAGS
|
||||||
$(use_enable lto)
|
# so let users just use lto through normal make.conf *FLAGS
|
||||||
)
|
econf
|
||||||
econf "${myconfargs[@]}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
src_compile() {
|
src_compile() {
|
||||||
|
@ -8,6 +8,8 @@ DIST Python-3.12.3.tar.xz 20625068 BLAKE2B fc4f57ae50183db4c8cb37d94c37a7e58da5d
|
|||||||
DIST Python-3.12.3.tar.xz.asc 963 BLAKE2B f9668dde210793f8da0e0bb026b8ec3e0b4bc3abc58e72732f8faf356b19ca88a59b9d89b4b10f77b3602d9a967f0f2f44a0f091d698bc28ba9bad8049e5e006 SHA512 c291ec5b5e4f8deba867cc517624dd9a174745f04061ef737e58f3d52b9b30318264aec350e339fe88ccb493809ca1a90a378e86d86b8ec4a4f578b1a5843624
|
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 20659356 BLAKE2B 4255171ef8ee1777bab829be7bbaf28a9d5073985b3b1309a41694dda5f6b4ad599df4534a1ce83ec65b357d42416cc18722ca94b4227a45ebd90e2c1df90945 SHA512 750132ee6369196096130a924f4ddb78b9a55804133e5d136a70b9280928822974d1aa559d844486df02e89155fb0d8117871e1ac532abc18174309ca4b08369
|
||||||
DIST Python-3.12.4.tar.xz.asc 963 BLAKE2B d4f62dca1de5f4e4b2581fc49ca55b1d87abe7c4ceb2c9087efe4b92d9e9b3bdd25949bbf82fd771b4b60bc3690be982c2f25b810d87592665f0728fbe08be9d SHA512 1102b17f395e0ec5de5368d04a4dceb8cc98dd408b68b53998071cf129eb9a6c259316a416128f1dfa37a739f86e599507502a98430348da2272442ce1b7059e
|
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.13.0b1.tar.xz 21054240 BLAKE2B fba108b2971fe188a05340753a48379c9a829ce680f13dc50d95d889ef5ee833b82be157d1b011ba841c149d633e8eb64b07098bf03a2adcf711b3f688465050 SHA512 81cc1d8691bfcc8f8bb232ea15c18039d0df036f5cbc1667fec3b6c34cdf198bed97418ec775c037778c250b7bc4f35bd5fb938dd478cc17fc48c74b8a2b2d19
|
DIST Python-3.13.0b1.tar.xz 21054240 BLAKE2B fba108b2971fe188a05340753a48379c9a829ce680f13dc50d95d889ef5ee833b82be157d1b011ba841c149d633e8eb64b07098bf03a2adcf711b3f688465050 SHA512 81cc1d8691bfcc8f8bb232ea15c18039d0df036f5cbc1667fec3b6c34cdf198bed97418ec775c037778c250b7bc4f35bd5fb938dd478cc17fc48c74b8a2b2d19
|
||||||
DIST Python-3.13.0b1.tar.xz.asc 963 BLAKE2B 1b038d2b73fdbe11a1ada18ceab4a174ae52aab68ae9c3a9952ee60a16ce3e08e54c13e0c47264442415f70bd39a06c2b0f97c3cef31330f51102dad6d4a837b SHA512 c10832b5016ad9a9588b7efd29a35272c1c07b444df116c397fed82d66f30150687d68a6853637094be2fe1d8ed0928a9cd151617c91d9eb9938ba1385bd7143
|
DIST Python-3.13.0b1.tar.xz.asc 963 BLAKE2B 1b038d2b73fdbe11a1ada18ceab4a174ae52aab68ae9c3a9952ee60a16ce3e08e54c13e0c47264442415f70bd39a06c2b0f97c3cef31330f51102dad6d4a837b SHA512 c10832b5016ad9a9588b7efd29a35272c1c07b444df116c397fed82d66f30150687d68a6853637094be2fe1d8ed0928a9cd151617c91d9eb9938ba1385bd7143
|
||||||
DIST Python-3.13.0b2.tar.xz 21089692 BLAKE2B 3cc77e9b7abcd8c9797a40b2a1f5ff6562a1841dd44c4785a57941b1eb4d70d20a3dc5bcf8cbfe3d1b2c7f846d7da7fd89758e113542820945da996d2c6a68af SHA512 3a37c8137958a6ebaf06f5a03b28c7817f359f346d820a9989932b1a716478647e8d1b94c1a08197bcabf68cd90443a08ab9454af9151eace52401d8b60d0c35
|
DIST Python-3.13.0b2.tar.xz 21089692 BLAKE2B 3cc77e9b7abcd8c9797a40b2a1f5ff6562a1841dd44c4785a57941b1eb4d70d20a3dc5bcf8cbfe3d1b2c7f846d7da7fd89758e113542820945da996d2c6a68af SHA512 3a37c8137958a6ebaf06f5a03b28c7817f359f346d820a9989932b1a716478647e8d1b94c1a08197bcabf68cd90443a08ab9454af9151eace52401d8b60d0c35
|
||||||
@ -16,20 +18,30 @@ DIST Python-3.13.0b3.tar.xz 20841504 BLAKE2B 92760124355483da082ac9fdc7a72eb6739
|
|||||||
DIST Python-3.13.0b3.tar.xz.asc 963 BLAKE2B 784df664961ea36cb570d685c0cf6e8fe7159161c38103f217303bc0264c73a9904021cca297a180c7dd712d4e7fcee161d741919bee49eff962a25d14568d41 SHA512 3d8bdc8c26441a12518940d264e93a8897042e297ccf9cd2ddec725716a58486475be9462582ee489bd189a4d028b43504f979298174c1b008d521b7ab5fbf1b
|
DIST Python-3.13.0b3.tar.xz.asc 963 BLAKE2B 784df664961ea36cb570d685c0cf6e8fe7159161c38103f217303bc0264c73a9904021cca297a180c7dd712d4e7fcee161d741919bee49eff962a25d14568d41 SHA512 3d8bdc8c26441a12518940d264e93a8897042e297ccf9cd2ddec725716a58486475be9462582ee489bd189a4d028b43504f979298174c1b008d521b7ab5fbf1b
|
||||||
DIST Python-3.13.0b4.tar.xz 20876136 BLAKE2B b3a7b42b03320df618af18844a8b0f1c4b88b9bcd581cacd2d40d3ecec7d0f11aac36e54913f64541a2287d7a5052aa69f8e8d0379d6bbb4fba78600bf484f75 SHA512 e556f7a4e54b688d0424b0bd84f9849b52f4f7e04c68d4d5b877d86b4f9ded92c9efaa2b7ab33f345235f35e8d544833542f7a4cb100d0ff15b7d98b8367b935
|
DIST Python-3.13.0b4.tar.xz 20876136 BLAKE2B b3a7b42b03320df618af18844a8b0f1c4b88b9bcd581cacd2d40d3ecec7d0f11aac36e54913f64541a2287d7a5052aa69f8e8d0379d6bbb4fba78600bf484f75 SHA512 e556f7a4e54b688d0424b0bd84f9849b52f4f7e04c68d4d5b877d86b4f9ded92c9efaa2b7ab33f345235f35e8d544833542f7a4cb100d0ff15b7d98b8367b935
|
||||||
DIST Python-3.13.0b4.tar.xz.asc 963 BLAKE2B 0d9c7baa1eedce684e73359682f63c2aa6e7abc7cc77ee7fcf6d9658e93221c02412aa55f22d16337b72a680f10c70520742292da1138228f9257f81bc57d328 SHA512 243637efff94965aa4d997fe26c91a7c1aa7dcfdf7f78d35d6f4fc408b654dfa9d075d1c73bc5a90d145f6e5029ee395a86faf7e027c24a55fabfea6ca20fbd4
|
DIST Python-3.13.0b4.tar.xz.asc 963 BLAKE2B 0d9c7baa1eedce684e73359682f63c2aa6e7abc7cc77ee7fcf6d9658e93221c02412aa55f22d16337b72a680f10c70520742292da1138228f9257f81bc57d328 SHA512 243637efff94965aa4d997fe26c91a7c1aa7dcfdf7f78d35d6f4fc408b654dfa9d075d1c73bc5a90d145f6e5029ee395a86faf7e027c24a55fabfea6ca20fbd4
|
||||||
|
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.8.19.tar.xz 18975156 BLAKE2B 57b241aeb8f99a8c30590dcb9402abbcf573f00d06e807846bc9135c0a8a4af896c4d772d34abc3c292339953f4974a203bff61a78641d91b1826770226cd7e9 SHA512 1d2a57fa15ccdaec8cdca508ba2ffb01e1ae053a3446ac709bc334480f8e913070899f01ed680cce6dc7ddfddcb27ef402fe206562249fa4c4e87be21ece0625
|
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.8.19.tar.xz.asc 833 BLAKE2B a11705011e9ea2bd6cbabc2b4c896ba94675341188eb483b881c2cb25c932e9ff25f9f589f930605b0442ff93a1f54532608b111c8ace715a406ce10809af671 SHA512 efdaae5462badcf4b98625ce8ab0e34756acea9539416e6ec428725b04539f8c38c1978de346510d669e93bbeef3ae20b1534e4c6582f89c7dc56a04c7cae140
|
||||||
DIST Python-3.9.19.tar.xz 19682840 BLAKE2B a12256663f0ff3b799c2193c5877aa89a434340dfa01e655f790abea70af0709b54577e1c2590add241308a8581fd6f45a22aed450bd5db2bf9fa35c4a9d619b SHA512 5577830c734e63a70bbc62cd33d263b9aa87c4381b49cb694c3559067c4c682a55506b65ec5514a8e0a5abf6294dc728e909385d449ae1c388e62f83cea9bb89
|
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.19.tar.xz.asc 833 BLAKE2B b48b58b8ccf4d6ba8d0d7120f04bebf59f843ffecf5fde4c3989fd9c26e3d3d1ccf4e5688f7024ae94775c8731e9ffa56799fca8596289edf93e4aac5480aaad SHA512 f7f4946243dfc56de2c84f50276b088d347f17054f50e3331d1e312e2a8e2c6ed1b4b4a807202b51137fd2af3fc9218cafa42ed348a954ace896d9a432e2defd
|
||||||
DIST python-gentoo-patches-2.7.18_p16.tar.xz 35448 BLAKE2B 0139c0944f62f9cdd236f6a8557e0ed19704c7d72869af1cb7d8bd3e646a746cd4a0201e1b44232a5e78ef49f254db20b0d0271bf744fbfd4fe0f1e99b8f3e6c SHA512 810be590d0e06fab4b2165e6852ca49662f09dcd7e20b47a29f613ad7653252c8dfac3f0eb228d77c8a914efa7c08788b2fbd552a4b47504f5fd0ec17450c48f
|
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_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.11.9.tar.xz 8456 BLAKE2B 4e62837f17c1d056460df417b056a79ad78dbcdd3454761c7cda68ffe6faf8f4d4f04d5539e0ba94332fe19a751f7d5ff2c35ff969a6aa09a2c72d2ce5efbff1 SHA512 a288aa8d1d15e906e0f1762602a2122f9dc91bbd6b72123ac5d00ce55b3af324a4e8280b600fc0fb630e489e57ee1547d7595a4ede7a70e4b26d6686a8414997
|
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.12.3.tar.xz 6028 BLAKE2B 7953a48a1d95a6a33bd88060fbcac463a5469371aa0c882c3945f1fea64a63c4d45fca8451f51f4eaeea00a04267ad2e54e4cc720c95e8bb5a3477e00263b80a SHA512 4779bab2b24e59e4a77987ce3e9611d99e87c9c4d016309758c26a65fe2e11ef04d48d5af628c02b1552dc1f31b768f87448f8e19e716b4fe372941e6dacac3f
|
DIST python-gentoo-patches-3.12.3.tar.xz 6028 BLAKE2B 7953a48a1d95a6a33bd88060fbcac463a5469371aa0c882c3945f1fea64a63c4d45fca8451f51f4eaeea00a04267ad2e54e4cc720c95e8bb5a3477e00263b80a SHA512 4779bab2b24e59e4a77987ce3e9611d99e87c9c4d016309758c26a65fe2e11ef04d48d5af628c02b1552dc1f31b768f87448f8e19e716b4fe372941e6dacac3f
|
||||||
DIST python-gentoo-patches-3.12.4_p1.tar.xz 7088 BLAKE2B 450b95539aaf7c8c052ca1bbcab3b1a8f1c33e8007b6c66cc290c33d88cac8bad346e13cf96508834599a59ccb6548e6dd8cbfb1e24d84539f502101b04299d0 SHA512 df874cb1d8d0f5df60fca82daa2a59cbcfeba6be72b021101a753306a09bb19ee268681b3fdb39659be923d868c727bf7aabbe8173cfd48a329c66f4727353c7
|
DIST python-gentoo-patches-3.12.4_p1.tar.xz 7088 BLAKE2B 450b95539aaf7c8c052ca1bbcab3b1a8f1c33e8007b6c66cc290c33d88cac8bad346e13cf96508834599a59ccb6548e6dd8cbfb1e24d84539f502101b04299d0 SHA512 df874cb1d8d0f5df60fca82daa2a59cbcfeba6be72b021101a753306a09bb19ee268681b3fdb39659be923d868c727bf7aabbe8173cfd48a329c66f4727353c7
|
||||||
DIST python-gentoo-patches-3.12.4_p2.tar.xz 11124 BLAKE2B 8e49af60b1e514de9b77c562a8df5ae7d6caf0045e631fcf85a8f91335cf18f1df2ac611ea73d26e5b70c2537beb423a9303dcce41c2c2e2b049ee9f1e537b53 SHA512 df1d49e60d23f5f09144c57034c86f81f8d185f65c3a93bbb2b386977638bd525b45fe1dff8c7202d60ca3a5fdf96b94a492b076072713565e7449b679fde7b5
|
DIST python-gentoo-patches-3.12.4_p2.tar.xz 11124 BLAKE2B 8e49af60b1e514de9b77c562a8df5ae7d6caf0045e631fcf85a8f91335cf18f1df2ac611ea73d26e5b70c2537beb423a9303dcce41c2c2e2b049ee9f1e537b53 SHA512 df1d49e60d23f5f09144c57034c86f81f8d185f65c3a93bbb2b386977638bd525b45fe1dff8c7202d60ca3a5fdf96b94a492b076072713565e7449b679fde7b5
|
||||||
|
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.13.0b1_p3.tar.xz 11056 BLAKE2B ef932bac59d2316ee8fe638a3d34ce247ff587915546038627674cd4c03179998a58336f8ebae45f1fcc94c8059d61ff6f22693f25ace1462bce275f50bfb48f SHA512 956e3da7376d60d7a593af50fff9842016a3b193180e93ab8298756c9eedfb2aaf8c1287bb75111e6340b5bac20a12dcb00ef51ecf0e12ef9ae5c98202fb071b
|
DIST python-gentoo-patches-3.13.0b1_p3.tar.xz 11056 BLAKE2B ef932bac59d2316ee8fe638a3d34ce247ff587915546038627674cd4c03179998a58336f8ebae45f1fcc94c8059d61ff6f22693f25ace1462bce275f50bfb48f SHA512 956e3da7376d60d7a593af50fff9842016a3b193180e93ab8298756c9eedfb2aaf8c1287bb75111e6340b5bac20a12dcb00ef51ecf0e12ef9ae5c98202fb071b
|
||||||
DIST python-gentoo-patches-3.13.0b2_p9.tar.xz 11288 BLAKE2B e46bac845ce54e32446316b8a5e055905f023e88ad7fb9cfed101f0fccf6c0fef2fb9fd5b7dc4b15ec1e6c075ceaa9f07777c3cfede0f88412871beac0a54e47 SHA512 4148342d649acd98cce1f3d3c7bdbf4adad069ba555624882ddb69f00ee0e64641014086b5e60d97eac809ccb1e3e782a112eb58d7bb83bcfa3222811cbb8682
|
DIST python-gentoo-patches-3.13.0b2_p9.tar.xz 11288 BLAKE2B e46bac845ce54e32446316b8a5e055905f023e88ad7fb9cfed101f0fccf6c0fef2fb9fd5b7dc4b15ec1e6c075ceaa9f07777c3cfede0f88412871beac0a54e47 SHA512 4148342d649acd98cce1f3d3c7bdbf4adad069ba555624882ddb69f00ee0e64641014086b5e60d97eac809ccb1e3e782a112eb58d7bb83bcfa3222811cbb8682
|
||||||
DIST python-gentoo-patches-3.13.0b3.tar.xz 5704 BLAKE2B 665f60d0a440c63ca6bbc1615333e01e0b9d3c5cd8c871157866dd70146a9afb71aecdb6f72f75de2fd8c163d011c8df538c8b278ad6a91079f3300bd05fead3 SHA512 959826aaf467235c8a144a2b94137113b273f79febd30fee0556b718132bb89b5ba97bc01a3718771cade099777f131b322682f336dfaabe18cd5838a75318fa
|
DIST python-gentoo-patches-3.13.0b3.tar.xz 5704 BLAKE2B 665f60d0a440c63ca6bbc1615333e01e0b9d3c5cd8c871157866dd70146a9afb71aecdb6f72f75de2fd8c163d011c8df538c8b278ad6a91079f3300bd05fead3 SHA512 959826aaf467235c8a144a2b94137113b273f79febd30fee0556b718132bb89b5ba97bc01a3718771cade099777f131b322682f336dfaabe18cd5838a75318fa
|
||||||
DIST python-gentoo-patches-3.13.0b3_p1.tar.xz 8716 BLAKE2B 25b2d9f059c6f31a354b19833a3dfaab446a43ca00bbaa415e38c3ede6c4a738046469ca4ef6e184a5d7df33a8a1c5209271a1eb0728c3791e6630953bcd798f SHA512 57bbe0470e3356cef3b1880cedd18d4e84d6f64d1f398ce3e3e729744ac5f7a4dc4144333e2355f9ecf41c58382ab5708e7dbf7d480dbf797caa460862aee3bd
|
DIST python-gentoo-patches-3.13.0b3_p1.tar.xz 8716 BLAKE2B 25b2d9f059c6f31a354b19833a3dfaab446a43ca00bbaa415e38c3ede6c4a738046469ca4ef6e184a5d7df33a8a1c5209271a1eb0728c3791e6630953bcd798f SHA512 57bbe0470e3356cef3b1880cedd18d4e84d6f64d1f398ce3e3e729744ac5f7a4dc4144333e2355f9ecf41c58382ab5708e7dbf7d480dbf797caa460862aee3bd
|
||||||
DIST python-gentoo-patches-3.13.0b4.tar.xz 5700 BLAKE2B cc3e6d899dc51dc4a0f4b57fb5a891a61e5ba5a943edd31b55b6540f1d52a61f2a80f8ac1cdbc36ce155a83ab3942b8991fad0e83baab4c0a1080e62b30e16df SHA512 bf236ed221512a032a057f8b89b29a28e84cfaba56f58c2eaacee846db636089b2ae4534dc55ff3389cfbf1a4485e1cc2049a5cdb98ec1cd31eef71de60596c1
|
DIST python-gentoo-patches-3.13.0b4.tar.xz 5700 BLAKE2B cc3e6d899dc51dc4a0f4b57fb5a891a61e5ba5a943edd31b55b6540f1d52a61f2a80f8ac1cdbc36ce155a83ab3942b8991fad0e83baab4c0a1080e62b30e16df SHA512 bf236ed221512a032a057f8b89b29a28e84cfaba56f58c2eaacee846db636089b2ae4534dc55ff3389cfbf1a4485e1cc2049a5cdb98ec1cd31eef71de60596c1
|
||||||
|
DIST python-gentoo-patches-3.13.0rc1.tar.xz 5696 BLAKE2B c34beb06ea6052b297e1bc5ec790f712a6d8acfa23b16b44dd8a7fc2788a4ba266da21cc2f463e79f10749e2f4752ae34c7074a0e588e84614020e6acd86403b SHA512 a6a2e8dc2a35a76b265788658cd8ecf2f5b7f466701cf4599df300eb8914435198f26789dafa309a7dc4c23e0da2aeb905c8175611f6fa50f622e70016212202
|
||||||
|
DIST python-gentoo-patches-3.13.0rc1_p1.tar.xz 9840 BLAKE2B f8f52be8fde89793e5692a4693c030980a32651626cc6184f962d7d9dc9209ce6593f127ff279b71fda4fafeec148af80971bdb6dcaf129f63cc52238a34630f SHA512 e0d3aaf528ffeed8335f98dd4bfd43da8274757b0ae9f6a473134e9b57eafe12b870e41e1aafa52c2bd96de1b7ab9b9f225ddf8e87eec51f088b5484b3c92852
|
||||||
DIST python-gentoo-patches-3.8.19_p2.tar.xz 35524 BLAKE2B a6b81e6ae907b60eea676cb65a9c693e62453dc44616baaadb294c5782a195c20eff6c2869b38ea110fe06e9e511468f4ab0c3d1811b16e0ab2833f9dc09b25b SHA512 9944c330b6062c2ac6e13fcfbc1c8835dfd078f6744cdfbc03ba787ae97c08bdae559cefadafe9dfe9be9c31f8c15ee895599b266d870f73c06a2f4b15c78dc3
|
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.9.19_p3.tar.xz 28240 BLAKE2B 35c70b1f9a590abe9a74795f478ab788cd72c96e9d84f2756685e61324dc4203148e71b00a236bb4af8fb8315e3582ecec255b39749a653e0511d4a9f9fef725 SHA512 6b8f4dab4aa7d4d646ee4091b5cf76bbc8896d4299a3623660a2c5fec06c0cf56c0a50ac87604885cd155141bc85e0e80acdbedb7b34a813901aad021b9b8ab2
|
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
|
||||||
|
542
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.14_p2.ebuild
vendored
Normal file
542
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.14_p2.ebuild
vendored
Normal file
@ -0,0 +1,542 @@
|
|||||||
|
# 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 ~ia64 ~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
|
||||||
|
}
|
573
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.9_p1.ebuild
vendored
Normal file
573
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.9_p1.ebuild
vendored
Normal file
@ -0,0 +1,573 @@
|
|||||||
|
# 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 ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||||
|
IUSE="
|
||||||
|
bluetooth build debug +ensurepip examples gdbm libedit
|
||||||
|
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||||
|
"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||||
|
# If you need to apply a patch which requires python for bootstrapping, please
|
||||||
|
# run the bootstrap code on your dev box and include the results in the
|
||||||
|
# patchset. See bug 447752.
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
app-arch/bzip2:=
|
||||||
|
app-arch/xz-utils:=
|
||||||
|
app-crypt/libb2
|
||||||
|
>=dev-libs/expat-2.1:=
|
||||||
|
dev-libs/libffi:=
|
||||||
|
dev-libs/mpdecimal:=
|
||||||
|
dev-python/gentoo-common
|
||||||
|
>=sys-libs/zlib-1.1.3:=
|
||||||
|
virtual/libcrypt:=
|
||||||
|
virtual/libintl
|
||||||
|
ensurepip? ( dev-python/ensurepip-wheels )
|
||||||
|
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||||
|
kernel_linux? ( sys-apps/util-linux:= )
|
||||||
|
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||||
|
readline? (
|
||||||
|
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||||
|
libedit? ( dev-libs/libedit:= )
|
||||||
|
)
|
||||||
|
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||||
|
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||||
|
tk? (
|
||||||
|
>=dev-lang/tcl-8.0:=
|
||||||
|
>=dev-lang/tk-8.0:=
|
||||||
|
dev-tcltk/blt:=
|
||||||
|
dev-tcltk/tix
|
||||||
|
)
|
||||||
|
"
|
||||||
|
# bluetooth requires headers from bluez
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
bluetooth? ( net-wireless/bluez )
|
||||||
|
test? ( app-arch/xz-utils )
|
||||||
|
valgrind? ( dev-debug/valgrind )
|
||||||
|
"
|
||||||
|
# autoconf-archive needed to eautoreconf
|
||||||
|
BDEPEND="
|
||||||
|
dev-build/autoconf-archive
|
||||||
|
app-alternatives/awk
|
||||||
|
virtual/pkgconfig
|
||||||
|
verify-sig? ( sec-keys/openpgp-keys-python )
|
||||||
|
"
|
||||||
|
RDEPEND+="
|
||||||
|
!build? ( app-misc/mime-types )
|
||||||
|
"
|
||||||
|
if [[ ${PV} != *_alpha* ]]; then
|
||||||
|
RDEPEND+="
|
||||||
|
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
|
||||||
|
|
||||||
|
# large file tests involve a 2.5G file being copied (duplicated)
|
||||||
|
CHECKREQS_DISK_BUILD=5500M
|
||||||
|
|
||||||
|
QA_PKGCONFIG_VERSION=${PYVER}
|
||||||
|
# false positives -- functions specific to *BSD
|
||||||
|
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||||
|
|
||||||
|
pkg_pretend() {
|
||||||
|
use test && check-reqs_pkg_pretend
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
use test && check-reqs_pkg_setup
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if use verify-sig; then
|
||||||
|
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||||
|
fi
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# Ensure that internal copies of expat and libffi are not used.
|
||||||
|
rm -r Modules/expat || die
|
||||||
|
rm -r Modules/_ctypes/libffi* || die
|
||||||
|
|
||||||
|
local PATCHES=(
|
||||||
|
"${WORKDIR}/${PATCHSET}"
|
||||||
|
)
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
# https://bugs.gentoo.org/850151
|
||||||
|
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
|
||||||
|
|
||||||
|
# force the correct number of jobs
|
||||||
|
# https://bugs.gentoo.org/737660
|
||||||
|
local jobs=$(makeopts_jobs)
|
||||||
|
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||||
|
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||||
|
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
build_cbuild_python() {
|
||||||
|
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||||
|
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
#
|
||||||
|
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||||
|
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||||
|
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||||
|
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||||
|
|
||||||
|
# We need to build our own Python on CBUILD first, and feed it in.
|
||||||
|
# bug #847910
|
||||||
|
local myeconfargs_cbuild=(
|
||||||
|
"${myeconfargs[@]}"
|
||||||
|
|
||||||
|
--prefix="${BROOT}"/usr
|
||||||
|
--libdir="${cbuild_libdir:2}"
|
||||||
|
|
||||||
|
# Avoid needing to load the right libpython.so.
|
||||||
|
--disable-shared
|
||||||
|
|
||||||
|
# As minimal as possible for the mini CBUILD Python
|
||||||
|
# we build just for cross to satisfy --with-build-python.
|
||||||
|
--without-lto
|
||||||
|
--without-readline
|
||||||
|
--disable-optimizations
|
||||||
|
)
|
||||||
|
|
||||||
|
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||||
|
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||||
|
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
|
||||||
|
# libdir correctly for cross.
|
||||||
|
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \
|
||||||
|
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||||
|
|
||||||
|
# Avoid as many dependencies as possible for the cross build.
|
||||||
|
cat >> Makefile <<-EOF || die
|
||||||
|
MODULE_NIS_STATE=disabled
|
||||||
|
MODULE__DBM_STATE=disabled
|
||||||
|
MODULE__GDBM_STATE=disabled
|
||||||
|
MODULE__DBM_STATE=disabled
|
||||||
|
MODULE__SQLITE3_STATE=disabled
|
||||||
|
MODULE__HASHLIB_STATE=disabled
|
||||||
|
MODULE__SSL_STATE=disabled
|
||||||
|
MODULE__CURSES_STATE=disabled
|
||||||
|
MODULE__CURSES_PANEL_STATE=disabled
|
||||||
|
MODULE_READLINE_STATE=disabled
|
||||||
|
MODULE__TKINTER_STATE=disabled
|
||||||
|
MODULE_PYEXPAT_STATE=disabled
|
||||||
|
MODULE_ZLIB_STATE=disabled
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Unfortunately, we do have to build this immediately, and
|
||||||
|
# not in src_compile, because CHOST configure for Python
|
||||||
|
# will check the existence of the --with-build-python value
|
||||||
|
# immediately.
|
||||||
|
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" emake
|
||||||
|
popd &> /dev/null || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# disable automagic bluetooth headers detection
|
||||||
|
if ! use bluetooth; then
|
||||||
|
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
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-platlibdir=lib
|
||||||
|
--with-pkg-config=yes
|
||||||
|
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||||
|
|
||||||
|
$(use_with debug assertions)
|
||||||
|
$(use_enable pgo optimizations)
|
||||||
|
$(use_with readline readline "$(usex libedit editline readline)")
|
||||||
|
$(use_with valgrind)
|
||||||
|
)
|
||||||
|
|
||||||
|
# disable implicit optimization/debugging flags
|
||||||
|
local -x OPT=
|
||||||
|
|
||||||
|
# https://bugs.gentoo.org/700012
|
||||||
|
if tc-is-lto; then
|
||||||
|
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||||
|
myeconfargs+=(
|
||||||
|
--with-lto
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if tc-is-cross-compiler ; then
|
||||||
|
build_cbuild_python
|
||||||
|
myeconfargs+=(
|
||||||
|
# Point the imminent CHOST build to the Python we just
|
||||||
|
# built for CBUILD.
|
||||||
|
--with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
local -x CFLAGS_NODIST=${CFLAGS}
|
||||||
|
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||||
|
if use ncurses; then
|
||||||
|
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||||
|
fi
|
||||||
|
|
||||||
|
hprefixify setup.py
|
||||||
|
econf "${myeconfargs[@]}"
|
||||||
|
|
||||||
|
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||||
|
eerror "configure has detected that the sem_open function is broken."
|
||||||
|
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||||
|
die "Broken sem_open function (bug 496328)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# force-disable modules we don't want built
|
||||||
|
local disable_modules=( NIS )
|
||||||
|
use gdbm || disable_modules+=( _GDBM _DBM )
|
||||||
|
use sqlite || disable_modules+=( _SQLITE3 )
|
||||||
|
use ssl || disable_modules+=( _HASHLIB _SSL )
|
||||||
|
use ncurses || disable_modules+=( _CURSES _CURSES_PANEL )
|
||||||
|
use readline || disable_modules+=( READLINE )
|
||||||
|
use tk || disable_modules+=( _TKINTER )
|
||||||
|
|
||||||
|
local mod
|
||||||
|
for mod in "${disable_modules[@]}"; do
|
||||||
|
echo "MODULE_${mod}_STATE=disabled"
|
||||||
|
done >> Makefile || die
|
||||||
|
|
||||||
|
# install epython.py as part of stdlib
|
||||||
|
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
# Ensure sed works as expected
|
||||||
|
# https://bugs.gentoo.org/594768
|
||||||
|
local -x LC_ALL=C
|
||||||
|
# Prevent using distutils bundled by setuptools.
|
||||||
|
# https://bugs.gentoo.org/823728
|
||||||
|
export SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||||
|
export PYTHONSTRICTEXTENSIONBUILD=1
|
||||||
|
|
||||||
|
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||||
|
# end up writing bytecode & violating sandbox.
|
||||||
|
# bug #831897
|
||||||
|
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
# this just happens to skip test_support.test_freeze that is broken
|
||||||
|
# without bundled expat
|
||||||
|
# TODO: get a proper skip for it upstream
|
||||||
|
local -x LOGNAME=buildbot
|
||||||
|
|
||||||
|
local test_opts=(
|
||||||
|
-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}
|
||||||
|
|
||||||
|
# -j1 hack for now for bug #843458
|
||||||
|
emake -j1 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 || 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
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
local v
|
||||||
|
for v in ${REPLACING_VERSIONS}; do
|
||||||
|
if ver_test "${v}" -lt 3.11.0_beta4-r2; then
|
||||||
|
ewarn "Python 3.11.0b4 has changed its module ABI. The .pyc files"
|
||||||
|
ewarn "installed previously are no longer valid and will be regenerated"
|
||||||
|
ewarn "(or ignored) on the next import. This may cause sandbox failures"
|
||||||
|
ewarn "when installing some packages and checksum mismatches when removing"
|
||||||
|
ewarn "old versions. To actively prevent this, rebuild all packages"
|
||||||
|
ewarn "installing Python 3.11 modules, e.g. using:"
|
||||||
|
ewarn
|
||||||
|
ewarn " emerge -1v /usr/lib/python3.11/site-packages"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
558
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.4_p3.ebuild
vendored
Normal file
558
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.4_p3.ebuild
vendored
Normal file
@ -0,0 +1,558 @@
|
|||||||
|
# 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 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 ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||||
|
IUSE="
|
||||||
|
bluetooth build debug +ensurepip examples gdbm libedit
|
||||||
|
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||||
|
"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||||
|
# If you need to apply a patch which requires python for bootstrapping, please
|
||||||
|
# run the bootstrap code on your dev box and include the results in the
|
||||||
|
# patchset. See bug 447752.
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
app-arch/bzip2:=
|
||||||
|
app-arch/xz-utils:=
|
||||||
|
app-crypt/libb2
|
||||||
|
>=dev-libs/expat-2.1:=
|
||||||
|
dev-libs/libffi:=
|
||||||
|
dev-libs/mpdecimal:=
|
||||||
|
dev-python/gentoo-common
|
||||||
|
>=sys-libs/zlib-1.1.3:=
|
||||||
|
virtual/libcrypt:=
|
||||||
|
virtual/libintl
|
||||||
|
ensurepip? ( dev-python/ensurepip-pip )
|
||||||
|
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||||
|
kernel_linux? ( sys-apps/util-linux:= )
|
||||||
|
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||||
|
readline? (
|
||||||
|
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||||
|
libedit? ( dev-libs/libedit:= )
|
||||||
|
)
|
||||||
|
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||||
|
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||||
|
tk? (
|
||||||
|
>=dev-lang/tcl-8.0:=
|
||||||
|
>=dev-lang/tk-8.0:=
|
||||||
|
dev-tcltk/blt:=
|
||||||
|
dev-tcltk/tix
|
||||||
|
)
|
||||||
|
"
|
||||||
|
# bluetooth requires headers from bluez
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
bluetooth? ( net-wireless/bluez )
|
||||||
|
test? (
|
||||||
|
app-arch/xz-utils
|
||||||
|
dev-python/ensurepip-pip
|
||||||
|
dev-python/ensurepip-setuptools
|
||||||
|
dev-python/ensurepip-wheel
|
||||||
|
)
|
||||||
|
valgrind? ( dev-debug/valgrind )
|
||||||
|
"
|
||||||
|
# autoconf-archive needed to eautoreconf
|
||||||
|
BDEPEND="
|
||||||
|
dev-build/autoconf-archive
|
||||||
|
app-alternatives/awk
|
||||||
|
virtual/pkgconfig
|
||||||
|
verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
|
||||||
|
"
|
||||||
|
RDEPEND+="
|
||||||
|
!build? ( app-misc/mime-types )
|
||||||
|
"
|
||||||
|
if [[ ${PV} != *_alpha* ]]; then
|
||||||
|
RDEPEND+="
|
||||||
|
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
|
||||||
|
|
||||||
|
# large file tests involve a 2.5G file being copied (duplicated)
|
||||||
|
CHECKREQS_DISK_BUILD=5500M
|
||||||
|
|
||||||
|
QA_PKGCONFIG_VERSION=${PYVER}
|
||||||
|
# false positives -- functions specific to *BSD
|
||||||
|
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||||
|
|
||||||
|
pkg_pretend() {
|
||||||
|
use test && check-reqs_pkg_pretend
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
use test && check-reqs_pkg_setup
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if use verify-sig; then
|
||||||
|
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||||
|
fi
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# Ensure that internal copies of expat and libffi are not used.
|
||||||
|
# TODO: Makefile has annoying deps on expat headers
|
||||||
|
#rm -r Modules/expat || die
|
||||||
|
|
||||||
|
local PATCHES=(
|
||||||
|
"${WORKDIR}/${PATCHSET}"
|
||||||
|
)
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
# force the correct number of jobs
|
||||||
|
# https://bugs.gentoo.org/737660
|
||||||
|
sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die
|
||||||
|
|
||||||
|
# breaks tests when using --with-wheel-pkg-dir
|
||||||
|
rm -r Lib/test/wheeldata || die
|
||||||
|
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
build_cbuild_python() {
|
||||||
|
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||||
|
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
#
|
||||||
|
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||||
|
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||||
|
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||||
|
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||||
|
|
||||||
|
# We need to build our own Python on CBUILD first, and feed it in.
|
||||||
|
# bug #847910
|
||||||
|
local myeconfargs_cbuild=(
|
||||||
|
"${myeconfargs[@]}"
|
||||||
|
|
||||||
|
--prefix="${BROOT}"/usr
|
||||||
|
--libdir="${cbuild_libdir:2}"
|
||||||
|
|
||||||
|
# Avoid needing to load the right libpython.so.
|
||||||
|
--disable-shared
|
||||||
|
|
||||||
|
# As minimal as possible for the mini CBUILD Python
|
||||||
|
# we build just for cross to satisfy --with-build-python.
|
||||||
|
--without-lto
|
||||||
|
--without-readline
|
||||||
|
--disable-optimizations
|
||||||
|
)
|
||||||
|
|
||||||
|
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||||
|
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||||
|
|
||||||
|
# Avoid as many dependencies as possible for the cross build.
|
||||||
|
mkdir Modules || die
|
||||||
|
cat > Modules/Setup.local <<-EOF || die
|
||||||
|
*disabled*
|
||||||
|
nis
|
||||||
|
_dbm _gdbm
|
||||||
|
_sqlite3
|
||||||
|
_hashlib _ssl
|
||||||
|
_curses _curses_panel
|
||||||
|
readline
|
||||||
|
_tkinter
|
||||||
|
pyexpat
|
||||||
|
zlib
|
||||||
|
# We disabled these for CBUILD because Python's setup.py can't handle locating
|
||||||
|
# libdir correctly for cross. This should be rechecked for the pure Makefile approach,
|
||||||
|
# and uncommented if needed.
|
||||||
|
#_ctypes _crypt
|
||||||
|
EOF
|
||||||
|
|
||||||
|
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||||
|
|
||||||
|
# Unfortunately, we do have to build this immediately, and
|
||||||
|
# not in src_compile, because CHOST configure for Python
|
||||||
|
# will check the existence of the --with-build-python value
|
||||||
|
# immediately.
|
||||||
|
emake
|
||||||
|
popd &> /dev/null || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# disable automagic bluetooth headers detection
|
||||||
|
if ! use bluetooth; then
|
||||||
|
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
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-libmpdec
|
||||||
|
--with-platlibdir=lib
|
||||||
|
--with-pkg-config=yes
|
||||||
|
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||||
|
|
||||||
|
$(use_with debug assertions)
|
||||||
|
$(use_enable pgo optimizations)
|
||||||
|
$(use_with readline readline "$(usex libedit editline readline)")
|
||||||
|
$(use_with valgrind)
|
||||||
|
)
|
||||||
|
|
||||||
|
# https://bugs.gentoo.org/700012
|
||||||
|
if tc-is-lto; then
|
||||||
|
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||||
|
myeconfargs+=(
|
||||||
|
--with-lto
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Force-disable modules we don't want built.
|
||||||
|
# See Modules/Setup for docs on how this works. Setup.local contains our local deviations.
|
||||||
|
cat > Modules/Setup.local <<-EOF || die
|
||||||
|
*disabled*
|
||||||
|
nis
|
||||||
|
$(usev !gdbm '_gdbm _dbm')
|
||||||
|
$(usev !sqlite '_sqlite3')
|
||||||
|
$(usev !ssl '_hashlib _ssl')
|
||||||
|
$(usev !ncurses '_curses _curses_panel')
|
||||||
|
$(usev !readline 'readline')
|
||||||
|
$(usev !tk '_tkinter')
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# disable implicit optimization/debugging flags
|
||||||
|
local -x OPT=
|
||||||
|
|
||||||
|
if tc-is-cross-compiler ; then
|
||||||
|
build_cbuild_python
|
||||||
|
myeconfargs+=(
|
||||||
|
# Point the imminent CHOST build to the Python we just
|
||||||
|
# built for CBUILD.
|
||||||
|
--with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
local -x CFLAGS_NODIST=${CFLAGS}
|
||||||
|
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||||
|
if use ncurses; then
|
||||||
|
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||||
|
fi
|
||||||
|
|
||||||
|
econf "${myeconfargs[@]}"
|
||||||
|
|
||||||
|
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||||
|
eerror "configure has detected that the sem_open function is broken."
|
||||||
|
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||||
|
die "Broken sem_open function (bug 496328)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# install epython.py as part of stdlib
|
||||||
|
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
# Ensure sed works as expected
|
||||||
|
# https://bugs.gentoo.org/594768
|
||||||
|
local -x LC_ALL=C
|
||||||
|
export PYTHONSTRICTEXTENSIONBUILD=1
|
||||||
|
|
||||||
|
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||||
|
# end up writing bytecode & violating sandbox.
|
||||||
|
# bug #831897
|
||||||
|
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
# this just happens to skip test_support.test_freeze that is broken
|
||||||
|
# without bundled expat
|
||||||
|
# TODO: get a proper skip for it upstream
|
||||||
|
local -x LOGNAME=buildbot
|
||||||
|
|
||||||
|
local test_opts=(
|
||||||
|
-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}
|
||||||
|
|
||||||
|
# the Makefile rules are broken
|
||||||
|
# https://github.com/python/cpython/issues/100221
|
||||||
|
mkdir -p "${libdir}"/lib-dynload || die
|
||||||
|
|
||||||
|
# -j1 hack for now for bug #843458
|
||||||
|
emake -j1 DESTDIR="${D}" 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,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
|
||||||
|
}
|
558
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.5.ebuild
vendored
Normal file
558
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.5.ebuild
vendored
Normal file
@ -0,0 +1,558 @@
|
|||||||
|
# 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 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 ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||||
|
IUSE="
|
||||||
|
bluetooth build debug +ensurepip examples gdbm libedit
|
||||||
|
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||||
|
"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||||
|
# If you need to apply a patch which requires python for bootstrapping, please
|
||||||
|
# run the bootstrap code on your dev box and include the results in the
|
||||||
|
# patchset. See bug 447752.
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
app-arch/bzip2:=
|
||||||
|
app-arch/xz-utils:=
|
||||||
|
app-crypt/libb2
|
||||||
|
>=dev-libs/expat-2.1:=
|
||||||
|
dev-libs/libffi:=
|
||||||
|
dev-libs/mpdecimal:=
|
||||||
|
dev-python/gentoo-common
|
||||||
|
>=sys-libs/zlib-1.1.3:=
|
||||||
|
virtual/libcrypt:=
|
||||||
|
virtual/libintl
|
||||||
|
ensurepip? ( dev-python/ensurepip-pip )
|
||||||
|
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||||
|
kernel_linux? ( sys-apps/util-linux:= )
|
||||||
|
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||||
|
readline? (
|
||||||
|
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||||
|
libedit? ( dev-libs/libedit:= )
|
||||||
|
)
|
||||||
|
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||||
|
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||||
|
tk? (
|
||||||
|
>=dev-lang/tcl-8.0:=
|
||||||
|
>=dev-lang/tk-8.0:=
|
||||||
|
dev-tcltk/blt:=
|
||||||
|
dev-tcltk/tix
|
||||||
|
)
|
||||||
|
"
|
||||||
|
# bluetooth requires headers from bluez
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
bluetooth? ( net-wireless/bluez )
|
||||||
|
test? (
|
||||||
|
app-arch/xz-utils
|
||||||
|
dev-python/ensurepip-pip
|
||||||
|
dev-python/ensurepip-setuptools
|
||||||
|
dev-python/ensurepip-wheel
|
||||||
|
)
|
||||||
|
valgrind? ( dev-debug/valgrind )
|
||||||
|
"
|
||||||
|
# autoconf-archive needed to eautoreconf
|
||||||
|
BDEPEND="
|
||||||
|
dev-build/autoconf-archive
|
||||||
|
app-alternatives/awk
|
||||||
|
virtual/pkgconfig
|
||||||
|
verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
|
||||||
|
"
|
||||||
|
RDEPEND+="
|
||||||
|
!build? ( app-misc/mime-types )
|
||||||
|
"
|
||||||
|
if [[ ${PV} != *_alpha* ]]; then
|
||||||
|
RDEPEND+="
|
||||||
|
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
|
||||||
|
|
||||||
|
# large file tests involve a 2.5G file being copied (duplicated)
|
||||||
|
CHECKREQS_DISK_BUILD=5500M
|
||||||
|
|
||||||
|
QA_PKGCONFIG_VERSION=${PYVER}
|
||||||
|
# false positives -- functions specific to *BSD
|
||||||
|
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||||
|
|
||||||
|
pkg_pretend() {
|
||||||
|
use test && check-reqs_pkg_pretend
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
use test && check-reqs_pkg_setup
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if use verify-sig; then
|
||||||
|
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||||
|
fi
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# Ensure that internal copies of expat and libffi are not used.
|
||||||
|
# TODO: Makefile has annoying deps on expat headers
|
||||||
|
#rm -r Modules/expat || die
|
||||||
|
|
||||||
|
local PATCHES=(
|
||||||
|
"${WORKDIR}/${PATCHSET}"
|
||||||
|
)
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
# force the correct number of jobs
|
||||||
|
# https://bugs.gentoo.org/737660
|
||||||
|
sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die
|
||||||
|
|
||||||
|
# breaks tests when using --with-wheel-pkg-dir
|
||||||
|
rm -r Lib/test/wheeldata || die
|
||||||
|
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
build_cbuild_python() {
|
||||||
|
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||||
|
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
#
|
||||||
|
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||||
|
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||||
|
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||||
|
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||||
|
|
||||||
|
# We need to build our own Python on CBUILD first, and feed it in.
|
||||||
|
# bug #847910
|
||||||
|
local myeconfargs_cbuild=(
|
||||||
|
"${myeconfargs[@]}"
|
||||||
|
|
||||||
|
--prefix="${BROOT}"/usr
|
||||||
|
--libdir="${cbuild_libdir:2}"
|
||||||
|
|
||||||
|
# Avoid needing to load the right libpython.so.
|
||||||
|
--disable-shared
|
||||||
|
|
||||||
|
# As minimal as possible for the mini CBUILD Python
|
||||||
|
# we build just for cross to satisfy --with-build-python.
|
||||||
|
--without-lto
|
||||||
|
--without-readline
|
||||||
|
--disable-optimizations
|
||||||
|
)
|
||||||
|
|
||||||
|
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||||
|
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||||
|
|
||||||
|
# Avoid as many dependencies as possible for the cross build.
|
||||||
|
mkdir Modules || die
|
||||||
|
cat > Modules/Setup.local <<-EOF || die
|
||||||
|
*disabled*
|
||||||
|
nis
|
||||||
|
_dbm _gdbm
|
||||||
|
_sqlite3
|
||||||
|
_hashlib _ssl
|
||||||
|
_curses _curses_panel
|
||||||
|
readline
|
||||||
|
_tkinter
|
||||||
|
pyexpat
|
||||||
|
zlib
|
||||||
|
# We disabled these for CBUILD because Python's setup.py can't handle locating
|
||||||
|
# libdir correctly for cross. This should be rechecked for the pure Makefile approach,
|
||||||
|
# and uncommented if needed.
|
||||||
|
#_ctypes _crypt
|
||||||
|
EOF
|
||||||
|
|
||||||
|
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||||
|
|
||||||
|
# Unfortunately, we do have to build this immediately, and
|
||||||
|
# not in src_compile, because CHOST configure for Python
|
||||||
|
# will check the existence of the --with-build-python value
|
||||||
|
# immediately.
|
||||||
|
emake
|
||||||
|
popd &> /dev/null || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# disable automagic bluetooth headers detection
|
||||||
|
if ! use bluetooth; then
|
||||||
|
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
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-libmpdec
|
||||||
|
--with-platlibdir=lib
|
||||||
|
--with-pkg-config=yes
|
||||||
|
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||||
|
|
||||||
|
$(use_with debug assertions)
|
||||||
|
$(use_enable pgo optimizations)
|
||||||
|
$(use_with readline readline "$(usex libedit editline readline)")
|
||||||
|
$(use_with valgrind)
|
||||||
|
)
|
||||||
|
|
||||||
|
# https://bugs.gentoo.org/700012
|
||||||
|
if tc-is-lto; then
|
||||||
|
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||||
|
myeconfargs+=(
|
||||||
|
--with-lto
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Force-disable modules we don't want built.
|
||||||
|
# See Modules/Setup for docs on how this works. Setup.local contains our local deviations.
|
||||||
|
cat > Modules/Setup.local <<-EOF || die
|
||||||
|
*disabled*
|
||||||
|
nis
|
||||||
|
$(usev !gdbm '_gdbm _dbm')
|
||||||
|
$(usev !sqlite '_sqlite3')
|
||||||
|
$(usev !ssl '_hashlib _ssl')
|
||||||
|
$(usev !ncurses '_curses _curses_panel')
|
||||||
|
$(usev !readline 'readline')
|
||||||
|
$(usev !tk '_tkinter')
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# disable implicit optimization/debugging flags
|
||||||
|
local -x OPT=
|
||||||
|
|
||||||
|
if tc-is-cross-compiler ; then
|
||||||
|
build_cbuild_python
|
||||||
|
myeconfargs+=(
|
||||||
|
# Point the imminent CHOST build to the Python we just
|
||||||
|
# built for CBUILD.
|
||||||
|
--with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
local -x CFLAGS_NODIST=${CFLAGS}
|
||||||
|
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||||
|
if use ncurses; then
|
||||||
|
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||||
|
fi
|
||||||
|
|
||||||
|
econf "${myeconfargs[@]}"
|
||||||
|
|
||||||
|
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||||
|
eerror "configure has detected that the sem_open function is broken."
|
||||||
|
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||||
|
die "Broken sem_open function (bug 496328)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# install epython.py as part of stdlib
|
||||||
|
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
# Ensure sed works as expected
|
||||||
|
# https://bugs.gentoo.org/594768
|
||||||
|
local -x LC_ALL=C
|
||||||
|
export PYTHONSTRICTEXTENSIONBUILD=1
|
||||||
|
|
||||||
|
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||||
|
# end up writing bytecode & violating sandbox.
|
||||||
|
# bug #831897
|
||||||
|
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
# this just happens to skip test_support.test_freeze that is broken
|
||||||
|
# without bundled expat
|
||||||
|
# TODO: get a proper skip for it upstream
|
||||||
|
local -x LOGNAME=buildbot
|
||||||
|
|
||||||
|
local test_opts=(
|
||||||
|
-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}
|
||||||
|
|
||||||
|
# the Makefile rules are broken
|
||||||
|
# https://github.com/python/cpython/issues/100221
|
||||||
|
mkdir -p "${libdir}"/lib-dynload || die
|
||||||
|
|
||||||
|
# -j1 hack for now for bug #843458
|
||||||
|
emake -j1 DESTDIR="${D}" 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,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
|
||||||
|
}
|
658
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.0_rc1.ebuild
vendored
Normal file
658
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.0_rc1.ebuild
vendored
Normal file
@ -0,0 +1,658 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI="8"
|
||||||
|
|
||||||
|
LLVM_COMPAT=( 18 )
|
||||||
|
LLVM_OPTIONAL=1
|
||||||
|
WANT_LIBTOOL="none"
|
||||||
|
|
||||||
|
inherit autotools check-reqs flag-o-matic llvm-r1 multiprocessing
|
||||||
|
inherit pax-utils python-utils-r1 toolchain-funcs verify-sig
|
||||||
|
|
||||||
|
MY_PV=${PV/_}
|
||||||
|
MY_P="Python-${MY_PV%_p*}"
|
||||||
|
PYVER=$(ver_cut 1-2)
|
||||||
|
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||||
|
|
||||||
|
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://www.python.org/
|
||||||
|
https://github.com/python/cpython/
|
||||||
|
"
|
||||||
|
SRC_URI="
|
||||||
|
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
||||||
|
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||||
|
verify-sig? (
|
||||||
|
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
|
||||||
|
)
|
||||||
|
"
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
LICENSE="PSF-2"
|
||||||
|
SLOT="${PYVER}"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||||
|
IUSE="
|
||||||
|
bluetooth build +debug +ensurepip examples gdbm +gil jit
|
||||||
|
libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||||
|
"
|
||||||
|
REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||||
|
# If you need to apply a patch which requires python for bootstrapping, please
|
||||||
|
# run the bootstrap code on your dev box and include the results in the
|
||||||
|
# patchset. See bug 447752.
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
app-arch/bzip2:=
|
||||||
|
app-arch/xz-utils:=
|
||||||
|
app-crypt/libb2
|
||||||
|
>=dev-libs/expat-2.1:=
|
||||||
|
dev-libs/libffi:=
|
||||||
|
dev-libs/mpdecimal:=
|
||||||
|
dev-python/gentoo-common
|
||||||
|
>=sys-libs/zlib-1.1.3:=
|
||||||
|
virtual/libcrypt:=
|
||||||
|
virtual/libintl
|
||||||
|
ensurepip? ( dev-python/ensurepip-pip )
|
||||||
|
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||||
|
kernel_linux? ( sys-apps/util-linux:= )
|
||||||
|
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||||
|
readline? (
|
||||||
|
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||||
|
libedit? ( dev-libs/libedit:= )
|
||||||
|
)
|
||||||
|
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||||
|
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||||
|
tk? (
|
||||||
|
>=dev-lang/tcl-8.0:=
|
||||||
|
>=dev-lang/tk-8.0:=
|
||||||
|
dev-tcltk/blt:=
|
||||||
|
dev-tcltk/tix
|
||||||
|
)
|
||||||
|
"
|
||||||
|
# bluetooth requires headers from bluez
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
bluetooth? ( net-wireless/bluez )
|
||||||
|
test? (
|
||||||
|
app-arch/xz-utils
|
||||||
|
dev-python/ensurepip-pip
|
||||||
|
dev-python/ensurepip-setuptools
|
||||||
|
dev-python/ensurepip-wheel
|
||||||
|
)
|
||||||
|
valgrind? ( dev-debug/valgrind )
|
||||||
|
"
|
||||||
|
# autoconf-archive needed to eautoreconf
|
||||||
|
BDEPEND="
|
||||||
|
dev-build/autoconf-archive
|
||||||
|
app-alternatives/awk
|
||||||
|
virtual/pkgconfig
|
||||||
|
jit? (
|
||||||
|
$(llvm_gen_dep '
|
||||||
|
sys-devel/clang:${LLVM_SLOT}
|
||||||
|
sys-devel/llvm:${LLVM_SLOT}
|
||||||
|
')
|
||||||
|
)
|
||||||
|
verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
|
||||||
|
"
|
||||||
|
RDEPEND+="
|
||||||
|
!build? ( app-misc/mime-types )
|
||||||
|
"
|
||||||
|
if [[ ${PV} != *_alpha* ]]; then
|
||||||
|
RDEPEND+="
|
||||||
|
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
if ! use gil || use jit; then
|
||||||
|
ewarn "USE=-gil and USE=jit flags are considered experimental upstream. Using"
|
||||||
|
ewarn "them could lead to unexpected breakage, including race conditions"
|
||||||
|
ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless"
|
||||||
|
ewarn "you can reproduce the problem with dev-lang/python[gil,-jit]. Instead,"
|
||||||
|
ewarn "please consider reporting freethreading / JIT problems upstream."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
use jit && llvm-r1_pkg_setup
|
||||||
|
use test && check-reqs_pkg_setup
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if use verify-sig; then
|
||||||
|
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||||
|
fi
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# Ensure that internal copies of expat and libffi are not used.
|
||||||
|
# TODO: Makefile has annoying deps on expat headers
|
||||||
|
#rm -r Modules/expat || die
|
||||||
|
|
||||||
|
local PATCHES=(
|
||||||
|
"${WORKDIR}/${PATCHSET}"
|
||||||
|
)
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
# force the correct number of jobs
|
||||||
|
# https://bugs.gentoo.org/737660
|
||||||
|
sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die
|
||||||
|
|
||||||
|
# breaks tests when using --with-wheel-pkg-dir
|
||||||
|
rm -r Lib/test/wheeldata || die
|
||||||
|
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
build_cbuild_python() {
|
||||||
|
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||||
|
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
#
|
||||||
|
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||||
|
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||||
|
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||||
|
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||||
|
|
||||||
|
# We need to build our own Python on CBUILD first, and feed it in.
|
||||||
|
# bug #847910
|
||||||
|
local myeconfargs_cbuild=(
|
||||||
|
"${myeconfargs[@]}"
|
||||||
|
|
||||||
|
--prefix="${BROOT}"/usr
|
||||||
|
--libdir="${cbuild_libdir:2}"
|
||||||
|
|
||||||
|
# Avoid needing to load the right libpython.so.
|
||||||
|
--disable-shared
|
||||||
|
|
||||||
|
# As minimal as possible for the mini CBUILD Python
|
||||||
|
# we build just for cross to satisfy --with-build-python.
|
||||||
|
--without-lto
|
||||||
|
--without-readline
|
||||||
|
--disable-optimizations
|
||||||
|
)
|
||||||
|
|
||||||
|
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||||
|
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||||
|
|
||||||
|
# Avoid as many dependencies as possible for the cross build.
|
||||||
|
mkdir Modules || die
|
||||||
|
cat > Modules/Setup.local <<-EOF || die
|
||||||
|
*disabled*
|
||||||
|
nis
|
||||||
|
_dbm _gdbm
|
||||||
|
_sqlite3
|
||||||
|
_hashlib _ssl
|
||||||
|
_curses _curses_panel
|
||||||
|
readline
|
||||||
|
_tkinter
|
||||||
|
pyexpat
|
||||||
|
zlib
|
||||||
|
# We disabled these for CBUILD because Python's setup.py can't handle locating
|
||||||
|
# libdir correctly for cross. This should be rechecked for the pure Makefile approach,
|
||||||
|
# and uncommented if needed.
|
||||||
|
#_ctypes _crypt
|
||||||
|
EOF
|
||||||
|
|
||||||
|
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||||
|
|
||||||
|
# Unfortunately, we do have to build this immediately, and
|
||||||
|
# not in src_compile, because CHOST configure for Python
|
||||||
|
# will check the existence of the --with-build-python value
|
||||||
|
# immediately.
|
||||||
|
emake
|
||||||
|
popd &> /dev/null || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# disable automagic bluetooth headers detection
|
||||||
|
if ! use bluetooth; then
|
||||||
|
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
append-flags -fwrapv
|
||||||
|
filter-flags -malign-double
|
||||||
|
|
||||||
|
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||||
|
# PKG_CONFIG needed for cross.
|
||||||
|
tc-export CXX PKG_CONFIG
|
||||||
|
|
||||||
|
local dbmliborder=
|
||||||
|
if use gdbm; then
|
||||||
|
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set baseline test skip flags.
|
||||||
|
COMMON_TEST_SKIPS=(
|
||||||
|
# failures
|
||||||
|
-x test_concurrent_futures
|
||||||
|
-x test_gdb
|
||||||
|
# flaky: https://github.com/python/cpython/issues/121973
|
||||||
|
-x test_pyrepl
|
||||||
|
)
|
||||||
|
|
||||||
|
# Arch-specific skips. See #931888 for a collection of these.
|
||||||
|
case ${CHOST} in
|
||||||
|
alpha*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_builtin
|
||||||
|
-x test_capi
|
||||||
|
-x test_cmath
|
||||||
|
-x test_float
|
||||||
|
# timeout
|
||||||
|
-x test_free_threading
|
||||||
|
-x test_math
|
||||||
|
-x test_numeric_tower
|
||||||
|
-x test_random
|
||||||
|
-x test_statistics
|
||||||
|
# bug 653850
|
||||||
|
-x test_resource
|
||||||
|
-x test_strtod
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
ia64*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_ctypes
|
||||||
|
-x test_external_inspection
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
mips*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_ctypes
|
||||||
|
-x test_external_inspection
|
||||||
|
-x test_statistics
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
powerpc64-*) # big endian
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_descr
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
riscv*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_urllib2
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
sparc*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
# bug 788022
|
||||||
|
-x test_multiprocessing_fork
|
||||||
|
-x test_multiprocessing_forkserver
|
||||||
|
|
||||||
|
-x test_ctypes
|
||||||
|
-x test_descr
|
||||||
|
# bug 931908
|
||||||
|
-x test_exceptions
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# musl-specific skips
|
||||||
|
use elibc_musl && COMMON_TEST_SKIPS+=(
|
||||||
|
# various musl locale deficiencies
|
||||||
|
-x test__locale
|
||||||
|
-x test_c_locale_coercion
|
||||||
|
-x test_locale
|
||||||
|
-x test_re
|
||||||
|
|
||||||
|
# known issues with find_library on musl
|
||||||
|
# https://bugs.python.org/issue21622
|
||||||
|
-x test_ctypes
|
||||||
|
|
||||||
|
# fpathconf, ttyname errno values
|
||||||
|
-x test_os
|
||||||
|
)
|
||||||
|
|
||||||
|
if use pgo; then
|
||||||
|
local profile_task_flags=(
|
||||||
|
-m test
|
||||||
|
"-j$(makeopts_jobs)"
|
||||||
|
--pgo-extended
|
||||||
|
--verbose3
|
||||||
|
-u-network
|
||||||
|
|
||||||
|
# We use a timeout because of how often we've had hang issues
|
||||||
|
# here. It also matches the default upstream PROFILE_TASK.
|
||||||
|
--timeout 1200
|
||||||
|
|
||||||
|
"${COMMON_TEST_SKIPS[@]}"
|
||||||
|
|
||||||
|
-x test_dtrace
|
||||||
|
|
||||||
|
# All of these seem to occasionally hang for PGO inconsistently
|
||||||
|
# They'll even hang here but be fine in src_test sometimes.
|
||||||
|
# bug #828535 (and related: bug #788022)
|
||||||
|
-x test_asyncio
|
||||||
|
-x test_httpservers
|
||||||
|
-x test_logging
|
||||||
|
-x test_multiprocessing_fork
|
||||||
|
-x test_socket
|
||||||
|
-x test_xmlrpc
|
||||||
|
|
||||||
|
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
|
||||||
|
# bug #900429
|
||||||
|
-x test_tools
|
||||||
|
|
||||||
|
# Fails in profiling run, passes in src_test().
|
||||||
|
-x test_capi
|
||||||
|
)
|
||||||
|
|
||||||
|
# Arch-specific skips. See #931888 for a collection of these.
|
||||||
|
case ${CHOST} in
|
||||||
|
alpha*)
|
||||||
|
profile_task_flags+=(
|
||||||
|
-x test_os
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
hppa*)
|
||||||
|
profile_task_flags+=(
|
||||||
|
-x test_descr
|
||||||
|
# bug 931908
|
||||||
|
-x test_exceptions
|
||||||
|
-x test_os
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
ia64*)
|
||||||
|
profile_task_flags+=(
|
||||||
|
-x test_signal
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
powerpc64-*) # big endian
|
||||||
|
profile_task_flags+=(
|
||||||
|
# bug 931908
|
||||||
|
-x test_exceptions
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
riscv*)
|
||||||
|
profile_task_flags+=(
|
||||||
|
-x test_statistics
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if has_version "app-arch/rpm" ; then
|
||||||
|
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||||
|
profile_task_flags+=(
|
||||||
|
-x test_distutils
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
local -x PROFILE_TASK="${profile_task_flags[*]}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local myeconfargs=(
|
||||||
|
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||||
|
# Python on glibc upgrade, remove it proactively to give
|
||||||
|
# a chance for users rebuilding python before glibc
|
||||||
|
ac_cv_header_stropts_h=no
|
||||||
|
|
||||||
|
--enable-shared
|
||||||
|
--without-static-libpython
|
||||||
|
--enable-ipv6
|
||||||
|
--infodir='${prefix}/share/info'
|
||||||
|
--mandir='${prefix}/share/man'
|
||||||
|
--with-computed-gotos
|
||||||
|
--with-dbmliborder="${dbmliborder}"
|
||||||
|
--with-libc=
|
||||||
|
--enable-loadable-sqlite-extensions
|
||||||
|
--without-ensurepip
|
||||||
|
--without-lto
|
||||||
|
--with-system-expat
|
||||||
|
--with-system-libmpdec
|
||||||
|
--with-platlibdir=lib
|
||||||
|
--with-pkg-config=yes
|
||||||
|
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||||
|
|
||||||
|
$(use_with debug assertions)
|
||||||
|
$(use_enable gil)
|
||||||
|
$(use_enable jit experimental-jit)
|
||||||
|
$(use_enable pgo optimizations)
|
||||||
|
$(use_with readline readline "$(usex libedit editline readline)")
|
||||||
|
$(use_with valgrind)
|
||||||
|
)
|
||||||
|
|
||||||
|
# https://bugs.gentoo.org/700012
|
||||||
|
if tc-is-lto; then
|
||||||
|
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||||
|
myeconfargs+=(
|
||||||
|
--with-lto
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Force-disable modules we don't want built.
|
||||||
|
# See Modules/Setup for docs on how this works. Setup.local contains our local deviations.
|
||||||
|
cat > Modules/Setup.local <<-EOF || die
|
||||||
|
*disabled*
|
||||||
|
nis
|
||||||
|
$(usev !gdbm '_gdbm _dbm')
|
||||||
|
$(usev !sqlite '_sqlite3')
|
||||||
|
$(usev !ssl '_hashlib _ssl')
|
||||||
|
$(usev !ncurses '_curses _curses_panel')
|
||||||
|
$(usev !readline 'readline')
|
||||||
|
$(usev !tk '_tkinter')
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# disable implicit optimization/debugging flags
|
||||||
|
local -x OPT=
|
||||||
|
|
||||||
|
if tc-is-cross-compiler ; then
|
||||||
|
build_cbuild_python
|
||||||
|
myeconfargs+=(
|
||||||
|
# Point the imminent CHOST build to the Python we just
|
||||||
|
# built for CBUILD.
|
||||||
|
--with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
local -x CFLAGS_NODIST=${CFLAGS}
|
||||||
|
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||||
|
if use ncurses; then
|
||||||
|
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||||
|
fi
|
||||||
|
|
||||||
|
econf "${myeconfargs[@]}"
|
||||||
|
|
||||||
|
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||||
|
eerror "configure has detected that the sem_open function is broken."
|
||||||
|
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||||
|
die "Broken sem_open function (bug 496328)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# install epython.py as part of stdlib
|
||||||
|
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
# Ensure sed works as expected
|
||||||
|
# https://bugs.gentoo.org/594768
|
||||||
|
local -x LC_ALL=C
|
||||||
|
export PYTHONSTRICTEXTENSIONBUILD=1
|
||||||
|
|
||||||
|
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||||
|
# end up writing bytecode & violating sandbox.
|
||||||
|
# bug #831897
|
||||||
|
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||||
|
|
||||||
|
# Gentoo hack to disable accessing system site-packages
|
||||||
|
export GENTOO_CPYTHON_BUILD=1
|
||||||
|
|
||||||
|
if use pgo ; then
|
||||||
|
# bug 660358
|
||||||
|
local -x COLUMNS=80
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=
|
||||||
|
fi
|
||||||
|
|
||||||
|
# also need to clear the flags explicitly here or they end up
|
||||||
|
# in _sysconfigdata*
|
||||||
|
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Restore saved value from above.
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||||
|
|
||||||
|
# Work around bug 329499. See also bug 413751 and 457194.
|
||||||
|
if has_version dev-libs/libffi[pax-kernel]; then
|
||||||
|
pax-mark E python
|
||||||
|
else
|
||||||
|
pax-mark m python
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
# Tests will not work when cross compiling.
|
||||||
|
if tc-is-cross-compiler; then
|
||||||
|
elog "Disabling tests due to crosscompiling."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# this just happens to skip test_support.test_freeze that is broken
|
||||||
|
# without bundled expat
|
||||||
|
# TODO: get a proper skip for it upstream
|
||||||
|
local -x LOGNAME=buildbot
|
||||||
|
|
||||||
|
local test_opts=(
|
||||||
|
--verbose3
|
||||||
|
-u-network
|
||||||
|
-j "$(makeopts_jobs)"
|
||||||
|
"${COMMON_TEST_SKIPS[@]}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# bug 660358
|
||||||
|
local -x COLUMNS=80
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=
|
||||||
|
|
||||||
|
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
|
||||||
|
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||||
|
local ret=${?}
|
||||||
|
|
||||||
|
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local libdir=${ED}/usr/lib/python${PYVER}
|
||||||
|
|
||||||
|
# -j1 hack for now for bug #843458
|
||||||
|
emake -j1 DESTDIR="${D}" 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,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
|
||||||
|
# pydoc
|
||||||
|
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||||
|
# idle
|
||||||
|
if use tk; then
|
||||||
|
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
local v
|
||||||
|
for v in ${REPLACING_VERSIONS}; do
|
||||||
|
if ver_test "${v}" -lt 3.13.0_beta2; then
|
||||||
|
ewarn "Python 3.13.0b2 has changed its module ABI. The .pyc files"
|
||||||
|
ewarn "installed previously are no longer valid and will be regenerated"
|
||||||
|
ewarn "(or ignored) on the next import. This may cause sandbox failures"
|
||||||
|
ewarn "when installing some packages and checksum mismatches when removing"
|
||||||
|
ewarn "old versions. To actively prevent this, rebuild all packages"
|
||||||
|
ewarn "installing Python 3.13 modules, e.g. using:"
|
||||||
|
ewarn
|
||||||
|
ewarn " emerge -1v /usr/lib/python3.13/site-packages"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
660
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.0_rc1_p1.ebuild
vendored
Normal file
660
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.0_rc1_p1.ebuild
vendored
Normal file
@ -0,0 +1,660 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI="8"
|
||||||
|
|
||||||
|
LLVM_COMPAT=( 18 )
|
||||||
|
LLVM_OPTIONAL=1
|
||||||
|
WANT_LIBTOOL="none"
|
||||||
|
|
||||||
|
inherit autotools check-reqs flag-o-matic llvm-r1 multiprocessing
|
||||||
|
inherit pax-utils python-utils-r1 toolchain-funcs verify-sig
|
||||||
|
|
||||||
|
MY_PV=${PV/_}
|
||||||
|
MY_P="Python-${MY_PV%_p*}"
|
||||||
|
PYVER=$(ver_cut 1-2)
|
||||||
|
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||||
|
|
||||||
|
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://www.python.org/
|
||||||
|
https://github.com/python/cpython/
|
||||||
|
"
|
||||||
|
SRC_URI="
|
||||||
|
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
||||||
|
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||||
|
verify-sig? (
|
||||||
|
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
|
||||||
|
)
|
||||||
|
"
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
LICENSE="PSF-2"
|
||||||
|
SLOT="${PYVER}"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||||
|
IUSE="
|
||||||
|
bluetooth build +debug +ensurepip examples gdbm +gil jit
|
||||||
|
libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||||
|
"
|
||||||
|
REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||||
|
# If you need to apply a patch which requires python for bootstrapping, please
|
||||||
|
# run the bootstrap code on your dev box and include the results in the
|
||||||
|
# patchset. See bug 447752.
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
app-arch/bzip2:=
|
||||||
|
app-arch/xz-utils:=
|
||||||
|
app-crypt/libb2
|
||||||
|
>=dev-libs/expat-2.1:=
|
||||||
|
dev-libs/libffi:=
|
||||||
|
dev-libs/mpdecimal:=
|
||||||
|
dev-python/gentoo-common
|
||||||
|
>=sys-libs/zlib-1.1.3:=
|
||||||
|
virtual/libcrypt:=
|
||||||
|
virtual/libintl
|
||||||
|
ensurepip? ( dev-python/ensurepip-pip )
|
||||||
|
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||||
|
kernel_linux? ( sys-apps/util-linux:= )
|
||||||
|
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||||
|
readline? (
|
||||||
|
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||||
|
libedit? ( dev-libs/libedit:= )
|
||||||
|
)
|
||||||
|
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||||
|
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||||
|
tk? (
|
||||||
|
>=dev-lang/tcl-8.0:=
|
||||||
|
>=dev-lang/tk-8.0:=
|
||||||
|
dev-tcltk/blt:=
|
||||||
|
dev-tcltk/tix
|
||||||
|
)
|
||||||
|
"
|
||||||
|
# bluetooth requires headers from bluez
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
bluetooth? ( net-wireless/bluez )
|
||||||
|
test? (
|
||||||
|
app-arch/xz-utils
|
||||||
|
dev-python/ensurepip-pip
|
||||||
|
dev-python/ensurepip-setuptools
|
||||||
|
dev-python/ensurepip-wheel
|
||||||
|
)
|
||||||
|
valgrind? ( dev-debug/valgrind )
|
||||||
|
"
|
||||||
|
# autoconf-archive needed to eautoreconf
|
||||||
|
BDEPEND="
|
||||||
|
dev-build/autoconf-archive
|
||||||
|
app-alternatives/awk
|
||||||
|
virtual/pkgconfig
|
||||||
|
jit? (
|
||||||
|
$(llvm_gen_dep '
|
||||||
|
sys-devel/clang:${LLVM_SLOT}
|
||||||
|
sys-devel/llvm:${LLVM_SLOT}
|
||||||
|
')
|
||||||
|
)
|
||||||
|
verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
|
||||||
|
"
|
||||||
|
RDEPEND+="
|
||||||
|
!build? ( app-misc/mime-types )
|
||||||
|
"
|
||||||
|
if [[ ${PV} != *_alpha* ]]; then
|
||||||
|
RDEPEND+="
|
||||||
|
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
if ! use gil || use jit; then
|
||||||
|
ewarn "USE=-gil and USE=jit flags are considered experimental upstream. Using"
|
||||||
|
ewarn "them could lead to unexpected breakage, including race conditions"
|
||||||
|
ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless"
|
||||||
|
ewarn "you can reproduce the problem with dev-lang/python[gil,-jit]. Instead,"
|
||||||
|
ewarn "please consider reporting freethreading / JIT problems upstream."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
use jit && llvm-r1_pkg_setup
|
||||||
|
use test && check-reqs_pkg_setup
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if use verify-sig; then
|
||||||
|
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||||
|
fi
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# Ensure that internal copies of expat and libffi are not used.
|
||||||
|
# TODO: Makefile has annoying deps on expat headers
|
||||||
|
#rm -r Modules/expat || die
|
||||||
|
|
||||||
|
local PATCHES=(
|
||||||
|
"${WORKDIR}/${PATCHSET}"
|
||||||
|
)
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
# force the correct number of jobs
|
||||||
|
# https://bugs.gentoo.org/737660
|
||||||
|
sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die
|
||||||
|
|
||||||
|
# breaks tests when using --with-wheel-pkg-dir
|
||||||
|
rm -r Lib/test/wheeldata || die
|
||||||
|
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
build_cbuild_python() {
|
||||||
|
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||||
|
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
#
|
||||||
|
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||||
|
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||||
|
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||||
|
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||||
|
|
||||||
|
# We need to build our own Python on CBUILD first, and feed it in.
|
||||||
|
# bug #847910
|
||||||
|
local myeconfargs_cbuild=(
|
||||||
|
"${myeconfargs[@]}"
|
||||||
|
|
||||||
|
--prefix="${BROOT}"/usr
|
||||||
|
--libdir="${cbuild_libdir:2}"
|
||||||
|
|
||||||
|
# Avoid needing to load the right libpython.so.
|
||||||
|
--disable-shared
|
||||||
|
|
||||||
|
# As minimal as possible for the mini CBUILD Python
|
||||||
|
# we build just for cross to satisfy --with-build-python.
|
||||||
|
--without-lto
|
||||||
|
--without-readline
|
||||||
|
--disable-optimizations
|
||||||
|
)
|
||||||
|
|
||||||
|
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||||
|
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||||
|
|
||||||
|
# Avoid as many dependencies as possible for the cross build.
|
||||||
|
mkdir Modules || die
|
||||||
|
cat > Modules/Setup.local <<-EOF || die
|
||||||
|
*disabled*
|
||||||
|
nis
|
||||||
|
_dbm _gdbm
|
||||||
|
_sqlite3
|
||||||
|
_hashlib _ssl
|
||||||
|
_curses _curses_panel
|
||||||
|
readline
|
||||||
|
_tkinter
|
||||||
|
pyexpat
|
||||||
|
zlib
|
||||||
|
# We disabled these for CBUILD because Python's setup.py can't handle locating
|
||||||
|
# libdir correctly for cross. This should be rechecked for the pure Makefile approach,
|
||||||
|
# and uncommented if needed.
|
||||||
|
#_ctypes _crypt
|
||||||
|
EOF
|
||||||
|
|
||||||
|
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||||
|
|
||||||
|
# Unfortunately, we do have to build this immediately, and
|
||||||
|
# not in src_compile, because CHOST configure for Python
|
||||||
|
# will check the existence of the --with-build-python value
|
||||||
|
# immediately.
|
||||||
|
emake
|
||||||
|
popd &> /dev/null || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# disable automagic bluetooth headers detection
|
||||||
|
if ! use bluetooth; then
|
||||||
|
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
append-flags -fwrapv
|
||||||
|
filter-flags -malign-double
|
||||||
|
|
||||||
|
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||||
|
# PKG_CONFIG needed for cross.
|
||||||
|
tc-export CXX PKG_CONFIG
|
||||||
|
|
||||||
|
local dbmliborder=
|
||||||
|
if use gdbm; then
|
||||||
|
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set baseline test skip flags.
|
||||||
|
COMMON_TEST_SKIPS=(
|
||||||
|
# failures
|
||||||
|
-x test_concurrent_futures
|
||||||
|
-x test_gdb
|
||||||
|
# flaky: https://github.com/python/cpython/issues/121973
|
||||||
|
-x test_pyrepl
|
||||||
|
# flaky: https://github.com/python/cpython/issues/122136 (bug #936314)
|
||||||
|
-x test_asyncio
|
||||||
|
)
|
||||||
|
|
||||||
|
# Arch-specific skips. See #931888 for a collection of these.
|
||||||
|
case ${CHOST} in
|
||||||
|
alpha*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_builtin
|
||||||
|
-x test_capi
|
||||||
|
-x test_cmath
|
||||||
|
-x test_float
|
||||||
|
# timeout
|
||||||
|
-x test_free_threading
|
||||||
|
-x test_math
|
||||||
|
-x test_numeric_tower
|
||||||
|
-x test_random
|
||||||
|
-x test_statistics
|
||||||
|
# bug 653850
|
||||||
|
-x test_resource
|
||||||
|
-x test_strtod
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
ia64*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_ctypes
|
||||||
|
-x test_external_inspection
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
mips*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_ctypes
|
||||||
|
-x test_external_inspection
|
||||||
|
-x test_statistics
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
powerpc64-*) # big endian
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_descr
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
riscv*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_urllib2
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
sparc*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
# bug 788022
|
||||||
|
-x test_multiprocessing_fork
|
||||||
|
-x test_multiprocessing_forkserver
|
||||||
|
|
||||||
|
-x test_ctypes
|
||||||
|
-x test_descr
|
||||||
|
# bug 931908
|
||||||
|
-x test_exceptions
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# musl-specific skips
|
||||||
|
use elibc_musl && COMMON_TEST_SKIPS+=(
|
||||||
|
# various musl locale deficiencies
|
||||||
|
-x test__locale
|
||||||
|
-x test_c_locale_coercion
|
||||||
|
-x test_locale
|
||||||
|
-x test_re
|
||||||
|
|
||||||
|
# known issues with find_library on musl
|
||||||
|
# https://bugs.python.org/issue21622
|
||||||
|
-x test_ctypes
|
||||||
|
|
||||||
|
# fpathconf, ttyname errno values
|
||||||
|
-x test_os
|
||||||
|
)
|
||||||
|
|
||||||
|
if use pgo; then
|
||||||
|
local profile_task_flags=(
|
||||||
|
-m test
|
||||||
|
"-j$(makeopts_jobs)"
|
||||||
|
--pgo-extended
|
||||||
|
--verbose3
|
||||||
|
-u-network
|
||||||
|
|
||||||
|
# We use a timeout because of how often we've had hang issues
|
||||||
|
# here. It also matches the default upstream PROFILE_TASK.
|
||||||
|
--timeout 1200
|
||||||
|
|
||||||
|
"${COMMON_TEST_SKIPS[@]}"
|
||||||
|
|
||||||
|
-x test_dtrace
|
||||||
|
|
||||||
|
# All of these seem to occasionally hang for PGO inconsistently
|
||||||
|
# They'll even hang here but be fine in src_test sometimes.
|
||||||
|
# bug #828535 (and related: bug #788022)
|
||||||
|
-x test_asyncio
|
||||||
|
-x test_httpservers
|
||||||
|
-x test_logging
|
||||||
|
-x test_multiprocessing_fork
|
||||||
|
-x test_socket
|
||||||
|
-x test_xmlrpc
|
||||||
|
|
||||||
|
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
|
||||||
|
# bug #900429
|
||||||
|
-x test_tools
|
||||||
|
|
||||||
|
# Fails in profiling run, passes in src_test().
|
||||||
|
-x test_capi
|
||||||
|
)
|
||||||
|
|
||||||
|
# Arch-specific skips. See #931888 for a collection of these.
|
||||||
|
case ${CHOST} in
|
||||||
|
alpha*)
|
||||||
|
profile_task_flags+=(
|
||||||
|
-x test_os
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
hppa*)
|
||||||
|
profile_task_flags+=(
|
||||||
|
-x test_descr
|
||||||
|
# bug 931908
|
||||||
|
-x test_exceptions
|
||||||
|
-x test_os
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
ia64*)
|
||||||
|
profile_task_flags+=(
|
||||||
|
-x test_signal
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
powerpc64-*) # big endian
|
||||||
|
profile_task_flags+=(
|
||||||
|
# bug 931908
|
||||||
|
-x test_exceptions
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
riscv*)
|
||||||
|
profile_task_flags+=(
|
||||||
|
-x test_statistics
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if has_version "app-arch/rpm" ; then
|
||||||
|
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||||
|
profile_task_flags+=(
|
||||||
|
-x test_distutils
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
local -x PROFILE_TASK="${profile_task_flags[*]}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local myeconfargs=(
|
||||||
|
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||||
|
# Python on glibc upgrade, remove it proactively to give
|
||||||
|
# a chance for users rebuilding python before glibc
|
||||||
|
ac_cv_header_stropts_h=no
|
||||||
|
|
||||||
|
--enable-shared
|
||||||
|
--without-static-libpython
|
||||||
|
--enable-ipv6
|
||||||
|
--infodir='${prefix}/share/info'
|
||||||
|
--mandir='${prefix}/share/man'
|
||||||
|
--with-computed-gotos
|
||||||
|
--with-dbmliborder="${dbmliborder}"
|
||||||
|
--with-libc=
|
||||||
|
--enable-loadable-sqlite-extensions
|
||||||
|
--without-ensurepip
|
||||||
|
--without-lto
|
||||||
|
--with-system-expat
|
||||||
|
--with-system-libmpdec
|
||||||
|
--with-platlibdir=lib
|
||||||
|
--with-pkg-config=yes
|
||||||
|
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||||
|
|
||||||
|
$(use_with debug assertions)
|
||||||
|
$(use_enable gil)
|
||||||
|
$(use_enable jit experimental-jit)
|
||||||
|
$(use_enable pgo optimizations)
|
||||||
|
$(use_with readline readline "$(usex libedit editline readline)")
|
||||||
|
$(use_with valgrind)
|
||||||
|
)
|
||||||
|
|
||||||
|
# https://bugs.gentoo.org/700012
|
||||||
|
if tc-is-lto; then
|
||||||
|
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||||
|
myeconfargs+=(
|
||||||
|
--with-lto
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Force-disable modules we don't want built.
|
||||||
|
# See Modules/Setup for docs on how this works. Setup.local contains our local deviations.
|
||||||
|
cat > Modules/Setup.local <<-EOF || die
|
||||||
|
*disabled*
|
||||||
|
nis
|
||||||
|
$(usev !gdbm '_gdbm _dbm')
|
||||||
|
$(usev !sqlite '_sqlite3')
|
||||||
|
$(usev !ssl '_hashlib _ssl')
|
||||||
|
$(usev !ncurses '_curses _curses_panel')
|
||||||
|
$(usev !readline 'readline')
|
||||||
|
$(usev !tk '_tkinter')
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# disable implicit optimization/debugging flags
|
||||||
|
local -x OPT=
|
||||||
|
|
||||||
|
if tc-is-cross-compiler ; then
|
||||||
|
build_cbuild_python
|
||||||
|
myeconfargs+=(
|
||||||
|
# Point the imminent CHOST build to the Python we just
|
||||||
|
# built for CBUILD.
|
||||||
|
--with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
local -x CFLAGS_NODIST=${CFLAGS}
|
||||||
|
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||||
|
if use ncurses; then
|
||||||
|
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||||
|
fi
|
||||||
|
|
||||||
|
econf "${myeconfargs[@]}"
|
||||||
|
|
||||||
|
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||||
|
eerror "configure has detected that the sem_open function is broken."
|
||||||
|
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||||
|
die "Broken sem_open function (bug 496328)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# install epython.py as part of stdlib
|
||||||
|
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
# Ensure sed works as expected
|
||||||
|
# https://bugs.gentoo.org/594768
|
||||||
|
local -x LC_ALL=C
|
||||||
|
export PYTHONSTRICTEXTENSIONBUILD=1
|
||||||
|
|
||||||
|
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||||
|
# end up writing bytecode & violating sandbox.
|
||||||
|
# bug #831897
|
||||||
|
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||||
|
|
||||||
|
# Gentoo hack to disable accessing system site-packages
|
||||||
|
export GENTOO_CPYTHON_BUILD=1
|
||||||
|
|
||||||
|
if use pgo ; then
|
||||||
|
# bug 660358
|
||||||
|
local -x COLUMNS=80
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=
|
||||||
|
fi
|
||||||
|
|
||||||
|
# also need to clear the flags explicitly here or they end up
|
||||||
|
# in _sysconfigdata*
|
||||||
|
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Restore saved value from above.
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||||
|
|
||||||
|
# Work around bug 329499. See also bug 413751 and 457194.
|
||||||
|
if has_version dev-libs/libffi[pax-kernel]; then
|
||||||
|
pax-mark E python
|
||||||
|
else
|
||||||
|
pax-mark m python
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
# Tests will not work when cross compiling.
|
||||||
|
if tc-is-cross-compiler; then
|
||||||
|
elog "Disabling tests due to crosscompiling."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# this just happens to skip test_support.test_freeze that is broken
|
||||||
|
# without bundled expat
|
||||||
|
# TODO: get a proper skip for it upstream
|
||||||
|
local -x LOGNAME=buildbot
|
||||||
|
|
||||||
|
local test_opts=(
|
||||||
|
--verbose3
|
||||||
|
-u-network
|
||||||
|
-j "$(makeopts_jobs)"
|
||||||
|
"${COMMON_TEST_SKIPS[@]}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# bug 660358
|
||||||
|
local -x COLUMNS=80
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=
|
||||||
|
|
||||||
|
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
|
||||||
|
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||||
|
local ret=${?}
|
||||||
|
|
||||||
|
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local libdir=${ED}/usr/lib/python${PYVER}
|
||||||
|
|
||||||
|
# -j1 hack for now for bug #843458
|
||||||
|
emake -j1 DESTDIR="${D}" 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,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
|
||||||
|
# pydoc
|
||||||
|
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||||
|
# idle
|
||||||
|
if use tk; then
|
||||||
|
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
local v
|
||||||
|
for v in ${REPLACING_VERSIONS}; do
|
||||||
|
if ver_test "${v}" -lt 3.13.0_beta2; then
|
||||||
|
ewarn "Python 3.13.0b2 has changed its module ABI. The .pyc files"
|
||||||
|
ewarn "installed previously are no longer valid and will be regenerated"
|
||||||
|
ewarn "(or ignored) on the next import. This may cause sandbox failures"
|
||||||
|
ewarn "when installing some packages and checksum mismatches when removing"
|
||||||
|
ewarn "old versions. To actively prevent this, rebuild all packages"
|
||||||
|
ewarn "installing Python 3.13 modules, e.g. using:"
|
||||||
|
ewarn
|
||||||
|
ewarn " emerge -1v /usr/lib/python3.13/site-packages"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
432
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.8.19_p3.ebuild
vendored
Normal file
432
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.8.19_p3.ebuild
vendored
Normal file
@ -0,0 +1,432 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI="8"
|
||||||
|
WANT_LIBTOOL="none"
|
||||||
|
|
||||||
|
inherit autotools flag-o-matic multiprocessing pax-utils
|
||||||
|
inherit prefix python-utils-r1 toolchain-funcs verify-sig
|
||||||
|
|
||||||
|
MY_PV=${PV/_rc/rc}
|
||||||
|
MY_P="Python-${MY_PV%_p*}"
|
||||||
|
PYVER=$(ver_cut 1-2)
|
||||||
|
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||||
|
|
||||||
|
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://www.python.org/
|
||||||
|
https://github.com/python/cpython/
|
||||||
|
"
|
||||||
|
SRC_URI="
|
||||||
|
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
||||||
|
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||||
|
verify-sig? (
|
||||||
|
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
|
||||||
|
)
|
||||||
|
"
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
LICENSE="PSF-2"
|
||||||
|
SLOT="${PYVER}"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc ~x86"
|
||||||
|
IUSE="
|
||||||
|
bluetooth build debug +ensurepip examples gdbm +ncurses pgo
|
||||||
|
+readline +sqlite +ssl test tk valgrind
|
||||||
|
"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||||
|
# If you need to apply a patch which requires python for bootstrapping, please
|
||||||
|
# run the bootstrap code on your dev box and include the results in the
|
||||||
|
# patchset. See bug 447752.
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
app-arch/bzip2:=
|
||||||
|
app-arch/xz-utils:=
|
||||||
|
>=dev-libs/expat-2.1:=
|
||||||
|
dev-libs/libffi:=
|
||||||
|
dev-libs/mpdecimal:=
|
||||||
|
dev-python/gentoo-common
|
||||||
|
>=sys-libs/zlib-1.1.3:=
|
||||||
|
virtual/libcrypt:=
|
||||||
|
virtual/libintl
|
||||||
|
ensurepip? ( dev-python/ensurepip-wheels )
|
||||||
|
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||||
|
kernel_linux? ( sys-apps/util-linux:= )
|
||||||
|
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||||
|
readline? ( >=sys-libs/readline-4.1:= )
|
||||||
|
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||||
|
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||||
|
tk? (
|
||||||
|
>=dev-lang/tcl-8.0:=
|
||||||
|
>=dev-lang/tk-8.0:=
|
||||||
|
dev-tcltk/blt:=
|
||||||
|
dev-tcltk/tix
|
||||||
|
)
|
||||||
|
"
|
||||||
|
# bluetooth requires headers from bluez
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
bluetooth? ( net-wireless/bluez )
|
||||||
|
test? ( app-arch/xz-utils )
|
||||||
|
valgrind? ( dev-debug/valgrind )
|
||||||
|
"
|
||||||
|
# autoconf-archive needed to eautoreconf
|
||||||
|
BDEPEND="
|
||||||
|
dev-build/autoconf-archive
|
||||||
|
app-alternatives/awk
|
||||||
|
virtual/pkgconfig
|
||||||
|
verify-sig? ( sec-keys/openpgp-keys-python )
|
||||||
|
"
|
||||||
|
RDEPEND+="
|
||||||
|
!build? ( app-misc/mime-types )
|
||||||
|
"
|
||||||
|
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
|
||||||
|
|
||||||
|
QA_PKGCONFIG_VERSION=${PYVER}
|
||||||
|
# false positives -- functions specific to *BSD
|
||||||
|
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if use verify-sig; then
|
||||||
|
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||||
|
fi
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# Ensure that internal copies of expat and libffi are not used.
|
||||||
|
rm -r Modules/expat || die
|
||||||
|
rm -r Modules/_ctypes/libffi* || die
|
||||||
|
|
||||||
|
local PATCHES=(
|
||||||
|
"${WORKDIR}/${PATCHSET}"
|
||||||
|
)
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
# https://bugs.gentoo.org/850151
|
||||||
|
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
|
||||||
|
|
||||||
|
# force the correct number of jobs
|
||||||
|
# https://bugs.gentoo.org/737660
|
||||||
|
local jobs=$(makeopts_jobs)
|
||||||
|
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||||
|
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||||
|
|
||||||
|
rm Lib/distutils/command/wininst*.exe || die
|
||||||
|
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# disable automagic bluetooth headers detection
|
||||||
|
if ! use bluetooth; then
|
||||||
|
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||||
|
fi
|
||||||
|
local disable
|
||||||
|
use gdbm || disable+=" gdbm"
|
||||||
|
use ncurses || disable+=" _curses _curses_panel"
|
||||||
|
use readline || disable+=" readline"
|
||||||
|
use sqlite || disable+=" _sqlite3"
|
||||||
|
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||||
|
use tk || disable+=" _tkinter"
|
||||||
|
export PYTHON_DISABLE_MODULES="${disable}"
|
||||||
|
|
||||||
|
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||||
|
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
append-flags -fwrapv
|
||||||
|
filter-flags -malign-double
|
||||||
|
|
||||||
|
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||||
|
# PKG_CONFIG needed for cross.
|
||||||
|
tc-export CXX PKG_CONFIG
|
||||||
|
|
||||||
|
local dbmliborder=
|
||||||
|
if use gdbm; then
|
||||||
|
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local myeconfargs=(
|
||||||
|
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||||
|
# Python on glibc upgrade, remove it proactively to give
|
||||||
|
# a chance for users rebuilding python before glibc
|
||||||
|
ac_cv_header_stropts_h=no
|
||||||
|
|
||||||
|
--enable-shared
|
||||||
|
--enable-ipv6
|
||||||
|
--infodir='${prefix}/share/info'
|
||||||
|
--mandir='${prefix}/share/man'
|
||||||
|
--with-computed-gotos
|
||||||
|
--with-dbmliborder="${dbmliborder}"
|
||||||
|
--with-libc=
|
||||||
|
--enable-loadable-sqlite-extensions
|
||||||
|
--without-ensurepip
|
||||||
|
--without-lto
|
||||||
|
--with-system-expat
|
||||||
|
--with-system-ffi
|
||||||
|
--with-system-libmpdec
|
||||||
|
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||||
|
|
||||||
|
$(use_with debug assertions)
|
||||||
|
$(use_with valgrind)
|
||||||
|
)
|
||||||
|
|
||||||
|
# disable implicit optimization/debugging flags
|
||||||
|
local -x OPT=
|
||||||
|
|
||||||
|
# https://bugs.gentoo.org/700012
|
||||||
|
if tc-is-lto; then
|
||||||
|
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||||
|
myeconfargs+=(
|
||||||
|
--with-lto
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if tc-is-cross-compiler ; then
|
||||||
|
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||||
|
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
#
|
||||||
|
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||||
|
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||||
|
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||||
|
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||||
|
|
||||||
|
# We need to build our own Python on CBUILD first, and feed it in.
|
||||||
|
# bug #847910 and bug #864911.
|
||||||
|
local myeconfargs_cbuild=(
|
||||||
|
"${myeconfargs[@]}"
|
||||||
|
|
||||||
|
--libdir="${cbuild_libdir:2}"
|
||||||
|
|
||||||
|
# Avoid needing to load the right libpython.so.
|
||||||
|
--disable-shared
|
||||||
|
|
||||||
|
# As minimal as possible for the mini CBUILD Python
|
||||||
|
# we build just for cross.
|
||||||
|
--without-lto
|
||||||
|
--disable-optimizations
|
||||||
|
)
|
||||||
|
|
||||||
|
# Point the imminent CHOST build to the Python we just
|
||||||
|
# built for CBUILD.
|
||||||
|
export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
|
||||||
|
|
||||||
|
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||||
|
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||||
|
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
|
||||||
|
# libdir correctly for cross.
|
||||||
|
PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" \
|
||||||
|
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||||
|
|
||||||
|
# Avoid as many dependencies as possible for the cross build.
|
||||||
|
cat >> Makefile <<-EOF || die
|
||||||
|
MODULE_NIS=disabled
|
||||||
|
MODULE__DBM=disabled
|
||||||
|
MODULE__GDBM=disabled
|
||||||
|
MODULE__DBM=disabled
|
||||||
|
MODULE__SQLITE3=disabled
|
||||||
|
MODULE__HASHLIB=disabled
|
||||||
|
MODULE__SSL=disabled
|
||||||
|
MODULE__CURSES=disabled
|
||||||
|
MODULE__CURSES_PANEL=disabled
|
||||||
|
MODULE_READLINE=disabled
|
||||||
|
MODULE__TKINTER=disabled
|
||||||
|
MODULE_PYEXPAT=disabled
|
||||||
|
MODULE_ZLIB=disabled
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Unfortunately, we do have to build this immediately, and
|
||||||
|
# not in src_compile, because CHOST configure for Python
|
||||||
|
# will check the existence of the Python it was pointed to
|
||||||
|
# immediately.
|
||||||
|
PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" emake
|
||||||
|
popd &> /dev/null || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
local -x CFLAGS_NODIST=${CFLAGS}
|
||||||
|
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||||
|
if use ncurses; then
|
||||||
|
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||||
|
fi
|
||||||
|
|
||||||
|
hprefixify setup.py
|
||||||
|
econf "${myeconfargs[@]}"
|
||||||
|
|
||||||
|
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||||
|
eerror "configure has detected that the sem_open function is broken."
|
||||||
|
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||||
|
die "Broken sem_open function (bug 496328)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# install epython.py as part of stdlib
|
||||||
|
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
# Ensure sed works as expected
|
||||||
|
# https://bugs.gentoo.org/594768
|
||||||
|
local -x LC_ALL=C
|
||||||
|
# Prevent using distutils bundled by setuptools.
|
||||||
|
# https://bugs.gentoo.org/823728
|
||||||
|
export SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||||
|
|
||||||
|
# also need to clear the flags explicitly here or they end up
|
||||||
|
# in _sysconfigdata*
|
||||||
|
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Work around bug 329499. See also bug 413751 and 457194.
|
||||||
|
if has_version dev-libs/libffi[pax-kernel]; then
|
||||||
|
pax-mark E python
|
||||||
|
else
|
||||||
|
pax-mark m python
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
# Tests will not work when cross compiling.
|
||||||
|
if tc-is-cross-compiler; then
|
||||||
|
elog "Disabling tests due to crosscompiling."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local test_opts=(
|
||||||
|
-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
|
||||||
|
|
||||||
|
# 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=
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
# Remove static library
|
||||||
|
rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
|
||||||
|
|
||||||
|
# Fix collisions between different slots of Python.
|
||||||
|
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||||
|
|
||||||
|
# Cheap hack to get version with ABIFLAGS
|
||||||
|
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||||
|
if [[ ${abiver} != python${PYVER} ]]; then
|
||||||
|
# Replace python3.X with a symlink to python3.Xm
|
||||||
|
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||||
|
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||||
|
# Create python3.X-config symlink
|
||||||
|
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||||
|
# Create python-3.5m.pc symlink
|
||||||
|
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# python seems to get rebuilt in src_install (bug 569908)
|
||||||
|
# Work around it for now.
|
||||||
|
if has_version dev-libs/libffi[pax-kernel]; then
|
||||||
|
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||||
|
else
|
||||||
|
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||||
|
if ! use ensurepip; then
|
||||||
|
rm -r "${libdir}"/ensurepip || die
|
||||||
|
fi
|
||||||
|
if ! use sqlite; then
|
||||||
|
rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||||
|
fi
|
||||||
|
if ! use tk; then
|
||||||
|
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||||
|
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
|
||||||
|
|
||||||
|
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||||
|
|
||||||
|
if use examples; then
|
||||||
|
docinto examples
|
||||||
|
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||||
|
dodoc -r Tools
|
||||||
|
fi
|
||||||
|
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||||
|
local libname=$(
|
||||||
|
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
|
||||||
|
emake --no-print-directory -s -f - 2>/dev/null
|
||||||
|
)
|
||||||
|
newins Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||||
|
|
||||||
|
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||||
|
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||||
|
sed \
|
||||||
|
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||||
|
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||||
|
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||||
|
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||||
|
|
||||||
|
# python-exec wrapping support
|
||||||
|
local pymajor=${PYVER%.*}
|
||||||
|
local EPYTHON=python${PYVER}
|
||||||
|
local scriptdir=${D}$(python_get_scriptdir)
|
||||||
|
mkdir -p "${scriptdir}" || die
|
||||||
|
# python and pythonX
|
||||||
|
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
|
||||||
|
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||||
|
# python-config and pythonX-config
|
||||||
|
# note: we need to create a wrapper rather than symlinking it due
|
||||||
|
# to some random dirname(argv[0]) magic performed by python-config
|
||||||
|
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||||
|
#!/bin/sh
|
||||||
|
exec "${abiver}-config" "\${@}"
|
||||||
|
EOF
|
||||||
|
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||||
|
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
|
||||||
|
# 2to3, pydoc
|
||||||
|
ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
|
||||||
|
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||||
|
# idle
|
||||||
|
if use tk; then
|
||||||
|
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||||
|
fi
|
||||||
|
}
|
492
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.19_p4.ebuild
vendored
Normal file
492
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.19_p4.ebuild
vendored
Normal file
@ -0,0 +1,492 @@
|
|||||||
|
# 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 ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc ~x86"
|
||||||
|
IUSE="
|
||||||
|
bluetooth build debug +ensurepip examples gdbm +ncurses pgo
|
||||||
|
+readline +sqlite +ssl test tk valgrind
|
||||||
|
"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||||
|
# If you need to apply a patch which requires python for bootstrapping, please
|
||||||
|
# run the bootstrap code on your dev box and include the results in the
|
||||||
|
# patchset. See bug 447752.
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
app-arch/bzip2:=
|
||||||
|
app-arch/xz-utils:=
|
||||||
|
>=dev-libs/expat-2.1:=
|
||||||
|
dev-libs/libffi:=
|
||||||
|
dev-libs/mpdecimal:=
|
||||||
|
dev-python/gentoo-common
|
||||||
|
>=sys-libs/zlib-1.1.3:=
|
||||||
|
virtual/libcrypt:=
|
||||||
|
virtual/libintl
|
||||||
|
ensurepip? ( dev-python/ensurepip-wheels )
|
||||||
|
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||||
|
kernel_linux? ( sys-apps/util-linux:= )
|
||||||
|
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||||
|
readline? ( >=sys-libs/readline-4.1:= )
|
||||||
|
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||||
|
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||||
|
tk? (
|
||||||
|
>=dev-lang/tcl-8.0:=
|
||||||
|
>=dev-lang/tk-8.0:=
|
||||||
|
dev-tcltk/blt:=
|
||||||
|
dev-tcltk/tix
|
||||||
|
)
|
||||||
|
"
|
||||||
|
# bluetooth requires headers from bluez
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
bluetooth? ( net-wireless/bluez )
|
||||||
|
test? ( app-arch/xz-utils )
|
||||||
|
valgrind? ( dev-debug/valgrind )
|
||||||
|
"
|
||||||
|
# autoconf-archive needed to eautoreconf
|
||||||
|
BDEPEND="
|
||||||
|
dev-build/autoconf-archive
|
||||||
|
app-alternatives/awk
|
||||||
|
virtual/pkgconfig
|
||||||
|
verify-sig? ( sec-keys/openpgp-keys-python )
|
||||||
|
"
|
||||||
|
RDEPEND+="
|
||||||
|
!build? ( app-misc/mime-types )
|
||||||
|
"
|
||||||
|
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
|
||||||
|
|
||||||
|
# large file tests involve a 2.5G file being copied (duplicated)
|
||||||
|
CHECKREQS_DISK_BUILD=5500M
|
||||||
|
|
||||||
|
QA_PKGCONFIG_VERSION=${PYVER}
|
||||||
|
# false positives -- functions specific to *BSD
|
||||||
|
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||||
|
|
||||||
|
pkg_pretend() {
|
||||||
|
use test && check-reqs_pkg_pretend
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
use test && check-reqs_pkg_setup
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if use verify-sig; then
|
||||||
|
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||||
|
fi
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# Ensure that internal copies of expat and libffi are not used.
|
||||||
|
rm -r Modules/expat || die
|
||||||
|
rm -r Modules/_ctypes/libffi* || die
|
||||||
|
|
||||||
|
local PATCHES=(
|
||||||
|
"${WORKDIR}/${PATCHSET}"
|
||||||
|
)
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
# https://bugs.gentoo.org/850151
|
||||||
|
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
|
||||||
|
|
||||||
|
# force the correct number of jobs
|
||||||
|
# https://bugs.gentoo.org/737660
|
||||||
|
local jobs=$(makeopts_jobs)
|
||||||
|
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||||
|
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||||
|
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# disable automagic bluetooth headers detection
|
||||||
|
if ! use bluetooth; then
|
||||||
|
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||||
|
fi
|
||||||
|
local disable
|
||||||
|
use gdbm || disable+=" gdbm"
|
||||||
|
use ncurses || disable+=" _curses _curses_panel"
|
||||||
|
use readline || disable+=" readline"
|
||||||
|
use sqlite || disable+=" _sqlite3"
|
||||||
|
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||||
|
use tk || disable+=" _tkinter"
|
||||||
|
export PYTHON_DISABLE_MODULES="${disable}"
|
||||||
|
|
||||||
|
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||||
|
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
append-flags -fwrapv
|
||||||
|
filter-flags -malign-double
|
||||||
|
|
||||||
|
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||||
|
# PKG_CONFIG needed for cross.
|
||||||
|
tc-export CXX PKG_CONFIG
|
||||||
|
|
||||||
|
local dbmliborder=
|
||||||
|
if use gdbm; then
|
||||||
|
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use pgo; then
|
||||||
|
local profile_task_flags=(
|
||||||
|
-m test
|
||||||
|
"-j$(makeopts_jobs)"
|
||||||
|
--pgo-extended
|
||||||
|
-x test_gdb
|
||||||
|
-x test_dtrace
|
||||||
|
-u-network
|
||||||
|
|
||||||
|
# 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
|
||||||
|
)
|
||||||
|
|
||||||
|
if has_version "app-arch/rpm" ; then
|
||||||
|
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||||
|
profile_task_flags+=(
|
||||||
|
-x test_distutils
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
local -x PROFILE_TASK="${profile_task_flags[*]}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local myeconfargs=(
|
||||||
|
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||||
|
# Python on glibc upgrade, remove it proactively to give
|
||||||
|
# a chance for users rebuilding python before glibc
|
||||||
|
ac_cv_header_stropts_h=no
|
||||||
|
|
||||||
|
--enable-shared
|
||||||
|
--enable-ipv6
|
||||||
|
--infodir='${prefix}/share/info'
|
||||||
|
--mandir='${prefix}/share/man'
|
||||||
|
--with-computed-gotos
|
||||||
|
--with-dbmliborder="${dbmliborder}"
|
||||||
|
--with-libc=
|
||||||
|
--enable-loadable-sqlite-extensions
|
||||||
|
--without-ensurepip
|
||||||
|
--without-lto
|
||||||
|
--with-system-expat
|
||||||
|
--with-system-ffi
|
||||||
|
--with-system-libmpdec
|
||||||
|
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||||
|
|
||||||
|
$(use_with debug assertions)
|
||||||
|
$(use_enable pgo optimizations)
|
||||||
|
$(use_with valgrind)
|
||||||
|
)
|
||||||
|
|
||||||
|
# disable implicit optimization/debugging flags
|
||||||
|
local -x OPT=
|
||||||
|
|
||||||
|
# https://bugs.gentoo.org/700012
|
||||||
|
if tc-is-lto; then
|
||||||
|
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||||
|
myeconfargs+=(
|
||||||
|
--with-lto
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if tc-is-cross-compiler ; then
|
||||||
|
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||||
|
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
#
|
||||||
|
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||||
|
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||||
|
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||||
|
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||||
|
|
||||||
|
# We need to build our own Python on CBUILD first, and feed it in.
|
||||||
|
# bug #847910 and bug #864911.
|
||||||
|
local myeconfargs_cbuild=(
|
||||||
|
"${myeconfargs[@]}"
|
||||||
|
|
||||||
|
--libdir="${cbuild_libdir:2}"
|
||||||
|
|
||||||
|
# Avoid needing to load the right libpython.so.
|
||||||
|
--disable-shared
|
||||||
|
|
||||||
|
# As minimal as possible for the mini CBUILD Python
|
||||||
|
# we build just for cross.
|
||||||
|
--without-lto
|
||||||
|
--disable-optimizations
|
||||||
|
)
|
||||||
|
|
||||||
|
# Point the imminent CHOST build to the Python we just
|
||||||
|
# built for CBUILD.
|
||||||
|
export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
|
||||||
|
|
||||||
|
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||||
|
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||||
|
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
|
||||||
|
# libdir correctly for cross.
|
||||||
|
PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" \
|
||||||
|
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||||
|
|
||||||
|
# Avoid as many dependencies as possible for the cross build.
|
||||||
|
cat >> Makefile <<-EOF || die
|
||||||
|
MODULE_NIS=disabled
|
||||||
|
MODULE__DBM=disabled
|
||||||
|
MODULE__GDBM=disabled
|
||||||
|
MODULE__DBM=disabled
|
||||||
|
MODULE__SQLITE3=disabled
|
||||||
|
MODULE__HASHLIB=disabled
|
||||||
|
MODULE__SSL=disabled
|
||||||
|
MODULE__CURSES=disabled
|
||||||
|
MODULE__CURSES_PANEL=disabled
|
||||||
|
MODULE_READLINE=disabled
|
||||||
|
MODULE__TKINTER=disabled
|
||||||
|
MODULE_PYEXPAT=disabled
|
||||||
|
MODULE_ZLIB=disabled
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Unfortunately, we do have to build this immediately, and
|
||||||
|
# not in src_compile, because CHOST configure for Python
|
||||||
|
# will check the existence of the Python it was pointed to
|
||||||
|
# immediately.
|
||||||
|
PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" emake
|
||||||
|
popd &> /dev/null || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
local -x CFLAGS_NODIST=${CFLAGS}
|
||||||
|
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||||
|
if use ncurses; then
|
||||||
|
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||||
|
fi
|
||||||
|
|
||||||
|
hprefixify setup.py
|
||||||
|
econf "${myeconfargs[@]}"
|
||||||
|
|
||||||
|
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||||
|
eerror "configure has detected that the sem_open function is broken."
|
||||||
|
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||||
|
die "Broken sem_open function (bug 496328)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# install epython.py as part of stdlib
|
||||||
|
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
# Ensure sed works as expected
|
||||||
|
# https://bugs.gentoo.org/594768
|
||||||
|
local -x LC_ALL=C
|
||||||
|
# Prevent using distutils bundled by setuptools.
|
||||||
|
# https://bugs.gentoo.org/823728
|
||||||
|
export SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||||
|
|
||||||
|
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||||
|
# end up writing bytecode & violating sandbox.
|
||||||
|
# bug #831897
|
||||||
|
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
# 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=
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
# Remove static library
|
||||||
|
rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
|
||||||
|
|
||||||
|
# Fix collisions between different slots of Python.
|
||||||
|
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||||
|
|
||||||
|
# Cheap hack to get version with ABIFLAGS
|
||||||
|
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||||
|
if [[ ${abiver} != python${PYVER} ]]; then
|
||||||
|
# Replace python3.X with a symlink to python3.Xm
|
||||||
|
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||||
|
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||||
|
# Create python3.X-config symlink
|
||||||
|
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||||
|
# Create python-3.5m.pc symlink
|
||||||
|
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# python seems to get rebuilt in src_install (bug 569908)
|
||||||
|
# Work around it for now.
|
||||||
|
if has_version dev-libs/libffi[pax-kernel]; then
|
||||||
|
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||||
|
else
|
||||||
|
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||||
|
if ! use ensurepip; then
|
||||||
|
rm -r "${libdir}"/ensurepip || die
|
||||||
|
fi
|
||||||
|
if ! use sqlite; then
|
||||||
|
rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||||
|
fi
|
||||||
|
if ! use tk; then
|
||||||
|
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||||
|
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
|
||||||
|
|
||||||
|
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||||
|
|
||||||
|
if use examples; then
|
||||||
|
docinto examples
|
||||||
|
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||||
|
dodoc -r Tools
|
||||||
|
fi
|
||||||
|
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||||
|
local libname=$(
|
||||||
|
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
|
||||||
|
emake --no-print-directory -s -f - 2>/dev/null
|
||||||
|
)
|
||||||
|
newins Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||||
|
|
||||||
|
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||||
|
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||||
|
sed \
|
||||||
|
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||||
|
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||||
|
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||||
|
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||||
|
|
||||||
|
# python-exec wrapping support
|
||||||
|
local pymajor=${PYVER%.*}
|
||||||
|
local EPYTHON=python${PYVER}
|
||||||
|
local scriptdir=${D}$(python_get_scriptdir)
|
||||||
|
mkdir -p "${scriptdir}" || die
|
||||||
|
# python and pythonX
|
||||||
|
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
|
||||||
|
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||||
|
# python-config and pythonX-config
|
||||||
|
# note: we need to create a wrapper rather than symlinking it due
|
||||||
|
# to some random dirname(argv[0]) magic performed by python-config
|
||||||
|
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||||
|
#!/bin/sh
|
||||||
|
exec "${abiver}-config" "\${@}"
|
||||||
|
EOF
|
||||||
|
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||||
|
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
|
||||||
|
# 2to3, pydoc
|
||||||
|
ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
|
||||||
|
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||||
|
# idle
|
||||||
|
if use tk; then
|
||||||
|
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||||
|
fi
|
||||||
|
}
|
@ -11,7 +11,7 @@ SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
|
|||||||
|
|
||||||
LICENSE="GPL-3+ BSD BSD-2"
|
LICENSE="GPL-3+ BSD BSD-2"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
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="ccache doc pcre test"
|
IUSE="ccache doc pcre test"
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
87
sdk_container/src/third_party/portage-stable/dev-lang/yasm/files/yasm-1.3.0-fix-modern-c.patch
vendored
Normal file
87
sdk_container/src/third_party/portage-stable/dev-lang/yasm/files/yasm-1.3.0-fix-modern-c.patch
vendored
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
https://github.com/yasm/yasm/commit/f79f5e37f0e4b06d5dc303cc219929d7359dd7df
|
||||||
|
From: Biswapriyo Nath <nathbappai@gmail.com>
|
||||||
|
Date: Thu, 18 May 2023 03:53:32 +0530
|
||||||
|
Subject: [PATCH] Fix function declaration warnings with clang (#226)
|
||||||
|
|
||||||
|
This fixes the following compiler warnings with clang
|
||||||
|
|
||||||
|
tools/genperf/perfect.c:65:6: warning: a function definition without a prototype
|
||||||
|
is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
|
||||||
|
|
||||||
|
frontends/yasm/yasm.c:1379:23: warning: a function declaration without a prototype
|
||||||
|
is deprecated in all versions of C [-Wstrict-prototypes]
|
||||||
|
|
||||||
|
modules/objfmts/elf/elf.c:225:18: warning: a function declaration without a prototype
|
||||||
|
is deprecated in all versions of C [-Wstrict-prototypes]
|
||||||
|
--- a/frontends/tasm/tasm.c
|
||||||
|
+++ b/frontends/tasm/tasm.c
|
||||||
|
@@ -817,7 +817,7 @@ opt_exe_handler(char *cmd, /*@unused@*/ char *param, int extra)
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
-apply_preproc_builtins()
|
||||||
|
+apply_preproc_builtins(void)
|
||||||
|
{
|
||||||
|
char *predef;
|
||||||
|
|
||||||
|
@@ -853,7 +853,7 @@ apply_preproc_standard_macros(const yasm_stdmac *stdmacs)
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
-apply_preproc_saved_options()
|
||||||
|
+apply_preproc_saved_options(void)
|
||||||
|
{
|
||||||
|
constcharparam *cp, *cpnext;
|
||||||
|
|
||||||
|
--- a/frontends/yasm/yasm.c
|
||||||
|
+++ b/frontends/yasm/yasm.c
|
||||||
|
@@ -1376,7 +1376,7 @@ opt_plugin_handler(/*@unused@*/ char *cmd, char *param,
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static void
|
||||||
|
-apply_preproc_builtins()
|
||||||
|
+apply_preproc_builtins(void)
|
||||||
|
{
|
||||||
|
char *predef;
|
||||||
|
|
||||||
|
@@ -1409,7 +1409,7 @@ apply_preproc_standard_macros(const yasm_stdmac *stdmacs)
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
-apply_preproc_saved_options()
|
||||||
|
+apply_preproc_saved_options(void)
|
||||||
|
{
|
||||||
|
constcharparam *cp, *cpnext;
|
||||||
|
|
||||||
|
--- a/modules/objfmts/elf/elf.c
|
||||||
|
+++ b/modules/objfmts/elf/elf.c
|
||||||
|
@@ -222,7 +222,7 @@ elf_strtab_entry_set_str(elf_strtab_entry *entry, const char *str)
|
||||||
|
}
|
||||||
|
|
||||||
|
elf_strtab_head *
|
||||||
|
-elf_strtab_create()
|
||||||
|
+elf_strtab_create(void)
|
||||||
|
{
|
||||||
|
elf_strtab_head *strtab = yasm_xmalloc(sizeof(elf_strtab_head));
|
||||||
|
elf_strtab_entry *entry = yasm_xmalloc(sizeof(elf_strtab_entry));
|
||||||
|
@@ -373,7 +373,7 @@ elf_ssym_symtab_entry_print(void *data, FILE *f, int indent_level)
|
||||||
|
}
|
||||||
|
|
||||||
|
elf_symtab_head *
|
||||||
|
-elf_symtab_create()
|
||||||
|
+elf_symtab_create(void)
|
||||||
|
{
|
||||||
|
elf_symtab_head *symtab = yasm_xmalloc(sizeof(elf_symtab_head));
|
||||||
|
elf_symtab_entry *entry = yasm_xmalloc(sizeof(elf_symtab_entry));
|
||||||
|
--- a/tools/genperf/perfect.c
|
||||||
|
+++ b/tools/genperf/perfect.c
|
||||||
|
@@ -62,8 +62,7 @@ Find the mapping that will produce a perfect hash
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* return the ceiling of the log (base 2) of val */
|
||||||
|
-ub4 phash_log2(val)
|
||||||
|
-ub4 val;
|
||||||
|
+ub4 phash_log2(ub4 val)
|
||||||
|
{
|
||||||
|
ub4 i;
|
||||||
|
for (i=0; ((ub4)1<<i) < val; ++i)
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright 1999-2021 Gentoo Authors
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
EAPI=7
|
EAPI=8
|
||||||
|
|
||||||
inherit toolchain-funcs
|
inherit toolchain-funcs
|
||||||
|
|
||||||
@ -37,6 +37,10 @@ if [[ ${PV} == 9999* ]]; then
|
|||||||
"
|
"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${P}-fix-modern-c.patch
|
||||||
|
)
|
||||||
|
|
||||||
src_prepare() {
|
src_prepare() {
|
||||||
default
|
default
|
||||||
|
|
@ -13,7 +13,7 @@ SRC_URI+=" verify-sig? ( https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2.
|
|||||||
|
|
||||||
LICENSE="|| ( GPL-2+ LGPL-3+ ) utils? ( GPL-3+ )"
|
LICENSE="|| ( GPL-2+ LGPL-3+ ) utils? ( GPL-3+ )"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
|
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
|
||||||
IUSE="bzip2 debuginfod lzma nls static-libs test +utils zstd"
|
IUSE="bzip2 debuginfod lzma nls static-libs test +utils zstd"
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
@ -2,3 +2,4 @@ DIST glib-2.76.4.tar.xz 5274356 BLAKE2B c9ceb514ea81e1e6ab2d0efc82c48c0d8ae6c997
|
|||||||
DIST glib-2.78.3.tar.xz 5321388 BLAKE2B 6ef754b15e1ce4377eafdfc317025ac65c3d8010a8816a0cef786cec9da2af9f7d7d1da735c971ab8c848b2dcec050330e5b0fdceb156a36d739848e6160cd19 SHA512 9c1af75fb973d23ce0286d5b7836eea45f9628c148ced5ac10e10abceda05024ae4c57f01439824d3287d986527500b7b959828b630b6e4a3314b5224f4d7246
|
DIST glib-2.78.3.tar.xz 5321388 BLAKE2B 6ef754b15e1ce4377eafdfc317025ac65c3d8010a8816a0cef786cec9da2af9f7d7d1da735c971ab8c848b2dcec050330e5b0fdceb156a36d739848e6160cd19 SHA512 9c1af75fb973d23ce0286d5b7836eea45f9628c148ced5ac10e10abceda05024ae4c57f01439824d3287d986527500b7b959828b630b6e4a3314b5224f4d7246
|
||||||
DIST glib-2.78.4.tar.xz 5331892 BLAKE2B ada7134597d7d863e581a2bb1097ac07a63b27b53309aadab5b1d3686327ee718ad8c5c07af3fce5cc12328e728fc2c4df5fd9e69f431fa00dc634062ef7f926 SHA512 6f3a06e10e7373a2dbf0688512de4126472fb73cbec488b7983b5ffecff09c64d7e1ca462f892e8f215d3d277d103ca802bad7ef0bd0f91edf26fc6ce67187b6
|
DIST glib-2.78.4.tar.xz 5331892 BLAKE2B ada7134597d7d863e581a2bb1097ac07a63b27b53309aadab5b1d3686327ee718ad8c5c07af3fce5cc12328e728fc2c4df5fd9e69f431fa00dc634062ef7f926 SHA512 6f3a06e10e7373a2dbf0688512de4126472fb73cbec488b7983b5ffecff09c64d7e1ca462f892e8f215d3d277d103ca802bad7ef0bd0f91edf26fc6ce67187b6
|
||||||
DIST glib-2.78.6.tar.xz 5344808 BLAKE2B d16173794c4aa019459cf8c8c84d4107fb8393828f41ec6c631b9452890f34f9022ed848a543ed134fdb8a575faef6b941cea3e05de512eb1b7a99f7601a2485 SHA512 8d75f8fd77b6309215ca86a0c7648878efe11051f18b279840c137669017ea4066388f8682367e4ea3f154333d833c9dc28ccd4a66a91f0c3854a40a2838f8da
|
DIST glib-2.78.6.tar.xz 5344808 BLAKE2B d16173794c4aa019459cf8c8c84d4107fb8393828f41ec6c631b9452890f34f9022ed848a543ed134fdb8a575faef6b941cea3e05de512eb1b7a99f7601a2485 SHA512 8d75f8fd77b6309215ca86a0c7648878efe11051f18b279840c137669017ea4066388f8682367e4ea3f154333d833c9dc28ccd4a66a91f0c3854a40a2838f8da
|
||||||
|
DIST glib-2.80.4.tar.xz 5535760 BLAKE2B 1d2b301703b27a5c2def370e1d44b4f7b08a940969563ce9d8d7c38e5f0a32163b95523e09cedc4a57b2af84a57d63dc545abcb31b61a8066ef62ba396fb4f3c SHA512 efdc7dd1e0609b0f2d988a8cc8fd4a3fda96e8450832f905f7686f9063b727cb996e0e4e638aca62f60b76f9f04be62e089a615413e64cf298c7eef26e074570
|
||||||
|
320
sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.80.4.ebuild
vendored
Normal file
320
sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.80.4.ebuild
vendored
Normal file
@ -0,0 +1,320 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
PYTHON_REQ_USE="xml(+)"
|
||||||
|
PYTHON_COMPAT=( python3_{10..13} )
|
||||||
|
|
||||||
|
inherit gnome.org gnome2-utils linux-info meson-multilib multilib python-any-r1 toolchain-funcs xdg
|
||||||
|
|
||||||
|
DESCRIPTION="The GLib library of C routines"
|
||||||
|
HOMEPAGE="https://www.gtk.org/"
|
||||||
|
|
||||||
|
LICENSE="LGPL-2.1+"
|
||||||
|
SLOT="2"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
IUSE="dbus debug +elf doc +introspection +mime selinux static-libs sysprof systemtap test utils xattr"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
# * elfutils (via libelf) does not build on Windows. gresources are not embedded
|
||||||
|
# within ELF binaries on that platform anyway and inspecting ELF binaries from
|
||||||
|
# other platforms is not that useful so exclude the dependency in this case.
|
||||||
|
# * Technically static-libs is needed on zlib, util-linux and perhaps more, but
|
||||||
|
# these are used by GIO, which glib[static-libs] consumers don't really seem
|
||||||
|
# to need at all, thus not imposing the deps for now and once some consumers
|
||||||
|
# are actually found to static link libgio-2.0.a, we can revisit and either add
|
||||||
|
# them or just put the (build) deps in that rare consumer instead of recursive
|
||||||
|
# RDEPEND here (due to lack of recursive DEPEND).
|
||||||
|
RDEPEND="
|
||||||
|
!<dev-libs/gobject-introspection-1.80.1
|
||||||
|
!<dev-util/gdbus-codegen-${PV}
|
||||||
|
>=virtual/libiconv-0-r1[${MULTILIB_USEDEP}]
|
||||||
|
>=dev-libs/libpcre2-10.32:0=[${MULTILIB_USEDEP},unicode(+),static-libs?]
|
||||||
|
>=dev-libs/libffi-3.0.13-r1:=[${MULTILIB_USEDEP}]
|
||||||
|
>=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]
|
||||||
|
>=virtual/libintl-0-r2[${MULTILIB_USEDEP}]
|
||||||
|
introspection? ( >=dev-libs/gobject-introspection-1.80.1 )
|
||||||
|
kernel_linux? ( >=sys-apps/util-linux-2.23[${MULTILIB_USEDEP}] )
|
||||||
|
selinux? ( >=sys-libs/libselinux-2.2.2-r5[${MULTILIB_USEDEP}] )
|
||||||
|
xattr? ( !elibc_glibc? ( >=sys-apps/attr-2.4.47-r1[${MULTILIB_USEDEP}] ) )
|
||||||
|
elf? ( virtual/libelf:0= )
|
||||||
|
sysprof? ( >=dev-util/sysprof-capture-3.40.1:4[${MULTILIB_USEDEP}] )
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
# libxml2 used for optional tests that get automatically skipped
|
||||||
|
BDEPEND="
|
||||||
|
app-text/docbook-xsl-stylesheets
|
||||||
|
dev-libs/libxslt
|
||||||
|
>=sys-devel/gettext-0.19.8
|
||||||
|
doc? ( >=dev-util/gi-docgen-2023.1 )
|
||||||
|
dev-python/docutils
|
||||||
|
systemtap? ( >=dev-debug/systemtap-1.3 )
|
||||||
|
${PYTHON_DEPS}
|
||||||
|
$(python_gen_any_dep '
|
||||||
|
dev-python/packaging[${PYTHON_USEDEP}]
|
||||||
|
')
|
||||||
|
test? ( >=sys-apps/dbus-1.2.14 )
|
||||||
|
virtual/pkgconfig
|
||||||
|
"
|
||||||
|
# TODO: >=dev-util/gdbus-codegen-${PV} test dep once we modify gio/tests/meson.build to use external gdbus-codegen
|
||||||
|
|
||||||
|
PDEPEND="
|
||||||
|
dbus? ( gnome-base/dconf )
|
||||||
|
mime? ( x11-misc/shared-mime-info )
|
||||||
|
"
|
||||||
|
# shared-mime-info needed for gio/xdgmime, bug #409481
|
||||||
|
# dconf is needed to be able to save settings, bug #498436
|
||||||
|
|
||||||
|
MULTILIB_CHOST_TOOLS=(
|
||||||
|
/usr/bin/gio-querymodules$(get_exeext)
|
||||||
|
)
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${PN}-2.64.1-mark-gdbus-server-auth-test-flaky.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
python_check_deps() {
|
||||||
|
python_has_version "dev-python/packaging[${PYTHON_USEDEP}]"
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
if use kernel_linux ; then
|
||||||
|
CONFIG_CHECK="~INOTIFY_USER"
|
||||||
|
if use test ; then
|
||||||
|
CONFIG_CHECK="~IPV6"
|
||||||
|
WARNING_IPV6="Your kernel needs IPV6 support for running some tests, skipping them."
|
||||||
|
fi
|
||||||
|
linux-info_pkg_setup
|
||||||
|
fi
|
||||||
|
python-any-r1_pkg_setup
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
if use test; then
|
||||||
|
# TODO: Review the test exclusions, especially now with meson
|
||||||
|
# Disable tests requiring dev-util/desktop-file-utils when not installed, bug #286629, upstream bug #629163
|
||||||
|
if ! has_version dev-util/desktop-file-utils ; then
|
||||||
|
ewarn "Some tests will be skipped due dev-util/desktop-file-utils not being present on your system,"
|
||||||
|
ewarn "think on installing it to get these tests run."
|
||||||
|
sed -i -e "/appinfo\/associations/d" gio/tests/appinfo.c || die
|
||||||
|
sed -i -e "/g_test_add_func/d" gio/tests/desktop-app-info.c || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# gdesktopappinfo requires existing terminal (gnome-terminal or any
|
||||||
|
# other), falling back to xterm if one doesn't exist
|
||||||
|
#if ! has_version x11-terms/xterm && ! has_version x11-terms/gnome-terminal ; then
|
||||||
|
# ewarn "Some tests will be skipped due to missing terminal program"
|
||||||
|
# These tests seem to sometimes fail even with a terminal; skip for now and reevulate with meson
|
||||||
|
# Also try https://gitlab.gnome.org/GNOME/glib/issues/1601 once ready
|
||||||
|
# for backport (or in a bump) and file new issue if still fails
|
||||||
|
sed -i -e "/appinfo\/launch/d" gio/tests/appinfo.c || die
|
||||||
|
# desktop-app-info/launch* might fail similarly
|
||||||
|
sed -i -e "/desktop-app-info\/launch-as-manager/d" gio/tests/desktop-app-info.c || die
|
||||||
|
#fi
|
||||||
|
|
||||||
|
# https://bugzilla.gnome.org/show_bug.cgi?id=722604
|
||||||
|
sed -i -e "/timer\/stop/d" glib/tests/timer.c || die
|
||||||
|
sed -i -e "/timer\/basic/d" glib/tests/timer.c || die
|
||||||
|
|
||||||
|
ewarn "Tests for search-utils have been skipped"
|
||||||
|
sed -i -e "/search-utils/d" glib/tests/meson.build || die
|
||||||
|
|
||||||
|
# Play nice with network-sandbox, but this approach would defeat the purpose of the test
|
||||||
|
#sed -i -e "s/localhost/127.0.0.1/g" gio/tests/gsocketclient-slow.c || die
|
||||||
|
else
|
||||||
|
# Don't build tests, also prevents extra deps, bug #512022
|
||||||
|
sed -i -e '/subdir.*tests/d' {.,gio,glib}/meson.build || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Don't build fuzzing binaries - not used
|
||||||
|
sed -i -e '/subdir.*fuzzing/d' meson.build || die
|
||||||
|
|
||||||
|
# gdbus-codegen is a separate package
|
||||||
|
sed -i -e '/install_dir/d' gio/gdbus-2.0/codegen/meson.build || die
|
||||||
|
sed -i -e '/install : true/d' gio/gdbus-2.0/codegen/meson.build || die
|
||||||
|
|
||||||
|
# Same kind of meson-0.50 issue with some installed-tests files; will likely be fixed upstream soon
|
||||||
|
sed -i -e '/install_dir/d' gio/tests/meson.build || die
|
||||||
|
|
||||||
|
cat > "${T}/glib-test-ld-wrapper" <<-EOF
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
exec \${LD:-ld} "\$@"
|
||||||
|
EOF
|
||||||
|
chmod a+x "${T}/glib-test-ld-wrapper" || die
|
||||||
|
sed -i -e "s|'ld'|'${T}/glib-test-ld-wrapper'|g" gio/tests/meson.build || die
|
||||||
|
|
||||||
|
# make default sane for us
|
||||||
|
if use prefix ; then
|
||||||
|
sed -i -e "s:/usr/local:${EPREFIX}/usr:" gio/xdgmime/xdgmime.c || die
|
||||||
|
# bug #308609, without path, bug #314057
|
||||||
|
export PERL=perl
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${CHOST} == *-solaris* ]] ; then
|
||||||
|
# fix standards conflicts
|
||||||
|
sed -i \
|
||||||
|
-e 's/\<\(_XOPEN_SOURCE_EXTENDED\)\>/_POSIX_PTHREAD_SEMANTICS/' \
|
||||||
|
-e '/\<_XOPEN_SOURCE\>/s/\<2\>/600/' \
|
||||||
|
meson.build || die
|
||||||
|
sed -i -e '/#define\s\+_POSIX_SOURCE/d' \
|
||||||
|
glib/giounix.c || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# disable native macOS integrations
|
||||||
|
sed -i -e '/glib_conf.set(.HAVE_\(CARBON\|COCOA\).,/s/true/false/' \
|
||||||
|
meson.build || die
|
||||||
|
sed -i \
|
||||||
|
-e '/AvailabilityMacros.h/d' \
|
||||||
|
gio/giomodule.c || die
|
||||||
|
|
||||||
|
default
|
||||||
|
gnome2_environment_reset
|
||||||
|
# TODO: python_name sedding for correct python shebang? Might be relevant mainly for glib-utils only
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_configure() {
|
||||||
|
# TODO: figure a way to pass appropriate values for all cross properties
|
||||||
|
# that glib uses (search for get_cross_property)
|
||||||
|
#if tc-is-cross-compiler ; then
|
||||||
|
# https://bugzilla.gnome.org/show_bug.cgi?id=756473
|
||||||
|
# TODO-meson: This should be in meson cross file as 'growing_stack'
|
||||||
|
# property; and more, look at get_cross_property
|
||||||
|
#case ${CHOST} in
|
||||||
|
#hppa*|metag*) export glib_cv_stack_grows=yes ;;
|
||||||
|
#*) export glib_cv_stack_grows=no ;;
|
||||||
|
#esac
|
||||||
|
#fi
|
||||||
|
|
||||||
|
use debug && EMESON_BUILD_TYPE=debug
|
||||||
|
local emesonargs=(
|
||||||
|
-Ddefault_library=$(usex static-libs both shared)
|
||||||
|
-Druntime_dir="${EPREFIX}"/run
|
||||||
|
$(meson_feature selinux)
|
||||||
|
$(meson_use xattr)
|
||||||
|
-Dlibmount=enabled # only used if host_system == 'linux'
|
||||||
|
-Dman-pages=enabled
|
||||||
|
$(meson_use systemtap dtrace)
|
||||||
|
$(meson_use systemtap)
|
||||||
|
$(meson_feature sysprof)
|
||||||
|
$(meson_use doc documentation)
|
||||||
|
$(meson_use test tests)
|
||||||
|
-Dinstalled_tests=false
|
||||||
|
-Dnls=enabled
|
||||||
|
-Doss_fuzz=disabled
|
||||||
|
$(meson_native_use_feature elf libelf)
|
||||||
|
-Dmultiarch=false
|
||||||
|
$(meson_native_use_feature introspection)
|
||||||
|
)
|
||||||
|
meson_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_test() {
|
||||||
|
export XDG_CONFIG_DIRS=/etc/xdg
|
||||||
|
export XDG_DATA_DIRS=/usr/local/share:/usr/share
|
||||||
|
export G_DBUS_COOKIE_SHA1_KEYRING_DIR="${T}/temp"
|
||||||
|
export LC_TIME=C # bug #411967
|
||||||
|
export TZ=UTC
|
||||||
|
unset GSETTINGS_BACKEND # bug #596380
|
||||||
|
python_setup
|
||||||
|
|
||||||
|
# https://bugs.gentoo.org/839807
|
||||||
|
local -x SANDBOX_PREDICT=${SANDBOX_PREDICT}
|
||||||
|
addpredict /usr/b
|
||||||
|
|
||||||
|
# Related test is a bit nitpicking
|
||||||
|
mkdir "$G_DBUS_COOKIE_SHA1_KEYRING_DIR" || die
|
||||||
|
chmod 0700 "$G_DBUS_COOKIE_SHA1_KEYRING_DIR" || die
|
||||||
|
|
||||||
|
meson_src_test --timeout-multiplier 20 --no-suite flaky
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install() {
|
||||||
|
meson_src_install
|
||||||
|
keepdir /usr/$(get_libdir)/gio/modules
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install_all() {
|
||||||
|
# These are installed by dev-util/glib-utils
|
||||||
|
# TODO: With patching we might be able to get rid of the python-any deps
|
||||||
|
# and removals, and test depend on glib-utils instead; revisit now with
|
||||||
|
# meson
|
||||||
|
rm "${ED}/usr/bin/glib-genmarshal" || die
|
||||||
|
rm "${ED}/usr/share/man/man1/glib-genmarshal.1" || die
|
||||||
|
rm "${ED}/usr/bin/glib-mkenums" || die
|
||||||
|
rm "${ED}/usr/share/man/man1/glib-mkenums.1" || die
|
||||||
|
rm "${ED}/usr/bin/gtester-report" || die
|
||||||
|
rm "${ED}/usr/share/man/man1/gtester-report.1" || die
|
||||||
|
# gdbus-codegen manpage installed by dev-util/gdbus-codegen
|
||||||
|
rm "${ED}/usr/share/man/man1/gdbus-codegen.1" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_preinst() {
|
||||||
|
xdg_pkg_preinst
|
||||||
|
|
||||||
|
# Make gschemas.compiled belong to glib alone
|
||||||
|
local cache="/usr/share/glib-2.0/schemas/gschemas.compiled"
|
||||||
|
|
||||||
|
if [[ -e ${EROOT}${cache} ]]; then
|
||||||
|
cp "${EROOT}"${cache} "${ED}"/${cache} || die
|
||||||
|
else
|
||||||
|
touch "${ED}"${cache} || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
multilib_pkg_preinst() {
|
||||||
|
# Make giomodule.cache belong to glib alone
|
||||||
|
local cache="/usr/$(get_libdir)/gio/modules/giomodule.cache"
|
||||||
|
|
||||||
|
if [[ -e ${EROOT}${cache} ]]; then
|
||||||
|
cp "${EROOT}"${cache} "${ED}"${cache} || die
|
||||||
|
else
|
||||||
|
touch "${ED}"${cache} || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Don't run the cache ownership when cross-compiling, as it would end up with an empty cache
|
||||||
|
# file due to inability to create it and GIO might not look at any of the modules there
|
||||||
|
if ! tc-is-cross-compiler ; then
|
||||||
|
multilib_foreach_abi multilib_pkg_preinst
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
xdg_pkg_postinst
|
||||||
|
# glib installs no schemas itself, but we force update for fresh install in case
|
||||||
|
# something has dropped in a schemas file without direct glib dep; and for upgrades
|
||||||
|
# in case the compiled schema format could have changed
|
||||||
|
gnome2_schemas_update
|
||||||
|
|
||||||
|
multilib_pkg_postinst() {
|
||||||
|
gnome2_giomodule_cache_update \
|
||||||
|
|| die "Update GIO modules cache failed (for ${ABI})"
|
||||||
|
}
|
||||||
|
if ! tc-is-cross-compiler ; then
|
||||||
|
multilib_foreach_abi multilib_pkg_postinst
|
||||||
|
else
|
||||||
|
ewarn "Updating of GIO modules cache skipped due to cross-compilation."
|
||||||
|
ewarn "You might want to run gio-querymodules manually on the target for"
|
||||||
|
ewarn "your final image for performance reasons and re-run it when packages"
|
||||||
|
ewarn "installing GIO modules get upgraded or added to the image."
|
||||||
|
fi
|
||||||
|
|
||||||
|
for v in ${REPLACING_VERSIONS}; do
|
||||||
|
if ver_test "$v" "-lt" "2.63.6"; then
|
||||||
|
ewarn "glib no longer installs the gio-launch-desktop binary. You may need"
|
||||||
|
ewarn "to restart your session for \"Open With\" dialogs to work."
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
xdg_pkg_postrm
|
||||||
|
gnome2_schemas_update
|
||||||
|
|
||||||
|
if [[ -z ${REPLACED_BY_VERSION} ]]; then
|
||||||
|
multilib_pkg_postrm() {
|
||||||
|
rm -f "${EROOT}"/usr/$(get_libdir)/gio/modules/giomodule.cache || die
|
||||||
|
}
|
||||||
|
multilib_foreach_abi multilib_pkg_postrm
|
||||||
|
rm -f "${EROOT}"/usr/share/glib-2.0/schemas/gschemas.compiled || die
|
||||||
|
fi
|
||||||
|
}
|
@ -14,6 +14,9 @@
|
|||||||
Enable support for listing and extracting from
|
Enable support for listing and extracting from
|
||||||
ELF resource files with gresource tool
|
ELF resource files with gresource tool
|
||||||
</flag>
|
</flag>
|
||||||
|
<flag name="introspection">
|
||||||
|
Enable generating introspection data (requires <pkg>dev-libs/gobject-introspection</pkg> )
|
||||||
|
</flag>
|
||||||
<flag name="mime">
|
<flag name="mime">
|
||||||
Pull in shared MIME database that many glib-based
|
Pull in shared MIME database that many glib-based
|
||||||
applications require at runtime to detect or open files. Warning:
|
applications require at runtime to detect or open files. Warning:
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
DIST gobject-introspection-1.76.1.tar.xz 1055416 BLAKE2B 2251c34b543c95f95bdec6853c8234db1b2e6271e729eaa5abf28e39c7718b326e0813a1214c62fb4634fd11218c4c856e6651de09081b01c9fcf8f73b8cf316 SHA512 84331a30f8854d2259609650c21aadd6363ea1417a75828bd395f8f4346da1c6d6550cff5f2c9f5f6fd6fbf2a9d27b5880c2ee1616fa905c5f362384d481a916
|
DIST gobject-introspection-1.76.1.tar.xz 1055416 BLAKE2B 2251c34b543c95f95bdec6853c8234db1b2e6271e729eaa5abf28e39c7718b326e0813a1214c62fb4634fd11218c4c856e6651de09081b01c9fcf8f73b8cf316 SHA512 84331a30f8854d2259609650c21aadd6363ea1417a75828bd395f8f4346da1c6d6550cff5f2c9f5f6fd6fbf2a9d27b5880c2ee1616fa905c5f362384d481a916
|
||||||
DIST gobject-introspection-1.78.1.tar.xz 1060296 BLAKE2B 115cf9ea27cec2d8d3a84081c909b72144fd1568bc316677c26f49652dc93b34fba10701678ad4977dcf97a89f7608545fbd2d73c2503c87635b2102e66ae024 SHA512 a3081882995a762645b04faa71082dbd523bee845519007e48b13235aad8a4cd4c74f0d042a6c17710125f945bd970e4b76e95a559274e294d595e04725a4e97
|
DIST gobject-introspection-1.78.1.tar.xz 1060296 BLAKE2B 115cf9ea27cec2d8d3a84081c909b72144fd1568bc316677c26f49652dc93b34fba10701678ad4977dcf97a89f7608545fbd2d73c2503c87635b2102e66ae024 SHA512 a3081882995a762645b04faa71082dbd523bee845519007e48b13235aad8a4cd4c74f0d042a6c17710125f945bd970e4b76e95a559274e294d595e04725a4e97
|
||||||
|
DIST gobject-introspection-1.80.1.tar.xz 1040228 BLAKE2B 7a8c1da9bc8aef293deedde1eed97536fa2f42f79a9761ac8ededb0676e46b636545a69e20e63d812844aeb626fa4fb7ce3c7922e51554fdc79560f16443acd9 SHA512 f45c2c1b105086488d974c6134db9910746df8edb187772f2ecd249656a1047c8ac88ba51f5bf7393c3d99c3ace143ecd09be256c2f4d0ceee110c9ad51a839a
|
||||||
|
@ -0,0 +1,30 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
GNOME_ORG_MODULE="gobject-introspection"
|
||||||
|
|
||||||
|
inherit gnome.org
|
||||||
|
|
||||||
|
DESCRIPTION="Build infrastructure for GObject Introspection"
|
||||||
|
HOMEPAGE="https://gi.readthedocs.io/"
|
||||||
|
|
||||||
|
LICENSE="HPND"
|
||||||
|
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"
|
||||||
|
|
||||||
|
RDEPEND="!<${CATEGORY}/${GNOME_ORG_MODULE}-${PV}"
|
||||||
|
# Use !<${PV} because mixing gobject-introspection with different version of -common can cause issues like:
|
||||||
|
# https://forums.gentoo.org/viewtopic-p-7421930.html
|
||||||
|
|
||||||
|
src_configure() { :; }
|
||||||
|
|
||||||
|
src_compile() { :; }
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
insinto /usr/share/aclocal
|
||||||
|
doins m4/introspection.m4
|
||||||
|
|
||||||
|
insinto /usr/share/gobject-introspection-1.0
|
||||||
|
doins Makefile.introspection
|
||||||
|
}
|
@ -1,2 +1,3 @@
|
|||||||
DIST gobject-introspection-1.76.1.tar.xz 1055416 BLAKE2B 2251c34b543c95f95bdec6853c8234db1b2e6271e729eaa5abf28e39c7718b326e0813a1214c62fb4634fd11218c4c856e6651de09081b01c9fcf8f73b8cf316 SHA512 84331a30f8854d2259609650c21aadd6363ea1417a75828bd395f8f4346da1c6d6550cff5f2c9f5f6fd6fbf2a9d27b5880c2ee1616fa905c5f362384d481a916
|
DIST gobject-introspection-1.76.1.tar.xz 1055416 BLAKE2B 2251c34b543c95f95bdec6853c8234db1b2e6271e729eaa5abf28e39c7718b326e0813a1214c62fb4634fd11218c4c856e6651de09081b01c9fcf8f73b8cf316 SHA512 84331a30f8854d2259609650c21aadd6363ea1417a75828bd395f8f4346da1c6d6550cff5f2c9f5f6fd6fbf2a9d27b5880c2ee1616fa905c5f362384d481a916
|
||||||
DIST gobject-introspection-1.78.1.tar.xz 1060296 BLAKE2B 115cf9ea27cec2d8d3a84081c909b72144fd1568bc316677c26f49652dc93b34fba10701678ad4977dcf97a89f7608545fbd2d73c2503c87635b2102e66ae024 SHA512 a3081882995a762645b04faa71082dbd523bee845519007e48b13235aad8a4cd4c74f0d042a6c17710125f945bd970e4b76e95a559274e294d595e04725a4e97
|
DIST gobject-introspection-1.78.1.tar.xz 1060296 BLAKE2B 115cf9ea27cec2d8d3a84081c909b72144fd1568bc316677c26f49652dc93b34fba10701678ad4977dcf97a89f7608545fbd2d73c2503c87635b2102e66ae024 SHA512 a3081882995a762645b04faa71082dbd523bee845519007e48b13235aad8a4cd4c74f0d042a6c17710125f945bd970e4b76e95a559274e294d595e04725a4e97
|
||||||
|
DIST gobject-introspection-1.80.1.tar.xz 1040228 BLAKE2B 7a8c1da9bc8aef293deedde1eed97536fa2f42f79a9761ac8ededb0676e46b636545a69e20e63d812844aeb626fa4fb7ce3c7922e51554fdc79560f16443acd9 SHA512 f45c2c1b105086488d974c6134db9910746df8edb187772f2ecd249656a1047c8ac88ba51f5bf7393c3d99c3ace143ecd09be256c2f4d0ceee110c9ad51a839a
|
||||||
|
@ -0,0 +1,82 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{10..13} )
|
||||||
|
PYTHON_REQ_USE="xml(+)"
|
||||||
|
inherit gnome.org meson python-single-r1 xdg
|
||||||
|
|
||||||
|
DESCRIPTION="Introspection system for GObject-based libraries"
|
||||||
|
HOMEPAGE="https://gi.readthedocs.io/"
|
||||||
|
|
||||||
|
LICENSE="LGPL-2+ GPL-2+"
|
||||||
|
SLOT="0"
|
||||||
|
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
|
||||||
|
IUSE="doctool gtk-doc test"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
||||||
|
|
||||||
|
# virtual/pkgconfig needed at runtime, bug #505408
|
||||||
|
RDEPEND="
|
||||||
|
>=dev-libs/gobject-introspection-common-${PV}
|
||||||
|
>=dev-libs/glib-2.79.0:2
|
||||||
|
dev-libs/libffi:=
|
||||||
|
doctool? (
|
||||||
|
$(python_gen_cond_dep '
|
||||||
|
dev-python/mako[${PYTHON_USEDEP}]
|
||||||
|
dev-python/markdown[${PYTHON_USEDEP}]
|
||||||
|
')
|
||||||
|
)
|
||||||
|
virtual/pkgconfig
|
||||||
|
${PYTHON_DEPS}
|
||||||
|
"
|
||||||
|
# Wants real bison, not app-alternatives/yacc
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
gtk-doc? (
|
||||||
|
>=dev-util/gtk-doc-1.19
|
||||||
|
app-text/docbook-xml-dtd:4.3
|
||||||
|
app-text/docbook-xml-dtd:4.5
|
||||||
|
)
|
||||||
|
sys-devel/bison
|
||||||
|
app-alternatives/lex
|
||||||
|
test? (
|
||||||
|
x11-libs/cairo[glib]
|
||||||
|
$(python_gen_cond_dep '
|
||||||
|
dev-python/mako[${PYTHON_USEDEP}]
|
||||||
|
dev-python/markdown[${PYTHON_USEDEP}]
|
||||||
|
')
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
python-single-r1_pkg_setup
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local emesonargs=(
|
||||||
|
$(meson_feature test cairo)
|
||||||
|
$(meson_feature doctool)
|
||||||
|
#-Dglib_src_dir
|
||||||
|
$(meson_use gtk-doc gtk_doc)
|
||||||
|
#-Dcairo_libname
|
||||||
|
-Dpython="${EPYTHON}"
|
||||||
|
-Dbuild_introspection_data=true
|
||||||
|
#-Dgir_dir_prefix
|
||||||
|
)
|
||||||
|
meson_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
meson_src_install
|
||||||
|
python_fix_shebang "${ED}"/usr/bin/
|
||||||
|
python_optimize "${ED}"/usr/$(get_libdir)/gobject-introspection/giscanner
|
||||||
|
|
||||||
|
# Prevent collision with gobject-introspection-common
|
||||||
|
rm -v "${ED}"/usr/share/aclocal/introspection.m4 \
|
||||||
|
"${ED}"/usr/share/gobject-introspection-1.0/Makefile.introspection || die
|
||||||
|
rmdir "${ED}"/usr/share/aclocal || die
|
||||||
|
}
|
@ -2,7 +2,7 @@ DIST libassuan-2.5.6.tar.bz2 577012 BLAKE2B 462af1eab69e157f65f8134a492cde01dd1e
|
|||||||
DIST libassuan-2.5.6.tar.bz2.sig 119 BLAKE2B 379c6566b2369550bfc4b4616fb71ebdbd9947c183488e2af2261db79be3fc34c5691918f3c560b46c20e02e1aa46c44ee31c1fa3727d191f5801831d34e6721 SHA512 c7765530618128a12f1118278d35d8c33d32b560073dbd691cb92c0d94b75fd5fde65cd3f5db717ddfb907b266fdddc1e7a1e2b15b1b89b7470941dbde8162e3
|
DIST libassuan-2.5.6.tar.bz2.sig 119 BLAKE2B 379c6566b2369550bfc4b4616fb71ebdbd9947c183488e2af2261db79be3fc34c5691918f3c560b46c20e02e1aa46c44ee31c1fa3727d191f5801831d34e6721 SHA512 c7765530618128a12f1118278d35d8c33d32b560073dbd691cb92c0d94b75fd5fde65cd3f5db717ddfb907b266fdddc1e7a1e2b15b1b89b7470941dbde8162e3
|
||||||
DIST libassuan-2.5.7.tar.bz2 605076 BLAKE2B 67cb01b7ed9be13a52a37db439666bb8eb709cc63204fe250ff57854459aa8b36655479e887b285fe9ad799c49e66f176f971ab3a871e114cfb217a1f2968d16 SHA512 ca33bd0325bbebccb63b6a84cc0aa5c85b25c6275a68df83aeb3f3729b2cd38220198a941c3479bd461f16b7ddb6b558c0664697ca3153c7fb430544303d773f
|
DIST libassuan-2.5.7.tar.bz2 605076 BLAKE2B 67cb01b7ed9be13a52a37db439666bb8eb709cc63204fe250ff57854459aa8b36655479e887b285fe9ad799c49e66f176f971ab3a871e114cfb217a1f2968d16 SHA512 ca33bd0325bbebccb63b6a84cc0aa5c85b25c6275a68df83aeb3f3729b2cd38220198a941c3479bd461f16b7ddb6b558c0664697ca3153c7fb430544303d773f
|
||||||
DIST libassuan-2.5.7.tar.bz2.sig 238 BLAKE2B c30005d67cac32857a0dd59dc8a2b9d0d166c6cd6a413742a1d3117c050e9b1b2b96cc4c470fc3e5693ce4c5a422e2cb008b40ef7883a7d039dc9a2234229265 SHA512 b7a798da0e1252acecf8b58b9cc30a5f10fa432d2581c190e4fb064fcf10e9a1b9e07e86c73ee16f0f25ad0e782fac21142875a06487f612268be7f1a09cc1a9
|
DIST libassuan-2.5.7.tar.bz2.sig 238 BLAKE2B c30005d67cac32857a0dd59dc8a2b9d0d166c6cd6a413742a1d3117c050e9b1b2b96cc4c470fc3e5693ce4c5a422e2cb008b40ef7883a7d039dc9a2234229265 SHA512 b7a798da0e1252acecf8b58b9cc30a5f10fa432d2581c190e4fb064fcf10e9a1b9e07e86c73ee16f0f25ad0e782fac21142875a06487f612268be7f1a09cc1a9
|
||||||
DIST libassuan-3.0.1.tar.bz2 592430 BLAKE2B 5d6a7e4e9ce1b196bc7d126786716d95896de6145b8d753e2289bd36cbc96efa216360ac127fadb7be2d577e7fa203c8c8695d4aa11afcca6ed5397dd40209cb SHA512 6914a02c20053bae0fc4c29c5c40655f1cec711983d57fa85e46df34e90b10e33d31256dd50ae7c7faa8d8d750a529bf9072da0cda3bdd77ebfedbc0e26e5e16
|
|
||||||
DIST libassuan-3.0.1.tar.bz2.sig 119 BLAKE2B ce246ca64be1cb185d7e69e3de959bf3268ccf764117cec19a460ddeb2cd56259bd8312e6644a385626449bfcd63c194d83bcfe0c48e830e208c242e174f3273 SHA512 c87cd1690d138f21974c4f7331ccfaf9a1ae57e726699c14f8a81e2e15c5d1ff9a880c428d78d378007cb91bae613432ce25fcfc6e496686d18ff0e6438e4e84
|
|
||||||
DIST libassuan-3.0.0.tar.bz2 592353 BLAKE2B c86f7d62413c6f7a228deb47abe0388790a7c0e3c89b5ee7a7a72f72bea6502d5cbe199b10f06efc885af6fefab358dbe0e61a6f798493dcfcc63df0cfacdb55 SHA512 7c5c95c1b85bef2d4890c068a5a8ea8a1fe0d8def6ab09e5f34fc2746d8808bbb0fc168e3bd66d52ee5ed799dcf9f258f4125cda98c8384f6411bcad8d8b3139
|
DIST libassuan-3.0.0.tar.bz2 592353 BLAKE2B c86f7d62413c6f7a228deb47abe0388790a7c0e3c89b5ee7a7a72f72bea6502d5cbe199b10f06efc885af6fefab358dbe0e61a6f798493dcfcc63df0cfacdb55 SHA512 7c5c95c1b85bef2d4890c068a5a8ea8a1fe0d8def6ab09e5f34fc2746d8808bbb0fc168e3bd66d52ee5ed799dcf9f258f4125cda98c8384f6411bcad8d8b3139
|
||||||
DIST libassuan-3.0.0.tar.bz2.sig 119 BLAKE2B 0717d97dcc5746fced7e7be4e17beb51ac5856722577d58151d802d34dd2d05436da9fcc1d54c132486755f6a241ebb85e95534533e874303b0103786e4e579a SHA512 32ea59e2ccd4b0d35d098bd93a2193f6857a47ebeffd8cd884ea5e0a1abf057e23f0f4ca120e0c74b7369301566a9adc217ec444a2d90a5c5106ec4a4c8df099
|
DIST libassuan-3.0.0.tar.bz2.sig 119 BLAKE2B 0717d97dcc5746fced7e7be4e17beb51ac5856722577d58151d802d34dd2d05436da9fcc1d54c132486755f6a241ebb85e95534533e874303b0103786e4e579a SHA512 32ea59e2ccd4b0d35d098bd93a2193f6857a47ebeffd8cd884ea5e0a1abf057e23f0f4ca120e0c74b7369301566a9adc217ec444a2d90a5c5106ec4a4c8df099
|
||||||
|
DIST libassuan-3.0.1.tar.bz2 592430 BLAKE2B 5d6a7e4e9ce1b196bc7d126786716d95896de6145b8d753e2289bd36cbc96efa216360ac127fadb7be2d577e7fa203c8c8695d4aa11afcca6ed5397dd40209cb SHA512 6914a02c20053bae0fc4c29c5c40655f1cec711983d57fa85e46df34e90b10e33d31256dd50ae7c7faa8d8d750a529bf9072da0cda3bdd77ebfedbc0e26e5e16
|
||||||
|
DIST libassuan-3.0.1.tar.bz2.sig 119 BLAKE2B ce246ca64be1cb185d7e69e3de959bf3268ccf764117cec19a460ddeb2cd56259bd8312e6644a385626449bfcd63c194d83bcfe0c48e830e208c242e174f3273 SHA512 c87cd1690d138f21974c4f7331ccfaf9a1ae57e726699c14f8a81e2e15c5d1ff9a880c428d78d378007cb91bae613432ce25fcfc6e496686d18ff0e6438e4e84
|
||||||
|
@ -10,7 +10,7 @@ EAPI=8
|
|||||||
# any subsequent ones linked within so you're covered for a while.)
|
# any subsequent ones linked within so you're covered for a while.)
|
||||||
|
|
||||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc
|
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc
|
||||||
inherit verify-sig
|
inherit verify-sig libtool
|
||||||
|
|
||||||
DESCRIPTION="IPC library used by GnuPG and GPGME"
|
DESCRIPTION="IPC library used by GnuPG and GPGME"
|
||||||
HOMEPAGE="https://www.gnupg.org/related_software/libassuan/index.en.html"
|
HOMEPAGE="https://www.gnupg.org/related_software/libassuan/index.en.html"
|
||||||
@ -26,6 +26,12 @@ RDEPEND=">=dev-libs/libgpg-error-1.33"
|
|||||||
DEPEND="${RDEPEND}"
|
DEPEND="${RDEPEND}"
|
||||||
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-gnupg )"
|
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-gnupg )"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
# for Solaris shared libraries
|
||||||
|
elibtoolize
|
||||||
|
}
|
||||||
|
|
||||||
src_configure() {
|
src_configure() {
|
||||||
local myeconfargs=(
|
local myeconfargs=(
|
||||||
GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config"
|
GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config"
|
||||||
|
@ -10,7 +10,7 @@ EAPI=8
|
|||||||
# any subsequent ones linked within so you're covered for a while.)
|
# any subsequent ones linked within so you're covered for a while.)
|
||||||
|
|
||||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc
|
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc
|
||||||
inherit verify-sig
|
inherit verify-sig libtool
|
||||||
|
|
||||||
DESCRIPTION="IPC library used by GnuPG and GPGME"
|
DESCRIPTION="IPC library used by GnuPG and GPGME"
|
||||||
HOMEPAGE="https://www.gnupg.org/related_software/libassuan/index.en.html"
|
HOMEPAGE="https://www.gnupg.org/related_software/libassuan/index.en.html"
|
||||||
@ -26,6 +26,12 @@ RDEPEND=">=dev-libs/libgpg-error-1.33"
|
|||||||
DEPEND="${RDEPEND}"
|
DEPEND="${RDEPEND}"
|
||||||
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-gnupg )"
|
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-gnupg )"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
# for Solaris shared libraries
|
||||||
|
elibtoolize
|
||||||
|
}
|
||||||
|
|
||||||
src_configure() {
|
src_configure() {
|
||||||
local myeconfargs=(
|
local myeconfargs=(
|
||||||
GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config"
|
GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config"
|
||||||
|
@ -22,7 +22,7 @@ if [[ ${PV} == 9999 ]] ; then
|
|||||||
inherit git-r3
|
inherit git-r3
|
||||||
else
|
else
|
||||||
SRC_URI="https://github.com/thom311/${PN}/releases/download/${PN}${LIBNL_DIR}/${P/_rc/-rc}.tar.gz"
|
SRC_URI="https://github.com/thom311/${PN}/releases/download/${PN}${LIBNL_DIR}/${P/_rc/-rc}.tar.gz"
|
||||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
|
||||||
|
|
||||||
S="${WORKDIR}/${LIBNL_P}"
|
S="${WORKDIR}/${LIBNL_P}"
|
||||||
fi
|
fi
|
||||||
|
@ -11,7 +11,7 @@ SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
|
|||||||
|
|
||||||
LICENSE="LGPL-2.1+"
|
LICENSE="LGPL-2.1+"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
IUSE="test"
|
IUSE="test"
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ if [[ "${PV}" == *9999 ]]; then
|
|||||||
inherit git-r3
|
inherit git-r3
|
||||||
else
|
else
|
||||||
SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
|
||||||
MY_SLOT=$(ver_cut 1-2)
|
MY_SLOT=$(ver_cut 1-2)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -1,2 +1 @@
|
|||||||
DIST certifi-system-store-3021.3.16.gh.tar.gz 13784 BLAKE2B c0c2322fe298d363c4ef4dada2c0db8837bf7a32d86a7b54a1b45bb3dd3c99d732b2612f25495f4a59d9692f896e2b962e7057fa5fec9998724476db48f90c2a SHA512 44953ed8a3deb5fa4aff3f74afa557219e042acea395e9cdebfd26fd43ce0bdeca07c6b6dfe91977f88852e7674b94337b93c4d78fd2da6f47a6187fa46d6668
|
|
||||||
DIST certifi-system-store-3024.7.22.gh.tar.gz 12441 BLAKE2B 445477dc557f980c5f2edf37d6683204181071e625dac66e9cc3bdeec38ba28ff385d2a92d8162de6af30fc552b64b6c8ad13a06dd6e7f2e26f02d453d69d5c4 SHA512 a4862dbb9f931322f7c62ecd877bee97679cc147acd4585642cbd215f37663f3bde7a73cf846bb0c84077c6cee1c1e4c06da9e2ce44d8dcb1e8fe6065e282feb
|
DIST certifi-system-store-3024.7.22.gh.tar.gz 12441 BLAKE2B 445477dc557f980c5f2edf37d6683204181071e625dac66e9cc3bdeec38ba28ff385d2a92d8162de6af30fc552b64b6c8ad13a06dd6e7f2e26f02d453d69d5c4 SHA512 a4862dbb9f931322f7c62ecd877bee97679cc147acd4585642cbd215f37663f3bde7a73cf846bb0c84077c6cee1c1e4c06da9e2ce44d8dcb1e8fe6065e282feb
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
# Copyright 1999-2024 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
# please keep this ebuild at EAPI 7 -- sys-apps/portage dep
|
|
||||||
EAPI=7
|
|
||||||
|
|
||||||
DISTUTILS_USE_PEP517=setuptools
|
|
||||||
PYTHON_COMPAT=( python3_{10..13} pypy3 )
|
|
||||||
|
|
||||||
inherit distutils-r1
|
|
||||||
|
|
||||||
MY_P=certifi-system-store-${PV}
|
|
||||||
DESCRIPTION="A certifi hack to use system trust store on Linux/FreeBSD"
|
|
||||||
HOMEPAGE="
|
|
||||||
https://github.com/tiran/certifi-system-store/
|
|
||||||
https://pypi.org/project/certifi-system-store/
|
|
||||||
"
|
|
||||||
SRC_URI="
|
|
||||||
https://github.com/tiran/certifi-system-store/archive/v${PV}.tar.gz
|
|
||||||
-> ${MY_P}.gh.tar.gz
|
|
||||||
"
|
|
||||||
S=${WORKDIR}/${MY_P}
|
|
||||||
|
|
||||||
LICENSE="MPL-2.0"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
app-misc/ca-certificates
|
|
||||||
"
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}"/${P}-use-importlib.patch
|
|
||||||
)
|
|
||||||
|
|
||||||
EPYTEST_IGNORE=(
|
|
||||||
# requires Internet
|
|
||||||
tests/test_requests.py
|
|
||||||
)
|
|
||||||
|
|
||||||
distutils_enable_tests pytest
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
sed -i -e "s^/etc^${EPREFIX}/etc^" src/certifi/core.py || die
|
|
||||||
distutils-r1_src_prepare
|
|
||||||
}
|
|
||||||
|
|
||||||
python_compile() {
|
|
||||||
distutils-r1_python_compile
|
|
||||||
cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
|
|
||||||
local distinfo=( certifi_system_store*.dist-info )
|
|
||||||
[[ -d ${distinfo} ]] || die
|
|
||||||
ln -v -s "${distinfo}" "${distinfo/_system_store}" || die
|
|
||||||
}
|
|
@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}
|
|||||||
|
|
||||||
LICENSE="MPL-2.0"
|
LICENSE="MPL-2.0"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
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"
|
||||||
|
|
||||||
RDEPEND="
|
RDEPEND="
|
||||||
app-misc/ca-certificates
|
app-misc/ca-certificates
|
||||||
|
@ -1,164 +0,0 @@
|
|||||||
1. https://github.com/tiran/certifi-system-store/commit/6945f34b7be433dbf22946825cdb225d5d2136d5
|
|
||||||
2. https://github.com/tiran/certifi-system-store/pull/21
|
|
||||||
|
|
||||||
Avoid repeated instances of https://bugs.gentoo.org/878045 when a package
|
|
||||||
has too-strict requirements and then affects other, unrelated Python
|
|
||||||
packages on the system.
|
|
||||||
|
|
||||||
From 6945f34b7be433dbf22946825cdb225d5d2136d5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Christian Heimes <christian@python.org>
|
|
||||||
Date: Tue, 16 Mar 2021 16:00:08 +0100
|
|
||||||
Subject: [PATCH] Relax patch checks (#13)
|
|
||||||
|
|
||||||
- only check that version matches, not files are identical
|
|
||||||
- compare base directories with samefile. This fixes a problem with
|
|
||||||
lib64 symlink in virtual envs.
|
|
||||||
|
|
||||||
Signed-off-by: Christian Heimes <christian@python.org>
|
|
||||||
--- a/src/certifi/_patch.py
|
|
||||||
+++ b/src/certifi/_patch.py
|
|
||||||
@@ -28,7 +28,7 @@ def _patch_dist_info():
|
|
||||||
except pkg_resources.DistributionNotFound:
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
- if os.path.samefile(css_dist.egg_info, certifi_dist.egg_info):
|
|
||||||
+ if certifi_dist.version == css_dist.version:
|
|
||||||
return False, css_dist.egg_info, certifi_dist.egg_info
|
|
||||||
else:
|
|
||||||
# blow away certifi's dist-info
|
|
||||||
@@ -55,7 +55,9 @@ def _patch_dist_info():
|
|
||||||
certifi_dir = os.path.dirname(os.path.abspath(__file__))
|
|
||||||
dist_dir = os.path.abspath(certifi_dist.egg_info)
|
|
||||||
|
|
||||||
- if os.path.dirname(certifi_dir) != os.path.dirname(dist_dir):
|
|
||||||
+ # compare with samefile instead of string comparison to avoid false
|
|
||||||
+ # negatives caused by venv lib64 / lib symlinks
|
|
||||||
+ if not os.path.samefile(os.path.dirname(certifi_dir), os.path.dirname(dist_dir)):
|
|
||||||
raise RuntimeError(
|
|
||||||
f"'{certifi_dir} and {dist_dir} have different parent directories."
|
|
||||||
)
|
|
||||||
|
|
||||||
From cdec6d20b5d716d9853e72a1519a304070395498 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Christian Heimes <christian@python.org>
|
|
||||||
Date: Wed, 22 Jun 2022 10:08:18 +0200
|
|
||||||
Subject: [PATCH] Use importlib on Python 3.8+
|
|
||||||
|
|
||||||
--- a/setup.cfg
|
|
||||||
+++ b/setup.cfg
|
|
||||||
@@ -38,8 +40,9 @@ packages = certifi
|
|
||||||
include_package_data = True
|
|
||||||
zip_safe = True
|
|
||||||
setup_requires = setuptools
|
|
||||||
-# hack to prevent installation on unsupported platforms Windows and macOS
|
|
||||||
install_requires =
|
|
||||||
+ setuptools; python_version < "3.8"
|
|
||||||
+ # hack to prevent installation on unsupported platforms Windows and macOS
|
|
||||||
certifi-system-store > 4000; sys_platform == "win32" or sys_platform == "darwin"
|
|
||||||
python_requires = >=3.6
|
|
||||||
|
|
||||||
--- a/src/certifi/_patch.py
|
|
||||||
+++ b/src/certifi/_patch.py
|
|
||||||
@@ -1,7 +1,31 @@
|
|
||||||
import os
|
|
||||||
import shutil
|
|
||||||
import sys
|
|
||||||
-import pkg_resources
|
|
||||||
+
|
|
||||||
+if sys.version_info >= (3, 8):
|
|
||||||
+ from importlib import metadata
|
|
||||||
+
|
|
||||||
+ PackageNotFoundError = metadata.PackageNotFoundError
|
|
||||||
+
|
|
||||||
+ def _get_distinfo(name):
|
|
||||||
+ dist = metadata.distribution(name)
|
|
||||||
+ egg_info = dist._path
|
|
||||||
+ return dist.version, egg_info
|
|
||||||
+
|
|
||||||
+ def _invalidate_caches():
|
|
||||||
+ pass
|
|
||||||
+
|
|
||||||
+else:
|
|
||||||
+ import pkg_resources
|
|
||||||
+
|
|
||||||
+ PackageNotFoundError = pkg_resources.DistributionNotFound
|
|
||||||
+
|
|
||||||
+ def _get_distinfo(name):
|
|
||||||
+ dist = pkg_resources.get_distribution(name)
|
|
||||||
+ return dist.version, dist.egg_info
|
|
||||||
+
|
|
||||||
+ def _invalidate_caches():
|
|
||||||
+ pkg_resources.working_set.__init__()
|
|
||||||
|
|
||||||
|
|
||||||
def _relsymlink(target, linkname):
|
|
||||||
@@ -22,22 +46,22 @@ def _relsymlink(target, linkname):
|
|
||||||
|
|
||||||
def _patch_dist_info():
|
|
||||||
# distribution object for the canonical project name
|
|
||||||
- css_dist = pkg_resources.get_distribution("certifi_system_store")
|
|
||||||
+ css_version, css_egg_info = _get_distinfo("certifi_system_store")
|
|
||||||
try:
|
|
||||||
- certifi_dist = pkg_resources.get_distribution("certifi")
|
|
||||||
- except pkg_resources.DistributionNotFound:
|
|
||||||
+ certifi_version, certifi_egg_info = _get_distinfo("certifi")
|
|
||||||
+ except PackageNotFoundError:
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
- if certifi_dist.version == css_dist.version:
|
|
||||||
- return False, css_dist.egg_info, certifi_dist.egg_info
|
|
||||||
+ if certifi_version == css_version:
|
|
||||||
+ return False, css_egg_info, certifi_egg_info
|
|
||||||
else:
|
|
||||||
# blow away certifi's dist-info
|
|
||||||
- shutil.rmtree(certifi_dist.egg_info)
|
|
||||||
+ shutil.rmtree(certifi_egg_info)
|
|
||||||
# reset current working set, so pkg_resources can pick up our hack
|
|
||||||
- pkg_resources.working_set.__init__()
|
|
||||||
+ _invalidate_caches()
|
|
||||||
|
|
||||||
# certifi-system-store's dist-info
|
|
||||||
- abs_css_distinfodir = os.path.abspath(css_dist.egg_info)
|
|
||||||
+ abs_css_distinfodir = os.path.abspath(css_egg_info)
|
|
||||||
css_basedir, css_distinfodir = os.path.split(abs_css_distinfodir)
|
|
||||||
|
|
||||||
# certifi's dist-info in same base directory
|
|
||||||
@@ -48,12 +72,12 @@ def _patch_dist_info():
|
|
||||||
_relsymlink(target=abs_css_distinfodir, linkname=abs_certifi_distinfodir)
|
|
||||||
|
|
||||||
# get dist info from refreshed working set
|
|
||||||
- css_dist = pkg_resources.get_distribution("certifi_system_store")
|
|
||||||
- certifi_dist = pkg_resources.get_distribution("certifi")
|
|
||||||
+ css_version, css_egg_info = _get_distinfo("certifi_system_store")
|
|
||||||
+ certifi_version, certifi_egg_info = _get_distinfo("certifi")
|
|
||||||
|
|
||||||
# check that certifi dist-info is in same site-packages as certifi package
|
|
||||||
certifi_dir = os.path.dirname(os.path.abspath(__file__))
|
|
||||||
- dist_dir = os.path.abspath(certifi_dist.egg_info)
|
|
||||||
+ dist_dir = os.path.abspath(certifi_egg_info)
|
|
||||||
|
|
||||||
# compare with samefile instead of string comparison to avoid false
|
|
||||||
# negatives caused by venv lib64 / lib symlinks
|
|
||||||
@@ -65,17 +89,17 @@ def _patch_dist_info():
|
|
||||||
# double check versions
|
|
||||||
_verify_dist_info()
|
|
||||||
|
|
||||||
- return True, css_dist.egg_info, certifi_dist.egg_info
|
|
||||||
+ return True, css_egg_info, certifi_egg_info
|
|
||||||
|
|
||||||
|
|
||||||
def _verify_dist_info():
|
|
||||||
- css_dist = pkg_resources.get_distribution("certifi_system_store")
|
|
||||||
+ css_version, css_egg_info = _get_distinfo("certifi_system_store")
|
|
||||||
try:
|
|
||||||
- certifi_dist = pkg_resources.get_distribution("certifi")
|
|
||||||
- except pkg_resources.DistributionNotFound as e:
|
|
||||||
+ certifi_version, certifi_egg_info = _get_distinfo("certifi")
|
|
||||||
+ except PackageNotFoundError as e:
|
|
||||||
raise RuntimeError(e)
|
|
||||||
else:
|
|
||||||
- if certifi_dist.version != css_dist.version:
|
|
||||||
+ if certifi_version != css_version:
|
|
||||||
raise RuntimeError(
|
|
||||||
f"'certifi.dist-info' is not an alias to "
|
|
||||||
f"'certifi_system_store.dist-info'. "
|
|
||||||
|
|
@ -1 +1,2 @@
|
|||||||
DIST cython-3.0.10.gh.tar.gz 2771679 BLAKE2B f0813afc291bdc4940cd6770a368eca4f6d9fd728e41e9c341970512196154be900600146f98ce1e5a056eaeeda2df2a59fea2a9973c3ec275fe605bfd12e418 SHA512 97aa831cea96c1f3c51653c51fadb0aea8bdfdb076a2c898862637f52b826bcb9162d1b7aade3304c5650d0b894cb1083052f036365d79cd3d390e0486b33ac5
|
DIST cython-3.0.10.gh.tar.gz 2771679 BLAKE2B f0813afc291bdc4940cd6770a368eca4f6d9fd728e41e9c341970512196154be900600146f98ce1e5a056eaeeda2df2a59fea2a9973c3ec275fe605bfd12e418 SHA512 97aa831cea96c1f3c51653c51fadb0aea8bdfdb076a2c898862637f52b826bcb9162d1b7aade3304c5650d0b894cb1083052f036365d79cd3d390e0486b33ac5
|
||||||
|
DIST cython-3.0.11.gh.tar.gz 2775463 BLAKE2B f5f53c328a1b48b04548f1ee7be3988451d2a8e339b785285e2d973e63b37dabc6021f32ba1691ae8dbe9ee7706a5feda399b071b4893a3be4fe4afcd608f46b SHA512 8f7982af5be1db1072b1090257a9d487dc341d79522f442f4608303d18b388349a7d586ec74e66fbffd0ce88c00ca622202729907fe7cefef71828cfd3f68fe6
|
||||||
|
84
sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.0.11.ebuild
vendored
Normal file
84
sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.0.11.ebuild
vendored
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
DISTUTILS_EXT=1
|
||||||
|
DISTUTILS_USE_PEP517=setuptools
|
||||||
|
PYTHON_TESTED=( python3_{10..12} )
|
||||||
|
PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" pypy3 python3_13 )
|
||||||
|
PYTHON_REQ_USE="threads(+)"
|
||||||
|
|
||||||
|
inherit distutils-r1 multiprocessing toolchain-funcs
|
||||||
|
|
||||||
|
MY_P=${P/_rc/rc}
|
||||||
|
DESCRIPTION="A Python to C compiler"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://cython.org/
|
||||||
|
https://github.com/cython/cython/
|
||||||
|
https://pypi.org/project/Cython/
|
||||||
|
"
|
||||||
|
SRC_URI="
|
||||||
|
https://github.com/cython/cython/archive/${PV/_rc/rc}.tar.gz
|
||||||
|
-> ${MY_P}.gh.tar.gz
|
||||||
|
"
|
||||||
|
S=${WORKDIR}/${MY_P}
|
||||||
|
|
||||||
|
LICENSE="Apache-2.0"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
IUSE="test"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
BDEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
test? (
|
||||||
|
$(python_gen_cond_dep '
|
||||||
|
<dev-python/numpy-2[${PYTHON_USEDEP}]
|
||||||
|
' "${PYTHON_TESTED[@]}")
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}/${PN}-0.29.22-spawn-multiprocessing.patch"
|
||||||
|
"${FILESDIR}/${PN}-0.29.23-test_exceptions-py310.patch"
|
||||||
|
"${FILESDIR}/${PN}-0.29.23-pythran-parallel-install.patch"
|
||||||
|
)
|
||||||
|
|
||||||
|
distutils_enable_sphinx docs \
|
||||||
|
dev-python/jinja \
|
||||||
|
dev-python/sphinx-issues \
|
||||||
|
dev-python/sphinx-tabs
|
||||||
|
|
||||||
|
python_compile() {
|
||||||
|
# Python gets confused when it is in sys.path before build.
|
||||||
|
local -x PYTHONPATH=
|
||||||
|
|
||||||
|
distutils-r1_python_compile
|
||||||
|
}
|
||||||
|
|
||||||
|
python_test() {
|
||||||
|
if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
|
||||||
|
einfo "Skipping tests on ${EPYTHON} (xfail)"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Needed to avoid confusing cache tests
|
||||||
|
unset CYTHON_FORCE_REGEN
|
||||||
|
|
||||||
|
tc-export CC
|
||||||
|
# https://github.com/cython/cython/issues/1911
|
||||||
|
local -x CFLAGS="${CFLAGS} -fno-strict-overflow"
|
||||||
|
"${PYTHON}" runtests.py \
|
||||||
|
-vv \
|
||||||
|
-j "$(makeopts_jobs)" \
|
||||||
|
--work-dir "${BUILD_DIR}"/tests \
|
||||||
|
--no-examples \
|
||||||
|
--no-code-style \
|
||||||
|
|| die "Tests fail with ${EPYTHON}"
|
||||||
|
}
|
||||||
|
|
||||||
|
python_install_all() {
|
||||||
|
local DOCS=( CHANGES.rst README.rst ToDo.txt USAGE.txt )
|
||||||
|
distutils-r1_python_install_all
|
||||||
|
}
|
@ -1,4 +1,2 @@
|
|||||||
DIST setuptools-70.3.0-py3-none-any.whl 931070 BLAKE2B 92c424f7efc52f42bb4e04f3ddcc57eb079e2db3cb2af1a142520f656c05895ed5bde816e37f05d96d4c431fb888bf09d576956313667a029b6f8de9afc867b4 SHA512 085d39ef4426aa5f097fbc484595becc16e61ca23fc7da4d2a8bba540a3b82e789e390b176c7151bdc67d01735cce22b1562cdb2e31273225a2d3e275851a4ad
|
|
||||||
DIST setuptools-71.0.4-py3-none-any.whl 2341127 BLAKE2B 6312511c9981ff41e0f8a7eb3da511c9bf35b52af9fb7cbd826d3fecf342008911d8b13a6a0747a1f3d0a8189fcf701d82b03b7b62c73774845d35dc38fb8743 SHA512 a5909a1bbc46924ac8ee89322ed35fbf5562397fc46f5d20d12f6d63dbd94355c4c9718c07597b6d50c7fe46a771b96c2c25f1f2f53d6ff17c4d7cbd9e6bcb09
|
|
||||||
DIST setuptools-71.1.0-py3-none-any.whl 2341722 BLAKE2B 5d2aa4205b91f619a5c6e9596d9ac77aaef4759a98d4a2ee1cd706b01febadf2b94cc891f92640da185ac565d315b141c66f628a213fa199a3ab282250250d34 SHA512 3c2a49f5a3953b525885635bbd93a503e6bc378914da2a2ff658b5800b27848e91ee268d652176c7034f55b8937db10d7e68f3d4d315ca03124ee3054f58e36c
|
DIST setuptools-71.1.0-py3-none-any.whl 2341722 BLAKE2B 5d2aa4205b91f619a5c6e9596d9ac77aaef4759a98d4a2ee1cd706b01febadf2b94cc891f92640da185ac565d315b141c66f628a213fa199a3ab282250250d34 SHA512 3c2a49f5a3953b525885635bbd93a503e6bc378914da2a2ff658b5800b27848e91ee268d652176c7034f55b8937db10d7e68f3d4d315ca03124ee3054f58e36c
|
||||||
DIST setuptools-72.0.0-py3-none-any.whl 2337262 BLAKE2B 10a0ebe1238248e207f3c6a92b671f23be2590ba1574778b97fb2b169eaee9e3274c466083a401db48076524d006b2ff90084e4645852eec4b4ecfc8b70e5cc8 SHA512 ef89ac76684f646850d59438c9cbe2a3eaf393bee0dc0577ab8dd12514ad7b2945ca027be1fb361d4f81f0b3722bc2fa006dcc321616d2d64f8f76c465f0f18f
|
DIST setuptools-72.1.0-py3-none-any.whl 2337965 BLAKE2B 88954b396a47b4223b73313100b9ae0782a16f755660da1abed31316f056beca78401b151f1bec39a791b1c556da09479e527b2316f5d1391e6996f5433c0bc3 SHA512 ef9f855c8ca4d7f6e5eb79f3d40b44830eede4664ec5667415fc676a0b8230a64fb62fda49c1eef6a9c3f89d4724b0717e7d702be99ab61f8763d91feb9a6ea1
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
# Copyright 2022-2024 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
inherit pypi
|
|
||||||
|
|
||||||
DESCRIPTION="Shared setuptools wheel for ensurepip Python module"
|
|
||||||
HOMEPAGE="https://pypi.org/project/setuptools/"
|
|
||||||
SRC_URI="$(pypi_wheel_url "${PN#ensurepip-}")"
|
|
||||||
S=${DISTDIR}
|
|
||||||
|
|
||||||
LICENSE="MIT"
|
|
||||||
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"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
!<dev-python/ensurepip-wheels-100
|
|
||||||
"
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
insinto /usr/lib/python/ensurepip
|
|
||||||
doins "${A}"
|
|
||||||
}
|
|
@ -12,7 +12,7 @@ S=${DISTDIR}
|
|||||||
|
|
||||||
LICENSE="MIT"
|
LICENSE="MIT"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
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"
|
||||||
|
|
||||||
RDEPEND="
|
RDEPEND="
|
||||||
!<dev-python/ensurepip-wheels-100
|
!<dev-python/ensurepip-wheels-100
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
# Copyright 2022-2024 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
inherit pypi
|
|
||||||
|
|
||||||
DESCRIPTION="Shared setuptools wheel for ensurepip Python module"
|
|
||||||
HOMEPAGE="https://pypi.org/project/setuptools/"
|
|
||||||
SRC_URI="$(pypi_wheel_url "${PN#ensurepip-}")"
|
|
||||||
S=${DISTDIR}
|
|
||||||
|
|
||||||
LICENSE="MIT"
|
|
||||||
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"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
!<dev-python/ensurepip-wheels-100
|
|
||||||
"
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
insinto /usr/lib/python/ensurepip
|
|
||||||
doins "${A}"
|
|
||||||
}
|
|
@ -1 +1,2 @@
|
|||||||
DIST jaraco_functools-4.0.1.tar.gz 18169 BLAKE2B 86d5b8020f9c44b8dc373fd2f07a8c5f11cb2a7ec069541763ce92562fb230b557a4c3783e899713136c71e457985bc7e4abb0becde9ca7eaacf7798b5815269 SHA512 04e0ea4719ec8c4439e5a1dd3c3ba0241b21b54b06d53ecc44263046e994aa736b9d196490edd3fd9d7ea997c23c177b30db506b2088bd9de62c637856101982
|
DIST jaraco_functools-4.0.1.tar.gz 18169 BLAKE2B 86d5b8020f9c44b8dc373fd2f07a8c5f11cb2a7ec069541763ce92562fb230b557a4c3783e899713136c71e457985bc7e4abb0becde9ca7eaacf7798b5815269 SHA512 04e0ea4719ec8c4439e5a1dd3c3ba0241b21b54b06d53ecc44263046e994aa736b9d196490edd3fd9d7ea997c23c177b30db506b2088bd9de62c637856101982
|
||||||
|
DIST jaraco_functools-4.0.2.tar.gz 18319 BLAKE2B d7a9e56c5fb2a6a7648bbbf5d8c7d8e6ba9d62ad26fe101d91975eec601ba9532c458458d2cf1fe21eef2c81aac0eab352197d5942c84ec0bef2c89213963e38 SHA512 8571982839ca340aaf5482f7f88afd1aac6472a176f4e37be1febae83d92073d31975e465ec7018d906f764ad47c98b3b6191948d6cbfa42a37845cda81351c2
|
||||||
|
@ -6,23 +6,27 @@ EAPI=8
|
|||||||
|
|
||||||
DISTUTILS_USE_PEP517=flit
|
DISTUTILS_USE_PEP517=flit
|
||||||
PYPI_PN=${PN/-/.}
|
PYPI_PN=${PN/-/.}
|
||||||
PYTHON_COMPAT=( python3_{10..13} pypy3 )
|
PYTHON_COMPAT=( pypy3 python3_{10..13} )
|
||||||
|
|
||||||
inherit distutils-r1 pypi
|
inherit distutils-r1 pypi
|
||||||
|
|
||||||
DESCRIPTION="Text utilities used by other projects by developer jaraco"
|
DESCRIPTION="Additional functions used by other projects by developer jaraco"
|
||||||
HOMEPAGE="
|
HOMEPAGE="
|
||||||
https://github.com/jaraco/jaraco.text/
|
https://github.com/jaraco/jaraco.functools/
|
||||||
https://pypi.org/project/jaraco.text/
|
https://pypi.org/project/jaraco.functools/
|
||||||
"
|
"
|
||||||
|
|
||||||
LICENSE="MIT"
|
LICENSE="MIT"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
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"
|
||||||
|
|
||||||
RDEPEND="
|
RDEPEND="
|
||||||
>=dev-python/jaraco-context-4.1.1-r1[${PYTHON_USEDEP}]
|
>=dev-python/more-itertools-0.12.0-r1[${PYTHON_USEDEP}]
|
||||||
>=dev-python/jaraco-functools-3.5.0-r1[${PYTHON_USEDEP}]
|
"
|
||||||
|
BDEPEND="
|
||||||
|
test? (
|
||||||
|
dev-python/jaraco-classes[${PYTHON_USEDEP}]
|
||||||
|
)
|
||||||
"
|
"
|
||||||
|
|
||||||
distutils_enable_tests pytest
|
distutils_enable_tests pytest
|
||||||
@ -37,20 +41,15 @@ src_configure() {
|
|||||||
build-backend = "flit_core.buildapi"
|
build-backend = "flit_core.buildapi"
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "jaraco.text"
|
name = "jaraco.functools"
|
||||||
version = "${PV}"
|
version = "${PV}"
|
||||||
description = "Module for text manipulation"
|
description = "Functools like those found in stdlib"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# remove CLI tools, they have annoying deps, no entry points
|
|
||||||
# and since there are dashes in their names, they can't be imported
|
|
||||||
# anyway
|
|
||||||
rm jaraco/text/*-*.py || die
|
|
||||||
}
|
}
|
||||||
|
|
||||||
python_install() {
|
python_install() {
|
||||||
distutils-r1_python_install
|
distutils-r1_python_install
|
||||||
# rename to workaround a bug in pkg_resources
|
# rename to workaround a bug in pkg_resources
|
||||||
# https://bugs.gentoo.org/834522
|
# https://bugs.gentoo.org/834522
|
||||||
mv "${D}$(python_get_sitedir)"/jaraco{_,.}text-${PV}.dist-info || die
|
mv "${D}$(python_get_sitedir)"/jaraco{_,.}functools-${PV}.dist-info || die
|
||||||
}
|
}
|
@ -1,3 +1,2 @@
|
|||||||
DIST jaraco_text-3.12.1.tar.gz 16580 BLAKE2B 89f11877052e6b7cacbee4ae53ea140ce337a3a8f25657c558e3634378d20ac70206fd188f8492bdc725ebfec94c7f553ec61a9a3be97738918746fab79a9414 SHA512 4a459e497259de8dc37fbe92eec19973f5d1425f23212221885339a9c7b0f432301978c3c918f4cdd4e1cb3e50b465aad07634ab8cf40f86151d08b150d097e4
|
|
||||||
DIST jaraco_text-3.14.0.tar.gz 16824 BLAKE2B 62a4db8fc6e7148d81dacaab08a3dd3478a74e9cb0377a3b9cbce538575542cd99b42f599af04fdfa62be06d3edb7a7f7f4b27883e91608e8d1033c655ee8304 SHA512 3557876c0ab2e1a54c8ce85663b45c9c143a88bb64a5d9c3e2354b2af229b25983b7977c576f83add1b5bae79cceebb01206c756a354eca24681a57a0ee14fb4
|
DIST jaraco_text-3.14.0.tar.gz 16824 BLAKE2B 62a4db8fc6e7148d81dacaab08a3dd3478a74e9cb0377a3b9cbce538575542cd99b42f599af04fdfa62be06d3edb7a7f7f4b27883e91608e8d1033c655ee8304 SHA512 3557876c0ab2e1a54c8ce85663b45c9c143a88bb64a5d9c3e2354b2af229b25983b7977c576f83add1b5bae79cceebb01206c756a354eca24681a57a0ee14fb4
|
||||||
DIST jaraco_text-4.0.0.tar.gz 17009 BLAKE2B 4aa4381de0988383f4442a1caaab48eae79f2cbe564438b540adfed12d9cfb3680de1e5579029be204024256ba9f3327af225db73f2bd68fed7b2bdd4859a799 SHA512 240c4f6f3df6916e9015479147474a43ea9e858e22821f53263c1ef42c61336c36a34baa9c7384b9d345cf42e10b7499e2efa3c85178a0c2abc47fcd82b63fb3
|
DIST jaraco_text-4.0.0.tar.gz 17009 BLAKE2B 4aa4381de0988383f4442a1caaab48eae79f2cbe564438b540adfed12d9cfb3680de1e5579029be204024256ba9f3327af225db73f2bd68fed7b2bdd4859a799 SHA512 240c4f6f3df6916e9015479147474a43ea9e858e22821f53263c1ef42c61336c36a34baa9c7384b9d345cf42e10b7499e2efa3c85178a0c2abc47fcd82b63fb3
|
||||||
|
@ -18,7 +18,7 @@ HOMEPAGE="
|
|||||||
|
|
||||||
LICENSE="MIT"
|
LICENSE="MIT"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
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"
|
||||||
|
|
||||||
RDEPEND="
|
RDEPEND="
|
||||||
>=dev-python/jaraco-context-4.1.1-r1[${PYTHON_USEDEP}]
|
>=dev-python/jaraco-context-4.1.1-r1[${PYTHON_USEDEP}]
|
||||||
|
@ -1 +1,2 @@
|
|||||||
DIST more-itertools-10.3.0.tar.gz 118147 BLAKE2B 7205050f4cb3e705e3ad7f477baba0e3976b7b48fae44622014efb56fbae85efc1abfee5f6c3075326b53ffbae2bf1e626a524d2cb9241e033a75525e8b747d4 SHA512 fed7c1b085aafd5c50bbc5304f29a098d4ba96e4b253c2e5ab7fd995e895f5cdf63edada93f039b1a71e0f913c0902d8836f73de270bd1048a5fd8ed4f3d45a4
|
DIST more-itertools-10.3.0.tar.gz 118147 BLAKE2B 7205050f4cb3e705e3ad7f477baba0e3976b7b48fae44622014efb56fbae85efc1abfee5f6c3075326b53ffbae2bf1e626a524d2cb9241e033a75525e8b747d4 SHA512 fed7c1b085aafd5c50bbc5304f29a098d4ba96e4b253c2e5ab7fd995e895f5cdf63edada93f039b1a71e0f913c0902d8836f73de270bd1048a5fd8ed4f3d45a4
|
||||||
|
DIST more-itertools-10.4.0.tar.gz 120755 BLAKE2B 26950158c03c3d05cf5e6983941bf087e7799c90aff2928b20cfa9efc80a890f85a9616e95e363c4151d2233fa49b0dfaa381ab6e27d188573162887226ccdff SHA512 03f1a2390cac259138c96b4bd53712f14b8ee09dc83fe32f237835e7cac59ed22d48f6bc97d1734e06fb0fb44511abf72bf5d30b72e757ab2c62ee0b0f02ffb1
|
||||||
|
@ -0,0 +1,24 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
DISTUTILS_USE_PEP517=flit
|
||||||
|
PYPI_NO_NORMALIZE=1
|
||||||
|
PYTHON_COMPAT=( python3_{10..13} pypy3 )
|
||||||
|
|
||||||
|
inherit distutils-r1 pypi
|
||||||
|
|
||||||
|
DESCRIPTION="More routines for operating on iterables, beyond itertools"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://github.com/more-itertools/more-itertools/
|
||||||
|
https://pypi.org/project/more-itertools/
|
||||||
|
"
|
||||||
|
|
||||||
|
LICENSE="MIT"
|
||||||
|
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"
|
||||||
|
|
||||||
|
distutils_enable_sphinx docs \
|
||||||
|
dev-python/sphinx-rtd-theme
|
||||||
|
distutils_enable_tests unittest
|
@ -1,5 +1,2 @@
|
|||||||
DIST setuptools-70.3.0.tar.gz 2333112 BLAKE2B cffe583c1440e2c6ed049fc0c3da70d6b3f43710cec8eeba9b96906d7d3113c0156ac0398f12355e2c0eeeb73dc351e56eea117361c83a4819e255f2b44d01da SHA512 9f330bd9867631da69ee0886551033a6e8ef3cf52cfe38aad9fcd359cbfc2e0d7ee8c85382b29f8d52568c674893dc07f2b2a896afe5154e6140bb3209ee50a0
|
|
||||||
DIST setuptools-71.0.4.tar.gz 2421868 BLAKE2B 29c63bedd87dd4c79ef86d20b6ab4297ae434a59d412813d0ef136c6239b8c77c7ec81b8384319a0e18617d0f8417da3c28d9f8ece40f4509949611c575c35a2 SHA512 efd1996e2720244b8bb385682258be4b2cd67d18b0910aa3f32c23907fad998144ff47455fb8866298e2b879b714624d09efefdcf1bf1d55047ecd3d1e36548e
|
|
||||||
DIST setuptools-71.1.0.tar.gz 2422233 BLAKE2B b98bc2155cdf5acabd52c942a8b7908dbb48b39a3abbf065e42b089e22c3bba27aeee3492c5ecfc1de8b4bdba3c97259cfc609a31cdc11cdaf23f9a2dbab8685 SHA512 2cb817d3dee790ab1e71739b3980361c6dface44fa9c027a92aa3f96e758c034b0330de5eae48365dfa17933fe050f8418cff23fea192b3c616789215e411c1a
|
DIST setuptools-71.1.0.tar.gz 2422233 BLAKE2B b98bc2155cdf5acabd52c942a8b7908dbb48b39a3abbf065e42b089e22c3bba27aeee3492c5ecfc1de8b4bdba3c97259cfc609a31cdc11cdaf23f9a2dbab8685 SHA512 2cb817d3dee790ab1e71739b3980361c6dface44fa9c027a92aa3f96e758c034b0330de5eae48365dfa17933fe050f8418cff23fea192b3c616789215e411c1a
|
||||||
DIST setuptools-72.0.0.tar.gz 2419061 BLAKE2B 70c401d2314f246131e730b700fa0de2351d1bb92c8fe3403ee3db8f3a65bfec958b78b91e47b116cf1c0dac2ec81bb79194835f2be2fc8f1a18638393b7b2e0 SHA512 4ccb06eded99bc5b8f7cc932bc77fe46c17826639e2a8646eef96466cfb1f4c5e5d46c0518831b2f361bfb06956df94aa1d1a682fd45d5dfb553db4db8fe3aaf
|
|
||||||
DIST setuptools-72.1.0.tar.gz 2419487 BLAKE2B df05affc48f8909b6b3b9dc30ef33e31c4b3781e747fea7d23b855d0294976f563e25b268666bfd2c758be66eca00e3e850463ff3d6f26b891185a2a15c8d31c SHA512 d0a34f16dfa6bb9a6df39076cd43528cf854d343f6f801c448ea0ebab2a259aec3d03571e2a26709df6082ed2fcb6c43b86448be556fd559b6af41831b4f38e0
|
DIST setuptools-72.1.0.tar.gz 2419487 BLAKE2B df05affc48f8909b6b3b9dc30ef33e31c4b3781e747fea7d23b855d0294976f563e25b268666bfd2c758be66eca00e3e850463ff3d6f26b891185a2a15c8d31c SHA512 d0a34f16dfa6bb9a6df39076cd43528cf854d343f6f801c448ea0ebab2a259aec3d03571e2a26709df6082ed2fcb6c43b86448be556fd559b6af41831b4f38e0
|
||||||
|
@ -1,135 +0,0 @@
|
|||||||
# Copyright 1999-2024 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
# please bump dev-python/ensurepip-setuptools along with this package!
|
|
||||||
|
|
||||||
DISTUTILS_USE_PEP517=standalone
|
|
||||||
PYTHON_TESTED=( python3_{10..13} pypy3 )
|
|
||||||
PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
|
|
||||||
PYTHON_REQ_USE="xml(+)"
|
|
||||||
|
|
||||||
inherit distutils-r1 pypi
|
|
||||||
|
|
||||||
DESCRIPTION="Collection of extensions to Distutils"
|
|
||||||
HOMEPAGE="
|
|
||||||
https://github.com/pypa/setuptools/
|
|
||||||
https://pypi.org/project/setuptools/
|
|
||||||
"
|
|
||||||
|
|
||||||
LICENSE="MIT"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
|
|
||||||
IUSE="test"
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
# check */_vendor/vendored.txt
|
|
||||||
RDEPEND="
|
|
||||||
!!<dev-python/setuptools-rust-1.8.0
|
|
||||||
>=dev-python/jaraco-text-3.7.0-r1[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/more-itertools-8.12.0-r1[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/ordered-set-4.0.2-r1[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/packaging-24[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/platformdirs-2.6.2-r1[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/wheel-0.37.1-r1[${PYTHON_USEDEP}]
|
|
||||||
$(python_gen_cond_dep '
|
|
||||||
>=dev-python/tomli-2.0.1[${PYTHON_USEDEP}]
|
|
||||||
' 3.10)
|
|
||||||
"
|
|
||||||
BDEPEND="
|
|
||||||
${RDEPEND}
|
|
||||||
test? (
|
|
||||||
$(python_gen_cond_dep '
|
|
||||||
>=dev-python/build-1.0.3[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/ini2toml-0.14[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/filelock-3.4.0[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/jaraco-path-3.2.0[${PYTHON_USEDEP}]
|
|
||||||
dev-python/jaraco-test[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pip[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pip-run[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pyproject-hooks[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pytest[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/pytest-home-0.5[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pytest-subprocess[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pytest-timeout[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pytest-xdist[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/virtualenv-20[${PYTHON_USEDEP}]
|
|
||||||
' "${PYTHON_TESTED[@]}")
|
|
||||||
)
|
|
||||||
"
|
|
||||||
# setuptools-scm is here because installing plugins apparently breaks stuff at
|
|
||||||
# runtime, so let's pull it early. See bug #663324.
|
|
||||||
#
|
|
||||||
# trove-classifiers are optionally used in validation, if they are
|
|
||||||
# installed. Since we really oughtn't block them, let's always enforce
|
|
||||||
# the newest version for the time being to avoid errors.
|
|
||||||
# https://github.com/pypa/setuptools/issues/4459
|
|
||||||
PDEPEND="
|
|
||||||
dev-python/setuptools-scm[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/trove-classifiers-2024.7.2[${PYTHON_USEDEP}]
|
|
||||||
"
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
local PATCHES=(
|
|
||||||
# TODO: remove this when we're 100% PEP517 mode
|
|
||||||
"${FILESDIR}/setuptools-62.4.0-py-compile.patch"
|
|
||||||
)
|
|
||||||
|
|
||||||
distutils-r1_src_prepare
|
|
||||||
|
|
||||||
# breaks tests
|
|
||||||
sed -i -e '/--import-mode/d' pytest.ini || die
|
|
||||||
|
|
||||||
# remove bundled dependencies
|
|
||||||
rm -r */_vendor setuptools/_distutils/_vendor || die
|
|
||||||
|
|
||||||
# remove the ugly */extern hack that breaks on unvendored deps
|
|
||||||
rm -r */extern || die
|
|
||||||
find -name '*.py' -exec sed \
|
|
||||||
-e 's:from \w*[.]\+extern ::' -e 's:\w*[.]\+extern[.]::' \
|
|
||||||
-e 's:from [.]_vendor[.]:from :' \
|
|
||||||
-i {} + || die
|
|
||||||
}
|
|
||||||
|
|
||||||
python_test() {
|
|
||||||
if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
local EPYTEST_DESELECT=(
|
|
||||||
# network
|
|
||||||
# TODO: see if PRE_BUILT_SETUPTOOLS_* helps
|
|
||||||
setuptools/tests/config/test_apply_pyprojecttoml.py::test_apply_pyproject_equivalent_to_setupcfg
|
|
||||||
setuptools/tests/integration/test_pip_install_sdist.py::test_install_sdist
|
|
||||||
setuptools/tests/test_build_meta.py::test_legacy_editable_install
|
|
||||||
setuptools/tests/test_distutils_adoption.py
|
|
||||||
setuptools/tests/test_editable_install.py
|
|
||||||
setuptools/tests/test_setuptools.py::test_its_own_wheel_does_not_contain_tests
|
|
||||||
setuptools/tests/test_virtualenv.py::test_clean_env_install
|
|
||||||
setuptools/tests/test_virtualenv.py::test_no_missing_dependencies
|
|
||||||
setuptools/tests/test_virtualenv.py::test_test_command_install_requirements
|
|
||||||
# TODO
|
|
||||||
setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic
|
|
||||||
setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors
|
|
||||||
setuptools/tests/test_extern.py::test_distribution_picklable
|
|
||||||
# expects bundled deps in virtualenv
|
|
||||||
setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_in_sdist
|
|
||||||
setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_not_in_wheel
|
|
||||||
# fails if python-xlib is installed
|
|
||||||
setuptools/tests/test_easy_install.py::TestSetupRequires::test_setup_requires_with_allow_hosts
|
|
||||||
# TODO, probably some random package
|
|
||||||
setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass
|
|
||||||
# Internet, sigh
|
|
||||||
setuptools/tests/test_integration.py
|
|
||||||
# flaky
|
|
||||||
setuptools/tests/test_easy_install.py::TestSetupRequires::test_setup_requires_with_transitive_extra_dependency
|
|
||||||
setuptools/tests/test_easy_install.py::TestSetupRequires::test_setup_requires_with_distutils_command_dep
|
|
||||||
)
|
|
||||||
|
|
||||||
local EPYTEST_XDIST=1
|
|
||||||
epytest -o tmp_path_retention_policy=all setuptools
|
|
||||||
}
|
|
@ -1,124 +0,0 @@
|
|||||||
# Copyright 1999-2024 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
# please bump dev-python/ensurepip-setuptools along with this package!
|
|
||||||
|
|
||||||
DISTUTILS_USE_PEP517=standalone
|
|
||||||
PYTHON_TESTED=( python3_{10..13} pypy3 )
|
|
||||||
PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
|
|
||||||
PYTHON_REQ_USE="xml(+)"
|
|
||||||
|
|
||||||
inherit distutils-r1 pypi
|
|
||||||
|
|
||||||
DESCRIPTION="Collection of extensions to Distutils"
|
|
||||||
HOMEPAGE="
|
|
||||||
https://github.com/pypa/setuptools/
|
|
||||||
https://pypi.org/project/setuptools/
|
|
||||||
"
|
|
||||||
|
|
||||||
LICENSE="MIT"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
|
|
||||||
IUSE="test"
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
!!<dev-python/setuptools-rust-1.8.0
|
|
||||||
>=dev-python/jaraco-text-3.7.0-r1[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/more-itertools-8.12.0-r1[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/ordered-set-4.0.2-r1[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/packaging-24[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/platformdirs-2.6.2-r1[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/wheel-0.37.1-r1[${PYTHON_USEDEP}]
|
|
||||||
$(python_gen_cond_dep '
|
|
||||||
>=dev-python/tomli-2.0.1[${PYTHON_USEDEP}]
|
|
||||||
' 3.10)
|
|
||||||
"
|
|
||||||
BDEPEND="
|
|
||||||
${RDEPEND}
|
|
||||||
test? (
|
|
||||||
$(python_gen_cond_dep '
|
|
||||||
>=dev-python/build-1.0.3[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/ini2toml-0.14[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/filelock-3.4.0[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/jaraco-path-3.2.0[${PYTHON_USEDEP}]
|
|
||||||
dev-python/jaraco-test[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pip[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pip-run[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pyproject-hooks[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pytest[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/pytest-home-0.5[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pytest-subprocess[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pytest-timeout[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pytest-xdist[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/virtualenv-20[${PYTHON_USEDEP}]
|
|
||||||
' "${PYTHON_TESTED[@]}")
|
|
||||||
)
|
|
||||||
"
|
|
||||||
# setuptools-scm is here because installing plugins apparently breaks stuff at
|
|
||||||
# runtime, so let's pull it early. See bug #663324.
|
|
||||||
#
|
|
||||||
# trove-classifiers are optionally used in validation, if they are
|
|
||||||
# installed. Since we really oughtn't block them, let's always enforce
|
|
||||||
# the newest version for the time being to avoid errors.
|
|
||||||
# https://github.com/pypa/setuptools/issues/4459
|
|
||||||
PDEPEND="
|
|
||||||
dev-python/setuptools-scm[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/trove-classifiers-2024.7.2[${PYTHON_USEDEP}]
|
|
||||||
"
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
local PATCHES=(
|
|
||||||
# TODO: remove this when we're 100% PEP517 mode
|
|
||||||
"${FILESDIR}/setuptools-62.4.0-py-compile.patch"
|
|
||||||
)
|
|
||||||
|
|
||||||
distutils-r1_src_prepare
|
|
||||||
|
|
||||||
# breaks tests
|
|
||||||
sed -i -e '/--import-mode/d' pytest.ini || die
|
|
||||||
|
|
||||||
# remove bundled dependencies
|
|
||||||
rm -r */_vendor setuptools/_distutils/_vendor || die
|
|
||||||
|
|
||||||
find -name '*.py' -exec sed \
|
|
||||||
-e 's:from [.]_vendor[.]:from :' \
|
|
||||||
-i {} + || die
|
|
||||||
}
|
|
||||||
|
|
||||||
python_test() {
|
|
||||||
if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
local EPYTEST_DESELECT=(
|
|
||||||
# network
|
|
||||||
setuptools/tests/test_build_meta.py::test_legacy_editable_install
|
|
||||||
setuptools/tests/test_distutils_adoption.py
|
|
||||||
setuptools/tests/test_editable_install.py
|
|
||||||
setuptools/tests/test_virtualenv.py::test_no_missing_dependencies
|
|
||||||
setuptools/tests/test_virtualenv.py::test_test_command_install_requirements
|
|
||||||
# TODO
|
|
||||||
setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic
|
|
||||||
setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors
|
|
||||||
# expects bundled deps in virtualenv
|
|
||||||
setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_in_sdist
|
|
||||||
setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_not_in_wheel
|
|
||||||
# fails if python-xlib is installed
|
|
||||||
setuptools/tests/test_easy_install.py::TestSetupRequires::test_setup_requires_with_allow_hosts
|
|
||||||
# TODO, probably some random package
|
|
||||||
setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass
|
|
||||||
# broken by unbundling
|
|
||||||
setuptools/tests/test_setuptools.py::test_wheel_includes_vendored_metadata
|
|
||||||
)
|
|
||||||
|
|
||||||
local EPYTEST_XDIST=1
|
|
||||||
local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH}
|
|
||||||
epytest -o tmp_path_retention_policy=all \
|
|
||||||
-m "not uses_network" setuptools
|
|
||||||
}
|
|
@ -21,7 +21,7 @@ HOMEPAGE="
|
|||||||
|
|
||||||
LICENSE="MIT"
|
LICENSE="MIT"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
|
||||||
IUSE="test"
|
IUSE="test"
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
@ -1,124 +0,0 @@
|
|||||||
# Copyright 1999-2024 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
# please bump dev-python/ensurepip-setuptools along with this package!
|
|
||||||
|
|
||||||
DISTUTILS_USE_PEP517=standalone
|
|
||||||
PYTHON_TESTED=( python3_{10..13} pypy3 )
|
|
||||||
PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
|
|
||||||
PYTHON_REQ_USE="xml(+)"
|
|
||||||
|
|
||||||
inherit distutils-r1 pypi
|
|
||||||
|
|
||||||
DESCRIPTION="Collection of extensions to Distutils"
|
|
||||||
HOMEPAGE="
|
|
||||||
https://github.com/pypa/setuptools/
|
|
||||||
https://pypi.org/project/setuptools/
|
|
||||||
"
|
|
||||||
|
|
||||||
LICENSE="MIT"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
|
|
||||||
IUSE="test"
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
!!<dev-python/setuptools-rust-1.8.0
|
|
||||||
>=dev-python/jaraco-text-3.7.0-r1[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/more-itertools-8.12.0-r1[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/ordered-set-4.0.2-r1[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/packaging-24[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/platformdirs-2.6.2-r1[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/wheel-0.37.1-r1[${PYTHON_USEDEP}]
|
|
||||||
$(python_gen_cond_dep '
|
|
||||||
>=dev-python/tomli-2.0.1[${PYTHON_USEDEP}]
|
|
||||||
' 3.10)
|
|
||||||
"
|
|
||||||
BDEPEND="
|
|
||||||
${RDEPEND}
|
|
||||||
test? (
|
|
||||||
$(python_gen_cond_dep '
|
|
||||||
>=dev-python/build-1.0.3[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/ini2toml-0.14[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/filelock-3.4.0[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/jaraco-path-3.2.0[${PYTHON_USEDEP}]
|
|
||||||
dev-python/jaraco-test[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pip[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pip-run[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pyproject-hooks[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pytest[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/pytest-home-0.5[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pytest-subprocess[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pytest-timeout[${PYTHON_USEDEP}]
|
|
||||||
dev-python/pytest-xdist[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/virtualenv-20[${PYTHON_USEDEP}]
|
|
||||||
' "${PYTHON_TESTED[@]}")
|
|
||||||
)
|
|
||||||
"
|
|
||||||
# setuptools-scm is here because installing plugins apparently breaks stuff at
|
|
||||||
# runtime, so let's pull it early. See bug #663324.
|
|
||||||
#
|
|
||||||
# trove-classifiers are optionally used in validation, if they are
|
|
||||||
# installed. Since we really oughtn't block them, let's always enforce
|
|
||||||
# the newest version for the time being to avoid errors.
|
|
||||||
# https://github.com/pypa/setuptools/issues/4459
|
|
||||||
PDEPEND="
|
|
||||||
dev-python/setuptools-scm[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/trove-classifiers-2024.7.2[${PYTHON_USEDEP}]
|
|
||||||
"
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
local PATCHES=(
|
|
||||||
# TODO: remove this when we're 100% PEP517 mode
|
|
||||||
"${FILESDIR}/setuptools-62.4.0-py-compile.patch"
|
|
||||||
)
|
|
||||||
|
|
||||||
distutils-r1_src_prepare
|
|
||||||
|
|
||||||
# breaks tests
|
|
||||||
sed -i -e '/--import-mode/d' pytest.ini || die
|
|
||||||
|
|
||||||
# remove bundled dependencies
|
|
||||||
rm -r */_vendor setuptools/_distutils/_vendor || die
|
|
||||||
|
|
||||||
find -name '*.py' -exec sed \
|
|
||||||
-e 's:from [.]_vendor[.]:from :' \
|
|
||||||
-i {} + || die
|
|
||||||
}
|
|
||||||
|
|
||||||
python_test() {
|
|
||||||
if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
local EPYTEST_DESELECT=(
|
|
||||||
# network
|
|
||||||
setuptools/tests/test_build_meta.py::test_legacy_editable_install
|
|
||||||
setuptools/tests/test_distutils_adoption.py
|
|
||||||
setuptools/tests/test_editable_install.py
|
|
||||||
setuptools/tests/test_virtualenv.py::test_no_missing_dependencies
|
|
||||||
setuptools/tests/test_virtualenv.py::test_test_command_install_requirements
|
|
||||||
# TODO
|
|
||||||
setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic
|
|
||||||
setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors
|
|
||||||
# expects bundled deps in virtualenv
|
|
||||||
setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_in_sdist
|
|
||||||
setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_not_in_wheel
|
|
||||||
# fails if python-xlib is installed
|
|
||||||
setuptools/tests/test_easy_install.py::TestSetupRequires::test_setup_requires_with_allow_hosts
|
|
||||||
# TODO, probably some random package
|
|
||||||
setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass
|
|
||||||
# broken by unbundling
|
|
||||||
setuptools/tests/test_setuptools.py::test_wheel_includes_vendored_metadata
|
|
||||||
)
|
|
||||||
|
|
||||||
local EPYTEST_XDIST=1
|
|
||||||
local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH}
|
|
||||||
epytest -o tmp_path_retention_policy=all \
|
|
||||||
-m "not uses_network" setuptools
|
|
||||||
}
|
|
@ -1 +1,2 @@
|
|||||||
DIST wheel-0.43.0.tar.gz 99109 BLAKE2B 49e77ba84fb0a9b3bd177d994b9b33f8e5fa2bb8528fe1216fd55e6d749e201ac9a76ff24c8178485bff94d0f7840d42e0aa8f940fc3fe7d91c41411fa1cd907 SHA512 b6213c05263026884c07bdc4d529252f0be013c3fc6d0558008b7130ba90d4ef11e57f155f62f5e2528ddcd78d188530b2b7c78acc15b8168f64935fe6e6393b
|
DIST wheel-0.43.0.tar.gz 99109 BLAKE2B 49e77ba84fb0a9b3bd177d994b9b33f8e5fa2bb8528fe1216fd55e6d749e201ac9a76ff24c8178485bff94d0f7840d42e0aa8f940fc3fe7d91c41411fa1cd907 SHA512 b6213c05263026884c07bdc4d529252f0be013c3fc6d0558008b7130ba90d4ef11e57f155f62f5e2528ddcd78d188530b2b7c78acc15b8168f64935fe6e6393b
|
||||||
|
DIST wheel-0.44.0.tar.gz 100733 BLAKE2B 6beefa0875be52fb2dff2921cb87063bcafdf2e31c43963676fbae8aef4e68ea21675aa715f94052edc9f5e8dbbd5e2afe3abc17f521eb36b24fa628b0522bbe SHA512 f0a1efbf70e8a2eebdf7564932bdfa3892940a3fbfc00f256f61be03a51ff9cc5a55570d1d3f5878670be84ab233483453ce754ea46c508574fcf4ec61d480c8
|
||||||
|
45
sdk_container/src/third_party/portage-stable/dev-python/wheel/wheel-0.44.0.ebuild
vendored
Normal file
45
sdk_container/src/third_party/portage-stable/dev-python/wheel/wheel-0.44.0.ebuild
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
DISTUTILS_USE_PEP517=flit
|
||||||
|
PYTHON_COMPAT=( python3_{10..13} pypy3 )
|
||||||
|
|
||||||
|
inherit distutils-r1 pypi
|
||||||
|
|
||||||
|
DESCRIPTION="A built-package format for Python"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://github.com/pypa/wheel/
|
||||||
|
https://pypi.org/project/wheel/
|
||||||
|
"
|
||||||
|
|
||||||
|
LICENSE="MIT"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
dev-python/packaging[${PYTHON_USEDEP}]
|
||||||
|
"
|
||||||
|
BDEPEND="
|
||||||
|
test? (
|
||||||
|
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
EPYTEST_DESELECT=(
|
||||||
|
# fails if any setuptools plugin imported the module first
|
||||||
|
tests/test_bdist_wheel.py::test_deprecated_import
|
||||||
|
)
|
||||||
|
|
||||||
|
distutils_enable_tests pytest
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# unbundle packaging
|
||||||
|
rm -r src/wheel/vendored || die
|
||||||
|
sed -i -e 's:\.vendored\.::' src/wheel/*.py || die
|
||||||
|
sed -i -e 's:wheel\.vendored\.::' tests/*.py || die
|
||||||
|
|
||||||
|
distutils-r1_src_prepare
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
DIST linux-6.10.tar.xz 145142812 BLAKE2B bb243ea7493b9d63aa2df2050a3f1ae2b89ee84a20015239cf157e3f4f51c7ac5efedc8a51132b2d7482f9276ac418de6624831c8a3b806130d9c2d2124c539b SHA512 baa2487954044f991d2ae254d77d14a1f0185dd62c9f0fcaff69f586c9f906823017b8db1c4588f27b076dfa3ebb606929fec859f60ea419e7974330b9289cc2
|
DIST linux-6.10.tar.xz 145142812 BLAKE2B bb243ea7493b9d63aa2df2050a3f1ae2b89ee84a20015239cf157e3f4f51c7ac5efedc8a51132b2d7482f9276ac418de6624831c8a3b806130d9c2d2124c539b SHA512 baa2487954044f991d2ae254d77d14a1f0185dd62c9f0fcaff69f586c9f906823017b8db1c4588f27b076dfa3ebb606929fec859f60ea419e7974330b9289cc2
|
||||||
DIST linux-6.8.tar.xz 142502100 BLAKE2B c6f17f816cea16e629f63e9379b98888713f57b2c5173306926471f139a9d612a0c74e119341f8075390e55e203d787d9edeb4ad5a064b18870f6f0f7ffaafb2 SHA512 5c4eb4aa1d3f7d1ea01c0f7ddeadacdece6e144fd4bdfc16b2b925d3e10dc04de3a6db69320b79a96c3560052616f001d2c09e7a1bb4f7b731e2380a7ecce068
|
DIST linux-6.8.tar.xz 142502100 BLAKE2B c6f17f816cea16e629f63e9379b98888713f57b2c5173306926471f139a9d612a0c74e119341f8075390e55e203d787d9edeb4ad5a064b18870f6f0f7ffaafb2 SHA512 5c4eb4aa1d3f7d1ea01c0f7ddeadacdece6e144fd4bdfc16b2b925d3e10dc04de3a6db69320b79a96c3560052616f001d2c09e7a1bb4f7b731e2380a7ecce068
|
||||||
DIST linux-6.9.tar.xz 144034416 BLAKE2B 4cf86c3cfe6e6534745d42dfaeca59b17ea1168c4e8b615c80e6d8aac735f11283cd85fa992b440b5d4452917e94b9f08397a64af0be5894e3df23c68892377e SHA512 fed3b4cd1fbfb4d94618587c1934273d2ecc8b6e42a3d586ff8a5f24980be930f2ef803aa2923ca3bfa5e4e619f967f3af315368f24fa76f610b10443624a579
|
DIST linux-6.9.tar.xz 144034416 BLAKE2B 4cf86c3cfe6e6534745d42dfaeca59b17ea1168c4e8b615c80e6d8aac735f11283cd85fa992b440b5d4452917e94b9f08397a64af0be5894e3df23c68892377e SHA512 fed3b4cd1fbfb4d94618587c1934273d2ecc8b6e42a3d586ff8a5f24980be930f2ef803aa2923ca3bfa5e4e619f967f3af315368f24fa76f610b10443624a579
|
||||||
DIST patch-6.10.xz 6489436 BLAKE2B 96ab8c23a804ae0d3dc5834efa19f9f9d8b4cd1e84d7519670e3e5213af0ef016079d4c0624f45d4163af7b250cb5ab30aec28bb62433d7480ab3d3a11e681b6 SHA512 adbc39835028aa67aa949310c9d44d83c6fddf6a12fbc305960d935bd7e2009e1ff813f2388cd59e59bf64efb2e1df51a6d266594fa12e75074d7346c78bb2eb
|
DIST patch-6.10.3.xz 252260 BLAKE2B 65acf62ff3e326d5ebb9f47067b626a25295fde2057531cf43e537601c42b0110419c0d6eee8c7c24e5d6d88ecf30e9b76d516efb925c91817504c52780b4df1 SHA512 28ad0de2086ca4b59637f8a7c69c6f5436b53235bf52c9ee18f428748c773780c54606a5c96d71614cadd49c707a8bb11843a7393da078e15d7f554244bfb9ca
|
||||||
DIST patch-6.8.2.xz 247244 BLAKE2B a85078230548543c38550a5546689d0b44a54208cdad591ab34e10dec9348ce2f74e45bf85f373b14977d40556067e2e2c17ac4b6791fbb8aaba98feccd3cdac SHA512 a8e32b89f7680670c69c62f356846bb65b57614f979114627a9a2f945d7dc97c921d30197dffa993e5b18e499ba8c7196046ffdf0e721528a5378d1ee65a9ba5
|
DIST patch-6.8.2.xz 247244 BLAKE2B a85078230548543c38550a5546689d0b44a54208cdad591ab34e10dec9348ce2f74e45bf85f373b14977d40556067e2e2c17ac4b6791fbb8aaba98feccd3cdac SHA512 a8e32b89f7680670c69c62f356846bb65b57614f979114627a9a2f945d7dc97c921d30197dffa993e5b18e499ba8c7196046ffdf0e721528a5378d1ee65a9ba5
|
||||||
DIST patch-6.9.2.xz 16184 BLAKE2B 8a37e96c253b55b57c86f1654f2ea8bf65af96b1b38213e90032cb918bb8eea992d6ddbfa6a6774a229ab2e2288ab57bdb6cbad6e7e393c123f24850e06847c9 SHA512 a27af24f0caaa5de3811b6db5acc2d72b96df9ebb5c44bad99a949d871fb06c6ffd2be10cfc35b246d430c7be2291701f802aed47eaa8818ad12b8818a60f3ec
|
DIST patch-6.9.2.xz 16184 BLAKE2B 8a37e96c253b55b57c86f1654f2ea8bf65af96b1b38213e90032cb918bb8eea992d6ddbfa6a6774a229ab2e2288ab57bdb6cbad6e7e393c123f24850e06847c9 SHA512 a27af24f0caaa5de3811b6db5acc2d72b96df9ebb5c44bad99a949d871fb06c6ffd2be10cfc35b246d430c7be2291701f802aed47eaa8818ad12b8818a60f3ec
|
||||||
|
@ -3,22 +3,22 @@
|
|||||||
|
|
||||||
EAPI=8
|
EAPI=8
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{10..12} )
|
PYTHON_COMPAT=( python3_{10..13} )
|
||||||
|
|
||||||
inherit estack linux-info optfeature python-any-r1 bash-completion-r1 toolchain-funcs
|
inherit estack linux-info optfeature python-any-r1 bash-completion-r1 toolchain-funcs
|
||||||
|
|
||||||
DESCRIPTION="Tool for inspection and simple manipulation of eBPF programs and maps"
|
DESCRIPTION="Tool for inspection and simple manipulation of eBPF programs and maps"
|
||||||
HOMEPAGE="https://kernel.org/"
|
HOMEPAGE="https://kernel.org/"
|
||||||
|
|
||||||
# Use PV to indicate the full kernel version
|
# Use LINUX_VERSION to specify the full kernel version triple (x.y.z)
|
||||||
MY_PV=6.10
|
LINUX_VERSION=6.10.3
|
||||||
LINUX_V="${MY_PV:0:1}.x"
|
LINUX_VER=$(ver_cut 1-2 ${LINUX_VERSION})
|
||||||
LINUX_VER=$(ver_cut 1-2 ${MY_PV})
|
LINUX_V="${LINUX_VERSION:0:1}.x"
|
||||||
|
|
||||||
LINUX_SOURCES="linux-${LINUX_VER}.tar.xz"
|
LINUX_SOURCES="linux-${LINUX_VER}.tar.xz"
|
||||||
SRC_URI+="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}"
|
SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}"
|
||||||
|
|
||||||
LINUX_PATCH=patch-${MY_PV}.xz
|
LINUX_PATCH="patch-${LINUX_VERSION}.xz"
|
||||||
SRC_URI+=" https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_PATCH}"
|
SRC_URI+=" https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_PATCH}"
|
||||||
|
|
||||||
S_K="${WORKDIR}/linux-${LINUX_VER}"
|
S_K="${WORKDIR}/linux-${LINUX_VER}"
|
||||||
@ -53,8 +53,10 @@ CONFIG_CHECK="~DEBUG_INFO_BTF"
|
|||||||
# it's building from the same tarball, please keep it in sync with perf
|
# it's building from the same tarball, please keep it in sync with perf
|
||||||
src_unpack() {
|
src_unpack() {
|
||||||
local paths=(
|
local paths=(
|
||||||
kernel/bpf tools/{arch,bpf,build,include,lib,perf,scripts}
|
'arch/*/include/*' 'arch/*/lib/*' 'arch/*/tools/*' 'include/*'
|
||||||
scripts include lib "arch/*/include" "arch/*/lib" "arch/*/tools"
|
'kernel/bpf/*' 'lib/*' 'scripts/*' 'tools/arch/*' 'tools/bpf/*'
|
||||||
|
'tools/build/*' 'tools/include/*' 'tools/lib/*' 'tools/perf/*'
|
||||||
|
'tools/scripts/*'
|
||||||
)
|
)
|
||||||
|
|
||||||
# We expect the tar implementation to support the -j and --wildcards option
|
# We expect the tar implementation to support the -j and --wildcards option
|
||||||
@ -65,8 +67,9 @@ src_unpack() {
|
|||||||
if [[ -n ${LINUX_PATCH} ]] ; then
|
if [[ -n ${LINUX_PATCH} ]] ; then
|
||||||
eshopts_push -o noglob
|
eshopts_push -o noglob
|
||||||
ebegin "Filtering partial source patch"
|
ebegin "Filtering partial source patch"
|
||||||
filterdiff -p1 ${paths[@]/#/-i } -z "${DISTDIR}"/${LINUX_PATCH} \
|
xzcat "${DISTDIR}"/${LINUX_PATCH} | filterdiff -p1 ${paths[@]/#/-i} > ${P}.patch
|
||||||
> ${P}.patch
|
test -s ${P}.patch
|
||||||
|
assert -n "Unpacking to ${P} from ${DISTDIR}/${LINUX_PATCH} failed"
|
||||||
eend $? || die "filterdiff failed"
|
eend $? || die "filterdiff failed"
|
||||||
eshopts_pop
|
eshopts_pop
|
||||||
fi
|
fi
|
@ -2,3 +2,4 @@ DIST glib-2.76.4.tar.xz 5274356 BLAKE2B c9ceb514ea81e1e6ab2d0efc82c48c0d8ae6c997
|
|||||||
DIST glib-2.78.3.tar.xz 5321388 BLAKE2B 6ef754b15e1ce4377eafdfc317025ac65c3d8010a8816a0cef786cec9da2af9f7d7d1da735c971ab8c848b2dcec050330e5b0fdceb156a36d739848e6160cd19 SHA512 9c1af75fb973d23ce0286d5b7836eea45f9628c148ced5ac10e10abceda05024ae4c57f01439824d3287d986527500b7b959828b630b6e4a3314b5224f4d7246
|
DIST glib-2.78.3.tar.xz 5321388 BLAKE2B 6ef754b15e1ce4377eafdfc317025ac65c3d8010a8816a0cef786cec9da2af9f7d7d1da735c971ab8c848b2dcec050330e5b0fdceb156a36d739848e6160cd19 SHA512 9c1af75fb973d23ce0286d5b7836eea45f9628c148ced5ac10e10abceda05024ae4c57f01439824d3287d986527500b7b959828b630b6e4a3314b5224f4d7246
|
||||||
DIST glib-2.78.4.tar.xz 5331892 BLAKE2B ada7134597d7d863e581a2bb1097ac07a63b27b53309aadab5b1d3686327ee718ad8c5c07af3fce5cc12328e728fc2c4df5fd9e69f431fa00dc634062ef7f926 SHA512 6f3a06e10e7373a2dbf0688512de4126472fb73cbec488b7983b5ffecff09c64d7e1ca462f892e8f215d3d277d103ca802bad7ef0bd0f91edf26fc6ce67187b6
|
DIST glib-2.78.4.tar.xz 5331892 BLAKE2B ada7134597d7d863e581a2bb1097ac07a63b27b53309aadab5b1d3686327ee718ad8c5c07af3fce5cc12328e728fc2c4df5fd9e69f431fa00dc634062ef7f926 SHA512 6f3a06e10e7373a2dbf0688512de4126472fb73cbec488b7983b5ffecff09c64d7e1ca462f892e8f215d3d277d103ca802bad7ef0bd0f91edf26fc6ce67187b6
|
||||||
DIST glib-2.78.6.tar.xz 5344808 BLAKE2B d16173794c4aa019459cf8c8c84d4107fb8393828f41ec6c631b9452890f34f9022ed848a543ed134fdb8a575faef6b941cea3e05de512eb1b7a99f7601a2485 SHA512 8d75f8fd77b6309215ca86a0c7648878efe11051f18b279840c137669017ea4066388f8682367e4ea3f154333d833c9dc28ccd4a66a91f0c3854a40a2838f8da
|
DIST glib-2.78.6.tar.xz 5344808 BLAKE2B d16173794c4aa019459cf8c8c84d4107fb8393828f41ec6c631b9452890f34f9022ed848a543ed134fdb8a575faef6b941cea3e05de512eb1b7a99f7601a2485 SHA512 8d75f8fd77b6309215ca86a0c7648878efe11051f18b279840c137669017ea4066388f8682367e4ea3f154333d833c9dc28ccd4a66a91f0c3854a40a2838f8da
|
||||||
|
DIST glib-2.80.4.tar.xz 5535760 BLAKE2B 1d2b301703b27a5c2def370e1d44b4f7b08a940969563ce9d8d7c38e5f0a32163b95523e09cedc4a57b2af84a57d63dc545abcb31b61a8066ef62ba396fb4f3c SHA512 efdc7dd1e0609b0f2d988a8cc8fd4a3fda96e8450832f905f7686f9063b727cb996e0e4e638aca62f60b76f9f04be62e089a615413e64cf298c7eef26e074570
|
||||||
|
80
sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.80.4.ebuild
vendored
Normal file
80
sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.80.4.ebuild
vendored
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
GNOME_ORG_MODULE="glib"
|
||||||
|
PYTHON_COMPAT=( python3_{10..13} )
|
||||||
|
PYTHON_REQ_USE="xml(+)"
|
||||||
|
DISTUTILS_USE_PEP517=setuptools
|
||||||
|
DISTUTILS_SINGLE_IMPL=1
|
||||||
|
|
||||||
|
inherit gnome.org distutils-r1
|
||||||
|
|
||||||
|
DESCRIPTION="GDBus code and documentation generator"
|
||||||
|
HOMEPAGE="https://www.gtk.org/"
|
||||||
|
|
||||||
|
S="${WORKDIR}/glib-${PV}/gio/gdbus-2.0/codegen"
|
||||||
|
|
||||||
|
LICENSE="LGPL-2+"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
${PYTHON_DEPS}
|
||||||
|
$(python_gen_cond_dep '
|
||||||
|
dev-python/packaging[${PYTHON_USEDEP}]
|
||||||
|
')
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
dev-libs/libxslt
|
||||||
|
app-text/docbook-xsl-stylesheets
|
||||||
|
>=dev-python/docutils-0.21.1
|
||||||
|
"
|
||||||
|
|
||||||
|
python_prepare_all() {
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}/${PN}-2.56.1-sitedir.patch"
|
||||||
|
)
|
||||||
|
distutils-r1_python_prepare_all
|
||||||
|
|
||||||
|
local MAJOR_VERSION=$(ver_cut 1)
|
||||||
|
local MINOR_VERSION=$(ver_cut 2)
|
||||||
|
sed -e 's:@PYTHON@:python:' gdbus-codegen.in > gdbus-codegen || die
|
||||||
|
sed -e "s:@VERSION@:${PV}:" \
|
||||||
|
-e "s:@MAJOR_VERSION@:${MAJOR_VERSION}:" \
|
||||||
|
-e "s:@MINOR_VERSION@:${MINOR_VERSION}:" config.py.in > config.py || die
|
||||||
|
cp "${FILESDIR}/setup.py-2.32.4" setup.py || die "cp failed"
|
||||||
|
sed -e "s/@PV@/${PV}/" -i setup.py || die "sed setup.py failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
do_xsltproc_command() {
|
||||||
|
# Taken from meson.build for manual manpage building - keep in sync (also copied to dev-util/glib-utils)
|
||||||
|
xsltproc \
|
||||||
|
--nonet \
|
||||||
|
--stringparam man.output.quietly 1 \
|
||||||
|
--stringparam funcsynopsis.style ansi \
|
||||||
|
--stringparam man.th.extra1.suppress 1 \
|
||||||
|
--stringparam man.authors.section.enabled 0 \
|
||||||
|
--stringparam man.copyright.section.enabled 0 \
|
||||||
|
-o "${2}" \
|
||||||
|
http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl \
|
||||||
|
"${1}" || die "manpage generation failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
distutils-r1_src_compile
|
||||||
|
rst2man \
|
||||||
|
"${WORKDIR}/glib-${PV}/docs/reference/gio/gdbus-codegen.rst" \
|
||||||
|
"${WORKDIR}/glib-${PV}/docs/reference/gio/gdbus-codegen.1"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
einfo "Skipping tests. This package is tested by dev-libs/glib"
|
||||||
|
einfo "when merged with FEATURES=test"
|
||||||
|
}
|
||||||
|
|
||||||
|
python_install_all() {
|
||||||
|
distutils-r1_python_install_all # no-op, but prevents QA warning
|
||||||
|
doman "${WORKDIR}/glib-${PV}/docs/reference/gio/gdbus-codegen.1"
|
||||||
|
}
|
@ -2,3 +2,4 @@ DIST glib-2.76.4.tar.xz 5274356 BLAKE2B c9ceb514ea81e1e6ab2d0efc82c48c0d8ae6c997
|
|||||||
DIST glib-2.78.3.tar.xz 5321388 BLAKE2B 6ef754b15e1ce4377eafdfc317025ac65c3d8010a8816a0cef786cec9da2af9f7d7d1da735c971ab8c848b2dcec050330e5b0fdceb156a36d739848e6160cd19 SHA512 9c1af75fb973d23ce0286d5b7836eea45f9628c148ced5ac10e10abceda05024ae4c57f01439824d3287d986527500b7b959828b630b6e4a3314b5224f4d7246
|
DIST glib-2.78.3.tar.xz 5321388 BLAKE2B 6ef754b15e1ce4377eafdfc317025ac65c3d8010a8816a0cef786cec9da2af9f7d7d1da735c971ab8c848b2dcec050330e5b0fdceb156a36d739848e6160cd19 SHA512 9c1af75fb973d23ce0286d5b7836eea45f9628c148ced5ac10e10abceda05024ae4c57f01439824d3287d986527500b7b959828b630b6e4a3314b5224f4d7246
|
||||||
DIST glib-2.78.4.tar.xz 5331892 BLAKE2B ada7134597d7d863e581a2bb1097ac07a63b27b53309aadab5b1d3686327ee718ad8c5c07af3fce5cc12328e728fc2c4df5fd9e69f431fa00dc634062ef7f926 SHA512 6f3a06e10e7373a2dbf0688512de4126472fb73cbec488b7983b5ffecff09c64d7e1ca462f892e8f215d3d277d103ca802bad7ef0bd0f91edf26fc6ce67187b6
|
DIST glib-2.78.4.tar.xz 5331892 BLAKE2B ada7134597d7d863e581a2bb1097ac07a63b27b53309aadab5b1d3686327ee718ad8c5c07af3fce5cc12328e728fc2c4df5fd9e69f431fa00dc634062ef7f926 SHA512 6f3a06e10e7373a2dbf0688512de4126472fb73cbec488b7983b5ffecff09c64d7e1ca462f892e8f215d3d277d103ca802bad7ef0bd0f91edf26fc6ce67187b6
|
||||||
DIST glib-2.78.6.tar.xz 5344808 BLAKE2B d16173794c4aa019459cf8c8c84d4107fb8393828f41ec6c631b9452890f34f9022ed848a543ed134fdb8a575faef6b941cea3e05de512eb1b7a99f7601a2485 SHA512 8d75f8fd77b6309215ca86a0c7648878efe11051f18b279840c137669017ea4066388f8682367e4ea3f154333d833c9dc28ccd4a66a91f0c3854a40a2838f8da
|
DIST glib-2.78.6.tar.xz 5344808 BLAKE2B d16173794c4aa019459cf8c8c84d4107fb8393828f41ec6c631b9452890f34f9022ed848a543ed134fdb8a575faef6b941cea3e05de512eb1b7a99f7601a2485 SHA512 8d75f8fd77b6309215ca86a0c7648878efe11051f18b279840c137669017ea4066388f8682367e4ea3f154333d833c9dc28ccd4a66a91f0c3854a40a2838f8da
|
||||||
|
DIST glib-2.80.4.tar.xz 5535760 BLAKE2B 1d2b301703b27a5c2def370e1d44b4f7b08a940969563ce9d8d7c38e5f0a32163b95523e09cedc4a57b2af84a57d63dc545abcb31b61a8066ef62ba396fb4f3c SHA512 efdc7dd1e0609b0f2d988a8cc8fd4a3fda96e8450832f905f7686f9063b727cb996e0e4e638aca62f60b76f9f04be62e089a615413e64cf298c7eef26e074570
|
||||||
|
53
sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.80.4.ebuild
vendored
Normal file
53
sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.80.4.ebuild
vendored
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
PYTHON_COMPAT=( python3_{10..13} )
|
||||||
|
GNOME_ORG_MODULE="glib"
|
||||||
|
|
||||||
|
inherit gnome.org python-single-r1
|
||||||
|
|
||||||
|
DESCRIPTION="Build utilities for GLib using projects"
|
||||||
|
HOMEPAGE="https://www.gtk.org/"
|
||||||
|
|
||||||
|
LICENSE="LGPL-2.1+"
|
||||||
|
SLOT="0" # /usr/bin utilities that can't be parallel installed by their nature
|
||||||
|
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
||||||
|
|
||||||
|
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"
|
||||||
|
|
||||||
|
RDEPEND="${PYTHON_DEPS}"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
>=dev-python/docutils-0.21.1
|
||||||
|
"
|
||||||
|
|
||||||
|
src_configure() { :; }
|
||||||
|
|
||||||
|
do_rst2man_command() {
|
||||||
|
rst2man \
|
||||||
|
--syntax-highlight=none \
|
||||||
|
"${1}" "${2}" || die "manpage generation failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
sed -e "s:@VERSION@:${PV}:g;s:@PYTHON@:python:g" gobject/glib-genmarshal.in > gobject/glib-genmarshal || die
|
||||||
|
sed -e "s:@VERSION@:${PV}:g;s:@PYTHON@:python:g" gobject/glib-mkenums.in > gobject/glib-mkenums || die
|
||||||
|
sed -e "s:@GLIB_VERSION@:${PV}:g;s:@PYTHON@:python:g" glib/gtester-report.in > glib/gtester-report || die
|
||||||
|
do_rst2man_command docs/reference/gobject/glib-genmarshal.rst docs/reference/gobject/glib-genmarshal.1
|
||||||
|
do_rst2man_command docs/reference/gobject/glib-mkenums.rst docs/reference/gobject/glib-mkenums.1
|
||||||
|
do_rst2man_command docs/reference/glib/gtester-report.rst docs/reference/glib/gtester-report.1
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
python_fix_shebang gobject/glib-genmarshal
|
||||||
|
python_fix_shebang gobject/glib-mkenums
|
||||||
|
python_fix_shebang glib/gtester-report
|
||||||
|
exeinto /usr/bin
|
||||||
|
doexe gobject/glib-genmarshal
|
||||||
|
doexe gobject/glib-mkenums
|
||||||
|
doexe glib/gtester-report
|
||||||
|
doman docs/reference/gobject/glib-genmarshal.1
|
||||||
|
doman docs/reference/gobject/glib-mkenums.1
|
||||||
|
doman docs/reference/glib/gtester-report.1
|
||||||
|
}
|
@ -1,5 +1,4 @@
|
|||||||
DIST linux-6.10.tar.xz 145142812 BLAKE2B bb243ea7493b9d63aa2df2050a3f1ae2b89ee84a20015239cf157e3f4f51c7ac5efedc8a51132b2d7482f9276ac418de6624831c8a3b806130d9c2d2124c539b SHA512 baa2487954044f991d2ae254d77d14a1f0185dd62c9f0fcaff69f586c9f906823017b8db1c4588f27b076dfa3ebb606929fec859f60ea419e7974330b9289cc2
|
DIST linux-6.10.tar.xz 145142812 BLAKE2B bb243ea7493b9d63aa2df2050a3f1ae2b89ee84a20015239cf157e3f4f51c7ac5efedc8a51132b2d7482f9276ac418de6624831c8a3b806130d9c2d2124c539b SHA512 baa2487954044f991d2ae254d77d14a1f0185dd62c9f0fcaff69f586c9f906823017b8db1c4588f27b076dfa3ebb606929fec859f60ea419e7974330b9289cc2
|
||||||
DIST linux-6.3.tar.xz 136891752 BLAKE2B f1887c8924efa8d0cb14c4e604affd0b0168bcf20f56a37c027405c7bc11aba822a43fcb38ccb55a81a26f747d00e1ab5a6554818affbf1e1c7ef5220150fc69 SHA512 768979440f4907ba64d4481b383d6101faf208f27a0b897156123aa278c5743fe3c4f61945b2541429c532d45382aaee8899ea9d44a1d2895bfbb79bfd937f65
|
DIST linux-6.3.tar.xz 136891752 BLAKE2B f1887c8924efa8d0cb14c4e604affd0b0168bcf20f56a37c027405c7bc11aba822a43fcb38ccb55a81a26f747d00e1ab5a6554818affbf1e1c7ef5220150fc69 SHA512 768979440f4907ba64d4481b383d6101faf208f27a0b897156123aa278c5743fe3c4f61945b2541429c532d45382aaee8899ea9d44a1d2895bfbb79bfd937f65
|
||||||
DIST linux-6.7.tar.xz 141406528 BLAKE2B cecdbd19905e43e485ab73b352ced18b37f2a138c97a6956cadcda5d3d271001117dc1cf896b166ff019fc7f405f9539e2ed0d6112b0890efb04d182adf4fd0e SHA512 de06de556191614bd9daf077ae239360352a402bab407748e67f1e5108c92fd933e451707840ab22fe0f9976db3d1e1b60ca9d41cf894f015ca09b3f652b74ad
|
DIST linux-6.7.tar.xz 141406528 BLAKE2B cecdbd19905e43e485ab73b352ced18b37f2a138c97a6956cadcda5d3d271001117dc1cf896b166ff019fc7f405f9539e2ed0d6112b0890efb04d182adf4fd0e SHA512 de06de556191614bd9daf077ae239360352a402bab407748e67f1e5108c92fd933e451707840ab22fe0f9976db3d1e1b60ca9d41cf894f015ca09b3f652b74ad
|
||||||
DIST linux-6.8.tar.xz 142502100 BLAKE2B c6f17f816cea16e629f63e9379b98888713f57b2c5173306926471f139a9d612a0c74e119341f8075390e55e203d787d9edeb4ad5a064b18870f6f0f7ffaafb2 SHA512 5c4eb4aa1d3f7d1ea01c0f7ddeadacdece6e144fd4bdfc16b2b925d3e10dc04de3a6db69320b79a96c3560052616f001d2c09e7a1bb4f7b731e2380a7ecce068
|
DIST patch-6.10.3.xz 252260 BLAKE2B 65acf62ff3e326d5ebb9f47067b626a25295fde2057531cf43e537601c42b0110419c0d6eee8c7c24e5d6d88ecf30e9b76d516efb925c91817504c52780b4df1 SHA512 28ad0de2086ca4b59637f8a7c69c6f5436b53235bf52c9ee18f428748c773780c54606a5c96d71614cadd49c707a8bb11843a7393da078e15d7f554244bfb9ca
|
||||||
DIST linux-6.9.tar.xz 144034416 BLAKE2B 4cf86c3cfe6e6534745d42dfaeca59b17ea1168c4e8b615c80e6d8aac735f11283cd85fa992b440b5d4452917e94b9f08397a64af0be5894e3df23c68892377e SHA512 fed3b4cd1fbfb4d94618587c1934273d2ecc8b6e42a3d586ff8a5f24980be930f2ef803aa2923ca3bfa5e4e619f967f3af315368f24fa76f610b10443624a579
|
|
||||||
|
456
sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.10-bpf-capstone.patch
vendored
Normal file
456
sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.10-bpf-capstone.patch
vendored
Normal file
@ -0,0 +1,456 @@
|
|||||||
|
From a7728af2f25fe99ee72d211bb4ddec17a8601f5f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Guilherme Amadio <amadio@gentoo.org>
|
||||||
|
Date: Tue, 6 Aug 2024 11:34:05 +0200
|
||||||
|
Subject: [PATCH] Fix bug #936439. Replay of upstream commit onto v6.10.
|
||||||
|
|
||||||
|
Signed-off-by: Guilherme Amadio <amadio@gentoo.org>
|
||||||
|
---
|
||||||
|
tools/perf/util/Build | 1 +
|
||||||
|
tools/perf/util/disasm.c | 187 +--------------------------------
|
||||||
|
tools/perf/util/disasm_bpf.c | 197 +++++++++++++++++++++++++++++++++++
|
||||||
|
tools/perf/util/disasm_bpf.h | 12 +++
|
||||||
|
4 files changed, 211 insertions(+), 186 deletions(-)
|
||||||
|
create mode 100644 tools/perf/util/disasm_bpf.c
|
||||||
|
create mode 100644 tools/perf/util/disasm_bpf.h
|
||||||
|
|
||||||
|
diff --git a/tools/perf/util/Build b/tools/perf/util/Build
|
||||||
|
index da64efd8718f..384c4e06b838 100644
|
||||||
|
--- a/tools/perf/util/Build
|
||||||
|
+++ b/tools/perf/util/Build
|
||||||
|
@@ -13,6 +13,7 @@ perf-y += copyfile.o
|
||||||
|
perf-y += ctype.o
|
||||||
|
perf-y += db-export.o
|
||||||
|
perf-y += disasm.o
|
||||||
|
+perf-y += disasm_bpf.o
|
||||||
|
perf-y += env.o
|
||||||
|
perf-y += event.o
|
||||||
|
perf-y += evlist.o
|
||||||
|
diff --git a/tools/perf/util/disasm.c b/tools/perf/util/disasm.c
|
||||||
|
index 72aec8f61b94..766cbd005f32 100644
|
||||||
|
--- a/tools/perf/util/disasm.c
|
||||||
|
+++ b/tools/perf/util/disasm.c
|
||||||
|
@@ -15,6 +15,7 @@
|
||||||
|
#include "build-id.h"
|
||||||
|
#include "debug.h"
|
||||||
|
#include "disasm.h"
|
||||||
|
+#include "disasm_bpf.h"
|
||||||
|
#include "dso.h"
|
||||||
|
#include "env.h"
|
||||||
|
#include "evsel.h"
|
||||||
|
@@ -1164,192 +1165,6 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
|
||||||
|
-#define PACKAGE "perf"
|
||||||
|
-#include <bfd.h>
|
||||||
|
-#include <dis-asm.h>
|
||||||
|
-#include <bpf/bpf.h>
|
||||||
|
-#include <bpf/btf.h>
|
||||||
|
-#include <bpf/libbpf.h>
|
||||||
|
-#include <linux/btf.h>
|
||||||
|
-#include <tools/dis-asm-compat.h>
|
||||||
|
-
|
||||||
|
-#include "bpf-event.h"
|
||||||
|
-#include "bpf-utils.h"
|
||||||
|
-
|
||||||
|
-static int symbol__disassemble_bpf(struct symbol *sym,
|
||||||
|
- struct annotate_args *args)
|
||||||
|
-{
|
||||||
|
- struct annotation *notes = symbol__annotation(sym);
|
||||||
|
- struct bpf_prog_linfo *prog_linfo = NULL;
|
||||||
|
- struct bpf_prog_info_node *info_node;
|
||||||
|
- int len = sym->end - sym->start;
|
||||||
|
- disassembler_ftype disassemble;
|
||||||
|
- struct map *map = args->ms.map;
|
||||||
|
- struct perf_bpil *info_linear;
|
||||||
|
- struct disassemble_info info;
|
||||||
|
- struct dso *dso = map__dso(map);
|
||||||
|
- int pc = 0, count, sub_id;
|
||||||
|
- struct btf *btf = NULL;
|
||||||
|
- char tpath[PATH_MAX];
|
||||||
|
- size_t buf_size;
|
||||||
|
- int nr_skip = 0;
|
||||||
|
- char *buf;
|
||||||
|
- bfd *bfdf;
|
||||||
|
- int ret;
|
||||||
|
- FILE *s;
|
||||||
|
-
|
||||||
|
- if (dso->binary_type != DSO_BINARY_TYPE__BPF_PROG_INFO)
|
||||||
|
- return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE;
|
||||||
|
-
|
||||||
|
- pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__,
|
||||||
|
- sym->name, sym->start, sym->end - sym->start);
|
||||||
|
-
|
||||||
|
- memset(tpath, 0, sizeof(tpath));
|
||||||
|
- perf_exe(tpath, sizeof(tpath));
|
||||||
|
-
|
||||||
|
- bfdf = bfd_openr(tpath, NULL);
|
||||||
|
- if (bfdf == NULL)
|
||||||
|
- abort();
|
||||||
|
-
|
||||||
|
- if (!bfd_check_format(bfdf, bfd_object))
|
||||||
|
- abort();
|
||||||
|
-
|
||||||
|
- s = open_memstream(&buf, &buf_size);
|
||||||
|
- if (!s) {
|
||||||
|
- ret = errno;
|
||||||
|
- goto out;
|
||||||
|
- }
|
||||||
|
- init_disassemble_info_compat(&info, s,
|
||||||
|
- (fprintf_ftype) fprintf,
|
||||||
|
- fprintf_styled);
|
||||||
|
- info.arch = bfd_get_arch(bfdf);
|
||||||
|
- info.mach = bfd_get_mach(bfdf);
|
||||||
|
-
|
||||||
|
- info_node = perf_env__find_bpf_prog_info(dso->bpf_prog.env,
|
||||||
|
- dso->bpf_prog.id);
|
||||||
|
- if (!info_node) {
|
||||||
|
- ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF;
|
||||||
|
- goto out;
|
||||||
|
- }
|
||||||
|
- info_linear = info_node->info_linear;
|
||||||
|
- sub_id = dso->bpf_prog.sub_id;
|
||||||
|
-
|
||||||
|
- info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns);
|
||||||
|
- info.buffer_length = info_linear->info.jited_prog_len;
|
||||||
|
-
|
||||||
|
- if (info_linear->info.nr_line_info)
|
||||||
|
- prog_linfo = bpf_prog_linfo__new(&info_linear->info);
|
||||||
|
-
|
||||||
|
- if (info_linear->info.btf_id) {
|
||||||
|
- struct btf_node *node;
|
||||||
|
-
|
||||||
|
- node = perf_env__find_btf(dso->bpf_prog.env,
|
||||||
|
- info_linear->info.btf_id);
|
||||||
|
- if (node)
|
||||||
|
- btf = btf__new((__u8 *)(node->data),
|
||||||
|
- node->data_size);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- disassemble_init_for_target(&info);
|
||||||
|
-
|
||||||
|
-#ifdef DISASM_FOUR_ARGS_SIGNATURE
|
||||||
|
- disassemble = disassembler(info.arch,
|
||||||
|
- bfd_big_endian(bfdf),
|
||||||
|
- info.mach,
|
||||||
|
- bfdf);
|
||||||
|
-#else
|
||||||
|
- disassemble = disassembler(bfdf);
|
||||||
|
-#endif
|
||||||
|
- if (disassemble == NULL)
|
||||||
|
- abort();
|
||||||
|
-
|
||||||
|
- fflush(s);
|
||||||
|
- do {
|
||||||
|
- const struct bpf_line_info *linfo = NULL;
|
||||||
|
- struct disasm_line *dl;
|
||||||
|
- size_t prev_buf_size;
|
||||||
|
- const char *srcline;
|
||||||
|
- u64 addr;
|
||||||
|
-
|
||||||
|
- addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id];
|
||||||
|
- count = disassemble(pc, &info);
|
||||||
|
-
|
||||||
|
- if (prog_linfo)
|
||||||
|
- linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo,
|
||||||
|
- addr, sub_id,
|
||||||
|
- nr_skip);
|
||||||
|
-
|
||||||
|
- if (linfo && btf) {
|
||||||
|
- srcline = btf__name_by_offset(btf, linfo->line_off);
|
||||||
|
- nr_skip++;
|
||||||
|
- } else
|
||||||
|
- srcline = NULL;
|
||||||
|
-
|
||||||
|
- fprintf(s, "\n");
|
||||||
|
- prev_buf_size = buf_size;
|
||||||
|
- fflush(s);
|
||||||
|
-
|
||||||
|
- if (!annotate_opts.hide_src_code && srcline) {
|
||||||
|
- args->offset = -1;
|
||||||
|
- args->line = strdup(srcline);
|
||||||
|
- args->line_nr = 0;
|
||||||
|
- args->fileloc = NULL;
|
||||||
|
- args->ms.sym = sym;
|
||||||
|
- dl = disasm_line__new(args);
|
||||||
|
- if (dl) {
|
||||||
|
- annotation_line__add(&dl->al,
|
||||||
|
- ¬es->src->source);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- args->offset = pc;
|
||||||
|
- args->line = buf + prev_buf_size;
|
||||||
|
- args->line_nr = 0;
|
||||||
|
- args->fileloc = NULL;
|
||||||
|
- args->ms.sym = sym;
|
||||||
|
- dl = disasm_line__new(args);
|
||||||
|
- if (dl)
|
||||||
|
- annotation_line__add(&dl->al, ¬es->src->source);
|
||||||
|
-
|
||||||
|
- pc += count;
|
||||||
|
- } while (count > 0 && pc < len);
|
||||||
|
-
|
||||||
|
- ret = 0;
|
||||||
|
-out:
|
||||||
|
- free(prog_linfo);
|
||||||
|
- btf__free(btf);
|
||||||
|
- fclose(s);
|
||||||
|
- bfd_close(bfdf);
|
||||||
|
- return ret;
|
||||||
|
-}
|
||||||
|
-#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
|
||||||
|
-static int symbol__disassemble_bpf(struct symbol *sym __maybe_unused,
|
||||||
|
- struct annotate_args *args __maybe_unused)
|
||||||
|
-{
|
||||||
|
- return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF;
|
||||||
|
-}
|
||||||
|
-#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
|
||||||
|
-
|
||||||
|
-static int
|
||||||
|
-symbol__disassemble_bpf_image(struct symbol *sym,
|
||||||
|
- struct annotate_args *args)
|
||||||
|
-{
|
||||||
|
- struct annotation *notes = symbol__annotation(sym);
|
||||||
|
- struct disasm_line *dl;
|
||||||
|
-
|
||||||
|
- args->offset = -1;
|
||||||
|
- args->line = strdup("to be implemented");
|
||||||
|
- args->line_nr = 0;
|
||||||
|
- args->fileloc = NULL;
|
||||||
|
- dl = disasm_line__new(args);
|
||||||
|
- if (dl)
|
||||||
|
- annotation_line__add(&dl->al, ¬es->src->source);
|
||||||
|
-
|
||||||
|
- zfree(&args->line);
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
#ifdef HAVE_LIBCAPSTONE_SUPPORT
|
||||||
|
#include <capstone/capstone.h>
|
||||||
|
|
||||||
|
diff --git a/tools/perf/util/disasm_bpf.c b/tools/perf/util/disasm_bpf.c
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000000..010b961c4ae9
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tools/perf/util/disasm_bpf.c
|
||||||
|
@@ -0,0 +1,197 @@
|
||||||
|
+// SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
+
|
||||||
|
+#include "util/annotate.h"
|
||||||
|
+#include "util/disasm_bpf.h"
|
||||||
|
+#include "util/symbol.h"
|
||||||
|
+#include <linux/zalloc.h>
|
||||||
|
+#include <string.h>
|
||||||
|
+
|
||||||
|
+#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
|
||||||
|
+#define PACKAGE "perf"
|
||||||
|
+#include <bfd.h>
|
||||||
|
+#include <bpf/bpf.h>
|
||||||
|
+#include <bpf/btf.h>
|
||||||
|
+#include <bpf/libbpf.h>
|
||||||
|
+#include <dis-asm.h>
|
||||||
|
+#include <errno.h>
|
||||||
|
+#include <linux/btf.h>
|
||||||
|
+#include <tools/dis-asm-compat.h>
|
||||||
|
+
|
||||||
|
+#include "util/bpf-event.h"
|
||||||
|
+#include "util/bpf-utils.h"
|
||||||
|
+#include "util/debug.h"
|
||||||
|
+#include "util/dso.h"
|
||||||
|
+#include "util/map.h"
|
||||||
|
+#include "util/env.h"
|
||||||
|
+#include "util/util.h"
|
||||||
|
+
|
||||||
|
+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args)
|
||||||
|
+{
|
||||||
|
+ struct annotation *notes = symbol__annotation(sym);
|
||||||
|
+ struct bpf_prog_linfo *prog_linfo = NULL;
|
||||||
|
+ struct bpf_prog_info_node *info_node;
|
||||||
|
+ int len = sym->end - sym->start;
|
||||||
|
+ disassembler_ftype disassemble;
|
||||||
|
+ struct map *map = args->ms.map;
|
||||||
|
+ struct perf_bpil *info_linear;
|
||||||
|
+ struct disassemble_info info;
|
||||||
|
+ struct dso *dso = map__dso(map);
|
||||||
|
+ int pc = 0, count, sub_id;
|
||||||
|
+ struct btf *btf = NULL;
|
||||||
|
+ char tpath[PATH_MAX];
|
||||||
|
+ size_t buf_size;
|
||||||
|
+ int nr_skip = 0;
|
||||||
|
+ char *buf;
|
||||||
|
+ bfd *bfdf;
|
||||||
|
+ int ret;
|
||||||
|
+ FILE *s;
|
||||||
|
+
|
||||||
|
+ if (dso->binary_type != DSO_BINARY_TYPE__BPF_PROG_INFO)
|
||||||
|
+ return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE;
|
||||||
|
+
|
||||||
|
+ pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__,
|
||||||
|
+ sym->name, sym->start, sym->end - sym->start);
|
||||||
|
+
|
||||||
|
+ memset(tpath, 0, sizeof(tpath));
|
||||||
|
+ perf_exe(tpath, sizeof(tpath));
|
||||||
|
+
|
||||||
|
+ bfdf = bfd_openr(tpath, NULL);
|
||||||
|
+ if (bfdf == NULL)
|
||||||
|
+ abort();
|
||||||
|
+
|
||||||
|
+ if (!bfd_check_format(bfdf, bfd_object))
|
||||||
|
+ abort();
|
||||||
|
+
|
||||||
|
+ s = open_memstream(&buf, &buf_size);
|
||||||
|
+ if (!s) {
|
||||||
|
+ ret = errno;
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+ init_disassemble_info_compat(&info, s,
|
||||||
|
+ (fprintf_ftype) fprintf,
|
||||||
|
+ fprintf_styled);
|
||||||
|
+ info.arch = bfd_get_arch(bfdf);
|
||||||
|
+ info.mach = bfd_get_mach(bfdf);
|
||||||
|
+
|
||||||
|
+ info_node = perf_env__find_bpf_prog_info(dso->bpf_prog.env,
|
||||||
|
+ dso->bpf_prog.id);
|
||||||
|
+ if (!info_node) {
|
||||||
|
+ ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF;
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+ info_linear = info_node->info_linear;
|
||||||
|
+ sub_id = dso->bpf_prog.sub_id;
|
||||||
|
+
|
||||||
|
+ info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns);
|
||||||
|
+ info.buffer_length = info_linear->info.jited_prog_len;
|
||||||
|
+
|
||||||
|
+ if (info_linear->info.nr_line_info)
|
||||||
|
+ prog_linfo = bpf_prog_linfo__new(&info_linear->info);
|
||||||
|
+
|
||||||
|
+ if (info_linear->info.btf_id) {
|
||||||
|
+ struct btf_node *node;
|
||||||
|
+
|
||||||
|
+ node = perf_env__find_btf(dso->bpf_prog.env,
|
||||||
|
+ info_linear->info.btf_id);
|
||||||
|
+ if (node)
|
||||||
|
+ btf = btf__new((__u8 *)(node->data),
|
||||||
|
+ node->data_size);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ disassemble_init_for_target(&info);
|
||||||
|
+
|
||||||
|
+#ifdef DISASM_FOUR_ARGS_SIGNATURE
|
||||||
|
+ disassemble = disassembler(info.arch,
|
||||||
|
+ bfd_big_endian(bfdf),
|
||||||
|
+ info.mach,
|
||||||
|
+ bfdf);
|
||||||
|
+#else
|
||||||
|
+ disassemble = disassembler(bfdf);
|
||||||
|
+#endif
|
||||||
|
+ if (disassemble == NULL)
|
||||||
|
+ abort();
|
||||||
|
+
|
||||||
|
+ fflush(s);
|
||||||
|
+ do {
|
||||||
|
+ const struct bpf_line_info *linfo = NULL;
|
||||||
|
+ struct disasm_line *dl;
|
||||||
|
+ size_t prev_buf_size;
|
||||||
|
+ const char *srcline;
|
||||||
|
+ u64 addr;
|
||||||
|
+
|
||||||
|
+ addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id];
|
||||||
|
+ count = disassemble(pc, &info);
|
||||||
|
+
|
||||||
|
+ if (prog_linfo)
|
||||||
|
+ linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo,
|
||||||
|
+ addr, sub_id,
|
||||||
|
+ nr_skip);
|
||||||
|
+
|
||||||
|
+ if (linfo && btf) {
|
||||||
|
+ srcline = btf__name_by_offset(btf, linfo->line_off);
|
||||||
|
+ nr_skip++;
|
||||||
|
+ } else
|
||||||
|
+ srcline = NULL;
|
||||||
|
+
|
||||||
|
+ fprintf(s, "\n");
|
||||||
|
+ prev_buf_size = buf_size;
|
||||||
|
+ fflush(s);
|
||||||
|
+
|
||||||
|
+ if (!annotate_opts.hide_src_code && srcline) {
|
||||||
|
+ args->offset = -1;
|
||||||
|
+ args->line = strdup(srcline);
|
||||||
|
+ args->line_nr = 0;
|
||||||
|
+ args->fileloc = NULL;
|
||||||
|
+ args->ms.sym = sym;
|
||||||
|
+ dl = disasm_line__new(args);
|
||||||
|
+ if (dl) {
|
||||||
|
+ annotation_line__add(&dl->al,
|
||||||
|
+ ¬es->src->source);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ args->offset = pc;
|
||||||
|
+ args->line = buf + prev_buf_size;
|
||||||
|
+ args->line_nr = 0;
|
||||||
|
+ args->fileloc = NULL;
|
||||||
|
+ args->ms.sym = sym;
|
||||||
|
+ dl = disasm_line__new(args);
|
||||||
|
+ if (dl)
|
||||||
|
+ annotation_line__add(&dl->al, ¬es->src->source);
|
||||||
|
+
|
||||||
|
+ pc += count;
|
||||||
|
+ } while (count > 0 && pc < len);
|
||||||
|
+
|
||||||
|
+ ret = 0;
|
||||||
|
+out:
|
||||||
|
+ free(prog_linfo);
|
||||||
|
+ btf__free(btf);
|
||||||
|
+ fclose(s);
|
||||||
|
+ bfd_close(bfdf);
|
||||||
|
+ return ret;
|
||||||
|
+}
|
||||||
|
+#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
|
||||||
|
+int symbol__disassemble_bpf(struct symbol *sym __maybe_unused,
|
||||||
|
+ struct annotate_args *args __maybe_unused)
|
||||||
|
+{
|
||||||
|
+ return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF;
|
||||||
|
+}
|
||||||
|
+#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
|
||||||
|
+
|
||||||
|
+int symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args)
|
||||||
|
+{
|
||||||
|
+ struct annotation *notes = symbol__annotation(sym);
|
||||||
|
+ struct disasm_line *dl;
|
||||||
|
+
|
||||||
|
+ args->offset = -1;
|
||||||
|
+ args->line = strdup("to be implemented");
|
||||||
|
+ args->line_nr = 0;
|
||||||
|
+ args->fileloc = NULL;
|
||||||
|
+ dl = disasm_line__new(args);
|
||||||
|
+ if (dl)
|
||||||
|
+ annotation_line__add(&dl->al, ¬es->src->source);
|
||||||
|
+
|
||||||
|
+ zfree(&args->line);
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
diff --git a/tools/perf/util/disasm_bpf.h b/tools/perf/util/disasm_bpf.h
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000000..2ecb19545388
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tools/perf/util/disasm_bpf.h
|
||||||
|
@@ -0,0 +1,12 @@
|
||||||
|
+// SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
+
|
||||||
|
+#ifndef __PERF_DISASM_BPF_H
|
||||||
|
+#define __PERF_DISASM_BPF_H
|
||||||
|
+
|
||||||
|
+struct symbol;
|
||||||
|
+struct annotate_args;
|
||||||
|
+
|
||||||
|
+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args);
|
||||||
|
+int symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args);
|
||||||
|
+
|
||||||
|
+#endif /* __PERF_DISASM_BPF_H */
|
||||||
|
--
|
||||||
|
2.45.2
|
||||||
|
|
455
sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.10.3-bpf-capstone.patch
vendored
Normal file
455
sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.10.3-bpf-capstone.patch
vendored
Normal file
@ -0,0 +1,455 @@
|
|||||||
|
From b382a433e0178d3840a8fb4b05ba3dbecba075fa Mon Sep 17 00:00:00 2001
|
||||||
|
From: Guilherme Amadio <amadio@gentoo.org>
|
||||||
|
Date: Tue, 6 Aug 2024 11:34:05 +0200
|
||||||
|
Subject: [PATCH] Fix bug #936439. Replay of upstream commit onto v6.10.3.
|
||||||
|
|
||||||
|
Signed-off-by: Guilherme Amadio <amadio@gentoo.org>
|
||||||
|
---
|
||||||
|
tools/perf/util/Build | 1 +
|
||||||
|
tools/perf/util/disasm.c | 187 +--------------------------------
|
||||||
|
tools/perf/util/disasm_bpf.c | 196 +++++++++++++++++++++++++++++++++++
|
||||||
|
tools/perf/util/disasm_bpf.h | 12 +++
|
||||||
|
4 files changed, 210 insertions(+), 186 deletions(-)
|
||||||
|
create mode 100644 tools/perf/util/disasm_bpf.c
|
||||||
|
create mode 100644 tools/perf/util/disasm_bpf.h
|
||||||
|
|
||||||
|
diff --git a/tools/perf/util/Build b/tools/perf/util/Build
|
||||||
|
index da64efd8718f..384c4e06b838 100644
|
||||||
|
--- a/tools/perf/util/Build
|
||||||
|
+++ b/tools/perf/util/Build
|
||||||
|
@@ -13,6 +13,7 @@ perf-y += copyfile.o
|
||||||
|
perf-y += ctype.o
|
||||||
|
perf-y += db-export.o
|
||||||
|
perf-y += disasm.o
|
||||||
|
+perf-y += disasm_bpf.o
|
||||||
|
perf-y += env.o
|
||||||
|
perf-y += event.o
|
||||||
|
perf-y += evlist.o
|
||||||
|
diff --git a/tools/perf/util/disasm.c b/tools/perf/util/disasm.c
|
||||||
|
index e10558b79504..766cbd005f32 100644
|
||||||
|
--- a/tools/perf/util/disasm.c
|
||||||
|
+++ b/tools/perf/util/disasm.c
|
||||||
|
@@ -15,6 +15,7 @@
|
||||||
|
#include "build-id.h"
|
||||||
|
#include "debug.h"
|
||||||
|
#include "disasm.h"
|
||||||
|
+#include "disasm_bpf.h"
|
||||||
|
#include "dso.h"
|
||||||
|
#include "env.h"
|
||||||
|
#include "evsel.h"
|
||||||
|
@@ -1164,192 +1165,6 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
|
||||||
|
-#define PACKAGE "perf"
|
||||||
|
-#include <bfd.h>
|
||||||
|
-#include <dis-asm.h>
|
||||||
|
-#include <bpf/bpf.h>
|
||||||
|
-#include <bpf/btf.h>
|
||||||
|
-#include <bpf/libbpf.h>
|
||||||
|
-#include <linux/btf.h>
|
||||||
|
-#include <tools/dis-asm-compat.h>
|
||||||
|
-
|
||||||
|
-#include "bpf-event.h"
|
||||||
|
-#include "bpf-utils.h"
|
||||||
|
-
|
||||||
|
-static int symbol__disassemble_bpf(struct symbol *sym,
|
||||||
|
- struct annotate_args *args)
|
||||||
|
-{
|
||||||
|
- struct annotation *notes = symbol__annotation(sym);
|
||||||
|
- struct bpf_prog_linfo *prog_linfo = NULL;
|
||||||
|
- struct bpf_prog_info_node *info_node;
|
||||||
|
- int len = sym->end - sym->start;
|
||||||
|
- disassembler_ftype disassemble;
|
||||||
|
- struct map *map = args->ms.map;
|
||||||
|
- struct perf_bpil *info_linear;
|
||||||
|
- struct disassemble_info info;
|
||||||
|
- struct dso *dso = map__dso(map);
|
||||||
|
- int pc = 0, count, sub_id;
|
||||||
|
- struct btf *btf = NULL;
|
||||||
|
- char tpath[PATH_MAX];
|
||||||
|
- size_t buf_size;
|
||||||
|
- int nr_skip = 0;
|
||||||
|
- char *buf;
|
||||||
|
- bfd *bfdf;
|
||||||
|
- int ret;
|
||||||
|
- FILE *s;
|
||||||
|
-
|
||||||
|
- if (dso__binary_type(dso) != DSO_BINARY_TYPE__BPF_PROG_INFO)
|
||||||
|
- return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE;
|
||||||
|
-
|
||||||
|
- pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__,
|
||||||
|
- sym->name, sym->start, sym->end - sym->start);
|
||||||
|
-
|
||||||
|
- memset(tpath, 0, sizeof(tpath));
|
||||||
|
- perf_exe(tpath, sizeof(tpath));
|
||||||
|
-
|
||||||
|
- bfdf = bfd_openr(tpath, NULL);
|
||||||
|
- if (bfdf == NULL)
|
||||||
|
- abort();
|
||||||
|
-
|
||||||
|
- if (!bfd_check_format(bfdf, bfd_object))
|
||||||
|
- abort();
|
||||||
|
-
|
||||||
|
- s = open_memstream(&buf, &buf_size);
|
||||||
|
- if (!s) {
|
||||||
|
- ret = errno;
|
||||||
|
- goto out;
|
||||||
|
- }
|
||||||
|
- init_disassemble_info_compat(&info, s,
|
||||||
|
- (fprintf_ftype) fprintf,
|
||||||
|
- fprintf_styled);
|
||||||
|
- info.arch = bfd_get_arch(bfdf);
|
||||||
|
- info.mach = bfd_get_mach(bfdf);
|
||||||
|
-
|
||||||
|
- info_node = perf_env__find_bpf_prog_info(dso__bpf_prog(dso)->env,
|
||||||
|
- dso__bpf_prog(dso)->id);
|
||||||
|
- if (!info_node) {
|
||||||
|
- ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF;
|
||||||
|
- goto out;
|
||||||
|
- }
|
||||||
|
- info_linear = info_node->info_linear;
|
||||||
|
- sub_id = dso__bpf_prog(dso)->sub_id;
|
||||||
|
-
|
||||||
|
- info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns);
|
||||||
|
- info.buffer_length = info_linear->info.jited_prog_len;
|
||||||
|
-
|
||||||
|
- if (info_linear->info.nr_line_info)
|
||||||
|
- prog_linfo = bpf_prog_linfo__new(&info_linear->info);
|
||||||
|
-
|
||||||
|
- if (info_linear->info.btf_id) {
|
||||||
|
- struct btf_node *node;
|
||||||
|
-
|
||||||
|
- node = perf_env__find_btf(dso__bpf_prog(dso)->env,
|
||||||
|
- info_linear->info.btf_id);
|
||||||
|
- if (node)
|
||||||
|
- btf = btf__new((__u8 *)(node->data),
|
||||||
|
- node->data_size);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- disassemble_init_for_target(&info);
|
||||||
|
-
|
||||||
|
-#ifdef DISASM_FOUR_ARGS_SIGNATURE
|
||||||
|
- disassemble = disassembler(info.arch,
|
||||||
|
- bfd_big_endian(bfdf),
|
||||||
|
- info.mach,
|
||||||
|
- bfdf);
|
||||||
|
-#else
|
||||||
|
- disassemble = disassembler(bfdf);
|
||||||
|
-#endif
|
||||||
|
- if (disassemble == NULL)
|
||||||
|
- abort();
|
||||||
|
-
|
||||||
|
- fflush(s);
|
||||||
|
- do {
|
||||||
|
- const struct bpf_line_info *linfo = NULL;
|
||||||
|
- struct disasm_line *dl;
|
||||||
|
- size_t prev_buf_size;
|
||||||
|
- const char *srcline;
|
||||||
|
- u64 addr;
|
||||||
|
-
|
||||||
|
- addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id];
|
||||||
|
- count = disassemble(pc, &info);
|
||||||
|
-
|
||||||
|
- if (prog_linfo)
|
||||||
|
- linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo,
|
||||||
|
- addr, sub_id,
|
||||||
|
- nr_skip);
|
||||||
|
-
|
||||||
|
- if (linfo && btf) {
|
||||||
|
- srcline = btf__name_by_offset(btf, linfo->line_off);
|
||||||
|
- nr_skip++;
|
||||||
|
- } else
|
||||||
|
- srcline = NULL;
|
||||||
|
-
|
||||||
|
- fprintf(s, "\n");
|
||||||
|
- prev_buf_size = buf_size;
|
||||||
|
- fflush(s);
|
||||||
|
-
|
||||||
|
- if (!annotate_opts.hide_src_code && srcline) {
|
||||||
|
- args->offset = -1;
|
||||||
|
- args->line = strdup(srcline);
|
||||||
|
- args->line_nr = 0;
|
||||||
|
- args->fileloc = NULL;
|
||||||
|
- args->ms.sym = sym;
|
||||||
|
- dl = disasm_line__new(args);
|
||||||
|
- if (dl) {
|
||||||
|
- annotation_line__add(&dl->al,
|
||||||
|
- ¬es->src->source);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- args->offset = pc;
|
||||||
|
- args->line = buf + prev_buf_size;
|
||||||
|
- args->line_nr = 0;
|
||||||
|
- args->fileloc = NULL;
|
||||||
|
- args->ms.sym = sym;
|
||||||
|
- dl = disasm_line__new(args);
|
||||||
|
- if (dl)
|
||||||
|
- annotation_line__add(&dl->al, ¬es->src->source);
|
||||||
|
-
|
||||||
|
- pc += count;
|
||||||
|
- } while (count > 0 && pc < len);
|
||||||
|
-
|
||||||
|
- ret = 0;
|
||||||
|
-out:
|
||||||
|
- free(prog_linfo);
|
||||||
|
- btf__free(btf);
|
||||||
|
- fclose(s);
|
||||||
|
- bfd_close(bfdf);
|
||||||
|
- return ret;
|
||||||
|
-}
|
||||||
|
-#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
|
||||||
|
-static int symbol__disassemble_bpf(struct symbol *sym __maybe_unused,
|
||||||
|
- struct annotate_args *args __maybe_unused)
|
||||||
|
-{
|
||||||
|
- return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF;
|
||||||
|
-}
|
||||||
|
-#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
|
||||||
|
-
|
||||||
|
-static int
|
||||||
|
-symbol__disassemble_bpf_image(struct symbol *sym,
|
||||||
|
- struct annotate_args *args)
|
||||||
|
-{
|
||||||
|
- struct annotation *notes = symbol__annotation(sym);
|
||||||
|
- struct disasm_line *dl;
|
||||||
|
-
|
||||||
|
- args->offset = -1;
|
||||||
|
- args->line = strdup("to be implemented");
|
||||||
|
- args->line_nr = 0;
|
||||||
|
- args->fileloc = NULL;
|
||||||
|
- dl = disasm_line__new(args);
|
||||||
|
- if (dl)
|
||||||
|
- annotation_line__add(&dl->al, ¬es->src->source);
|
||||||
|
-
|
||||||
|
- zfree(&args->line);
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
#ifdef HAVE_LIBCAPSTONE_SUPPORT
|
||||||
|
#include <capstone/capstone.h>
|
||||||
|
|
||||||
|
diff --git a/tools/perf/util/disasm_bpf.c b/tools/perf/util/disasm_bpf.c
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000000..c76a7d2be1a7
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tools/perf/util/disasm_bpf.c
|
||||||
|
@@ -0,0 +1,196 @@
|
||||||
|
+// SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
+
|
||||||
|
+#include "util/annotate.h"
|
||||||
|
+#include "util/disasm_bpf.h"
|
||||||
|
+#include "util/symbol.h"
|
||||||
|
+#include <linux/zalloc.h>
|
||||||
|
+#include <string.h>
|
||||||
|
+
|
||||||
|
+#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
|
||||||
|
+#define PACKAGE "perf"
|
||||||
|
+#include <bfd.h>
|
||||||
|
+#include <bpf/bpf.h>
|
||||||
|
+#include <bpf/btf.h>
|
||||||
|
+#include <bpf/libbpf.h>
|
||||||
|
+#include <dis-asm.h>
|
||||||
|
+#include <errno.h>
|
||||||
|
+#include <linux/btf.h>
|
||||||
|
+#include <tools/dis-asm-compat.h>
|
||||||
|
+
|
||||||
|
+#include "util/bpf-event.h"
|
||||||
|
+#include "util/bpf-utils.h"
|
||||||
|
+#include "util/debug.h"
|
||||||
|
+#include "util/dso.h"
|
||||||
|
+#include "util/map.h"
|
||||||
|
+#include "util/env.h"
|
||||||
|
+#include "util/util.h"
|
||||||
|
+
|
||||||
|
+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args)
|
||||||
|
+{
|
||||||
|
+ struct annotation *notes = symbol__annotation(sym);
|
||||||
|
+ struct bpf_prog_linfo *prog_linfo = NULL;
|
||||||
|
+ struct bpf_prog_info_node *info_node;
|
||||||
|
+ int len = sym->end - sym->start;
|
||||||
|
+ disassembler_ftype disassemble;
|
||||||
|
+ struct map *map = args->ms.map;
|
||||||
|
+ struct perf_bpil *info_linear;
|
||||||
|
+ struct disassemble_info info;
|
||||||
|
+ struct dso *dso = map__dso(map);
|
||||||
|
+ int pc = 0, count, sub_id;
|
||||||
|
+ struct btf *btf = NULL;
|
||||||
|
+ char tpath[PATH_MAX];
|
||||||
|
+ size_t buf_size;
|
||||||
|
+ int nr_skip = 0;
|
||||||
|
+ char *buf;
|
||||||
|
+ bfd *bfdf;
|
||||||
|
+ int ret;
|
||||||
|
+ FILE *s;
|
||||||
|
+
|
||||||
|
+ if (dso__binary_type(dso) != DSO_BINARY_TYPE__BPF_PROG_INFO)
|
||||||
|
+ return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE;
|
||||||
|
+
|
||||||
|
+ pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__,
|
||||||
|
+ sym->name, sym->start, sym->end - sym->start);
|
||||||
|
+
|
||||||
|
+ memset(tpath, 0, sizeof(tpath));
|
||||||
|
+ perf_exe(tpath, sizeof(tpath));
|
||||||
|
+
|
||||||
|
+ bfdf = bfd_openr(tpath, NULL);
|
||||||
|
+ if (bfdf == NULL)
|
||||||
|
+ abort();
|
||||||
|
+
|
||||||
|
+ if (!bfd_check_format(bfdf, bfd_object))
|
||||||
|
+ abort();
|
||||||
|
+
|
||||||
|
+ s = open_memstream(&buf, &buf_size);
|
||||||
|
+ if (!s) {
|
||||||
|
+ ret = errno;
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+ init_disassemble_info_compat(&info, s,
|
||||||
|
+ (fprintf_ftype) fprintf,
|
||||||
|
+ fprintf_styled);
|
||||||
|
+ info.arch = bfd_get_arch(bfdf);
|
||||||
|
+ info.mach = bfd_get_mach(bfdf);
|
||||||
|
+
|
||||||
|
+ info_node = perf_env__find_bpf_prog_info(dso__bpf_prog(dso)->env,
|
||||||
|
+ dso__bpf_prog(dso)->id);
|
||||||
|
+ if (!info_node) {
|
||||||
|
+ ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF;
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+ info_linear = info_node->info_linear;
|
||||||
|
+ sub_id = dso__bpf_prog(dso)->sub_id;
|
||||||
|
+
|
||||||
|
+ info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns);
|
||||||
|
+ info.buffer_length = info_linear->info.jited_prog_len;
|
||||||
|
+
|
||||||
|
+ if (info_linear->info.nr_line_info)
|
||||||
|
+ prog_linfo = bpf_prog_linfo__new(&info_linear->info);
|
||||||
|
+
|
||||||
|
+ if (info_linear->info.btf_id) {
|
||||||
|
+ struct btf_node *node;
|
||||||
|
+
|
||||||
|
+ node = perf_env__find_btf(dso__bpf_prog(dso)->env,
|
||||||
|
+ info_linear->info.btf_id);
|
||||||
|
+ if (node)
|
||||||
|
+ btf = btf__new((__u8 *)(node->data),
|
||||||
|
+ node->data_size);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ disassemble_init_for_target(&info);
|
||||||
|
+
|
||||||
|
+#ifdef DISASM_FOUR_ARGS_SIGNATURE
|
||||||
|
+ disassemble = disassembler(info.arch,
|
||||||
|
+ bfd_big_endian(bfdf),
|
||||||
|
+ info.mach,
|
||||||
|
+ bfdf);
|
||||||
|
+#else
|
||||||
|
+ disassemble = disassembler(bfdf);
|
||||||
|
+#endif
|
||||||
|
+ if (disassemble == NULL)
|
||||||
|
+ abort();
|
||||||
|
+
|
||||||
|
+ fflush(s);
|
||||||
|
+ do {
|
||||||
|
+ const struct bpf_line_info *linfo = NULL;
|
||||||
|
+ struct disasm_line *dl;
|
||||||
|
+ size_t prev_buf_size;
|
||||||
|
+ const char *srcline;
|
||||||
|
+ u64 addr;
|
||||||
|
+
|
||||||
|
+ addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id];
|
||||||
|
+ count = disassemble(pc, &info);
|
||||||
|
+
|
||||||
|
+ if (prog_linfo)
|
||||||
|
+ linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo,
|
||||||
|
+ addr, sub_id,
|
||||||
|
+ nr_skip);
|
||||||
|
+
|
||||||
|
+ if (linfo && btf) {
|
||||||
|
+ srcline = btf__name_by_offset(btf, linfo->line_off);
|
||||||
|
+ nr_skip++;
|
||||||
|
+ } else
|
||||||
|
+ srcline = NULL;
|
||||||
|
+
|
||||||
|
+ fprintf(s, "\n");
|
||||||
|
+ prev_buf_size = buf_size;
|
||||||
|
+ fflush(s);
|
||||||
|
+
|
||||||
|
+ if (!annotate_opts.hide_src_code && srcline) {
|
||||||
|
+ args->offset = -1;
|
||||||
|
+ args->line = strdup(srcline);
|
||||||
|
+ args->line_nr = 0;
|
||||||
|
+ args->fileloc = NULL;
|
||||||
|
+ args->ms.sym = sym;
|
||||||
|
+ dl = disasm_line__new(args);
|
||||||
|
+ if (dl) {
|
||||||
|
+ annotation_line__add(&dl->al,
|
||||||
|
+ ¬es->src->source);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ args->offset = pc;
|
||||||
|
+ args->line = buf + prev_buf_size;
|
||||||
|
+ args->line_nr = 0;
|
||||||
|
+ args->fileloc = NULL;
|
||||||
|
+ args->ms.sym = sym;
|
||||||
|
+ dl = disasm_line__new(args);
|
||||||
|
+ if (dl)
|
||||||
|
+ annotation_line__add(&dl->al, ¬es->src->source);
|
||||||
|
+
|
||||||
|
+ pc += count;
|
||||||
|
+ } while (count > 0 && pc < len);
|
||||||
|
+
|
||||||
|
+ ret = 0;
|
||||||
|
+out:
|
||||||
|
+ free(prog_linfo);
|
||||||
|
+ btf__free(btf);
|
||||||
|
+ fclose(s);
|
||||||
|
+ bfd_close(bfdf);
|
||||||
|
+ return ret;
|
||||||
|
+}
|
||||||
|
+#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
|
||||||
|
+int symbol__disassemble_bpf(struct symbol *sym __maybe_unused, struct annotate_args *args __maybe_unused)
|
||||||
|
+{
|
||||||
|
+ return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF;
|
||||||
|
+}
|
||||||
|
+#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
|
||||||
|
+
|
||||||
|
+int
|
||||||
|
+symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args)
|
||||||
|
+{
|
||||||
|
+ struct annotation *notes = symbol__annotation(sym);
|
||||||
|
+ struct disasm_line *dl;
|
||||||
|
+
|
||||||
|
+ args->offset = -1;
|
||||||
|
+ args->line = strdup("to be implemented");
|
||||||
|
+ args->line_nr = 0;
|
||||||
|
+ args->fileloc = NULL;
|
||||||
|
+ dl = disasm_line__new(args);
|
||||||
|
+ if (dl)
|
||||||
|
+ annotation_line__add(&dl->al, ¬es->src->source);
|
||||||
|
+
|
||||||
|
+ zfree(&args->line);
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
diff --git a/tools/perf/util/disasm_bpf.h b/tools/perf/util/disasm_bpf.h
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000000..2ecb19545388
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tools/perf/util/disasm_bpf.h
|
||||||
|
@@ -0,0 +1,12 @@
|
||||||
|
+// SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
+
|
||||||
|
+#ifndef __PERF_DISASM_BPF_H
|
||||||
|
+#define __PERF_DISASM_BPF_H
|
||||||
|
+
|
||||||
|
+struct symbol;
|
||||||
|
+struct annotate_args;
|
||||||
|
+
|
||||||
|
+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args);
|
||||||
|
+int symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args);
|
||||||
|
+
|
||||||
|
+#endif /* __PERF_DISASM_BPF_H */
|
||||||
|
--
|
||||||
|
2.45.2
|
||||||
|
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
EAPI=8
|
EAPI=8
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{10..12} )
|
PYTHON_COMPAT=( python3_{10..13} )
|
||||||
inherit bash-completion-r1 estack flag-o-matic linux-info llvm toolchain-funcs python-r1
|
inherit bash-completion-r1 estack flag-o-matic linux-info llvm toolchain-funcs python-r1
|
||||||
|
|
||||||
DESCRIPTION="Userland tools for Linux Performance Counters"
|
DESCRIPTION="Userland tools for Linux Performance Counters"
|
||||||
@ -139,8 +139,10 @@ pkg_setup() {
|
|||||||
# it's building from the same tarball, please keep it in sync with bpftool
|
# it's building from the same tarball, please keep it in sync with bpftool
|
||||||
src_unpack() {
|
src_unpack() {
|
||||||
local paths=(
|
local paths=(
|
||||||
kernel/bpf tools/{arch,bpf,build,include,lib,perf,scripts}
|
'arch/*/include/*' 'arch/*/lib/*' 'arch/*/tools/*' 'include/*'
|
||||||
scripts include lib "arch/*/include" "arch/*/lib" "arch/*/tools"
|
'kernel/bpf/*' 'lib/*' 'scripts/*' 'tools/arch/*' 'tools/bpf/*'
|
||||||
|
'tools/build/*' 'tools/include/*' 'tools/lib/*' 'tools/perf/*'
|
||||||
|
'tools/scripts/*'
|
||||||
)
|
)
|
||||||
|
|
||||||
# We expect the tar implementation to support the -j option (both
|
# We expect the tar implementation to support the -j option (both
|
||||||
@ -152,8 +154,9 @@ src_unpack() {
|
|||||||
if [[ -n ${LINUX_PATCH} ]] ; then
|
if [[ -n ${LINUX_PATCH} ]] ; then
|
||||||
eshopts_push -o noglob
|
eshopts_push -o noglob
|
||||||
ebegin "Filtering partial source patch"
|
ebegin "Filtering partial source patch"
|
||||||
filterdiff -p1 ${paths[@]/#/-i } -z "${DISTDIR}"/${LINUX_PATCH} \
|
xzcat "${DISTDIR}"/${LINUX_PATCH} | filterdiff -p1 ${paths[@]/#/-i} > ${P}.patch
|
||||||
> ${P}.patch
|
test -s ${P}.patch
|
||||||
|
assert -n "Unpacking to ${P} from ${DISTDIR}/${LINUX_PATCH} failed"
|
||||||
eend $? || die "filterdiff failed"
|
eend $? || die "filterdiff failed"
|
||||||
eshopts_pop
|
eshopts_pop
|
||||||
fi
|
fi
|
||||||
@ -176,7 +179,8 @@ src_prepare() {
|
|||||||
|
|
||||||
pushd "${S_K}" >/dev/null || die
|
pushd "${S_K}" >/dev/null || die
|
||||||
eapply "${FILESDIR}"/perf-6.4-libtracefs.patch
|
eapply "${FILESDIR}"/perf-6.4-libtracefs.patch
|
||||||
eapply "${FILESDIR}"/perf-6.7-expr.patch
|
eapply "${FILESDIR}"/perf-6.10-expr.patch
|
||||||
|
eapply "${FILESDIR}"/perf-6.10.3-bpf-capstone.patch
|
||||||
popd || die
|
popd || die
|
||||||
|
|
||||||
# Drop some upstream too-developer-oriented flags and fix the
|
# Drop some upstream too-developer-oriented flags and fix the
|
||||||
@ -247,6 +251,7 @@ perf_make() {
|
|||||||
V=1 VF=1
|
V=1 VF=1
|
||||||
HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)"
|
HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)"
|
||||||
CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="${linker}" NM="$(tc-getNM)"
|
CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="${linker}" NM="$(tc-getNM)"
|
||||||
|
CLANG="${CHOST}-clang"
|
||||||
PKG_CONFIG="$(tc-getPKG_CONFIG)"
|
PKG_CONFIG="$(tc-getPKG_CONFIG)"
|
||||||
prefix="${EPREFIX}/usr" bindir_relative="bin"
|
prefix="${EPREFIX}/usr" bindir_relative="bin"
|
||||||
tipdir="share/doc/${PF}"
|
tipdir="share/doc/${PF}"
|
@ -176,6 +176,7 @@ src_prepare() {
|
|||||||
|
|
||||||
pushd "${S_K}" >/dev/null || die
|
pushd "${S_K}" >/dev/null || die
|
||||||
eapply "${FILESDIR}"/perf-6.4-libtracefs.patch
|
eapply "${FILESDIR}"/perf-6.4-libtracefs.patch
|
||||||
|
eapply "${FILESDIR}"/perf-6.10-bpf-capstone.patch
|
||||||
eapply "${FILESDIR}"/perf-6.10-expr.patch
|
eapply "${FILESDIR}"/perf-6.10-expr.patch
|
||||||
popd || die
|
popd || die
|
||||||
|
|
||||||
@ -247,6 +248,7 @@ perf_make() {
|
|||||||
V=1 VF=1
|
V=1 VF=1
|
||||||
HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)"
|
HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)"
|
||||||
CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="${linker}" NM="$(tc-getNM)"
|
CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="${linker}" NM="$(tc-getNM)"
|
||||||
|
CLANG="${CHOST}-clang"
|
||||||
PKG_CONFIG="$(tc-getPKG_CONFIG)"
|
PKG_CONFIG="$(tc-getPKG_CONFIG)"
|
||||||
prefix="${EPREFIX}/usr" bindir_relative="bin"
|
prefix="${EPREFIX}/usr" bindir_relative="bin"
|
||||||
tipdir="share/doc/${PF}"
|
tipdir="share/doc/${PF}"
|
||||||
|
@ -196,6 +196,7 @@ perf_make() {
|
|||||||
emake V=1 VF=1 \
|
emake V=1 VF=1 \
|
||||||
HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)" \
|
HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)" \
|
||||||
CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="$(tc-getLD)" NM="$(tc-getNM)" \
|
CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="$(tc-getLD)" NM="$(tc-getNM)" \
|
||||||
|
CLANG="${CHOST}-clang" \
|
||||||
PKG_CONFIG="$(tc-getPKG_CONFIG)" \
|
PKG_CONFIG="$(tc-getPKG_CONFIG)" \
|
||||||
prefix="${EPREFIX}/usr" bindir_relative="bin" \
|
prefix="${EPREFIX}/usr" bindir_relative="bin" \
|
||||||
tipdir="share/doc/${PF}" \
|
tipdir="share/doc/${PF}" \
|
||||||
|
@ -247,6 +247,7 @@ perf_make() {
|
|||||||
V=1 VF=1
|
V=1 VF=1
|
||||||
HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)"
|
HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)"
|
||||||
CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="${linker}" NM="$(tc-getNM)"
|
CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="${linker}" NM="$(tc-getNM)"
|
||||||
|
CLANG="${CHOST}-clang"
|
||||||
PKG_CONFIG="$(tc-getPKG_CONFIG)"
|
PKG_CONFIG="$(tc-getPKG_CONFIG)"
|
||||||
prefix="${EPREFIX}/usr" bindir_relative="bin"
|
prefix="${EPREFIX}/usr" bindir_relative="bin"
|
||||||
tipdir="share/doc/${PF}"
|
tipdir="share/doc/${PF}"
|
||||||
|
@ -1,338 +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 estack flag-o-matic linux-info llvm toolchain-funcs python-r1
|
|
||||||
|
|
||||||
DESCRIPTION="Userland tools for Linux Performance Counters"
|
|
||||||
HOMEPAGE="https://perf.wiki.kernel.org/"
|
|
||||||
|
|
||||||
LINUX_V="${PV:0:1}.x"
|
|
||||||
if [[ ${PV} == *_rc* ]] ; then
|
|
||||||
LINUX_VER=$(ver_cut 1-2).$(($(ver_cut 3)-1))
|
|
||||||
PATCH_VERSION=$(ver_cut 1-3)
|
|
||||||
LINUX_PATCH=patch-${PV//_/-}.xz
|
|
||||||
SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/testing/${LINUX_PATCH}
|
|
||||||
https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/testing/v${PATCH_VERSION}/${LINUX_PATCH}"
|
|
||||||
elif [[ ${PV} == *.*.* ]] ; then
|
|
||||||
# stable-release series
|
|
||||||
LINUX_VER=$(ver_cut 1-2)
|
|
||||||
LINUX_PATCH=patch-${PV}.xz
|
|
||||||
SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_PATCH}"
|
|
||||||
else
|
|
||||||
LINUX_VER=${PV}
|
|
||||||
fi
|
|
||||||
|
|
||||||
LINUX_SOURCES="linux-${LINUX_VER}.tar.xz"
|
|
||||||
SRC_URI+=" https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}"
|
|
||||||
|
|
||||||
S_K="${WORKDIR}/linux-${LINUX_VER}"
|
|
||||||
S="${S_K}/tools/perf"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
|
|
||||||
IUSE="abi_mips_o32 abi_mips_n32 abi_mips_n64 audit babeltrace big-endian bpf caps crypt debug +doc gtk java libpfm +libtraceevent +libtracefs lzma numa perl python slang systemtap tcmalloc unwind zstd"
|
|
||||||
|
|
||||||
REQUIRED_USE="
|
|
||||||
${PYTHON_REQUIRED_USE}
|
|
||||||
"
|
|
||||||
|
|
||||||
# setuptools (and Python) are always needed even if not building Python bindings
|
|
||||||
BDEPEND="
|
|
||||||
${LINUX_PATCH+dev-util/patchutils}
|
|
||||||
${PYTHON_DEPS}
|
|
||||||
>=app-arch/tar-1.34-r2
|
|
||||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
|
||||||
app-alternatives/yacc
|
|
||||||
app-alternatives/lex
|
|
||||||
virtual/pkgconfig
|
|
||||||
doc? (
|
|
||||||
app-text/asciidoc
|
|
||||||
app-text/sgml-common
|
|
||||||
app-text/xmlto
|
|
||||||
sys-process/time
|
|
||||||
)
|
|
||||||
"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
audit? ( sys-process/audit )
|
|
||||||
babeltrace? ( dev-util/babeltrace:0/1 )
|
|
||||||
bpf? (
|
|
||||||
dev-libs/libbpf
|
|
||||||
dev-util/bpftool
|
|
||||||
dev-util/pahole
|
|
||||||
)
|
|
||||||
caps? ( sys-libs/libcap )
|
|
||||||
bpf? (
|
|
||||||
sys-devel/clang:=
|
|
||||||
sys-devel/llvm:=
|
|
||||||
)
|
|
||||||
crypt? ( dev-libs/openssl:= )
|
|
||||||
gtk? ( x11-libs/gtk+:2 )
|
|
||||||
java? ( virtual/jre:* )
|
|
||||||
libpfm? ( dev-libs/libpfm:= )
|
|
||||||
libtraceevent? ( dev-libs/libtraceevent )
|
|
||||||
libtracefs? ( dev-libs/libtracefs )
|
|
||||||
lzma? ( app-arch/xz-utils )
|
|
||||||
numa? ( sys-process/numactl )
|
|
||||||
perl? ( dev-lang/perl:= )
|
|
||||||
python? ( ${PYTHON_DEPS} )
|
|
||||||
slang? ( sys-libs/slang )
|
|
||||||
systemtap? ( dev-debug/systemtap )
|
|
||||||
tcmalloc? ( dev-util/google-perftools )
|
|
||||||
unwind? ( sys-libs/libunwind:= )
|
|
||||||
zstd? ( app-arch/zstd:= )
|
|
||||||
dev-libs/elfutils
|
|
||||||
sys-libs/binutils-libs:=
|
|
||||||
sys-libs/zlib
|
|
||||||
virtual/libcrypt
|
|
||||||
"
|
|
||||||
|
|
||||||
DEPEND="${RDEPEND}
|
|
||||||
>=sys-kernel/linux-headers-5.10
|
|
||||||
java? ( virtual/jdk )
|
|
||||||
"
|
|
||||||
|
|
||||||
QA_FLAGS_IGNORED=(
|
|
||||||
'usr/bin/perf-read-vdso32' # not linked with anything except for libc
|
|
||||||
'usr/libexec/perf-core/dlfilters/.*' # plugins
|
|
||||||
)
|
|
||||||
|
|
||||||
pkg_pretend() {
|
|
||||||
if ! use doc ; then
|
|
||||||
ewarn "Without the doc USE flag you won't get any documentation nor man pages."
|
|
||||||
ewarn "And without man pages, you won't get any --help output for perf and its"
|
|
||||||
ewarn "sub-tools."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
local CONFIG_CHECK="
|
|
||||||
~DEBUG_INFO
|
|
||||||
~FTRACE
|
|
||||||
~FTRACE_SYSCALLS
|
|
||||||
~FUNCTION_TRACER
|
|
||||||
~KALLSYMS
|
|
||||||
~KALLSYMS_ALL
|
|
||||||
~KPROBES
|
|
||||||
~KPROBE_EVENTS
|
|
||||||
~PERF_EVENTS
|
|
||||||
~UPROBES
|
|
||||||
~UPROBE_EVENTS
|
|
||||||
"
|
|
||||||
|
|
||||||
use bpf && llvm_pkg_setup
|
|
||||||
# We enable python unconditionally as libbpf always generates
|
|
||||||
# API headers using python script
|
|
||||||
python_setup
|
|
||||||
|
|
||||||
if use bpf ; then
|
|
||||||
CONFIG_CHECK+="~BPF ~BPF_EVENTS ~BPF_SYSCALL ~DEBUG_INFO_BTF ~HAVE_EBPF_JIT"
|
|
||||||
fi
|
|
||||||
|
|
||||||
linux-info_pkg_setup
|
|
||||||
}
|
|
||||||
|
|
||||||
# src_unpack and src_prepare are copied to dev-util/bpftool since
|
|
||||||
# it's building from the same tarball, please keep it in sync with bpftool
|
|
||||||
src_unpack() {
|
|
||||||
local paths=(
|
|
||||||
kernel/bpf tools/{arch,bpf,build,include,lib,perf,scripts}
|
|
||||||
scripts include lib "arch/*/lib" "arch/*/tools"
|
|
||||||
)
|
|
||||||
|
|
||||||
# We expect the tar implementation to support the -j option (both
|
|
||||||
# GNU tar and libarchive's tar support that).
|
|
||||||
echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}"
|
|
||||||
gtar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \
|
|
||||||
"${paths[@]/#/linux-${LINUX_VER}/}" || die
|
|
||||||
|
|
||||||
if [[ -n ${LINUX_PATCH} ]] ; then
|
|
||||||
eshopts_push -o noglob
|
|
||||||
ebegin "Filtering partial source patch"
|
|
||||||
filterdiff -p1 ${paths[@]/#/-i } -z "${DISTDIR}"/${LINUX_PATCH} \
|
|
||||||
> ${P}.patch
|
|
||||||
eend $? || die "filterdiff failed"
|
|
||||||
eshopts_pop
|
|
||||||
fi
|
|
||||||
|
|
||||||
local a
|
|
||||||
for a in ${A}; do
|
|
||||||
[[ ${a} == ${LINUX_SOURCES} ]] && continue
|
|
||||||
[[ ${a} == ${LINUX_PATCH} ]] && continue
|
|
||||||
unpack ${a}
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
default
|
|
||||||
if [[ -n ${LINUX_PATCH} ]] ; then
|
|
||||||
pushd "${S_K}" >/dev/null || die
|
|
||||||
eapply "${WORKDIR}"/${P}.patch
|
|
||||||
popd || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
pushd "${S_K}" >/dev/null || die
|
|
||||||
eapply "${FILESDIR}"/perf-6.4-libtracefs.patch
|
|
||||||
eapply "${FILESDIR}"/perf-6.7-expr.patch
|
|
||||||
popd || die
|
|
||||||
|
|
||||||
# Drop some upstream too-developer-oriented flags and fix the
|
|
||||||
# Makefile in general
|
|
||||||
sed -i \
|
|
||||||
-e "s@\$(sysconfdir_SQ)/bash_completion.d@$(get_bashcompdir)@" \
|
|
||||||
"${S}"/Makefile.perf || die
|
|
||||||
# A few places still use -Werror w/out $(WERROR) protection.
|
|
||||||
sed -i -e 's@-Werror@@' \
|
|
||||||
"${S}"/Makefile.perf "${S_K}"/tools/lib/bpf/Makefile \
|
|
||||||
"${S_K}"/tools/lib/perf/Makefile || die
|
|
||||||
|
|
||||||
# Avoid the call to make kernelversion
|
|
||||||
sed -i -e '/PERF-VERSION-GEN/d' Makefile.perf || die
|
|
||||||
echo "#define PERF_VERSION \"${PV}\"" > PERF-VERSION-FILE
|
|
||||||
|
|
||||||
# The code likes to compile local assembly files which lack ELF markings.
|
|
||||||
find -name '*.S' -exec sed -i '$a.section .note.GNU-stack,"",%progbits' {} +
|
|
||||||
}
|
|
||||||
|
|
||||||
puse() { usex $1 "" 1; }
|
|
||||||
perf_make() {
|
|
||||||
# The arch parsing is a bit funky. The perf tools package is integrated
|
|
||||||
# into the kernel, so it wants an ARCH that looks like the kernel arch,
|
|
||||||
# but it also wants to know about the split value -- i386/x86_64 vs just
|
|
||||||
# x86. We can get that by telling the func to use an older linux version.
|
|
||||||
# It's kind of a hack, but not that bad ...
|
|
||||||
|
|
||||||
# LIBDIR sets a search path of perf-gtk.so. Bug 515954
|
|
||||||
|
|
||||||
local arch=$(tc-arch-kernel)
|
|
||||||
local java_dir
|
|
||||||
use java && java_dir="${EPREFIX}/etc/java-config-2/current-system-vm"
|
|
||||||
|
|
||||||
# sync this with the whitelist in tools/perf/Makefile.config
|
|
||||||
local disable_libdw
|
|
||||||
if ! use amd64 && ! use x86 && \
|
|
||||||
! use arm && \
|
|
||||||
! use arm64 && \
|
|
||||||
! use ppc && ! use ppc64 \
|
|
||||||
! use s390 && \
|
|
||||||
! use riscv && \
|
|
||||||
! use loong
|
|
||||||
then
|
|
||||||
disable_libdw=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# perf directly invokes LD for linking without going through CC, on mips
|
|
||||||
# it is required to specify the emulation. port of below buildroot patch
|
|
||||||
# https://patchwork.ozlabs.org/project/buildroot/patch/20170217105905.32151-1-Vincent.Riera@imgtec.com/
|
|
||||||
local linker="$(tc-getLD)"
|
|
||||||
if use mips
|
|
||||||
then
|
|
||||||
if use big-endian
|
|
||||||
then
|
|
||||||
use abi_mips_n64 && linker+=" -m elf64btsmip"
|
|
||||||
use abi_mips_n32 && linker+=" -m elf32btsmipn32"
|
|
||||||
use abi_mips_o32 && linker+=" -m elf32btsmip"
|
|
||||||
else
|
|
||||||
use abi_mips_n64 && linker+=" -m elf64ltsmip"
|
|
||||||
use abi_mips_n32 && linker+=" -m elf32ltsmipn32"
|
|
||||||
use abi_mips_o32 && linker+=" -m elf32ltsmip"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# FIXME: NO_CORESIGHT
|
|
||||||
local emakeargs=(
|
|
||||||
V=1 VF=1
|
|
||||||
HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)"
|
|
||||||
CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="${linker}" NM="$(tc-getNM)"
|
|
||||||
PKG_CONFIG="$(tc-getPKG_CONFIG)"
|
|
||||||
prefix="${EPREFIX}/usr" bindir_relative="bin"
|
|
||||||
tipdir="share/doc/${PF}"
|
|
||||||
EXTRA_CFLAGS="${CFLAGS}"
|
|
||||||
EXTRA_LDFLAGS="${LDFLAGS}"
|
|
||||||
ARCH="${arch}"
|
|
||||||
BUILD_BPF_SKEL=$(usex bpf 1 "") \
|
|
||||||
BUILD_NONDISTRO=1
|
|
||||||
JDIR="${java_dir}"
|
|
||||||
CORESIGHT=
|
|
||||||
GTK2=$(usex gtk 1 "")
|
|
||||||
feature-gtk2-infobar=$(usex gtk 1 "")
|
|
||||||
NO_AUXTRACE=
|
|
||||||
NO_BACKTRACE=
|
|
||||||
NO_DEMANGLE=
|
|
||||||
NO_JEVENTS=$(puse python)
|
|
||||||
NO_JVMTI=$(puse java)
|
|
||||||
NO_LIBAUDIT=$(puse audit)
|
|
||||||
NO_LIBBABELTRACE=$(puse babeltrace)
|
|
||||||
NO_LIBBIONIC=1
|
|
||||||
NO_LIBBPF=$(puse bpf)
|
|
||||||
NO_LIBCAP=$(puse caps)
|
|
||||||
NO_LIBCRYPTO=$(puse crypt)
|
|
||||||
NO_LIBDW_DWARF_UNWIND="${disable_libdw}"
|
|
||||||
NO_LIBELF=
|
|
||||||
NO_LIBNUMA=$(puse numa)
|
|
||||||
NO_LIBPERL=$(puse perl)
|
|
||||||
NO_LIBPFM4=$(puse libpfm)
|
|
||||||
NO_LIBPYTHON=$(puse python)
|
|
||||||
NO_LIBTRACEEVENT=$(puse libtraceevent)
|
|
||||||
NO_LIBUNWIND=$(puse unwind)
|
|
||||||
NO_LIBZSTD=$(puse zstd)
|
|
||||||
NO_SDT=$(puse systemtap)
|
|
||||||
NO_SLANG=$(puse slang)
|
|
||||||
NO_LZMA=$(puse lzma)
|
|
||||||
NO_ZLIB=
|
|
||||||
TCMALLOC=$(usex tcmalloc 1 "")
|
|
||||||
WERROR=0
|
|
||||||
LIBDIR="/usr/libexec/perf-core"
|
|
||||||
libdir="${EPREFIX}/usr/$(get_libdir)"
|
|
||||||
plugindir="${EPREFIX}/usr/$(get_libdir)/perf/plugins"
|
|
||||||
"$@"
|
|
||||||
)
|
|
||||||
emake "${emakeargs[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
filter-lto
|
|
||||||
|
|
||||||
perf_make -f Makefile.perf
|
|
||||||
use doc && perf_make -C Documentation man
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
_install_python_ext() {
|
|
||||||
perf_make -f Makefile.perf install-python_ext DESTDIR="${D}"
|
|
||||||
}
|
|
||||||
|
|
||||||
perf_make -f Makefile.perf install DESTDIR="${D}"
|
|
||||||
|
|
||||||
if use python; then
|
|
||||||
python_foreach_impl _install_python_ext
|
|
||||||
fi
|
|
||||||
|
|
||||||
if use gtk; then
|
|
||||||
local libdir
|
|
||||||
libdir="$(get_libdir)"
|
|
||||||
# on some arches it ends up in lib even on 64bit, ppc64 for instance.
|
|
||||||
[[ -f "${ED}"/usr/lib/libperf-gtk.so ]] && libdir="lib"
|
|
||||||
mv "${ED}"/usr/${libdir}/libperf-gtk.so \
|
|
||||||
"${ED}"/usr/libexec/perf-core || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
dodoc CREDITS
|
|
||||||
|
|
||||||
dodoc *txt Documentation/*.txt
|
|
||||||
|
|
||||||
# perf needs this decompressed to print out tips for users
|
|
||||||
docompress -x /usr/share/doc/${PF}/tips.txt
|
|
||||||
|
|
||||||
if use doc ; then
|
|
||||||
doman Documentation/*.1
|
|
||||||
fi
|
|
||||||
}
|
|
@ -13,7 +13,7 @@ SRC_URI="https://github.com/skvadrik/re2c/releases/download/${PV}/${P}.tar.xz"
|
|||||||
|
|
||||||
LICENSE="public-domain"
|
LICENSE="public-domain"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
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="debug test"
|
IUSE="debug test"
|
||||||
|
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
|
@ -50,7 +50,7 @@ if [[ ${PV} != *9999 ]]; then
|
|||||||
SRC_URI+=" doc? ( ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} )"
|
SRC_URI+=" doc? ( ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} )"
|
||||||
|
|
||||||
if [[ ${PV} != *_rc* ]] ; then
|
if [[ ${PV} != *_rc* ]] ; then
|
||||||
KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -306,6 +306,10 @@ git_emake() {
|
|||||||
OPTCFLAGS="${CFLAGS}"
|
OPTCFLAGS="${CFLAGS}"
|
||||||
OPTLDFLAGS="${LDFLAGS}"
|
OPTLDFLAGS="${LDFLAGS}"
|
||||||
|
|
||||||
|
CURL_CONFIG="${ESYSROOT}/usr/bin/curl-config"
|
||||||
|
CURL_CFLAGS="$($(tc-getPKG_CONFIG) --cflags libcurl)"
|
||||||
|
CURL_LDFLAGS="$($(tc-getPKG_CONFIG) --libs libcurl)"
|
||||||
|
|
||||||
PERL_PATH="${EPREFIX}/usr/bin/perl"
|
PERL_PATH="${EPREFIX}/usr/bin/perl"
|
||||||
PERL_MM_OPT=""
|
PERL_MM_OPT=""
|
||||||
|
|
||||||
|
@ -306,6 +306,10 @@ git_emake() {
|
|||||||
OPTCFLAGS="${CFLAGS}"
|
OPTCFLAGS="${CFLAGS}"
|
||||||
OPTLDFLAGS="${LDFLAGS}"
|
OPTLDFLAGS="${LDFLAGS}"
|
||||||
|
|
||||||
|
CURL_CONFIG="${ESYSROOT}/usr/bin/curl-config"
|
||||||
|
CURL_CFLAGS="$($(tc-getPKG_CONFIG) --cflags libcurl)"
|
||||||
|
CURL_LDFLAGS="$($(tc-getPKG_CONFIG) --libs libcurl)"
|
||||||
|
|
||||||
PERL_PATH="${EPREFIX}/usr/bin/perl"
|
PERL_PATH="${EPREFIX}/usr/bin/perl"
|
||||||
PERL_MM_OPT=""
|
PERL_MM_OPT=""
|
||||||
|
|
||||||
|
@ -306,6 +306,10 @@ git_emake() {
|
|||||||
OPTCFLAGS="${CFLAGS}"
|
OPTCFLAGS="${CFLAGS}"
|
||||||
OPTLDFLAGS="${LDFLAGS}"
|
OPTLDFLAGS="${LDFLAGS}"
|
||||||
|
|
||||||
|
CURL_CONFIG="${ESYSROOT}/usr/bin/curl-config"
|
||||||
|
CURL_CFLAGS="$($(tc-getPKG_CONFIG) --cflags libcurl)"
|
||||||
|
CURL_LDFLAGS="$($(tc-getPKG_CONFIG) --libs libcurl)"
|
||||||
|
|
||||||
PERL_PATH="${EPREFIX}/usr/bin/perl"
|
PERL_PATH="${EPREFIX}/usr/bin/perl"
|
||||||
PERL_MM_OPT=""
|
PERL_MM_OPT=""
|
||||||
|
|
||||||
|
@ -306,6 +306,10 @@ git_emake() {
|
|||||||
OPTCFLAGS="${CFLAGS}"
|
OPTCFLAGS="${CFLAGS}"
|
||||||
OPTLDFLAGS="${LDFLAGS}"
|
OPTLDFLAGS="${LDFLAGS}"
|
||||||
|
|
||||||
|
CURL_CONFIG="${ESYSROOT}/usr/bin/curl-config"
|
||||||
|
CURL_CFLAGS="$($(tc-getPKG_CONFIG) --cflags libcurl)"
|
||||||
|
CURL_LDFLAGS="$($(tc-getPKG_CONFIG) --libs libcurl)"
|
||||||
|
|
||||||
PERL_PATH="${EPREFIX}/usr/bin/perl"
|
PERL_PATH="${EPREFIX}/usr/bin/perl"
|
||||||
PERL_MM_OPT=""
|
PERL_MM_OPT=""
|
||||||
|
|
||||||
|
@ -306,6 +306,10 @@ git_emake() {
|
|||||||
OPTCFLAGS="${CFLAGS}"
|
OPTCFLAGS="${CFLAGS}"
|
||||||
OPTLDFLAGS="${LDFLAGS}"
|
OPTLDFLAGS="${LDFLAGS}"
|
||||||
|
|
||||||
|
CURL_CONFIG="${ESYSROOT}/usr/bin/curl-config"
|
||||||
|
CURL_CFLAGS="$($(tc-getPKG_CONFIG) --cflags libcurl)"
|
||||||
|
CURL_LDFLAGS="$($(tc-getPKG_CONFIG) --libs libcurl)"
|
||||||
|
|
||||||
PERL_PATH="${EPREFIX}/usr/bin/perl"
|
PERL_PATH="${EPREFIX}/usr/bin/perl"
|
||||||
PERL_MM_OPT=""
|
PERL_MM_OPT=""
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright 2020-2023 Gentoo Authors
|
# Copyright 2020-2024 Gentoo Authors
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
# @ECLASS: dist-kernel-utils.eclass
|
# @ECLASS: dist-kernel-utils.eclass
|
||||||
@ -159,6 +159,35 @@ dist-kernel_PV_to_KV() {
|
|||||||
echo "${kv}"
|
echo "${kv}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# @FUNCTION: dist-kernel_get_module_suffix
|
||||||
|
# @USAGE: <kernel_config>
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Returns the suffix for kernel modules based on the CONFIG_MODULES_COMPESS_*
|
||||||
|
# setting in the kernel config and USE=modules-compress.
|
||||||
|
dist-kernel_get_module_suffix() {
|
||||||
|
debug-print-function ${FUNCNAME} "${@}"
|
||||||
|
|
||||||
|
[[ ${#} -eq 1 ]] || die "${FUNCNAME}: invalid arguments"
|
||||||
|
|
||||||
|
local config=${1}
|
||||||
|
|
||||||
|
if ! in_iuse modules-compress || ! use modules-compress; then
|
||||||
|
echo .ko
|
||||||
|
elif [[ ! -r ${config} ]]; then
|
||||||
|
die "Cannot find kernel config ${config}"
|
||||||
|
elif grep -q "CONFIG_MODULE_COMPRESS_NONE=y" "${config}"; then
|
||||||
|
echo .ko
|
||||||
|
elif grep -q "CONFIG_MODULE_COMPRESS_GZIP=y" "${config}"; then
|
||||||
|
echo .ko.gz
|
||||||
|
elif grep -q "CONFIG_MODULE_COMPRESS_XZ=y" "${config}"; then
|
||||||
|
echo .ko.xz
|
||||||
|
elif grep -q "CONFIG_MODULE_COMPRESS_ZSTD=y" "${config}"; then
|
||||||
|
echo .ko.zst
|
||||||
|
else
|
||||||
|
die "Module compression is enabled, but compressor not known"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# @FUNCTION: dist-kernel_compressed_module_cleanup
|
# @FUNCTION: dist-kernel_compressed_module_cleanup
|
||||||
# @USAGE: <path>
|
# @USAGE: <path>
|
||||||
# @DESCRIPTION:
|
# @DESCRIPTION:
|
||||||
@ -169,20 +198,41 @@ dist-kernel_compressed_module_cleanup() {
|
|||||||
|
|
||||||
[[ ${#} -ne 1 ]] && die "${FUNCNAME}: invalid arguments"
|
[[ ${#} -ne 1 ]] && die "${FUNCNAME}: invalid arguments"
|
||||||
local path=${1}
|
local path=${1}
|
||||||
local basename f
|
local config_path=/usr/src/linux-${KV_FULL}/.config
|
||||||
|
|
||||||
|
local option
|
||||||
|
for option in config source/.config build/.config; do
|
||||||
|
if [[ -f ${path}/${option} ]]; then
|
||||||
|
config_path=${path}/${option}
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
local preferred=
|
||||||
|
[[ -f ${config_path} ]] && preferred=$(dist-kernel_get_module_suffix "${config_path}")
|
||||||
|
|
||||||
|
local basename suffix
|
||||||
|
|
||||||
while read -r basename; do
|
while read -r basename; do
|
||||||
local prev=
|
local prev=
|
||||||
for f in "${path}/${basename}"{,.gz,.xz,.zst}; do
|
for suffix in .ko .ko.gz .ko.xz .ko.zst; do
|
||||||
if [[ ! -e ${f} ]]; then
|
[[ ${suffix} == ${preferred} ]] && continue
|
||||||
continue
|
local current=${path}/${basename}${suffix}
|
||||||
|
[[ -f ${current} ]] || continue
|
||||||
|
|
||||||
|
if [[ -f ${path}/${basename}${preferred} ]]; then
|
||||||
|
# If the module with the desired compression exists, remove
|
||||||
|
# all other variations.
|
||||||
|
rm -v "${current}" || die
|
||||||
elif [[ -z ${prev} ]]; then
|
elif [[ -z ${prev} ]]; then
|
||||||
prev=${f}
|
# If not, then keep whichever of the duplicate modules is the
|
||||||
elif [[ ${f} -nt ${prev} ]]; then
|
# newest. Normally you should not end up here.
|
||||||
|
prev=${current}
|
||||||
|
elif [[ ${current} -nt ${prev} ]]; then
|
||||||
rm -v "${prev}" || die
|
rm -v "${prev}" || die
|
||||||
prev=${f}
|
prev=${current}
|
||||||
else
|
else
|
||||||
rm -v "${f}" || die
|
rm -v "${current}" || die
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
done < <(
|
done < <(
|
||||||
@ -192,7 +242,8 @@ dist-kernel_compressed_module_cleanup() {
|
|||||||
-o -name '*.ko.gz' \
|
-o -name '*.ko.gz' \
|
||||||
-o -name '*.ko.xz' \
|
-o -name '*.ko.xz' \
|
||||||
-o -name '*.ko.zst' \
|
-o -name '*.ko.zst' \
|
||||||
\) | sed -e 's:[.]\(gz\|xz\|zst\)$::' | sort | uniq -d || die
|
\) | sed -e 's:[.]ko\(\|[.]gz\|[.]xz\|[.]zst\)$::' |
|
||||||
|
sort | uniq -d || die
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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