mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-27 16:41:11 +02:00
Merge pull request #1107 from flatcar/buildbot/weekly-portage-stable-package-updates-2023-09-04
Weekly portage-stable package updates 2023-09-04
This commit is contained in:
commit
8716b3bf96
@ -476,6 +476,8 @@ virtual/openssh
|
|||||||
virtual/os-headers
|
virtual/os-headers
|
||||||
virtual/package-manager
|
virtual/package-manager
|
||||||
virtual/perl-Carp
|
virtual/perl-Carp
|
||||||
|
virtual/perl-Data-Dumper
|
||||||
|
virtual/perl-Encode
|
||||||
virtual/perl-Exporter
|
virtual/perl-Exporter
|
||||||
virtual/perl-ExtUtils-MakeMaker
|
virtual/perl-ExtUtils-MakeMaker
|
||||||
virtual/perl-File-Spec
|
virtual/perl-File-Spec
|
||||||
|
1
changelog/security/2023-09-07-weekly-updates.md
Normal file
1
changelog/security/2023-09-07-weekly-updates.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
- Python ([CVE-2023-40217](https://nvd.nist.gov/vuln/detail/CVE-2023-40217), [CVE-2023-41105](https://nvd.nist.gov/vuln/detail/CVE-2023-41105))
|
14
changelog/updates/2023-09-07-weekly-updates.md
Normal file
14
changelog/updates/2023-09-07-weekly-updates.md
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
- ethtool ([6.4](https://git.kernel.org/pub/scm/network/ethtool/ethtool.git/tree/NEWS?h=v6.4))
|
||||||
|
- glib ([2.76.4](https://gitlab.gnome.org/GNOME/glib/-/releases/2.76.4))
|
||||||
|
- hwdata ([0.372](https://github.com/vcrhonek/hwdata/commits/v0.372))
|
||||||
|
- inih ([57](https://github.com/benhoyt/inih/releases/tag/r57))
|
||||||
|
- iproute2 ([6.4.0](https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/log/?h=v6.4.0))
|
||||||
|
- libmicrohttpd ([0.9.77](https://gitlab.com/libmicrohttpd/libmicrohttpd/-/releases/v0.9.77))
|
||||||
|
- libnftnl ([1.2.6](https://git.netfilter.org/libnftnl/log/?h=libnftnl-1.2.6))
|
||||||
|
- libnvme ([1.5](https://github.com/linux-nvme/libnvme/releases/tag/v1.5))
|
||||||
|
- nvme-cli ([2.5](https://github.com/linux-nvme/nvme-cli/releases/tag/v2.5))
|
||||||
|
- openldap ([2.6.4](https://git.openldap.org/openldap/openldap/-/blob/OPENLDAP_REL_ENG_2_6_4/CHANGES))
|
||||||
|
- python ([3.11.5](https://www.python.org/downloads/release/python-3115/))
|
||||||
|
- qemu ([8.0.4](https://wiki.qemu.org/ChangeLog/8.0))
|
||||||
|
- tar ([1.35](https://lists.gnu.org/archive/html/info-gnu/2023-07/msg00005.html))
|
||||||
|
- xfsprogs ([6.4.0](https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/tree/doc/CHANGES?h=v6.4.0))
|
@ -1,6 +1,6 @@
|
|||||||
EAPI=7
|
EAPI=7
|
||||||
|
|
||||||
inherit coreos-go eutils git-r3 systemd
|
inherit coreos-go git-r3 systemd
|
||||||
COREOS_GO_PACKAGE="github.com/coreos/go-tspi"
|
COREOS_GO_PACKAGE="github.com/coreos/go-tspi"
|
||||||
COREOS_GO_GO111MODULE="off"
|
COREOS_GO_GO111MODULE="off"
|
||||||
EGIT_REPO_URI="https://github.com/coreos/go-tspi.git"
|
EGIT_REPO_URI="https://github.com/coreos/go-tspi.git"
|
||||||
|
8
sdk_container/src/third_party/coreos-overlay/coreos/config/env/net-libs/libmicrohttpd
vendored
Normal file
8
sdk_container/src/third_party/coreos-overlay/coreos/config/env/net-libs/libmicrohttpd
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# The usability of the eventfd is tested by linking and running a test
|
||||||
|
# program, which can't be done when doing a cross-compiliation. So for
|
||||||
|
# the case of cross-compilation, the configuration scripts assumes
|
||||||
|
# that eventfd is not usable, which results in confiuration error,
|
||||||
|
# since usage of eventfd is requested. We know that eventfd is usable
|
||||||
|
# for us, for tell this to the configure script.
|
||||||
|
|
||||||
|
export mhd_cv_eventfd_usable=yes
|
@ -1,4 +1,4 @@
|
|||||||
From 8969baced4cecd973f3077feba72c82c7fca34a0 Mon Sep 17 00:00:00 2001
|
From 0b3f711bd7a9f47412f28b77a4a268f3ab1ba5ad Mon Sep 17 00:00:00 2001
|
||||||
From: Krzesimir Nowak <knowak@microsoft.com>
|
From: Krzesimir Nowak <knowak@microsoft.com>
|
||||||
Date: Fri, 4 Aug 2023 11:49:18 +0200
|
Date: Fri, 4 Aug 2023 11:49:18 +0200
|
||||||
Subject: [PATCH] libfrog: Fix cross-compilation issue with randbytes
|
Subject: [PATCH] libfrog: Fix cross-compilation issue with randbytes
|
||||||
|
@ -38,12 +38,10 @@
|
|||||||
|
|
||||||
# Keep versions on both arches in sync.
|
# Keep versions on both arches in sync.
|
||||||
=dev-libs/ding-libs-0.6.1-r1 ~arm64
|
=dev-libs/ding-libs-0.6.1-r1 ~arm64
|
||||||
=dev-libs/elfutils-0.189-r1 ~amd64
|
|
||||||
=dev-libs/libgcrypt-1.10.1-r3 ~arm64
|
=dev-libs/libgcrypt-1.10.1-r3 ~arm64
|
||||||
=dev-python/lxml-4.9.2-r1 ~arm64
|
=dev-python/lxml-4.9.3-r1 ~arm64
|
||||||
=dev-util/bpftool-6.3 ~arm64
|
=dev-util/bpftool-6.3 ~arm64
|
||||||
=net-firewall/conntrack-tools-1.4.6-r1 ~arm64
|
=net-firewall/conntrack-tools-1.4.6-r1 ~arm64
|
||||||
=net-firewall/ipset-7.17-r1 ~arm64
|
|
||||||
|
|
||||||
# Required for addressing CVE-2023-0361.
|
# Required for addressing CVE-2023-0361.
|
||||||
=net-libs/gnutls-3.8.0 ~arm64
|
=net-libs/gnutls-3.8.0 ~arm64
|
||||||
@ -56,6 +54,7 @@
|
|||||||
=net-misc/curl-8.2.1 ~amd64 ~arm64
|
=net-misc/curl-8.2.1 ~amd64 ~arm64
|
||||||
|
|
||||||
# Keep versions on both arches in sync.
|
# Keep versions on both arches in sync.
|
||||||
|
=net-nds/openldap-2.6.4-r1 ~amd64
|
||||||
=sec-policy/selinux-base-2.20200818-r3 ~arm64
|
=sec-policy/selinux-base-2.20200818-r3 ~arm64
|
||||||
=sec-policy/selinux-base-policy-2.20200818-r3 ~arm64
|
=sec-policy/selinux-base-policy-2.20200818-r3 ~arm64
|
||||||
=sec-policy/selinux-unconfined-2.20200818-r2 ~arm64
|
=sec-policy/selinux-unconfined-2.20200818-r2 ~arm64
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
DIST gzip-1.12.tar.xz 825548 BLAKE2B 7e2d482c08555f5fb0ff5408c0afe48c61034e9779eed6e3dd8046c847234c0a8a6bc34d49a934a54db0d73033e12c71a228d373551384a4cd663315071637e0 SHA512 116326fe991828227de150336a0c016f4fe932dfbb728a16b4a84965256d9929574a4f5cfaf3cf6bb4154972ef0d110f26ab472c93e62ec9a5fd7a5d65abea24
|
DIST gzip-1.12.tar.xz 825548 BLAKE2B 7e2d482c08555f5fb0ff5408c0afe48c61034e9779eed6e3dd8046c847234c0a8a6bc34d49a934a54db0d73033e12c71a228d373551384a4cd663315071637e0 SHA512 116326fe991828227de150336a0c016f4fe932dfbb728a16b4a84965256d9929574a4f5cfaf3cf6bb4154972ef0d110f26ab472c93e62ec9a5fd7a5d65abea24
|
||||||
DIST gzip-1.12.tar.xz.sig 833 BLAKE2B ab7b4a759ef163d67f20773607ba0408ea9f1f7c7c224f43635fc3752acc521b74dbea4ec9ebb58a2f4fa13ecae19e00779b4b56c2cb95976301445beff817aa SHA512 1f4702797f7c5f1873c2f9c2f6210ba23824455d17ee82f50f0bf24240ed5bdf0090cf85338ccf76ba82422f8b4ad3a329d8bbf1350cb094d7bd61aa45550397
|
DIST gzip-1.12.tar.xz.sig 833 BLAKE2B ab7b4a759ef163d67f20773607ba0408ea9f1f7c7c224f43635fc3752acc521b74dbea4ec9ebb58a2f4fa13ecae19e00779b4b56c2cb95976301445beff817aa SHA512 1f4702797f7c5f1873c2f9c2f6210ba23824455d17ee82f50f0bf24240ed5bdf0090cf85338ccf76ba82422f8b4ad3a329d8bbf1350cb094d7bd61aa45550397
|
||||||
DIST gzip-1.12_p20221228.tar.xz 806448 BLAKE2B 278eb44caca7ee16ca5d0210673726a1daebef6da7eaf0a87fc24590cb4c53d4ebe2decb6b8975440e1eb2c2cfebb69f091c658f9a7430a1717f0477fec279da SHA512 87d1fccb9603ec336c89689337e3cf3cfef70054ab4416bd8380fee011e9f517555d80a2a009bd312a58c34fdaf48778e5f0e9bea350ae280b440a325a837866
|
DIST gzip-1.13.tar.xz 838248 BLAKE2B f0e3b4c28bafcd3b59b65ac2d71218dc58d81b52c6921c1be038757c99e99184178c5d0e9674caa5099713b8b64e8c85cf061f4abfa20b73b478288f121fb05d SHA512 e3d4d4aa4b2e53fdad980620307257c91dfbbc40bcec9baa8d4e85e8327f55e2ece552c9baf209df7b66a07103ab92d4954ac53c86c57fbde5e1dd461143f94c
|
||||||
DIST gzip-1.12_p20221228.tar.xz.sig 833 BLAKE2B b59d4677d15e2461d5fa95b4d53e94914e14cad613a9766aa3e51bfcece84ec0c4dd752c0d124cb76cc2240f9460f809c5bbbab958522c795e94026c8d4206ef SHA512 09a3a6687c80d7ec7e97ebd4c679e4d162729232d77966352c2f7ddd45594d79039ff33a93592889137605412b18b7868ea19ba4f4d162a5912a3978b3d67dd2
|
DIST gzip-1.13.tar.xz.sig 833 BLAKE2B 42e38fa7b3a6b6d21a18308cf662844ed84e1a142a945f3f3142db0a14212c0e642de514abb1307ec12ee7bb9644472cc3aed40582d9c266ab24808acbca0215 SHA512 f95e016f61f4a67cb4cec6cede2510af6bb5567d72bbd3d70210a6d5cf3ee5fea8f0cbf8f7b612fa52f2ecfd9dba050d9cd4494075ce5ac4abac7b74eaa7ccbc
|
||||||
|
@ -1,6 +1,2 @@
|
|||||||
DIST libarchive-3.6.2.tar.xz 5213196 BLAKE2B 355b5d402e352dee802513485ce7e047af58d6de5b9bf6a49f3fd8d7b94117007598820ac979585c0da79747e8b63b70ab151131182368a11f97a047cf9029d4 SHA512 a12bb6839e13a0be1099f42c650fc90fbfe62d32ce38bcbb4794206d29b2c782ae1115124d0e5f6b9716514213af32b05e4a42eb196447674a5f9a2a32bee043
|
|
||||||
DIST libarchive-3.6.2.tar.xz.asc 659 BLAKE2B a4b0035ab2bda4129cdf0c99266cd1e5f4772d90de6e348c75958bc803f369d6abea85d9730c6c9a216466b35697faad8d265fb2c285545887eafde27d828887 SHA512 403e5f7dec14d8b1cc01fad5a249e7b7618a7b45bcb3361ea80d67d76b591b12ce97f2c88b23d5486505dd3b34c1f1643e02235a3e5fc5150ee5735946092efe
|
|
||||||
DIST libarchive-3.7.0.tar.xz 5243356 BLAKE2B 8fb72a0504038c71584c0416c1d747b7f5c82266518704353e7fdf794bd9f9e2dc22b8fa2538fa8d12a3b9776581077040371d25647fe72c02a4ec5f3bb8d950 SHA512 f69ff7fbec7e909b6a03dd5b01c47316f95a277907409c8fba3930bb90d02cd9a329921eada59ca1afc9a19e34de7eb34e9d535bbc8cd98fb586f723bd0fdba8
|
|
||||||
DIST libarchive-3.7.0.tar.xz.asc 659 BLAKE2B 5bbd535ce100fbfb7ed46f8d7a6957ebb590c07124de4192ae0b777ad3b3950e6406f1ccda97dde5b6e792be00a039621de21665df9989073ebd0a905299eda1 SHA512 eda3a4347fb8d7f78c8e0a73f621a4a731d46cafc2f46ac59cebe39f3ebd29b1c3db21772c2027b30c5c507f5f732c3876e94f319e62156d2a3146e412cad84d
|
|
||||||
DIST libarchive-3.7.1.tar.xz 5254260 BLAKE2B 1a6fa4f5027effea3df1cfcd2d99b8b126fe03d727412b0a4529d6b2157c2c29490bcce206d0f771256c5ed6dec9612608c2c54c4861647f4e2892e0f5548adb SHA512 24380b9aa24434dfe39929ec85ede33580291023b20b7cdf03990ce62578eaeb389f5ca5680245a84c7aad51574c85a1fa3fad5254ec5395eadac1cb2130a936
|
DIST libarchive-3.7.1.tar.xz 5254260 BLAKE2B 1a6fa4f5027effea3df1cfcd2d99b8b126fe03d727412b0a4529d6b2157c2c29490bcce206d0f771256c5ed6dec9612608c2c54c4861647f4e2892e0f5548adb SHA512 24380b9aa24434dfe39929ec85ede33580291023b20b7cdf03990ce62578eaeb389f5ca5680245a84c7aad51574c85a1fa3fad5254ec5395eadac1cb2130a936
|
||||||
DIST libarchive-3.7.1.tar.xz.asc 659 BLAKE2B 5e72732d2e5a4f5f04f3510b3d81a148f23dffa10a3ebe709e816388c5a6e68c08ee2bbe36d81141d5ffa94ed64df3e4ca05994cda651c09589fda69a6a95e90 SHA512 6f6f6e5780c609bd9c6c359c210656f26afb585bda46988687e19d1e55f4f3260ea80bf11bfba1213fb3a3e1514c5c096692b4b9e96ffbadf06f85eb1227250a
|
DIST libarchive-3.7.1.tar.xz.asc 659 BLAKE2B 5e72732d2e5a4f5f04f3510b3d81a148f23dffa10a3ebe709e816388c5a6e68c08ee2bbe36d81141d5ffa94ed64df3e4ca05994cda651c09589fda69a6a95e90 SHA512 6f6f6e5780c609bd9c6c359c210656f26afb585bda46988687e19d1e55f4f3260ea80bf11bfba1213fb3a3e1514c5c096692b4b9e96ffbadf06f85eb1227250a
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
From: https://github.com/libarchive/libarchive/commit/bd074c2531e867078788fe8539376c31119e4e55.patch
|
|
||||||
From: Wong Hoi Sing Edison <hswong3i@gmail.com>
|
|
||||||
Date: Wed, 19 Jul 2023 16:59:32 +0800
|
|
||||||
Subject: [PATCH] Replace `svfs.f_namelen` with `svfs.f_namemax` (#1924)
|
|
||||||
|
|
||||||
The equivalent for `f_namelen` in struct statvfs is `f_namemax`.
|
|
||||||
|
|
||||||
Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
|
|
||||||
--- a/libarchive/archive_read_disk_posix.c
|
|
||||||
+++ b/libarchive/archive_read_disk_posix.c
|
|
||||||
@@ -1866,7 +1866,7 @@ setup_current_filesystem(struct archive_read_disk *a)
|
|
||||||
#if defined(USE_READDIR_R)
|
|
||||||
/* Set maximum filename length. */
|
|
||||||
#if defined(HAVE_STATVFS)
|
|
||||||
- t->current_filesystem->name_max = svfs.f_namelen;
|
|
||||||
+ t->current_filesystem->name_max = svfs.f_namemax;
|
|
||||||
#else
|
|
||||||
t->current_filesystem->name_max = sfs.f_namelen;
|
|
||||||
#endif
|
|
@ -1,139 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
inherit multilib-minimal toolchain-funcs verify-sig
|
|
||||||
|
|
||||||
DESCRIPTION="Multi-format archive and compression library"
|
|
||||||
HOMEPAGE="
|
|
||||||
https://www.libarchive.org/
|
|
||||||
https://github.com/libarchive/libarchive/
|
|
||||||
"
|
|
||||||
SRC_URI="
|
|
||||||
https://www.libarchive.de/downloads/${P}.tar.xz
|
|
||||||
verify-sig? ( https://www.libarchive.de/downloads/${P}.tar.xz.asc )
|
|
||||||
"
|
|
||||||
|
|
||||||
LICENSE="BSD BSD-2 BSD-4 public-domain"
|
|
||||||
SLOT="0/13"
|
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
|
||||||
IUSE="acl blake2 +bzip2 +e2fsprogs expat +iconv lz4 +lzma lzo nettle static-libs xattr zstd"
|
|
||||||
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/libarchive.org.asc
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
sys-libs/zlib[${MULTILIB_USEDEP}]
|
|
||||||
acl? ( virtual/acl[${MULTILIB_USEDEP}] )
|
|
||||||
blake2? ( app-crypt/libb2[${MULTILIB_USEDEP}] )
|
|
||||||
bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] )
|
|
||||||
expat? ( dev-libs/expat[${MULTILIB_USEDEP}] )
|
|
||||||
!expat? ( dev-libs/libxml2[${MULTILIB_USEDEP}] )
|
|
||||||
iconv? ( virtual/libiconv[${MULTILIB_USEDEP}] )
|
|
||||||
kernel_linux? (
|
|
||||||
xattr? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
|
||||||
)
|
|
||||||
dev-libs/openssl:0=[${MULTILIB_USEDEP}]
|
|
||||||
lz4? ( >=app-arch/lz4-0_p131:0=[${MULTILIB_USEDEP}] )
|
|
||||||
lzma? ( >=app-arch/xz-utils-5.2.5-r1[${MULTILIB_USEDEP}] )
|
|
||||||
lzo? ( >=dev-libs/lzo-2[${MULTILIB_USEDEP}] )
|
|
||||||
nettle? ( dev-libs/nettle:0=[${MULTILIB_USEDEP}] )
|
|
||||||
zstd? ( app-arch/zstd[${MULTILIB_USEDEP}] )
|
|
||||||
"
|
|
||||||
DEPEND="${RDEPEND}
|
|
||||||
kernel_linux? (
|
|
||||||
virtual/os-headers
|
|
||||||
e2fsprogs? ( sys-fs/e2fsprogs[${MULTILIB_USEDEP}] )
|
|
||||||
)
|
|
||||||
"
|
|
||||||
BDEPEND="
|
|
||||||
verify-sig? ( >=sec-keys/openpgp-keys-libarchive-20221209 )
|
|
||||||
"
|
|
||||||
|
|
||||||
# false positives (checks for libc-defined hash functions)
|
|
||||||
QA_CONFIG_IMPL_DECL_SKIP=(
|
|
||||||
SHA256_Init SHA256_Update SHA256_Final
|
|
||||||
SHA384_Init SHA384_Update SHA384_Final
|
|
||||||
SHA512_Init SHA512_Update SHA512_Final
|
|
||||||
)
|
|
||||||
|
|
||||||
multilib_src_configure() {
|
|
||||||
export ac_cv_header_ext2fs_ext2_fs_h=$(usex e2fsprogs) #354923
|
|
||||||
|
|
||||||
local myconf=(
|
|
||||||
$(use_enable acl)
|
|
||||||
$(use_enable static-libs static)
|
|
||||||
$(use_enable xattr)
|
|
||||||
$(use_with blake2 libb2)
|
|
||||||
$(use_with bzip2 bz2lib)
|
|
||||||
$(use_with expat)
|
|
||||||
$(use_with !expat xml2)
|
|
||||||
$(use_with iconv)
|
|
||||||
$(use_with lz4)
|
|
||||||
$(use_with lzma)
|
|
||||||
$(use_with lzo lzo2)
|
|
||||||
$(use_with nettle)
|
|
||||||
--with-zlib
|
|
||||||
$(use_with zstd)
|
|
||||||
|
|
||||||
# Windows-specific
|
|
||||||
--without-cng
|
|
||||||
)
|
|
||||||
if multilib_is_native_abi ; then
|
|
||||||
myconf+=(
|
|
||||||
--enable-bsdcat="$(tc-is-static-only && echo static || echo shared)"
|
|
||||||
--enable-bsdcpio="$(tc-is-static-only && echo static || echo shared)"
|
|
||||||
--enable-bsdtar="$(tc-is-static-only && echo static || echo shared)"
|
|
||||||
)
|
|
||||||
else
|
|
||||||
myconf+=(
|
|
||||||
--disable-bsdcat
|
|
||||||
--disable-bsdcpio
|
|
||||||
--disable-bsdtar
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
ECONF_SOURCE="${S}" econf "${myconf[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_compile() {
|
|
||||||
if multilib_is_native_abi ; then
|
|
||||||
emake
|
|
||||||
else
|
|
||||||
emake libarchive.la
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
mkdir -p "${T}"/bin || die
|
|
||||||
# tests fail when lbzip2[symlink] is used in place of ref bunzip2
|
|
||||||
ln -s "${BROOT}/bin/bunzip2" "${T}"/bin || die
|
|
||||||
local -x PATH=${T}/bin:${PATH}
|
|
||||||
multilib-minimal_src_test
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_test() {
|
|
||||||
# sandbox is breaking long symlink behavior
|
|
||||||
local -x SANDBOX_ON=0
|
|
||||||
local -x LD_PRELOAD=
|
|
||||||
# some locales trigger different output that breaks tests
|
|
||||||
local -x LC_ALL=C
|
|
||||||
emake check
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_install() {
|
|
||||||
if multilib_is_native_abi ; then
|
|
||||||
emake DESTDIR="${D}" install
|
|
||||||
else
|
|
||||||
local install_targets=(
|
|
||||||
install-includeHEADERS
|
|
||||||
install-libLTLIBRARIES
|
|
||||||
install-pkgconfigDATA
|
|
||||||
)
|
|
||||||
emake DESTDIR="${D}" "${install_targets[@]}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Libs.private: should be used from libarchive.pc instead
|
|
||||||
find "${ED}" -type f -name "*.la" -delete || die
|
|
||||||
# https://github.com/libarchive/libarchive/issues/1766
|
|
||||||
sed -e '/Requires\.private/s:iconv::' \
|
|
||||||
-i "${ED}/usr/$(get_libdir)/pkgconfig/libarchive.pc" || die
|
|
||||||
}
|
|
@ -1,149 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
inherit multilib-minimal toolchain-funcs verify-sig
|
|
||||||
|
|
||||||
DESCRIPTION="Multi-format archive and compression library"
|
|
||||||
HOMEPAGE="
|
|
||||||
https://www.libarchive.org/
|
|
||||||
https://github.com/libarchive/libarchive/
|
|
||||||
"
|
|
||||||
SRC_URI="
|
|
||||||
https://www.libarchive.de/downloads/${P}.tar.xz
|
|
||||||
verify-sig? ( https://www.libarchive.de/downloads/${P}.tar.xz.asc )
|
|
||||||
"
|
|
||||||
|
|
||||||
LICENSE="BSD BSD-2 BSD-4 public-domain"
|
|
||||||
SLOT="0/13"
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
|
||||||
IUSE="acl blake2 +bzip2 +e2fsprogs expat +iconv lz4 +lzma lzo nettle static-libs xattr zstd"
|
|
||||||
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/libarchive.org.asc
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
sys-libs/zlib[${MULTILIB_USEDEP}]
|
|
||||||
acl? ( virtual/acl[${MULTILIB_USEDEP}] )
|
|
||||||
blake2? ( app-crypt/libb2[${MULTILIB_USEDEP}] )
|
|
||||||
bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] )
|
|
||||||
expat? ( dev-libs/expat[${MULTILIB_USEDEP}] )
|
|
||||||
!expat? ( dev-libs/libxml2[${MULTILIB_USEDEP}] )
|
|
||||||
iconv? ( virtual/libiconv[${MULTILIB_USEDEP}] )
|
|
||||||
kernel_linux? (
|
|
||||||
xattr? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
|
||||||
)
|
|
||||||
dev-libs/openssl:0=[${MULTILIB_USEDEP}]
|
|
||||||
lz4? ( >=app-arch/lz4-0_p131:0=[${MULTILIB_USEDEP}] )
|
|
||||||
lzma? ( >=app-arch/xz-utils-5.2.5-r1[${MULTILIB_USEDEP}] )
|
|
||||||
lzo? ( >=dev-libs/lzo-2[${MULTILIB_USEDEP}] )
|
|
||||||
nettle? ( dev-libs/nettle:0=[${MULTILIB_USEDEP}] )
|
|
||||||
zstd? ( app-arch/zstd[${MULTILIB_USEDEP}] )
|
|
||||||
"
|
|
||||||
DEPEND="${RDEPEND}
|
|
||||||
kernel_linux? (
|
|
||||||
virtual/os-headers
|
|
||||||
e2fsprogs? ( sys-fs/e2fsprogs[${MULTILIB_USEDEP}] )
|
|
||||||
)
|
|
||||||
"
|
|
||||||
BDEPEND="
|
|
||||||
verify-sig? ( >=sec-keys/openpgp-keys-libarchive-20221209 )
|
|
||||||
elibc_musl? ( sys-libs/queue-standalone )
|
|
||||||
"
|
|
||||||
|
|
||||||
# Bug #910552 Only required for version 3.7.0
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}/${P}-f_namemax-fix.patch"
|
|
||||||
)
|
|
||||||
|
|
||||||
# false positives (checks for libc-defined hash functions)
|
|
||||||
QA_CONFIG_IMPL_DECL_SKIP=(
|
|
||||||
SHA256_Init SHA256_Update SHA256_Final
|
|
||||||
SHA384_Init SHA384_Update SHA384_Final
|
|
||||||
SHA512_Init SHA512_Update SHA512_Final
|
|
||||||
)
|
|
||||||
|
|
||||||
multilib_src_configure() {
|
|
||||||
export ac_cv_header_ext2fs_ext2_fs_h=$(usex e2fsprogs) #354923
|
|
||||||
|
|
||||||
local myconf=(
|
|
||||||
$(use_enable acl)
|
|
||||||
$(use_enable static-libs static)
|
|
||||||
$(use_enable xattr)
|
|
||||||
$(use_with blake2 libb2)
|
|
||||||
$(use_with bzip2 bz2lib)
|
|
||||||
$(use_with expat)
|
|
||||||
$(use_with !expat xml2)
|
|
||||||
$(use_with iconv)
|
|
||||||
$(use_with lz4)
|
|
||||||
$(use_with lzma)
|
|
||||||
$(use_with lzo lzo2)
|
|
||||||
$(use_with nettle)
|
|
||||||
--with-zlib
|
|
||||||
$(use_with zstd)
|
|
||||||
|
|
||||||
# Windows-specific
|
|
||||||
--without-cng
|
|
||||||
)
|
|
||||||
if multilib_is_native_abi ; then
|
|
||||||
myconf+=(
|
|
||||||
--enable-bsdcat="$(tc-is-static-only && echo static || echo shared)"
|
|
||||||
--enable-bsdcpio="$(tc-is-static-only && echo static || echo shared)"
|
|
||||||
--enable-bsdtar="$(tc-is-static-only && echo static || echo shared)"
|
|
||||||
--enable-bsdunzip="$(tc-is-static-only && echo static || echo shared)"
|
|
||||||
)
|
|
||||||
else
|
|
||||||
myconf+=(
|
|
||||||
--disable-bsdcat
|
|
||||||
--disable-bsdcpio
|
|
||||||
--disable-bsdtar
|
|
||||||
--disable-bsdunzip
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
ECONF_SOURCE="${S}" econf "${myconf[@]}"
|
|
||||||
# TODO: figure out why we don't get one
|
|
||||||
mkdir -p unzip/test || die
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_compile() {
|
|
||||||
if multilib_is_native_abi ; then
|
|
||||||
emake
|
|
||||||
else
|
|
||||||
emake libarchive.la
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
mkdir -p "${T}"/bin || die
|
|
||||||
# tests fail when lbzip2[symlink] is used in place of ref bunzip2
|
|
||||||
ln -s "${BROOT}/bin/bunzip2" "${T}"/bin || die
|
|
||||||
local -x PATH=${T}/bin:${PATH}
|
|
||||||
multilib-minimal_src_test
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_test() {
|
|
||||||
# sandbox is breaking long symlink behavior
|
|
||||||
local -x SANDBOX_ON=0
|
|
||||||
local -x LD_PRELOAD=
|
|
||||||
# some locales trigger different output that breaks tests
|
|
||||||
local -x LC_ALL=C
|
|
||||||
emake check
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_install() {
|
|
||||||
if multilib_is_native_abi ; then
|
|
||||||
emake DESTDIR="${D}" install
|
|
||||||
else
|
|
||||||
local install_targets=(
|
|
||||||
install-includeHEADERS
|
|
||||||
install-libLTLIBRARIES
|
|
||||||
install-pkgconfigDATA
|
|
||||||
)
|
|
||||||
emake DESTDIR="${D}" "${install_targets[@]}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Libs.private: should be used from libarchive.pc instead
|
|
||||||
find "${ED}" -type f -name "*.la" -delete || die
|
|
||||||
# https://github.com/libarchive/libarchive/issues/1766
|
|
||||||
sed -e '/Requires\.private/s:iconv::' \
|
|
||||||
-i "${ED}/usr/$(get_libdir)/pkgconfig/libarchive.pc" || die
|
|
||||||
}
|
|
@ -16,7 +16,7 @@ SRC_URI="
|
|||||||
|
|
||||||
LICENSE="BSD BSD-2 BSD-4 public-domain"
|
LICENSE="BSD BSD-2 BSD-4 public-domain"
|
||||||
SLOT="0/13"
|
SLOT="0/13"
|
||||||
KEYWORDS="~alpha amd64 ~arm arm64 hppa ~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="acl blake2 +bzip2 +e2fsprogs expat +iconv lz4 +lzma lzo nettle static-libs xattr zstd"
|
IUSE="acl blake2 +bzip2 +e2fsprogs expat +iconv lz4 +lzma lzo nettle static-libs xattr zstd"
|
||||||
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/libarchive.org.asc
|
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/libarchive.org.asc
|
||||||
|
|
||||||
|
@ -1 +1,3 @@
|
|||||||
DIST pigz-2.7.tar.gz 108102 BLAKE2B d391522fd6f8eb6918d671fb1c9517034941f3ae8e05ffcd7bece141e6dae110cde1560bad02bd2bcca2f868cdba2a8a16b5606ad6637d40d5ced5ec9bfffcc8 SHA512 9f9f61de4a0307fc057dc4e31a98bd8d706d9e709ecde0be02a871534fddf6a1fe1321158aa72708603aaaece43f83d2423b127f7689b6219b23aea4f989e8f5
|
DIST pigz-2.7.tar.gz 108102 BLAKE2B d391522fd6f8eb6918d671fb1c9517034941f3ae8e05ffcd7bece141e6dae110cde1560bad02bd2bcca2f868cdba2a8a16b5606ad6637d40d5ced5ec9bfffcc8 SHA512 9f9f61de4a0307fc057dc4e31a98bd8d706d9e709ecde0be02a871534fddf6a1fe1321158aa72708603aaaece43f83d2423b127f7689b6219b23aea4f989e8f5
|
||||||
|
DIST pigz-2.8.tar.gz 121304 BLAKE2B 9f1ae8b5e0dd9d9b1f17bcdbc41d8a9d50fd9b9ba7c50eb0bc1b738105d05cc396d9ce8e01f58f6b2fa7247a7c7e9926c602a613b1bb3e3a117c8f5c919ce640 SHA512 ae3d9d593e1645d65f9ab77aa828600c9af4bb30d0a073da7ae3dd805e65b87efaf6a0efb980f2d0168e475ae506eba194547d6479956dabb9d88293a9078a7f
|
||||||
|
DIST pigz-2.8.tar.gz.asc 235 BLAKE2B eb204079597d3e958da3672ba7f92481848bb7824da12b9306ff180add107175bed7bdd435dbc270170769a489c34a033d6ff547e8203cf1d71df6564381b43d SHA512 cb1dbca21d8fed25049693de02abf7489f61407d85f9a52d566c14e0194c6c393aed3edd2fd716d0ecedf7eeead6ae89d0cecc236caacd98740d14bd71e078db
|
||||||
|
22
sdk_container/src/third_party/portage-stable/app-arch/pigz/files/pigz-2.7-zlib-1.3.patch
vendored
Normal file
22
sdk_container/src/third_party/portage-stable/app-arch/pigz/files/pigz-2.7-zlib-1.3.patch
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
https://github.com/madler/pigz/issues/111
|
||||||
|
https://github.com/madler/pigz/commit/907ca0763be4547a9b0cce8c1057217488149744
|
||||||
|
|
||||||
|
From 907ca0763be4547a9b0cce8c1057217488149744 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mark Adler <madler@alumni.caltech.edu>
|
||||||
|
Date: Fri, 18 Aug 2023 03:27:12 -0700
|
||||||
|
Subject: [PATCH] Make pigz compatible with two-component zlib version numbers.
|
||||||
|
|
||||||
|
zlib 1.3 (not 1.3.0) broke the zlib_vernum() function in pigz.
|
||||||
|
This commit fixes that.
|
||||||
|
--- a/pigz.c
|
||||||
|
+++ b/pigz.c
|
||||||
|
@@ -1333,7 +1333,7 @@ local long zlib_vernum(void) {
|
||||||
|
}
|
||||||
|
ver++;
|
||||||
|
} while (left);
|
||||||
|
- return left < 2 ? num << (left << 2) : -1;
|
||||||
|
+ return left < 3 ? num << (left << 2) : -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// -- check value combination routines for parallel calculation --
|
||||||
|
|
@ -15,7 +15,7 @@ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390
|
|||||||
IUSE="static test"
|
IUSE="static test"
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
LIB_DEPEND="sys-libs/zlib[static-libs(+)]"
|
LIB_DEPEND=">=sys-libs/zlib-1.2.3[static-libs(+)]"
|
||||||
RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )"
|
RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )"
|
||||||
DEPEND="${RDEPEND}
|
DEPEND="${RDEPEND}
|
||||||
static? ( ${LIB_DEPEND} )
|
static? ( ${LIB_DEPEND} )
|
||||||
|
41
sdk_container/src/third_party/portage-stable/app-arch/pigz/pigz-2.7-r2.ebuild
vendored
Normal file
41
sdk_container/src/third_party/portage-stable/app-arch/pigz/pigz-2.7-r2.ebuild
vendored
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit toolchain-funcs flag-o-matic
|
||||||
|
|
||||||
|
DESCRIPTION="A parallel implementation of gzip"
|
||||||
|
HOMEPAGE="https://www.zlib.net/pigz/"
|
||||||
|
SRC_URI="https://www.zlib.net/pigz/${P}.tar.gz"
|
||||||
|
|
||||||
|
LICENSE="ZLIB"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~ppc-macos"
|
||||||
|
IUSE="static test"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
LIB_DEPEND=">=sys-libs/zlib-1.2.3[static-libs(+)]"
|
||||||
|
RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )"
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
static? ( ${LIB_DEPEND} )
|
||||||
|
test? ( app-arch/ncompress )
|
||||||
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${P}-memcpy-ub.patch
|
||||||
|
"${FILESDIR}"/${P}-zlib-1.3.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
use static && append-ldflags -static
|
||||||
|
emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
dobin ${PN}
|
||||||
|
dosym ${PN} /usr/bin/un${PN}
|
||||||
|
dodoc README
|
||||||
|
doman ${PN}.1
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright 1999-2022 Gentoo Authors
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
EAPI=7
|
EAPI=7
|
||||||
@ -15,7 +15,7 @@ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390
|
|||||||
IUSE="static test"
|
IUSE="static test"
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
LIB_DEPEND="sys-libs/zlib[static-libs(+)]"
|
LIB_DEPEND=">=sys-libs/zlib-1.2.3[static-libs(+)]"
|
||||||
RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )"
|
RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )"
|
||||||
DEPEND="${RDEPEND}
|
DEPEND="${RDEPEND}
|
||||||
static? ( ${LIB_DEPEND} )
|
static? ( ${LIB_DEPEND} )
|
||||||
|
41
sdk_container/src/third_party/portage-stable/app-arch/pigz/pigz-2.8.ebuild
vendored
Normal file
41
sdk_container/src/third_party/portage-stable/app-arch/pigz/pigz-2.8.ebuild
vendored
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/madler.asc
|
||||||
|
inherit toolchain-funcs flag-o-matic verify-sig
|
||||||
|
|
||||||
|
DESCRIPTION="A parallel implementation of gzip"
|
||||||
|
HOMEPAGE="https://www.zlib.net/pigz/"
|
||||||
|
SRC_URI="
|
||||||
|
https://www.zlib.net/pigz/${P}.tar.gz
|
||||||
|
verify-sig? ( https://www.zlib.net/pigz/${P}-sig.txt -> ${P}.tar.gz.asc )
|
||||||
|
"
|
||||||
|
|
||||||
|
LICENSE="ZLIB"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~ppc-macos"
|
||||||
|
IUSE="static test"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
LIB_DEPEND=">=sys-libs/zlib-1.2.3[static-libs(+)]"
|
||||||
|
RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )"
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
static? ( ${LIB_DEPEND} )
|
||||||
|
test? ( app-arch/ncompress )
|
||||||
|
"
|
||||||
|
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-madler )"
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
use static && append-ldflags -static
|
||||||
|
emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
dobin ${PN}
|
||||||
|
dosym ${PN} /usr/bin/un${PN}
|
||||||
|
dodoc README
|
||||||
|
doman ${PN}.1
|
||||||
|
}
|
@ -20,7 +20,7 @@ SRC_URI="
|
|||||||
LICENSE="GPL-3+"
|
LICENSE="GPL-3+"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
if [[ -z "$(ver_cut 3)" || "$(ver_cut 3)" -lt 90 ]] ; then
|
if [[ -z "$(ver_cut 3)" || "$(ver_cut 3)" -lt 90 ]] ; 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
|
||||||
IUSE="acl minimal nls selinux xattr"
|
IUSE="acl minimal nls selinux xattr"
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ SRC_URI="https://archive.hadrons.org/software/libmd/${P}.tar.xz"
|
|||||||
|
|
||||||
LICENSE="|| ( BSD BSD-2 ISC BEER-WARE public-domain )"
|
LICENSE="|| ( BSD BSD-2 ISC BEER-WARE 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"
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
|
||||||
|
|
||||||
multilib_src_configure() {
|
multilib_src_configure() {
|
||||||
ECONF_SOURCE="${S}" econf
|
ECONF_SOURCE="${S}" econf
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
DIST krb5-1.20.1.tar.gz 8661660 BLAKE2B ead16f8b1aec8bba3776628b74257c9aec891770c1fa6d5c5e66275db5f078ca59c9944cd2b017453b777ce080f8e5a322f735fab77691479cfad7b881b92830 SHA512 6f57479f13f107cd84f30de5c758eb6b9fc59171329c13e5da6073b806755f8d163eb7bd84767ea861ad6458ea0c9eeb00ee044d3bcad01ef136e9888564b6a2
|
DIST krb5-1.20.1.tar.gz 8661660 BLAKE2B ead16f8b1aec8bba3776628b74257c9aec891770c1fa6d5c5e66275db5f078ca59c9944cd2b017453b777ce080f8e5a322f735fab77691479cfad7b881b92830 SHA512 6f57479f13f107cd84f30de5c758eb6b9fc59171329c13e5da6073b806755f8d163eb7bd84767ea861ad6458ea0c9eeb00ee044d3bcad01ef136e9888564b6a2
|
||||||
DIST krb5-1.20.2.tar.gz 8662259 BLAKE2B 35f9e82390b5ba7227d0b5c40ab08f128ff27e7264d48585e2bfd08a443cb4b06415216190a3c35c6bc505f33483bcbe11430d9e40c3907f838798b2dc492416 SHA512 69e263ef74116a3332c632a2a243499bcc47b01b1e57d02fe35aa6c2ff655674b6cf2b815457145f788bceac4d466d3f55f8c20ec9ee4a6051128417e1e7e99e
|
DIST krb5-1.20.2.tar.gz 8662259 BLAKE2B 35f9e82390b5ba7227d0b5c40ab08f128ff27e7264d48585e2bfd08a443cb4b06415216190a3c35c6bc505f33483bcbe11430d9e40c3907f838798b2dc492416 SHA512 69e263ef74116a3332c632a2a243499bcc47b01b1e57d02fe35aa6c2ff655674b6cf2b815457145f788bceac4d466d3f55f8c20ec9ee4a6051128417e1e7e99e
|
||||||
DIST krb5-1.21.1.tar.gz 8623049 BLAKE2B d90a994b5d39dc88573e5cfca280565b0909b2e9aa8710a6d695e2c1faec37ea0c008d05894e8952dcf72348403f76fd8a124de8d8f34c70fad6de8866a92f0e SHA512 6f04216b0a151d6a9886bf009777bc95a7d3f9bcab30427cc8bbef3357e0130748c1d42b477be0eb2d469d9e0fb65bf5ac5ff05c22d6e1046795e161fe6afbcc
|
DIST krb5-1.21.1.tar.gz 8623049 BLAKE2B d90a994b5d39dc88573e5cfca280565b0909b2e9aa8710a6d695e2c1faec37ea0c008d05894e8952dcf72348403f76fd8a124de8d8f34c70fad6de8866a92f0e SHA512 6f04216b0a151d6a9886bf009777bc95a7d3f9bcab30427cc8bbef3357e0130748c1d42b477be0eb2d469d9e0fb65bf5ac5ff05c22d6e1046795e161fe6afbcc
|
||||||
|
DIST krb5-1.21.2.tar.gz 8622513 BLAKE2B 2afb3ff962a343bc07182fdab0c0ffb221632ff38baab74278cfc721ae72deacc260221470de36e420584f00b780e13221d2e511d4831bca8e1270b7f3d9e824 SHA512 4e09296b412383d53872661718dbfaa90201e0d85f69db48e57a8d4bd73c95a90c7ec7b6f0f325f6bc967f8d203b256b071c0191facf080aca0e2caec5d0ac49
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<flag name="openldap">Enable support for ldap as a database backend</flag>
|
<flag name="openldap">Enable support for ldap as a database backend</flag>
|
||||||
</use>
|
</use>
|
||||||
<upstream>
|
<upstream>
|
||||||
<remote-id type="cpe">cpe:/a:mit:kerberos</remote-id>
|
<remote-id type="cpe">cpe:/a:mit:kerberos_5</remote-id>
|
||||||
<remote-id type="github">krb5/krb5</remote-id>
|
<remote-id type="github">krb5/krb5</remote-id>
|
||||||
</upstream>
|
</upstream>
|
||||||
</pkgmetadata>
|
</pkgmetadata>
|
||||||
|
146
sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.21.2.ebuild
vendored
Normal file
146
sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.21.2.ebuild
vendored
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{10..12} )
|
||||||
|
inherit autotools python-any-r1 systemd toolchain-funcs multilib-minimal
|
||||||
|
|
||||||
|
MY_P="${P/mit-}"
|
||||||
|
P_DIR=$(ver_cut 1-2)
|
||||||
|
DESCRIPTION="MIT Kerberos V"
|
||||||
|
HOMEPAGE="https://web.mit.edu/kerberos/www/"
|
||||||
|
SRC_URI="https://web.mit.edu/kerberos/dist/krb5/${P_DIR}/${MY_P}.tar.gz"
|
||||||
|
|
||||||
|
LICENSE="openafs-krb5-a BSD MIT OPENLDAP BSD-2 HPND BSD-4 ISC RSA CC-BY-SA-3.0 || ( BSD-2 GPL-2+ )"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||||
|
IUSE="cpu_flags_x86_aes doc +keyutils lmdb nls openldap +pkinit selinux +threads test xinetd"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
!!app-crypt/heimdal
|
||||||
|
>=sys-fs/e2fsprogs-1.46.4-r51[${MULTILIB_USEDEP}]
|
||||||
|
|| (
|
||||||
|
>=dev-libs/libverto-0.2.5[libev,${MULTILIB_USEDEP}]
|
||||||
|
>=dev-libs/libverto-0.2.5[libevent,${MULTILIB_USEDEP}]
|
||||||
|
)
|
||||||
|
keyutils? ( >=sys-apps/keyutils-1.5.8:=[${MULTILIB_USEDEP}] )
|
||||||
|
lmdb? ( dev-db/lmdb:= )
|
||||||
|
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
|
||||||
|
openldap? ( >=net-nds/openldap-2.4.38-r1:=[${MULTILIB_USEDEP}] )
|
||||||
|
pkinit? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] )
|
||||||
|
xinetd? ( sys-apps/xinetd )
|
||||||
|
"
|
||||||
|
BDEPEND="
|
||||||
|
${PYTHON_DEPS}
|
||||||
|
app-alternatives/yacc
|
||||||
|
cpu_flags_x86_aes? (
|
||||||
|
amd64? ( dev-lang/yasm )
|
||||||
|
x86? ( dev-lang/yasm )
|
||||||
|
)
|
||||||
|
doc? ( virtual/latex-base )
|
||||||
|
test? ( dev-util/cmocka )
|
||||||
|
"
|
||||||
|
RDEPEND="${DEPEND}
|
||||||
|
selinux? ( sec-policy/selinux-kerberos )"
|
||||||
|
|
||||||
|
S=${WORKDIR}/${MY_P}/src
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}/${PN}-1.12_warn_cflags.patch"
|
||||||
|
"${FILESDIR}/${PN}_dont_create_rundir.patch"
|
||||||
|
"${FILESDIR}/${PN}-1.18.2-krb5-config.patch"
|
||||||
|
)
|
||||||
|
|
||||||
|
MULTILIB_CHOST_TOOLS=(
|
||||||
|
/usr/bin/krb5-config
|
||||||
|
)
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
# Make sure we always use the system copies.
|
||||||
|
rm -rf util/{et,ss,verto}
|
||||||
|
sed -i 's:^[[:space:]]*util/verto$::' configure.ac || die
|
||||||
|
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_configure() {
|
||||||
|
ECONF_SOURCE=${S} \
|
||||||
|
AR="$(tc-getAR)" \
|
||||||
|
WARN_CFLAGS="set" \
|
||||||
|
econf \
|
||||||
|
$(use_with openldap ldap) \
|
||||||
|
$(use_enable nls) \
|
||||||
|
$(use_enable pkinit) \
|
||||||
|
$(use_enable threads thread-support) \
|
||||||
|
$(use_with lmdb) \
|
||||||
|
$(use_with keyutils) \
|
||||||
|
--without-hesiod \
|
||||||
|
--enable-shared \
|
||||||
|
--with-system-et \
|
||||||
|
--with-system-ss \
|
||||||
|
--enable-dns-for-realm \
|
||||||
|
--enable-kdc-lookaside-cache \
|
||||||
|
--with-system-verto \
|
||||||
|
--disable-rpath
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_compile() {
|
||||||
|
emake -j1
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_test() {
|
||||||
|
multilib_is_native_abi && emake -j1 check
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install() {
|
||||||
|
emake \
|
||||||
|
DESTDIR="${D}" \
|
||||||
|
EXAMPLEDIR="${EPREFIX}/usr/share/doc/${PF}/examples" \
|
||||||
|
install
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install_all() {
|
||||||
|
# default database dir
|
||||||
|
keepdir /var/lib/krb5kdc
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
dodoc README
|
||||||
|
|
||||||
|
if use doc; then
|
||||||
|
dodoc -r doc/html
|
||||||
|
docinto pdf
|
||||||
|
dodoc doc/pdf/*.pdf
|
||||||
|
fi
|
||||||
|
|
||||||
|
newinitd "${FILESDIR}"/mit-krb5kadmind.initd-r2 mit-krb5kadmind
|
||||||
|
newinitd "${FILESDIR}"/mit-krb5kdc.initd-r2 mit-krb5kdc
|
||||||
|
newinitd "${FILESDIR}"/mit-krb5kpropd.initd-r2 mit-krb5kpropd
|
||||||
|
newconfd "${FILESDIR}"/mit-krb5kadmind.confd mit-krb5kadmind
|
||||||
|
newconfd "${FILESDIR}"/mit-krb5kdc.confd mit-krb5kdc
|
||||||
|
newconfd "${FILESDIR}"/mit-krb5kpropd.confd mit-krb5kpropd
|
||||||
|
|
||||||
|
systemd_newunit "${FILESDIR}"/mit-krb5kadmind.service mit-krb5kadmind.service
|
||||||
|
systemd_newunit "${FILESDIR}"/mit-krb5kdc.service mit-krb5kdc.service
|
||||||
|
systemd_newunit "${FILESDIR}"/mit-krb5kpropd.service mit-krb5kpropd.service
|
||||||
|
systemd_newunit "${FILESDIR}"/mit-krb5kpropd_at.service "mit-krb5kpropd@.service"
|
||||||
|
systemd_newunit "${FILESDIR}"/mit-krb5kpropd.socket mit-krb5kpropd.socket
|
||||||
|
|
||||||
|
insinto /etc
|
||||||
|
newins "${ED}/usr/share/doc/${PF}/examples/krb5.conf" krb5.conf.example
|
||||||
|
insinto /var/lib/krb5kdc
|
||||||
|
newins "${ED}/usr/share/doc/${PF}/examples/kdc.conf" kdc.conf.example
|
||||||
|
|
||||||
|
if use openldap ; then
|
||||||
|
insinto /etc/openldap/schema
|
||||||
|
doins "${S}/plugins/kdb/ldap/libkdb_ldap/kerberos.schema"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use xinetd ; then
|
||||||
|
insinto /etc/xinetd.d
|
||||||
|
newins "${FILESDIR}/kpropd.xinetd" kpropd
|
||||||
|
fi
|
||||||
|
}
|
22
sdk_container/src/third_party/portage-stable/app-crypt/rhash/files/rhash-1.4.4-prefix.patch
vendored
Normal file
22
sdk_container/src/third_party/portage-stable/app-crypt/rhash/files/rhash-1.4.4-prefix.patch
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
From c804982d1b24c6533118b3068d2cfdca685076f3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Aleksey Kravchenko <rhash.admin@gmail.com>
|
||||||
|
Date: Mon, 7 Aug 2023 01:00:37 +0300
|
||||||
|
Subject: [PATCH] Fix #243: Incorrect assigment in the configure script
|
||||||
|
|
||||||
|
---
|
||||||
|
configure | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/configure b/configure
|
||||||
|
index 39ef8c1b..63cbd8d0 100755
|
||||||
|
--- a/configure
|
||||||
|
+++ b/configure
|
||||||
|
@@ -877,7 +877,7 @@ if test "$OPT_STATIC" = "no"; then
|
||||||
|
RHASH_TEST_OPTIONS=--shared
|
||||||
|
test "$INSTALL_LIB_SHARED" = "auto" && INSTALL_LIB_SHARED=yes
|
||||||
|
test "$INSTALL_LIB_STATIC" = "yes" && RHASH_BUILD_TARGETS="$RHASH_BUILD_TARGETS \$(LIBRHASH_STATIC)"
|
||||||
|
- RHASH_LDFLAGS=$RHASH_LDFLAGS $GETTEXT_LDFLAGS
|
||||||
|
+ RHASH_LDFLAGS=$(join_params $RHASH_LDFLAGS $GETTEXT_LDFLAGS)
|
||||||
|
else
|
||||||
|
LIBRHASH_TYPE=static
|
||||||
|
LIBRHASH_PATH="\$(LIBRHASH_STATIC)"
|
@ -29,6 +29,10 @@ BDEPEND="
|
|||||||
|
|
||||||
S="${WORKDIR}/RHash-${PV}"
|
S="${WORKDIR}/RHash-${PV}"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${P}-prefix.patch
|
||||||
|
)
|
||||||
|
|
||||||
src_prepare() {
|
src_prepare() {
|
||||||
default
|
default
|
||||||
|
|
||||||
|
@ -2,4 +2,5 @@ DIST vim-9.0.1403.tar.gz 16976705 BLAKE2B 9664d52de488086308fcbcda0b0a1167161afb
|
|||||||
DIST vim-9.0.1503.tar.gz 17010118 BLAKE2B 4f74d52a3fcf7875031378f86fc3411c64c92e4b82bee371148b19042478d3f974793477c3fc2d9ddff9233fa1ec3c864962880840867544e92464f1a0876f51 SHA512 2f3242ec0f79cf6affc2f7fdaf689c35d8597706ac1689dbbdc01352676199605bb37f22bd901f1e8d59f312237d3fce4bee8b979b28a744ea9e40558621980e
|
DIST vim-9.0.1503.tar.gz 17010118 BLAKE2B 4f74d52a3fcf7875031378f86fc3411c64c92e4b82bee371148b19042478d3f974793477c3fc2d9ddff9233fa1ec3c864962880840867544e92464f1a0876f51 SHA512 2f3242ec0f79cf6affc2f7fdaf689c35d8597706ac1689dbbdc01352676199605bb37f22bd901f1e8d59f312237d3fce4bee8b979b28a744ea9e40558621980e
|
||||||
DIST vim-9.0.1627.tar.gz 17048824 BLAKE2B 3fa583cf676c2388641b1240ed4b90c2e42cd9f50ea44a943cce86bba4bf278adf54837bb5c4530471fd57cfcd08cd39be78b17a5e907435a02dc5874ff7f571 SHA512 d2fb863e03d4ad773fcba8917f3cd1e373f661aa8b8a20bd3e416a73788997d31c6dd106a1bf59d72475bb577bbe6d52eb079fff9c7152d96bb6e5c9aa6e2f3b
|
DIST vim-9.0.1627.tar.gz 17048824 BLAKE2B 3fa583cf676c2388641b1240ed4b90c2e42cd9f50ea44a943cce86bba4bf278adf54837bb5c4530471fd57cfcd08cd39be78b17a5e907435a02dc5874ff7f571 SHA512 d2fb863e03d4ad773fcba8917f3cd1e373f661aa8b8a20bd3e416a73788997d31c6dd106a1bf59d72475bb577bbe6d52eb079fff9c7152d96bb6e5c9aa6e2f3b
|
||||||
DIST vim-9.0.1678.tar.gz 17069551 BLAKE2B e83cea77513eb0d8b3ed02bd508333fb97357d2d7a91a90c5a9376b03b444a0b65b6ce04b14e191e33445132845af71193ab140ea615bb03a2c24a904b726cb4 SHA512 c5ffb7ca56ff4eee70f06599dd84db2eb28ddadac229d4f7faf01174805923636a4ce61486bdf5a47910c929613dc9b9290dfc9288006222b4bc4ac891548bb8
|
DIST vim-9.0.1678.tar.gz 17069551 BLAKE2B e83cea77513eb0d8b3ed02bd508333fb97357d2d7a91a90c5a9376b03b444a0b65b6ce04b14e191e33445132845af71193ab140ea615bb03a2c24a904b726cb4 SHA512 c5ffb7ca56ff4eee70f06599dd84db2eb28ddadac229d4f7faf01174805923636a4ce61486bdf5a47910c929613dc9b9290dfc9288006222b4bc4ac891548bb8
|
||||||
|
DIST vim-9.0.1777.tar.gz 17177555 BLAKE2B ad6d785f4c6b112199bd2f34e0b7f6070615fba8dce25354a7ded40ff8536388e7b7120c1f2fad790c8dc7134d74649697b6e95777e79dcf1e208ead81b229d6 SHA512 702781b6a9cf540d22aa0bc1e25a4fb785ff2b22e9c6a59643e87fd6f7b3e5444adbee1816bfaa0b45b9655bb56dc2d13904230840a0ecea56f5453034d81a2e
|
||||||
DIST vim-patches-vim-9.0.1000-patches.tar.bz2 3245 BLAKE2B 3bf3d0e314cc3f96d5d9675de196a62c4c8a72645d56ef94b80768571c99cba5cc556442e3bd2dfa8818460fd851fe7bd1ae15999af7225fb271b81c43105843 SHA512 2883441a2001bf7ce89a7f0862f780b71cc0164c8fcb8dbdf7040e1bcbcf408d138d3d77f308aa54c762e9975fa5ec89cfceeabbf721344dfc938870a363667a
|
DIST vim-patches-vim-9.0.1000-patches.tar.bz2 3245 BLAKE2B 3bf3d0e314cc3f96d5d9675de196a62c4c8a72645d56ef94b80768571c99cba5cc556442e3bd2dfa8818460fd851fe7bd1ae15999af7225fb271b81c43105843 SHA512 2883441a2001bf7ce89a7f0862f780b71cc0164c8fcb8dbdf7040e1bcbcf408d138d3d77f308aa54c762e9975fa5ec89cfceeabbf721344dfc938870a363667a
|
||||||
|
@ -16,7 +16,7 @@ if [[ ${PV} == 9999* ]] ; then
|
|||||||
else
|
else
|
||||||
SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz
|
SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz
|
||||||
https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2"
|
https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
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
|
||||||
S="${WORKDIR}/vim-${PV}"
|
S="${WORKDIR}/vim-${PV}"
|
||||||
|
|
||||||
|
231
sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.0.1777.ebuild
vendored
Normal file
231
sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.0.1777.ebuild
vendored
Normal file
@ -0,0 +1,231 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
# Please bump with app-editors/vim and app-editors/gvim
|
||||||
|
|
||||||
|
VIM_VERSION="9.0"
|
||||||
|
VIM_PATCHES_VERSION="9.0.1000"
|
||||||
|
inherit bash-completion-r1 desktop flag-o-matic prefix toolchain-funcs vim-doc xdg-utils
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
inherit git-r3
|
||||||
|
EGIT_REPO_URI="https://github.com/vim/vim.git"
|
||||||
|
EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${PV}
|
||||||
|
else
|
||||||
|
SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz
|
||||||
|
https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2"
|
||||||
|
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
|
||||||
|
S="${WORKDIR}/vim-${PV}"
|
||||||
|
|
||||||
|
DESCRIPTION="vim and gvim shared files"
|
||||||
|
HOMEPAGE="https://www.vim.org https://github.com/vim/vim"
|
||||||
|
|
||||||
|
LICENSE="vim"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="nls acl minimal"
|
||||||
|
|
||||||
|
# ncurses is only needed by ./configure, so no subslot operator required
|
||||||
|
DEPEND=">=sys-libs/ncurses-5.2-r2:0"
|
||||||
|
BDEPEND="sys-devel/autoconf"
|
||||||
|
|
||||||
|
if [[ ${PV} != 9999* ]]; then
|
||||||
|
# Gentoo patches to fix runtime issues, cross-compile errors, etc
|
||||||
|
PATCHES=(
|
||||||
|
"${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches"
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# platform-specific checks (bug #898406):
|
||||||
|
# - acl() -- Solaris
|
||||||
|
# - statacl() -- AIX
|
||||||
|
QA_CONFIG_IMPL_DECL_SKIP=(
|
||||||
|
'acl'
|
||||||
|
'statacl'
|
||||||
|
)
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
# people with broken alphabets run into trouble. bug #82186.
|
||||||
|
unset LANG LC_ALL
|
||||||
|
export LC_COLLATE="C"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
|
||||||
|
# Fixup a script to use awk instead of nawk
|
||||||
|
sed -i \
|
||||||
|
-e '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
|
||||||
|
"${S}"/runtime/tools/mve.awk || die "sed failed"
|
||||||
|
|
||||||
|
# See bug #77841. We remove this file after the tarball extraction.
|
||||||
|
rm -v "${S}"/runtime/tools/vimspell.sh || die "rm failed"
|
||||||
|
|
||||||
|
# Read vimrc and gvimrc from /etc/vim
|
||||||
|
echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' >> "${S}"/src/feature.h || die
|
||||||
|
echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h || die
|
||||||
|
|
||||||
|
# Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
|
||||||
|
# Hopefully this pattern won't break for a while at least.
|
||||||
|
# This fixes bug #29398 (27 Sep 2003 agriffis)
|
||||||
|
sed -i 's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
|
||||||
|
"${S}"/runtime/doc/syntax.txt \
|
||||||
|
"${S}"/runtime/doc/tagsrch.txt \
|
||||||
|
"${S}"/runtime/doc/usr_29.txt \
|
||||||
|
"${S}"/runtime/menu.vim \
|
||||||
|
"${S}"/src/configure.ac || die 'sed failed'
|
||||||
|
|
||||||
|
# gcc on sparc32 has this, uhm, interesting problem with detecting EOF
|
||||||
|
# correctly. To avoid some really entertaining error messages about stuff
|
||||||
|
# which isn't even in the source file being invalid, we'll do some trickery
|
||||||
|
# to make the error never occur. bug 66162 (02 October 2004 ciaranm)
|
||||||
|
find "${S}" -name '*.c' | while read c; do
|
||||||
|
echo >> "$c" || die "echo failed"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Try to avoid sandbox problems. Bug #114475.
|
||||||
|
if [[ -d "${S}"/src/po ]]; then
|
||||||
|
sed -i -e \
|
||||||
|
'/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
|
||||||
|
"${S}"/src/po/Makefile || die "sed failed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
|
||||||
|
|
||||||
|
# Fix bug #76331: -O3 causes problems, use -O2 instead. We'll do this for
|
||||||
|
# everyone since previous flag filtering bugs have turned out to affect
|
||||||
|
# multiple archs...
|
||||||
|
replace-flags -O3 -O2
|
||||||
|
|
||||||
|
# Fix bug #18245: Prevent "make" from the following chain:
|
||||||
|
# (1) Notice configure.ac is newer than auto/configure
|
||||||
|
# (2) Rebuild auto/configure
|
||||||
|
# (3) Notice auto/configure is newer than auto/config.mk
|
||||||
|
# (4) Run ./configure (with wrong args) to remake auto/config.mk
|
||||||
|
sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
|
||||||
|
|
||||||
|
# Remove src/auto/configure file.
|
||||||
|
rm -v src/auto/configure || die "rm configure failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# Fix bug #37354: Disallow -funroll-all-loops on amd64
|
||||||
|
# Bug 57859 suggests that we want to do this for all archs
|
||||||
|
filter-flags -funroll-all-loops
|
||||||
|
|
||||||
|
emake -j1 -C src autoconf
|
||||||
|
|
||||||
|
# This should fix a sandbox violation (see bug 24447). The hvc
|
||||||
|
# things are for ppc64, see bug 86433.
|
||||||
|
for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
|
||||||
|
if [[ -e "${file}" ]]; then
|
||||||
|
addwrite ${file}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Let Portage do the stripping. Some people like that.
|
||||||
|
export ac_cv_prog_STRIP="$(type -P true ) faking strip"
|
||||||
|
|
||||||
|
local myconf=(
|
||||||
|
--with-modified-by="Gentoo-${PVR} (RIP Bram)"
|
||||||
|
--enable-gui=no
|
||||||
|
--without-x
|
||||||
|
--disable-darwin
|
||||||
|
--disable-perlinterp
|
||||||
|
--disable-pythoninterp
|
||||||
|
--disable-rubyinterp
|
||||||
|
--disable-gpm
|
||||||
|
--disable-selinux
|
||||||
|
$(use_enable nls)
|
||||||
|
$(use_enable acl)
|
||||||
|
)
|
||||||
|
|
||||||
|
# Keep Gentoo Prefix env contained within the EPREFIX
|
||||||
|
use prefix && myconf+=( --without-local-dir )
|
||||||
|
|
||||||
|
if tc-is-cross-compiler ; then
|
||||||
|
export vim_cv_getcwd_broken=no \
|
||||||
|
vim_cv_memmove_handles_overlap=yes \
|
||||||
|
vim_cv_stat_ignores_slash=yes \
|
||||||
|
vim_cv_terminfo=yes \
|
||||||
|
vim_cv_toupper_broken=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
econf "${myconf[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
emake -j1 -C src auto/osdef.h objects
|
||||||
|
emake tools
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() { :; }
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
|
||||||
|
|
||||||
|
dodir /usr/{bin,share/{man/man1,vim}}
|
||||||
|
emake -C src \
|
||||||
|
installruntime \
|
||||||
|
installmanlinks \
|
||||||
|
installmacros \
|
||||||
|
installtutor \
|
||||||
|
installtutorbin \
|
||||||
|
installtools \
|
||||||
|
install-languages \
|
||||||
|
DESTDIR="${D}" \
|
||||||
|
BINDIR="${EPREFIX}"/usr/bin \
|
||||||
|
MANDIR="${EPREFIX}"/usr/share/man \
|
||||||
|
DATADIR="${EPREFIX}"/usr/share
|
||||||
|
|
||||||
|
keepdir ${vimfiles}/keymap
|
||||||
|
|
||||||
|
# default vimrc is installed by vim-core since it applies to
|
||||||
|
# both vim and gvim
|
||||||
|
insinto /etc/vim/
|
||||||
|
newins "${FILESDIR}"/vimrc-r6 vimrc
|
||||||
|
eprefixify "${ED}"/etc/vim/vimrc
|
||||||
|
|
||||||
|
if use minimal; then
|
||||||
|
# To save space, install only a subset of the files.
|
||||||
|
# Helps minimalize the livecd, bug 65144.
|
||||||
|
rm -rv "${ED}${vimfiles}"/{compiler,doc,ftplugin,indent} || die
|
||||||
|
rm -rv "${ED}${vimfiles}"/{macros,print,tools,tutor} || die
|
||||||
|
rm -v "${ED}"/usr/bin/vimtutor || die
|
||||||
|
|
||||||
|
for f in "${ED}${vimfiles}"/colors/*.vim; do
|
||||||
|
if [[ ${f} != */@(default).vim ]] ; then
|
||||||
|
printf '%s\0' "${f}"
|
||||||
|
fi
|
||||||
|
done | xargs -0 rm -f || die
|
||||||
|
|
||||||
|
for f in "${ED}${vimfiles}"/syntax/*.vim; do
|
||||||
|
if [[ ${f} != */@(conf|crontab|fstab|inittab|resolv|sshdconfig|syntax|nosyntax|synload).vim ]] ; then
|
||||||
|
printf '%s\0' "${f}"
|
||||||
|
fi
|
||||||
|
done | xargs -0 rm -f || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
newbashcomp "${FILESDIR}"/xxd-completion xxd
|
||||||
|
|
||||||
|
# install gvim icon since both vim/gvim desktop files reference it
|
||||||
|
doicon -s scalable "${FILESDIR}"/gvim.svg
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# update documentation tags (from vim-doc.eclass)
|
||||||
|
update_vim_helptags
|
||||||
|
|
||||||
|
# update icon cache
|
||||||
|
xdg_icon_cache_update
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
# Update documentation tags (from vim-doc.eclass)
|
||||||
|
update_vim_helptags
|
||||||
|
|
||||||
|
# update icon cache
|
||||||
|
xdg_icon_cache_update
|
||||||
|
}
|
@ -2,4 +2,5 @@ DIST vim-9.0.1403.tar.gz 16976705 BLAKE2B 9664d52de488086308fcbcda0b0a1167161afb
|
|||||||
DIST vim-9.0.1503.tar.gz 17010118 BLAKE2B 4f74d52a3fcf7875031378f86fc3411c64c92e4b82bee371148b19042478d3f974793477c3fc2d9ddff9233fa1ec3c864962880840867544e92464f1a0876f51 SHA512 2f3242ec0f79cf6affc2f7fdaf689c35d8597706ac1689dbbdc01352676199605bb37f22bd901f1e8d59f312237d3fce4bee8b979b28a744ea9e40558621980e
|
DIST vim-9.0.1503.tar.gz 17010118 BLAKE2B 4f74d52a3fcf7875031378f86fc3411c64c92e4b82bee371148b19042478d3f974793477c3fc2d9ddff9233fa1ec3c864962880840867544e92464f1a0876f51 SHA512 2f3242ec0f79cf6affc2f7fdaf689c35d8597706ac1689dbbdc01352676199605bb37f22bd901f1e8d59f312237d3fce4bee8b979b28a744ea9e40558621980e
|
||||||
DIST vim-9.0.1627.tar.gz 17048824 BLAKE2B 3fa583cf676c2388641b1240ed4b90c2e42cd9f50ea44a943cce86bba4bf278adf54837bb5c4530471fd57cfcd08cd39be78b17a5e907435a02dc5874ff7f571 SHA512 d2fb863e03d4ad773fcba8917f3cd1e373f661aa8b8a20bd3e416a73788997d31c6dd106a1bf59d72475bb577bbe6d52eb079fff9c7152d96bb6e5c9aa6e2f3b
|
DIST vim-9.0.1627.tar.gz 17048824 BLAKE2B 3fa583cf676c2388641b1240ed4b90c2e42cd9f50ea44a943cce86bba4bf278adf54837bb5c4530471fd57cfcd08cd39be78b17a5e907435a02dc5874ff7f571 SHA512 d2fb863e03d4ad773fcba8917f3cd1e373f661aa8b8a20bd3e416a73788997d31c6dd106a1bf59d72475bb577bbe6d52eb079fff9c7152d96bb6e5c9aa6e2f3b
|
||||||
DIST vim-9.0.1678.tar.gz 17069551 BLAKE2B e83cea77513eb0d8b3ed02bd508333fb97357d2d7a91a90c5a9376b03b444a0b65b6ce04b14e191e33445132845af71193ab140ea615bb03a2c24a904b726cb4 SHA512 c5ffb7ca56ff4eee70f06599dd84db2eb28ddadac229d4f7faf01174805923636a4ce61486bdf5a47910c929613dc9b9290dfc9288006222b4bc4ac891548bb8
|
DIST vim-9.0.1678.tar.gz 17069551 BLAKE2B e83cea77513eb0d8b3ed02bd508333fb97357d2d7a91a90c5a9376b03b444a0b65b6ce04b14e191e33445132845af71193ab140ea615bb03a2c24a904b726cb4 SHA512 c5ffb7ca56ff4eee70f06599dd84db2eb28ddadac229d4f7faf01174805923636a4ce61486bdf5a47910c929613dc9b9290dfc9288006222b4bc4ac891548bb8
|
||||||
|
DIST vim-9.0.1777.tar.gz 17177555 BLAKE2B ad6d785f4c6b112199bd2f34e0b7f6070615fba8dce25354a7ded40ff8536388e7b7120c1f2fad790c8dc7134d74649697b6e95777e79dcf1e208ead81b229d6 SHA512 702781b6a9cf540d22aa0bc1e25a4fb785ff2b22e9c6a59643e87fd6f7b3e5444adbee1816bfaa0b45b9655bb56dc2d13904230840a0ecea56f5453034d81a2e
|
||||||
DIST vim-patches-vim-9.0.1000-patches.tar.bz2 3245 BLAKE2B 3bf3d0e314cc3f96d5d9675de196a62c4c8a72645d56ef94b80768571c99cba5cc556442e3bd2dfa8818460fd851fe7bd1ae15999af7225fb271b81c43105843 SHA512 2883441a2001bf7ce89a7f0862f780b71cc0164c8fcb8dbdf7040e1bcbcf408d138d3d77f308aa54c762e9975fa5ec89cfceeabbf721344dfc938870a363667a
|
DIST vim-patches-vim-9.0.1000-patches.tar.bz2 3245 BLAKE2B 3bf3d0e314cc3f96d5d9675de196a62c4c8a72645d56ef94b80768571c99cba5cc556442e3bd2dfa8818460fd851fe7bd1ae15999af7225fb271b81c43105843 SHA512 2883441a2001bf7ce89a7f0862f780b71cc0164c8fcb8dbdf7040e1bcbcf408d138d3d77f308aa54c762e9975fa5ec89cfceeabbf721344dfc938870a363667a
|
||||||
|
@ -21,7 +21,7 @@ if [[ ${PV} == 9999* ]] ; then
|
|||||||
else
|
else
|
||||||
SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> ${P}.tar.gz
|
SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> ${P}.tar.gz
|
||||||
https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2"
|
https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
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
|
||||||
|
|
||||||
DESCRIPTION="Vim, an improved vi-style text editor"
|
DESCRIPTION="Vim, an improved vi-style text editor"
|
||||||
|
370
sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.0.1777.ebuild
vendored
Normal file
370
sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.0.1777.ebuild
vendored
Normal file
@ -0,0 +1,370 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
# Please bump with app-editors/vim-core and app-editors/gvim
|
||||||
|
|
||||||
|
VIM_VERSION="9.0"
|
||||||
|
VIM_PATCHES_VERSION="9.0.1000"
|
||||||
|
|
||||||
|
LUA_COMPAT=( lua5-{1..4} luajit )
|
||||||
|
PYTHON_COMPAT=( python3_{9..11} )
|
||||||
|
PYTHON_REQ_USE="threads(+)"
|
||||||
|
USE_RUBY="ruby27 ruby30 ruby31"
|
||||||
|
|
||||||
|
inherit vim-doc flag-o-matic bash-completion-r1 lua-single python-single-r1 ruby-single toolchain-funcs desktop xdg-utils
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
inherit git-r3
|
||||||
|
EGIT_REPO_URI="https://github.com/vim/vim.git"
|
||||||
|
else
|
||||||
|
SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> ${P}.tar.gz
|
||||||
|
https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
fi
|
||||||
|
|
||||||
|
DESCRIPTION="Vim, an improved vi-style text editor"
|
||||||
|
HOMEPAGE="https://www.vim.org https://github.com/vim/vim"
|
||||||
|
|
||||||
|
LICENSE="vim"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="X acl crypt cscope debug gpm lua minimal nls perl python racket ruby selinux sound tcl terminal vim-pager"
|
||||||
|
REQUIRED_USE="
|
||||||
|
lua? ( ${LUA_REQUIRED_USE} )
|
||||||
|
python? ( ${PYTHON_REQUIRED_USE} )
|
||||||
|
vim-pager? ( !minimal )
|
||||||
|
"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
>=app-eselect/eselect-vi-1.1
|
||||||
|
>=sys-libs/ncurses-5.2-r2:0=
|
||||||
|
nls? ( virtual/libintl )
|
||||||
|
acl? ( kernel_linux? ( sys-apps/acl ) )
|
||||||
|
crypt? ( dev-libs/libsodium:= )
|
||||||
|
cscope? ( dev-util/cscope )
|
||||||
|
gpm? ( >=sys-libs/gpm-1.19.3 )
|
||||||
|
lua? ( ${LUA_DEPS}
|
||||||
|
$(lua_gen_impl_dep 'deprecated' lua5-1)
|
||||||
|
)
|
||||||
|
~app-editors/vim-core-${PV}
|
||||||
|
vim-pager? ( app-editors/vim-core[-minimal] )
|
||||||
|
perl? ( dev-lang/perl:= )
|
||||||
|
python? ( ${PYTHON_DEPS} )
|
||||||
|
racket? ( dev-scheme/racket )
|
||||||
|
ruby? ( ${RUBY_DEPS} )
|
||||||
|
selinux? ( sys-libs/libselinux )
|
||||||
|
sound? ( media-libs/libcanberra )
|
||||||
|
tcl? ( dev-lang/tcl:0= )
|
||||||
|
X? ( x11-libs/libXt )
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
# configure runs the Lua interpreter
|
||||||
|
BDEPEND="
|
||||||
|
sys-devel/autoconf
|
||||||
|
lua? ( ${LUA_DEPS} )
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
"
|
||||||
|
PDEPEND="!minimal? ( app-vim/gentoo-syntax )"
|
||||||
|
|
||||||
|
if [[ ${PV} != 9999* ]]; then
|
||||||
|
# Gentoo patches to fix runtime issues, cross-compile errors, etc
|
||||||
|
PATCHES=(
|
||||||
|
"${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches"
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# platform-specific checks (bug #898452):
|
||||||
|
# - acl() -- Solaris
|
||||||
|
# - statacl() -- AIX
|
||||||
|
QA_CONFIG_IMPL_DECL_SKIP=(
|
||||||
|
'acl'
|
||||||
|
'statacl'
|
||||||
|
)
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
# people with broken alphabets run into trouble. bug #82186.
|
||||||
|
unset LANG LC_ALL
|
||||||
|
export LC_COLLATE="C"
|
||||||
|
|
||||||
|
use lua && lua-single_pkg_setup
|
||||||
|
use python && python-single-r1_pkg_setup
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
|
||||||
|
# Fixup a script to use awk instead of nawk
|
||||||
|
sed -i -e \
|
||||||
|
'1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
|
||||||
|
"${S}"/runtime/tools/mve.awk || die "mve.awk sed failed"
|
||||||
|
|
||||||
|
# Read vimrc and gvimrc from /etc/vim
|
||||||
|
echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \
|
||||||
|
>> "${S}"/src/feature.h || die "echo failed"
|
||||||
|
echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \
|
||||||
|
>> "${S}"/src/feature.h || die "echo failed"
|
||||||
|
|
||||||
|
# Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
|
||||||
|
# Hopefully this pattern won't break for a while at least.
|
||||||
|
# This fixes bug #29398 (27 Sep 2003 agriffis)
|
||||||
|
sed -i -e \
|
||||||
|
's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
|
||||||
|
"${S}"/runtime/doc/syntax.txt \
|
||||||
|
"${S}"/runtime/doc/tagsrch.txt \
|
||||||
|
"${S}"/runtime/doc/usr_29.txt \
|
||||||
|
"${S}"/runtime/menu.vim \
|
||||||
|
"${S}"/src/configure.ac || die 'sed failed'
|
||||||
|
|
||||||
|
# gcc on sparc32 has this, uhm, interesting problem with detecting EOF
|
||||||
|
# correctly. To avoid some really entertaining error messages about stuff
|
||||||
|
# which isn't even in the source file being invalid, we'll do some trickery
|
||||||
|
# to make the error never occur. bug 66162 (02 October 2004 ciaranm)
|
||||||
|
find "${S}" -name '*.c' | while read c; do
|
||||||
|
echo >> "$c" || die "echo failed"
|
||||||
|
done
|
||||||
|
|
||||||
|
# conditionally make the manpager.sh script
|
||||||
|
if use vim-pager; then
|
||||||
|
cat > "${S}"/runtime/macros/manpager.sh <<-_EOF_ || die "cat EOF failed"
|
||||||
|
#!/bin/sh
|
||||||
|
sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -b | \\
|
||||||
|
vim \\
|
||||||
|
-c 'let no_plugin_maps = 1' \\
|
||||||
|
-c 'set nolist nomod ft=man ts=8' \\
|
||||||
|
-c 'let g:showmarks_enable=0' \\
|
||||||
|
-c 'runtime! macros/less.vim' -
|
||||||
|
_EOF_
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Try to avoid sandbox problems. Bug #114475.
|
||||||
|
if [[ -d "${S}"/src/po ]]; then
|
||||||
|
sed -i -e \
|
||||||
|
'/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
|
||||||
|
"${S}"/src/po/Makefile || die "sed failed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
|
||||||
|
|
||||||
|
# Fix bug 18245: Prevent "make" from the following chain:
|
||||||
|
# (1) Notice configure.ac is newer than auto/configure
|
||||||
|
# (2) Rebuild auto/configure
|
||||||
|
# (3) Notice auto/configure is newer than auto/config.mk
|
||||||
|
# (4) Run ./configure (with wrong args) to remake auto/config.mk
|
||||||
|
sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
|
||||||
|
rm src/auto/configure || die "rm failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
|
||||||
|
# Fix bug #37354: Disallow -funroll-all-loops on amd64
|
||||||
|
# Bug #57859 suggests that we want to do this for all archs
|
||||||
|
filter-flags -funroll-all-loops
|
||||||
|
|
||||||
|
# Fix bug 76331: -O3 causes problems, use -O2 instead. We'll do this for
|
||||||
|
# everyone since previous flag filtering bugs have turned out to affect
|
||||||
|
# multiple archs...
|
||||||
|
replace-flags -O3 -O2
|
||||||
|
|
||||||
|
emake -j1 -C src autoconf
|
||||||
|
|
||||||
|
# This should fix a sandbox violation (see bug #24447). The hvc
|
||||||
|
# things are for ppc64, see bug #86433.
|
||||||
|
for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
|
||||||
|
if [[ -e "${file}" ]]; then
|
||||||
|
addwrite ${file}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
local myconf=()
|
||||||
|
if use minimal; then
|
||||||
|
myconf=(
|
||||||
|
--with-features=tiny
|
||||||
|
--disable-nls
|
||||||
|
--disable-canberra
|
||||||
|
--disable-acl
|
||||||
|
--enable-gui=no
|
||||||
|
--without-x
|
||||||
|
--disable-darwin
|
||||||
|
--disable-luainterp
|
||||||
|
--disable-perlinterp
|
||||||
|
--disable-pythoninterp
|
||||||
|
--disable-mzschemeinterp
|
||||||
|
--disable-rubyinterp
|
||||||
|
--disable-selinux
|
||||||
|
--disable-tclinterp
|
||||||
|
--disable-gpm
|
||||||
|
)
|
||||||
|
else
|
||||||
|
use debug && append-flags "-DDEBUG"
|
||||||
|
|
||||||
|
myconf=(
|
||||||
|
--with-features=huge
|
||||||
|
$(use_enable sound canberra)
|
||||||
|
$(use_enable acl)
|
||||||
|
$(use_enable crypt libsodium)
|
||||||
|
$(use_enable cscope)
|
||||||
|
$(use_enable gpm)
|
||||||
|
$(use_enable nls)
|
||||||
|
$(use_enable perl perlinterp)
|
||||||
|
$(use_enable python python3interp)
|
||||||
|
$(use_with python python3-command "${PYTHON}")
|
||||||
|
$(use_enable racket mzschemeinterp)
|
||||||
|
$(use_enable ruby rubyinterp)
|
||||||
|
$(use_enable selinux)
|
||||||
|
$(use_enable tcl tclinterp)
|
||||||
|
$(use_enable terminal)
|
||||||
|
)
|
||||||
|
|
||||||
|
# --with-features=huge forces on cscope even if we --disable it. We need
|
||||||
|
# to sed this out to avoid screwiness. (1 Sep 2004 ciaranm)
|
||||||
|
if ! use cscope; then
|
||||||
|
sed -i -e \
|
||||||
|
'/# define FEAT_CSCOPE/d' src/feature.h || die "sed failed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use lua; then
|
||||||
|
# -DLUA_COMPAT_OPENLIB=1 is required to enable the
|
||||||
|
# deprecated (in 5.1) luaL_openlib API (#874690)
|
||||||
|
use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1
|
||||||
|
|
||||||
|
myconf+=(
|
||||||
|
--enable-luainterp
|
||||||
|
$(use_with lua_single_target_luajit luajit)
|
||||||
|
--with-lua-prefix="${EPREFIX}/usr"
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# don't test USE=X here ... see bug #19115
|
||||||
|
# but need to provide a way to link against X ... see bug #20093
|
||||||
|
myconf+=(
|
||||||
|
--enable-gui=no
|
||||||
|
--disable-darwin
|
||||||
|
$(use_with X x)
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# let package manager strip binaries
|
||||||
|
export ac_cv_prog_STRIP="$(type -P true ) faking strip"
|
||||||
|
|
||||||
|
# keep prefix env contained within the EPREFIX
|
||||||
|
use prefix && myconf+=( --without-local-dir )
|
||||||
|
|
||||||
|
if tc-is-cross-compiler ; then
|
||||||
|
export vim_cv_getcwd_broken=no \
|
||||||
|
vim_cv_memmove_handles_overlap=yes \
|
||||||
|
vim_cv_stat_ignores_slash=yes \
|
||||||
|
vim_cv_terminfo=yes \
|
||||||
|
vim_cv_toupper_broken=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
econf \
|
||||||
|
--with-modified-by="Gentoo-${PVR} (RIP Bram)" \
|
||||||
|
"${myconf[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
# The following allows emake to be used
|
||||||
|
emake -j1 -C src auto/osdef.h objects
|
||||||
|
|
||||||
|
emake
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
einfo
|
||||||
|
einfo "Starting vim tests. Several error messages will be shown"
|
||||||
|
einfo "while the tests run. This is normal behaviour and does not"
|
||||||
|
einfo "indicate a fault."
|
||||||
|
einfo
|
||||||
|
ewarn "If the tests fail, your terminal may be left in a strange"
|
||||||
|
ewarn "state. Usually, running 'reset' will fix this."
|
||||||
|
einfo
|
||||||
|
|
||||||
|
# Don't let vim talk to X
|
||||||
|
unset DISPLAY
|
||||||
|
|
||||||
|
# Arch and opensuse seem to do this and at this point, I'm willing
|
||||||
|
# to try anything to avoid random test hangs!
|
||||||
|
export TERM=xterm
|
||||||
|
|
||||||
|
# See https://github.com/vim/vim/blob/f08b0eb8691ff09f98bc4beef986ece1c521655f/src/testdir/runtest.vim#L5
|
||||||
|
# for more information on test variables we can use.
|
||||||
|
# Note that certain variables need vim-compatible regex (not PCRE), see e.g.
|
||||||
|
# http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml.
|
||||||
|
#
|
||||||
|
# Skipped tests:
|
||||||
|
# - Test_expand_star_star
|
||||||
|
# Hangs because of a recursive symlink in /usr/include/nodejs (bug #616680)
|
||||||
|
# - Test_exrc
|
||||||
|
# Looks in wrong location? (bug #742710)
|
||||||
|
# - Test_job_tty_in_out
|
||||||
|
# Fragile and depends on TERM(?)
|
||||||
|
# - Test_spelldump_bang
|
||||||
|
# Hangs.
|
||||||
|
# - Test_fuzzy_completion_env
|
||||||
|
# Too sensitive to leaked environment variables.
|
||||||
|
# - Test_term_mouse_multiple_clicks_to_select_mode
|
||||||
|
# Hangs.
|
||||||
|
# - Test_spelldump
|
||||||
|
# Hangs.
|
||||||
|
export TEST_SKIP_PAT='\(Test_expand_star_star\|Test_exrc\|Test_job_tty_in_out\|Test_spelldump_bang\|Test_fuzzy_completion_env\|Test_term_mouse_multiple_clicks_to_select_mode\|Test_spelldump\)'
|
||||||
|
|
||||||
|
emake -j1 -C src/testdir nongui
|
||||||
|
}
|
||||||
|
|
||||||
|
# Call eselect vi update with --if-unset
|
||||||
|
# to respect user's choice (bug #187449)
|
||||||
|
eselect_vi_update() {
|
||||||
|
ebegin "Calling eselect vi update"
|
||||||
|
eselect vi update --if-unset
|
||||||
|
eend $?
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
|
||||||
|
|
||||||
|
# Note: Do not install symlinks for 'vi', 'ex', or 'view', as these are
|
||||||
|
# managed by eselect-vi
|
||||||
|
dobin src/vim
|
||||||
|
if ! use minimal ; then
|
||||||
|
dosym vim /usr/bin/vimdiff
|
||||||
|
fi
|
||||||
|
dosym vim /usr/bin/rvim
|
||||||
|
dosym vim /usr/bin/rview
|
||||||
|
if use vim-pager ; then
|
||||||
|
dosym ${vimfiles}/macros/less.sh /usr/bin/vimpager
|
||||||
|
dosym ${vimfiles}/macros/manpager.sh /usr/bin/vimmanpager
|
||||||
|
insinto ${vimfiles}/macros
|
||||||
|
doins runtime/macros/manpager.sh
|
||||||
|
fperms a+x ${vimfiles}/macros/manpager.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
domenu runtime/vim.desktop
|
||||||
|
|
||||||
|
newbashcomp "${FILESDIR}"/${PN}-completion ${PN}
|
||||||
|
|
||||||
|
# keep in sync with 'complete ... -F' list
|
||||||
|
bashcomp_alias vim ex vi view rvim rview vimdiff
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Update documentation tags (from vim-doc.eclass)
|
||||||
|
update_vim_helptags
|
||||||
|
|
||||||
|
# Call eselect vi update
|
||||||
|
eselect_vi_update
|
||||||
|
|
||||||
|
# update desktop file mime cache
|
||||||
|
xdg_desktop_database_update
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
# Update documentation tags (from vim-doc.eclass)
|
||||||
|
update_vim_helptags
|
||||||
|
|
||||||
|
# Call eselect vi update
|
||||||
|
eselect_vi_update
|
||||||
|
|
||||||
|
# update desktop file mime cache
|
||||||
|
xdg_desktop_database_update
|
||||||
|
}
|
@ -8,3 +8,5 @@ DIST qemu-8.0.0.tar.xz 127835148 BLAKE2B 9b54aae10fe09691a26e68374723ded5fdda640
|
|||||||
DIST qemu-8.0.2.tar.xz 126707132 BLAKE2B f2b1a63e10c42aabfe39722c7732d0f04818ad367b769b3deb29c5bf9adcabc3aca1706f3c40fafeeb57ac1f7a61ded5066de32134c483e2fd27bc65b4b7d30a SHA512 4e915d33a662bf55b09247fb85150be376c92270d3764e3d6470c452cb70cc558f54e84de5610dd60a9eb3ea02d5d4277b1ec75c9804967d278fa8361c7f9b9a
|
DIST qemu-8.0.2.tar.xz 126707132 BLAKE2B f2b1a63e10c42aabfe39722c7732d0f04818ad367b769b3deb29c5bf9adcabc3aca1706f3c40fafeeb57ac1f7a61ded5066de32134c483e2fd27bc65b4b7d30a SHA512 4e915d33a662bf55b09247fb85150be376c92270d3764e3d6470c452cb70cc558f54e84de5610dd60a9eb3ea02d5d4277b1ec75c9804967d278fa8361c7f9b9a
|
||||||
DIST qemu-8.0.3.tar.xz 126710536 BLAKE2B 071cc1a35209a02e8c5dd4f43cb112f110b4655adb0f870a04fdf9a6e2c761699574e8c9426f70f60787a99acf252d7a64d94a8e837cdfeda93d89428d7866f3 SHA512 18b2ccb65f7ec2ae92f0e04406539620c881e2b75f63816588c86043a07464bb99d16a83e792ed9508de393f4b694c46d52f4d07edf52741e85224c8b8d5d5c3
|
DIST qemu-8.0.3.tar.xz 126710536 BLAKE2B 071cc1a35209a02e8c5dd4f43cb112f110b4655adb0f870a04fdf9a6e2c761699574e8c9426f70f60787a99acf252d7a64d94a8e837cdfeda93d89428d7866f3 SHA512 18b2ccb65f7ec2ae92f0e04406539620c881e2b75f63816588c86043a07464bb99d16a83e792ed9508de393f4b694c46d52f4d07edf52741e85224c8b8d5d5c3
|
||||||
DIST qemu-8.0.4.tar.xz 126179324 BLAKE2B dfb98964c629b251f0004b4630ae4500a52465579417d6f5c7dbbb1f672e10d8d7ffb98a4b00e26fb98b3c867208146dbdca026e4d30cbf1752ac733c4d9b915 SHA512 bd5ed682d51f974abd4be93f949701f9b5bfb87fd9929e31df130534da2f2c03b99adc9f924b3efd47d3b254e0e3c0046f4e69fbe9f6d0c4ac1f6babecb29449
|
DIST qemu-8.0.4.tar.xz 126179324 BLAKE2B dfb98964c629b251f0004b4630ae4500a52465579417d6f5c7dbbb1f672e10d8d7ffb98a4b00e26fb98b3c867208146dbdca026e4d30cbf1752ac733c4d9b915 SHA512 bd5ed682d51f974abd4be93f949701f9b5bfb87fd9929e31df130534da2f2c03b99adc9f924b3efd47d3b254e0e3c0046f4e69fbe9f6d0c4ac1f6babecb29449
|
||||||
|
DIST qemu-8.1.0-docs.tar.xz 2129912 BLAKE2B 8aaf7b748538afdb5bcb6da15dbd96572d086824377c4b0e93f1ddc695f9a4775471e360a9616d2d481dbf8113e91d2601c69d92cef565fb90b65ffacfdb304e SHA512 905515742bb56a439fc8117ec48ea668e7b2bf0244587673e4352d9e8e49911eb84ff093596ff566e44787197cf9789ec8950e3d75fb7a670c5546394a322ac9
|
||||||
|
DIST qemu-8.1.0.tar.xz 123550284 BLAKE2B b0fd87a19b13d4bbc6526caa46533073cb4dee6004df5d4fbbef204ee3bc8c2f10ec1eaff554adbb25c9f3143dd68abd09d4a0519c4766299a3ff261d03c73f2 SHA512 c5f5e7ce2d8e3c93a02012b136c866e8577df07da4705a0045916c71caeaa21fa1b2d59a4b22a660789a4159b192e12a443e7cbb0724ee85fea258251731724c
|
||||||
|
@ -0,0 +1,10 @@
|
|||||||
|
This gets confused by python-any-r1 and tries to find sphinx-build in ${T}.
|
||||||
|
--- a/docs/meson.build
|
||||||
|
+++ b/docs/meson.build
|
||||||
|
@@ -1,5 +1,4 @@
|
||||||
|
-sphinx_build = find_program(fs.parent(python.full_path()) / 'sphinx-build',
|
||||||
|
- required: get_option('docs'))
|
||||||
|
+sphinx_build = find_program('sphinx-build', required: get_option('docs'))
|
||||||
|
|
||||||
|
# Check if tools are available to build documentation.
|
||||||
|
build_docs = false
|
@ -0,0 +1,64 @@
|
|||||||
|
* netdev-socket.c
|
||||||
|
qtest-i386/netdev-socket fails with:
|
||||||
|
```
|
||||||
|
stderr:
|
||||||
|
qemu-system-i386: -netdev dgram,id=st0,remote.type=inet,remote.host=230.0.0.1,remote.port=1234: can't add socket to multicast group 230.0.0.1: No such device
|
||||||
|
Broken pipe
|
||||||
|
../tests/qtest/libqtest.c:191: kill_qemu() tried to terminate QEMU process but encountered exit status 1 (expected 0)
|
||||||
|
```
|
||||||
|
|
||||||
|
* vhost-user-test.c
|
||||||
|
qtest-x86_64/qos-test fails with a timeout:
|
||||||
|
```
|
||||||
|
qemu-system-x86_64: Failed to set msg fds.
|
||||||
|
qemu-system-x86_64: vhost VQ 0 ring restore failed: -22: Invalid argument (22)
|
||||||
|
qemu-system-x86_64: Failed to set msg fds.
|
||||||
|
qemu-system-x86_64: vhost VQ 1 ring restore failed: -22: Invalid argument (22)
|
||||||
|
**
|
||||||
|
ERROR:../tests/qtest/vhost-user-test.c:892:wait_for_rings_started: assertion failed (ctpop64(s->rings) == count): (1 == 2)
|
||||||
|
**
|
||||||
|
ERROR:../tests/qtest/qos-test.c:191:subprocess_run_one_test: child process (/x86_64/pc/i440FX-pcihost/pci-bus-pc/pci-bus/virtio-net-pci/virtio-net/virtio-net-tests/vhost-user/reconnect/subprocess [6082]) failed unexpectedl
|
||||||
|
```
|
||||||
|
|
||||||
|
--- a/tests/qtest/netdev-socket.c
|
||||||
|
+++ b/tests/qtest/netdev-socket.c
|
||||||
|
@@ -498,6 +498,10 @@ int main(int argc, char **argv)
|
||||||
|
socket_init();
|
||||||
|
g_test_init(&argc, &argv, NULL);
|
||||||
|
|
||||||
|
+ /* XXX: Skip test for now on Gentoo, fails with "No such device" */
|
||||||
|
+ g_test_skip("Skipping test known to fail on Gentoo");
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
if (socket_check_protocol_support(&has_ipv4, &has_ipv6) < 0) {
|
||||||
|
g_error("socket_check_protocol_support() failed\n");
|
||||||
|
}
|
||||||
|
--- a/tests/qtest/vhost-user-test.c
|
||||||
|
+++ b/tests/qtest/vhost-user-test.c
|
||||||
|
@@ -243,7 +243,7 @@ static bool wait_for_fds(TestServer *s)
|
||||||
|
|
||||||
|
g_mutex_lock(&s->data_mutex);
|
||||||
|
|
||||||
|
- end_time = g_get_monotonic_time() + 5 * G_TIME_SPAN_SECOND;
|
||||||
|
+ end_time = g_get_monotonic_time() + 30 * G_TIME_SPAN_SECOND;
|
||||||
|
while (!s->fds_num) {
|
||||||
|
if (!g_cond_wait_until(&s->data_cond, &s->data_mutex, end_time)) {
|
||||||
|
/* timeout has passed */
|
||||||
|
@@ -672,7 +672,7 @@ static void wait_for_log_fd(TestServer *s)
|
||||||
|
gint64 end_time;
|
||||||
|
|
||||||
|
g_mutex_lock(&s->data_mutex);
|
||||||
|
- end_time = g_get_monotonic_time() + 5 * G_TIME_SPAN_SECOND;
|
||||||
|
+ end_time = g_get_monotonic_time() + 30 * G_TIME_SPAN_SECOND;
|
||||||
|
while (s->log_fd == -1) {
|
||||||
|
if (!g_cond_wait_until(&s->data_cond, &s->data_mutex, end_time)) {
|
||||||
|
/* timeout has passed */
|
||||||
|
@@ -885,7 +885,7 @@ static void wait_for_rings_started(TestServer *s, size_t count)
|
||||||
|
gint64 end_time;
|
||||||
|
|
||||||
|
g_mutex_lock(&s->data_mutex);
|
||||||
|
- end_time = g_get_monotonic_time() + 5 * G_TIME_SPAN_SECOND;
|
||||||
|
+ end_time = g_get_monotonic_time() + 30 * G_TIME_SPAN_SECOND;
|
||||||
|
while (ctpop64(s->rings) != count) {
|
||||||
|
if (!g_cond_wait_until(&s->data_cond, &s->data_mutex, end_time)) {
|
||||||
|
/* timeout has passed */
|
@ -41,7 +41,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
S="${WORKDIR}/${MY_P}"
|
S="${WORKDIR}/${MY_P}"
|
||||||
[[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
|
[[ "${PV}" != *_rc* ]] && KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
|
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
|
||||||
|
@ -41,7 +41,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
S="${WORKDIR}/${MY_P}"
|
S="${WORKDIR}/${MY_P}"
|
||||||
[[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
|
[[ "${PV}" != *_rc* ]] && KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
|
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
|
||||||
|
965
sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.1.0.ebuild
vendored
Normal file
965
sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.1.0.ebuild
vendored
Normal file
@ -0,0 +1,965 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
|
||||||
|
# Set to 1 if prebuilt, 0 if not
|
||||||
|
# (the construct below is to allow overriding from env for script)
|
||||||
|
QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
|
||||||
|
QEMU_DOCS_PREBUILT_DEV=sam
|
||||||
|
QEMU_DOCS_VERSION=$(ver_cut 1-3)
|
||||||
|
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
|
||||||
|
# bug #830088
|
||||||
|
QEMU_DOC_USEFLAG="+doc"
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{10..12} )
|
||||||
|
PYTHON_REQ_USE="ncurses,readline"
|
||||||
|
|
||||||
|
FIRMWARE_ABI_VERSION="7.2.0"
|
||||||
|
|
||||||
|
inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
|
||||||
|
pax-utils xdg-utils
|
||||||
|
|
||||||
|
if [[ ${PV} == *9999* ]]; then
|
||||||
|
QEMU_DOCS_PREBUILT=0
|
||||||
|
|
||||||
|
EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
|
||||||
|
EGIT_SUBMODULES=(
|
||||||
|
tests/fp/berkeley-softfloat-3
|
||||||
|
tests/fp/berkeley-testfloat-3
|
||||||
|
subprojects/keycodemapdb
|
||||||
|
)
|
||||||
|
inherit git-r3
|
||||||
|
SRC_URI=""
|
||||||
|
else
|
||||||
|
MY_P="${PN}-${PV/_rc/-rc}"
|
||||||
|
SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
|
||||||
|
|
||||||
|
if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
|
||||||
|
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
|
||||||
|
fi
|
||||||
|
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
[[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
|
||||||
|
fi
|
||||||
|
|
||||||
|
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
|
||||||
|
HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
|
||||||
|
|
||||||
|
LICENSE="GPL-2 LGPL-2 BSD-2"
|
||||||
|
SLOT="0"
|
||||||
|
|
||||||
|
[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
|
||||||
|
|
||||||
|
IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
|
||||||
|
+fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
|
||||||
|
jack jemalloc +jpeg
|
||||||
|
lzo multipath
|
||||||
|
ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs pipewire
|
||||||
|
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
|
||||||
|
+slirp
|
||||||
|
smartcard snappy spice ssh static-user systemtap test udev usb
|
||||||
|
usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
|
||||||
|
zstd"
|
||||||
|
|
||||||
|
COMMON_TARGETS="
|
||||||
|
aarch64
|
||||||
|
alpha
|
||||||
|
arm
|
||||||
|
cris
|
||||||
|
hppa
|
||||||
|
i386
|
||||||
|
loongarch64
|
||||||
|
m68k
|
||||||
|
microblaze
|
||||||
|
microblazeel
|
||||||
|
mips
|
||||||
|
mips64
|
||||||
|
mips64el
|
||||||
|
mipsel
|
||||||
|
nios2
|
||||||
|
or1k
|
||||||
|
ppc
|
||||||
|
ppc64
|
||||||
|
riscv32
|
||||||
|
riscv64
|
||||||
|
s390x
|
||||||
|
sh4
|
||||||
|
sh4eb
|
||||||
|
sparc
|
||||||
|
sparc64
|
||||||
|
x86_64
|
||||||
|
xtensa
|
||||||
|
xtensaeb
|
||||||
|
"
|
||||||
|
IUSE_SOFTMMU_TARGETS="
|
||||||
|
${COMMON_TARGETS}
|
||||||
|
avr
|
||||||
|
rx
|
||||||
|
tricore
|
||||||
|
"
|
||||||
|
IUSE_USER_TARGETS="
|
||||||
|
${COMMON_TARGETS}
|
||||||
|
aarch64_be
|
||||||
|
armeb
|
||||||
|
hexagon
|
||||||
|
mipsn32
|
||||||
|
mipsn32el
|
||||||
|
ppc64le
|
||||||
|
sparc32plus
|
||||||
|
"
|
||||||
|
|
||||||
|
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
|
||||||
|
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
|
||||||
|
IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
# Allow no targets to be built so that people can get a tools-only build.
|
||||||
|
# Block USE flag configurations known to not work.
|
||||||
|
REQUIRED_USE="
|
||||||
|
${PYTHON_REQUIRED_USE}
|
||||||
|
qemu_softmmu_targets_arm? ( fdt )
|
||||||
|
qemu_softmmu_targets_microblaze? ( fdt )
|
||||||
|
qemu_softmmu_targets_mips64el? ( fdt )
|
||||||
|
qemu_softmmu_targets_ppc64? ( fdt )
|
||||||
|
qemu_softmmu_targets_ppc? ( fdt )
|
||||||
|
qemu_softmmu_targets_riscv32? ( fdt )
|
||||||
|
qemu_softmmu_targets_riscv64? ( fdt )
|
||||||
|
qemu_softmmu_targets_x86_64? ( fdt )
|
||||||
|
sdl-image? ( sdl )
|
||||||
|
static-user? ( !plugins )
|
||||||
|
virgl? ( opengl )
|
||||||
|
virtfs? ( xattr )
|
||||||
|
vnc? ( gnutls )
|
||||||
|
vte? ( gtk )
|
||||||
|
multipath? ( udev )
|
||||||
|
plugins? ( !static-user )
|
||||||
|
"
|
||||||
|
for smname in ${IUSE_SOFTMMU_TARGETS} ; do
|
||||||
|
REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
||||||
|
# and user/softmmu targets (qemu-*, qemu-system-*).
|
||||||
|
#
|
||||||
|
# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
|
||||||
|
#
|
||||||
|
# The attr lib isn't always linked in (although the USE flag is always
|
||||||
|
# respected). This is because qemu supports using the C library's API
|
||||||
|
# when available rather than always using the external library.
|
||||||
|
ALL_DEPEND="
|
||||||
|
dev-libs/glib:2[static-libs(+)]
|
||||||
|
sys-libs/zlib[static-libs(+)]
|
||||||
|
python? ( ${PYTHON_DEPS} )
|
||||||
|
systemtap? ( dev-util/systemtap )
|
||||||
|
xattr? ( sys-apps/attr[static-libs(+)] )
|
||||||
|
"
|
||||||
|
|
||||||
|
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
||||||
|
# softmmu targets (qemu-system-*).
|
||||||
|
SOFTMMU_TOOLS_DEPEND="
|
||||||
|
>=x11-libs/pixman-0.28.0[static-libs(+)]
|
||||||
|
accessibility? (
|
||||||
|
app-accessibility/brltty[api]
|
||||||
|
app-accessibility/brltty[static-libs(+)]
|
||||||
|
)
|
||||||
|
aio? ( dev-libs/libaio[static-libs(+)] )
|
||||||
|
alsa? ( >=media-libs/alsa-lib-1.0.13 )
|
||||||
|
bpf? ( dev-libs/libbpf:= )
|
||||||
|
bzip2? ( app-arch/bzip2[static-libs(+)] )
|
||||||
|
capstone? ( dev-libs/capstone:=[static-libs(+)] )
|
||||||
|
curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
|
||||||
|
fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
|
||||||
|
fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
|
||||||
|
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
|
||||||
|
gnutls? (
|
||||||
|
>=net-libs/gnutls-3.0:=[static-libs(+)]
|
||||||
|
dev-libs/nettle:=[static-libs(+)]
|
||||||
|
)
|
||||||
|
gtk? (
|
||||||
|
x11-libs/gtk+:3
|
||||||
|
vte? ( x11-libs/vte:2.91 )
|
||||||
|
)
|
||||||
|
infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
|
||||||
|
iscsi? ( net-libs/libiscsi )
|
||||||
|
io-uring? ( sys-libs/liburing:=[static-libs(+)] )
|
||||||
|
jack? ( virtual/jack )
|
||||||
|
jemalloc? ( dev-libs/jemalloc )
|
||||||
|
jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
|
||||||
|
kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] )
|
||||||
|
lzo? ( dev-libs/lzo:2[static-libs(+)] )
|
||||||
|
multipath? ( sys-fs/multipath-tools )
|
||||||
|
ncurses? (
|
||||||
|
sys-libs/ncurses:=[unicode(+)]
|
||||||
|
sys-libs/ncurses:=[static-libs(+)]
|
||||||
|
)
|
||||||
|
nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
|
||||||
|
numa? ( sys-process/numactl[static-libs(+)] )
|
||||||
|
opengl? (
|
||||||
|
virtual/opengl
|
||||||
|
media-libs/libepoxy[static-libs(+)]
|
||||||
|
media-libs/mesa[static-libs(+)]
|
||||||
|
media-libs/mesa[egl(+),gbm(+)]
|
||||||
|
)
|
||||||
|
pam? ( sys-libs/pam )
|
||||||
|
pipewire? ( >=media-video/pipewire-0.3.60 )
|
||||||
|
png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] )
|
||||||
|
pulseaudio? ( media-libs/libpulse )
|
||||||
|
rbd? ( sys-cluster/ceph )
|
||||||
|
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
|
||||||
|
sdl? (
|
||||||
|
media-libs/libsdl2[video]
|
||||||
|
media-libs/libsdl2[static-libs(+)]
|
||||||
|
)
|
||||||
|
sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
|
||||||
|
seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
|
||||||
|
slirp? ( net-libs/libslirp[static-libs(+)] )
|
||||||
|
smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
|
||||||
|
snappy? ( app-arch/snappy:= )
|
||||||
|
spice? (
|
||||||
|
>=app-emulation/spice-protocol-0.14.0
|
||||||
|
>=app-emulation/spice-0.14.0[static-libs(+)]
|
||||||
|
)
|
||||||
|
ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
|
||||||
|
udev? ( virtual/libudev:= )
|
||||||
|
usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
|
||||||
|
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
|
||||||
|
vde? ( net-misc/vde[static-libs(+)] )
|
||||||
|
virgl? ( media-libs/virglrenderer[static-libs(+)] )
|
||||||
|
virtfs? ( sys-libs/libcap )
|
||||||
|
xen? ( app-emulation/xen-tools:= )
|
||||||
|
zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
|
||||||
|
"
|
||||||
|
|
||||||
|
EDK2_OVMF_VERSION="202202"
|
||||||
|
SEABIOS_VERSION="1.16.0"
|
||||||
|
|
||||||
|
X86_FIRMWARE_DEPEND="
|
||||||
|
pin-upstream-blobs? (
|
||||||
|
~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
|
||||||
|
~sys-firmware/ipxe-1.21.1[binary,qemu]
|
||||||
|
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||||
|
~sys-firmware/sgabios-0.1_pre10[binary]
|
||||||
|
)
|
||||||
|
!pin-upstream-blobs? (
|
||||||
|
|| (
|
||||||
|
>=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
|
||||||
|
>=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
|
||||||
|
)
|
||||||
|
sys-firmware/ipxe[qemu]
|
||||||
|
|| (
|
||||||
|
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
|
||||||
|
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||||
|
)
|
||||||
|
sys-firmware/sgabios
|
||||||
|
)
|
||||||
|
"
|
||||||
|
PPC_FIRMWARE_DEPEND="
|
||||||
|
pin-upstream-blobs? (
|
||||||
|
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||||
|
)
|
||||||
|
!pin-upstream-blobs? (
|
||||||
|
|| (
|
||||||
|
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
|
||||||
|
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
# See bug #913084 for pip dep
|
||||||
|
BDEPEND="
|
||||||
|
$(python_gen_impl_dep)
|
||||||
|
dev-lang/perl
|
||||||
|
>=dev-util/meson-0.63.0
|
||||||
|
dev-python/pip[${PYTHON_USEDEP}]
|
||||||
|
virtual/pkgconfig
|
||||||
|
doc? (
|
||||||
|
>=dev-python/sphinx-1.6.0[${PYTHON_USEDEP}]
|
||||||
|
dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
|
||||||
|
)
|
||||||
|
gtk? ( nls? ( sys-devel/gettext ) )
|
||||||
|
test? (
|
||||||
|
dev-libs/glib[utils]
|
||||||
|
sys-devel/bc
|
||||||
|
)
|
||||||
|
"
|
||||||
|
CDEPEND="
|
||||||
|
${ALL_DEPEND//\[static-libs(+)]}
|
||||||
|
${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
|
||||||
|
qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
|
||||||
|
qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
|
||||||
|
qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
|
||||||
|
qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
|
||||||
|
"
|
||||||
|
DEPEND="
|
||||||
|
${CDEPEND}
|
||||||
|
kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
|
||||||
|
static-user? ( ${ALL_DEPEND} )
|
||||||
|
"
|
||||||
|
RDEPEND="
|
||||||
|
${CDEPEND}
|
||||||
|
acct-group/kvm
|
||||||
|
selinux? (
|
||||||
|
sec-policy/selinux-qemu
|
||||||
|
sys-libs/libselinux
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${PN}-8.0.0-disable-keymap.patch
|
||||||
|
"${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
|
||||||
|
"${FILESDIR}"/${PN}-8.1.0-also-build-virtfs-proxy-helper.patch
|
||||||
|
"${FILESDIR}"/${PN}-8.1.0-skip-tests.patch
|
||||||
|
"${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
QA_PREBUILT="
|
||||||
|
usr/share/qemu/hppa-firmware.img
|
||||||
|
usr/share/qemu/openbios-ppc
|
||||||
|
usr/share/qemu/openbios-sparc64
|
||||||
|
usr/share/qemu/openbios-sparc32
|
||||||
|
usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
|
||||||
|
usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
|
||||||
|
usr/share/qemu/palcode-clipper
|
||||||
|
usr/share/qemu/s390-ccw.img
|
||||||
|
usr/share/qemu/s390-netboot.img
|
||||||
|
usr/share/qemu/u-boot.e500
|
||||||
|
"
|
||||||
|
|
||||||
|
QA_WX_LOAD="
|
||||||
|
usr/bin/qemu-i386
|
||||||
|
usr/bin/qemu-x86_64
|
||||||
|
usr/bin/qemu-alpha
|
||||||
|
usr/bin/qemu-arm
|
||||||
|
usr/bin/qemu-cris
|
||||||
|
usr/bin/qemu-m68k
|
||||||
|
usr/bin/qemu-microblaze
|
||||||
|
usr/bin/qemu-microblazeel
|
||||||
|
usr/bin/qemu-mips
|
||||||
|
usr/bin/qemu-mipsel
|
||||||
|
usr/bin/qemu-or1k
|
||||||
|
usr/bin/qemu-ppc
|
||||||
|
usr/bin/qemu-ppc64
|
||||||
|
usr/bin/qemu-sh4
|
||||||
|
usr/bin/qemu-sh4eb
|
||||||
|
usr/bin/qemu-sparc
|
||||||
|
usr/bin/qemu-sparc64
|
||||||
|
usr/bin/qemu-armeb
|
||||||
|
usr/bin/qemu-sparc32plus
|
||||||
|
usr/bin/qemu-s390x
|
||||||
|
usr/bin/qemu-unicore32
|
||||||
|
"
|
||||||
|
|
||||||
|
DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
|
||||||
|
kernel module loaded before running kvm. The easiest way to ensure that the
|
||||||
|
kernel module is loaded is to load it on boot.
|
||||||
|
For AMD CPUs the module is called 'kvm-amd'.
|
||||||
|
For Intel CPUs the module is called 'kvm-intel'.
|
||||||
|
Please review /etc/conf.d/modules for how to load these.
|
||||||
|
|
||||||
|
Make sure your user is in the 'kvm' group. Just run
|
||||||
|
$ gpasswd -a <USER> kvm
|
||||||
|
then have <USER> re-login.
|
||||||
|
|
||||||
|
For brand new installs, the default permissions on /dev/kvm might not let
|
||||||
|
you access it. You can tell udev to reset ownership/perms:
|
||||||
|
$ udevadm trigger -c add /dev/kvm
|
||||||
|
|
||||||
|
If you want to register binfmt handlers for qemu user targets:
|
||||||
|
For openrc:
|
||||||
|
# rc-update add qemu-binfmt
|
||||||
|
For systemd:
|
||||||
|
# ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
|
||||||
|
|
||||||
|
pkg_pretend() {
|
||||||
|
if use kernel_linux && kernel_is lt 2 6 25; then
|
||||||
|
eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
|
||||||
|
elif use kernel_linux; then
|
||||||
|
if ! linux_config_exists; then
|
||||||
|
eerror "Unable to check your kernel for KVM support"
|
||||||
|
else
|
||||||
|
CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
|
||||||
|
ERROR_KVM="You must enable KVM in your kernel to continue"
|
||||||
|
ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
|
||||||
|
ERROR_KVM_AMD+=" your kernel configuration."
|
||||||
|
ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
|
||||||
|
ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
|
||||||
|
ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
|
||||||
|
ERROR_TUN+=" into your kernel or loaded as a module to use the"
|
||||||
|
ERROR_TUN+=" virtual network device if using -net tap."
|
||||||
|
ERROR_BRIDGE="You will also need support for 802.1d"
|
||||||
|
ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
|
||||||
|
use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
|
||||||
|
ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
|
||||||
|
ERROR_VHOST_NET+=" support"
|
||||||
|
|
||||||
|
if use amd64 || use x86 || use amd64-linux || use x86-linux; then
|
||||||
|
if grep -q AuthenticAMD /proc/cpuinfo; then
|
||||||
|
CONFIG_CHECK+=" ~KVM_AMD"
|
||||||
|
elif grep -q GenuineIntel /proc/cpuinfo; then
|
||||||
|
CONFIG_CHECK+=" ~KVM_INTEL"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
use python && CONFIG_CHECK+=" ~DEBUG_FS"
|
||||||
|
ERROR_DEBUG_FS="debugFS support required for kvm_stat"
|
||||||
|
|
||||||
|
# Now do the actual checks setup above
|
||||||
|
check_extra_config
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
|
||||||
|
eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
|
||||||
|
eerror "instances are still pointing to it. Please update your"
|
||||||
|
eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
|
||||||
|
eerror "and the right system binary (e.g. qemu-system-x86_64)."
|
||||||
|
die "update your virt configs to not use qemu-kvm"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Sanity check to make sure target lists are kept up-to-date.
|
||||||
|
check_targets() {
|
||||||
|
local var=$1 mak=$2
|
||||||
|
local detected sorted
|
||||||
|
|
||||||
|
pushd "${S}"/configs/targets/ >/dev/null || die
|
||||||
|
|
||||||
|
# Force C locale until glibc is updated. #564936
|
||||||
|
detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
|
||||||
|
sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
|
||||||
|
if [[ ${sorted} != "${detected}" ]] ; then
|
||||||
|
eerror "The ebuild needs to be kept in sync."
|
||||||
|
eerror "${var}: ${sorted}"
|
||||||
|
eerror "$(printf '%-*s' ${#var} configure): ${detected}"
|
||||||
|
die "sync ${var} to the list of targets"
|
||||||
|
fi
|
||||||
|
|
||||||
|
popd >/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
check_targets IUSE_SOFTMMU_TARGETS softmmu
|
||||||
|
check_targets IUSE_USER_TARGETS linux-user
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
# Use correct toolchain to fix cross-compiling
|
||||||
|
tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
|
||||||
|
export WINDRES=${CHOST}-windres
|
||||||
|
|
||||||
|
# Verbose builds
|
||||||
|
MAKEOPTS+=" V=1"
|
||||||
|
|
||||||
|
# Remove bundled modules
|
||||||
|
rm -r subprojects/dtc roms/*/ || die
|
||||||
|
}
|
||||||
|
|
||||||
|
##
|
||||||
|
# configures qemu based on the build directory and the build type
|
||||||
|
# we are using.
|
||||||
|
#
|
||||||
|
qemu_src_configure() {
|
||||||
|
debug-print-function ${FUNCNAME} "$@"
|
||||||
|
|
||||||
|
local buildtype=$1
|
||||||
|
local builddir="${S}/${buildtype}-build"
|
||||||
|
|
||||||
|
mkdir "${builddir}" || die
|
||||||
|
|
||||||
|
local conf_opts=(
|
||||||
|
--prefix=/usr
|
||||||
|
--sysconfdir=/etc
|
||||||
|
--bindir=/usr/bin
|
||||||
|
--libdir=/usr/$(get_libdir)
|
||||||
|
--datadir=/usr/share
|
||||||
|
--docdir=/usr/share/doc/${PF}/html
|
||||||
|
--mandir=/usr/share/man
|
||||||
|
--localstatedir=/var
|
||||||
|
--disable-bsd-user
|
||||||
|
--disable-containers # bug #732972
|
||||||
|
--disable-guest-agent
|
||||||
|
--disable-strip
|
||||||
|
--disable-download
|
||||||
|
|
||||||
|
# bug #746752: TCG interpreter has a few limitations:
|
||||||
|
# - it does not support FPU
|
||||||
|
# - it's generally slower on non-self-modifying code
|
||||||
|
# It's advantage is support for host architectures
|
||||||
|
# where native codegeneration is not implemented.
|
||||||
|
# Gentoo has qemu keyworded only on targets with
|
||||||
|
# native code generation available. Avoid the interpreter.
|
||||||
|
--disable-tcg-interpreter
|
||||||
|
|
||||||
|
--disable-werror
|
||||||
|
# We support gnutls/nettle for crypto operations. It is possible
|
||||||
|
# to use gcrypt when gnutls/nettle are disabled (but not when they
|
||||||
|
# are enabled), but it's not really worth the hassle. Disable it
|
||||||
|
# all the time to avoid automatically detecting it. #568856
|
||||||
|
--disable-gcrypt
|
||||||
|
--cc="$(tc-getCC)"
|
||||||
|
--cxx="$(tc-getCXX)"
|
||||||
|
--objcc="$(tc-getCC)"
|
||||||
|
--host-cc="$(tc-getBUILD_CC)"
|
||||||
|
|
||||||
|
$(use_enable alsa)
|
||||||
|
$(use_enable debug debug-info)
|
||||||
|
$(use_enable debug debug-tcg)
|
||||||
|
$(use_enable jack)
|
||||||
|
$(use_enable nls gettext)
|
||||||
|
$(use_enable oss)
|
||||||
|
$(use_enable pipewire)
|
||||||
|
$(use_enable plugins)
|
||||||
|
$(use_enable pulseaudio pa)
|
||||||
|
$(use_enable selinux)
|
||||||
|
$(use_enable xattr attr)
|
||||||
|
)
|
||||||
|
|
||||||
|
# Disable options not used by user targets. This simplifies building
|
||||||
|
# static user targets (USE=static-user) considerably.
|
||||||
|
conf_notuser() {
|
||||||
|
if [[ ${buildtype} == "user" ]] ; then
|
||||||
|
echo "--disable-${2:-$1}"
|
||||||
|
else
|
||||||
|
use_enable "$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
# Enable option only for softmmu build, but not 'user' or 'tools'
|
||||||
|
conf_softmmu() {
|
||||||
|
if [[ ${buildtype} == "softmmu" ]] ; then
|
||||||
|
use_enable "$@"
|
||||||
|
else
|
||||||
|
echo "--disable-${2:-$1}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
# Enable option only for tools build, but not 'user' or 'softmmu'
|
||||||
|
conf_tools() {
|
||||||
|
if [[ ${buildtype} == "tools" ]] ; then
|
||||||
|
use_enable "$@"
|
||||||
|
else
|
||||||
|
echo "--disable-${2:-$1}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
# Special case for the malloc flag, because the --disable flag does
|
||||||
|
# not exist and trying like above will break configuring.
|
||||||
|
conf_malloc() {
|
||||||
|
if [[ ! ${buildtype} == "user" ]] ; then
|
||||||
|
usex "${1}" "--enable-malloc=${1}" ""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
conf_opts+=(
|
||||||
|
$(conf_notuser accessibility brlapi)
|
||||||
|
$(conf_notuser aio linux-aio)
|
||||||
|
$(conf_softmmu bpf)
|
||||||
|
$(conf_notuser bzip2)
|
||||||
|
$(conf_notuser capstone)
|
||||||
|
$(conf_notuser curl)
|
||||||
|
$(conf_tools doc docs)
|
||||||
|
$(conf_notuser fdt)
|
||||||
|
$(conf_notuser fuse)
|
||||||
|
$(conf_notuser glusterfs)
|
||||||
|
$(conf_notuser gnutls)
|
||||||
|
$(conf_notuser gnutls nettle)
|
||||||
|
$(conf_notuser gtk)
|
||||||
|
$(conf_notuser infiniband rdma)
|
||||||
|
$(conf_notuser iscsi libiscsi)
|
||||||
|
$(conf_notuser io-uring linux-io-uring)
|
||||||
|
$(conf_malloc jemalloc)
|
||||||
|
$(conf_notuser jpeg vnc-jpeg)
|
||||||
|
$(conf_notuser kernel_linux kvm)
|
||||||
|
$(conf_notuser lzo)
|
||||||
|
$(conf_notuser multipath mpath)
|
||||||
|
$(conf_notuser ncurses curses)
|
||||||
|
$(conf_notuser nfs libnfs)
|
||||||
|
$(conf_notuser numa)
|
||||||
|
$(conf_notuser opengl)
|
||||||
|
$(conf_notuser pam auth-pam)
|
||||||
|
$(conf_notuser png)
|
||||||
|
$(conf_notuser rbd)
|
||||||
|
$(conf_notuser sasl vnc-sasl)
|
||||||
|
$(conf_notuser sdl)
|
||||||
|
$(conf_softmmu sdl-image)
|
||||||
|
$(conf_notuser seccomp)
|
||||||
|
$(conf_notuser slirp)
|
||||||
|
$(conf_notuser smartcard)
|
||||||
|
$(conf_notuser snappy)
|
||||||
|
$(conf_notuser spice)
|
||||||
|
$(conf_notuser ssh libssh)
|
||||||
|
$(conf_notuser udev libudev)
|
||||||
|
$(conf_notuser usb libusb)
|
||||||
|
$(conf_notuser usbredir usb-redir)
|
||||||
|
$(conf_notuser vde)
|
||||||
|
$(conf_notuser vhost-net)
|
||||||
|
$(conf_notuser virgl virglrenderer)
|
||||||
|
$(conf_softmmu virtfs)
|
||||||
|
$(conf_notuser vnc)
|
||||||
|
$(conf_notuser vte)
|
||||||
|
$(conf_notuser xen)
|
||||||
|
$(conf_notuser xen xen-pci-passthrough)
|
||||||
|
# use prebuilt keymaps, bug #759604
|
||||||
|
--disable-xkbcommon
|
||||||
|
$(conf_notuser zstd)
|
||||||
|
)
|
||||||
|
|
||||||
|
if [[ ! ${buildtype} == "user" ]] ; then
|
||||||
|
# audio options
|
||||||
|
local audio_opts=(
|
||||||
|
# Note: backend order matters here: #716202
|
||||||
|
# We iterate from higher-level to lower level.
|
||||||
|
$(usex pulseaudio pa "")
|
||||||
|
$(usev jack)
|
||||||
|
$(usev sdl)
|
||||||
|
$(usev alsa)
|
||||||
|
$(usev oss)
|
||||||
|
)
|
||||||
|
conf_opts+=(
|
||||||
|
--audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
case ${buildtype} in
|
||||||
|
user)
|
||||||
|
conf_opts+=(
|
||||||
|
--enable-linux-user
|
||||||
|
--disable-system
|
||||||
|
--disable-tools
|
||||||
|
--disable-cap-ng
|
||||||
|
--disable-seccomp
|
||||||
|
)
|
||||||
|
local static_flag="static-user"
|
||||||
|
;;
|
||||||
|
softmmu)
|
||||||
|
conf_opts+=(
|
||||||
|
--disable-linux-user
|
||||||
|
--enable-system
|
||||||
|
--disable-tools
|
||||||
|
--enable-cap-ng
|
||||||
|
--enable-seccomp
|
||||||
|
)
|
||||||
|
local static_flag="none"
|
||||||
|
;;
|
||||||
|
tools)
|
||||||
|
conf_opts+=(
|
||||||
|
--disable-linux-user
|
||||||
|
--disable-system
|
||||||
|
--enable-tools
|
||||||
|
--enable-cap-ng
|
||||||
|
)
|
||||||
|
local static_flag="none"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
local targets="${buildtype}_targets"
|
||||||
|
[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
|
||||||
|
|
||||||
|
# Add support for SystemTAP
|
||||||
|
use systemtap && conf_opts+=( --enable-trace-backends="dtrace" )
|
||||||
|
|
||||||
|
# We always want to attempt to build with PIE support as it results
|
||||||
|
# in a more secure binary. But it doesn't work with static or if
|
||||||
|
# the current GCC doesn't have PIE support.
|
||||||
|
if [[ ${static_flag} != "none" ]] && use ${static_flag}; then
|
||||||
|
conf_opts+=( --static --disable-pie )
|
||||||
|
else
|
||||||
|
tc-enables-pie && conf_opts+=( --enable-pie )
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Meson will not use a cross-file unless cross_prefix is set.
|
||||||
|
tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
|
||||||
|
|
||||||
|
# Plumb through equivalent of EXTRA_ECONF to allow experiments
|
||||||
|
# like bug #747928.
|
||||||
|
conf_opts+=( ${EXTRA_CONF_QEMU} )
|
||||||
|
|
||||||
|
echo "../configure ${conf_opts[*]}"
|
||||||
|
cd "${builddir}"
|
||||||
|
../configure "${conf_opts[@]}" || die "configure failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local target
|
||||||
|
|
||||||
|
python_setup
|
||||||
|
|
||||||
|
softmmu_targets= softmmu_bins=()
|
||||||
|
user_targets= user_bins=()
|
||||||
|
|
||||||
|
for target in ${IUSE_SOFTMMU_TARGETS} ; do
|
||||||
|
if use "qemu_softmmu_targets_${target}"; then
|
||||||
|
softmmu_targets+=",${target}-softmmu"
|
||||||
|
softmmu_bins+=( "qemu-system-${target}" )
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
for target in ${IUSE_USER_TARGETS} ; do
|
||||||
|
if use "qemu_user_targets_${target}"; then
|
||||||
|
user_targets+=",${target}-linux-user"
|
||||||
|
user_bins+=( "qemu-${target}" )
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
softmmu_targets=${softmmu_targets#,}
|
||||||
|
user_targets=${user_targets#,}
|
||||||
|
|
||||||
|
[[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
|
||||||
|
[[ -n ${user_targets} ]] && qemu_src_configure "user"
|
||||||
|
qemu_src_configure "tools"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
if [[ -n ${user_targets} ]]; then
|
||||||
|
cd "${S}/user-build" || die
|
||||||
|
default
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n ${softmmu_targets} ]]; then
|
||||||
|
cd "${S}/softmmu-build" || die
|
||||||
|
default
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "${S}/tools-build" || die
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
if [[ -n ${softmmu_targets} ]]; then
|
||||||
|
cd "${S}/softmmu-build" || die
|
||||||
|
pax-mark m */qemu-system-* #515550
|
||||||
|
emake check
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
qemu_python_install() {
|
||||||
|
python_domodule "${S}/python/qemu"
|
||||||
|
|
||||||
|
python_doscript "${S}/scripts/kvm/vmxcap"
|
||||||
|
python_doscript "${S}/scripts/qmp/qmp-shell"
|
||||||
|
python_doscript "${S}/scripts/qmp/qemu-ga-client"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Generate binfmt support files.
|
||||||
|
# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
|
||||||
|
# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
|
||||||
|
generate_initd() {
|
||||||
|
local out="${T}/qemu-binfmt"
|
||||||
|
local out_systemd="${T}/qemu.conf"
|
||||||
|
local d="${T}/binfmt.d"
|
||||||
|
|
||||||
|
einfo "Generating qemu binfmt scripts and configuration files"
|
||||||
|
|
||||||
|
# Generate the debian fragments first.
|
||||||
|
mkdir -p "${d}"
|
||||||
|
"${S}"/scripts/qemu-binfmt-conf.sh \
|
||||||
|
--debian \
|
||||||
|
--exportdir "${d}" \
|
||||||
|
--qemu-path "${EPREFIX}/usr/bin" \
|
||||||
|
|| die
|
||||||
|
# Then turn the fragments into a shell script we can source.
|
||||||
|
sed -E -i \
|
||||||
|
-e 's:^([^ ]+) (.*)$:\1="\2":' \
|
||||||
|
"${d}"/* || die
|
||||||
|
|
||||||
|
# Generate the init.d script by assembling the fragments from above.
|
||||||
|
local f qcpu package interpreter magic mask
|
||||||
|
cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
|
||||||
|
for f in "${d}"/qemu-* ; do
|
||||||
|
source "${f}"
|
||||||
|
|
||||||
|
# Normalize the cpu logic like we do in the init.d for the native cpu.
|
||||||
|
qcpu=${package#qemu-}
|
||||||
|
case ${qcpu} in
|
||||||
|
arm*) qcpu="arm";;
|
||||||
|
mips*) qcpu="mips";;
|
||||||
|
ppc*) qcpu="ppc";;
|
||||||
|
s390*) qcpu="s390";;
|
||||||
|
sh*) qcpu="sh";;
|
||||||
|
sparc*) qcpu="sparc";;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# we use 'printf' here to be portable across 'sh'
|
||||||
|
# implementations: #679168
|
||||||
|
cat <<EOF >>"${out}"
|
||||||
|
if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
|
||||||
|
printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
|
||||||
|
fi
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
|
||||||
|
|
||||||
|
done
|
||||||
|
cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
if [[ -n ${user_targets} ]]; then
|
||||||
|
cd "${S}/user-build"
|
||||||
|
emake DESTDIR="${ED}" install
|
||||||
|
|
||||||
|
# Install binfmt handler init script for user targets.
|
||||||
|
generate_initd
|
||||||
|
doinitd "${T}/qemu-binfmt"
|
||||||
|
|
||||||
|
# Install binfmt/qemu.conf.
|
||||||
|
insinto "/usr/share/qemu/binfmt.d"
|
||||||
|
doins "${T}/qemu.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n ${softmmu_targets} ]]; then
|
||||||
|
cd "${S}/softmmu-build"
|
||||||
|
emake DESTDIR="${ED}" install
|
||||||
|
|
||||||
|
# This might not exist if the test failed. #512010
|
||||||
|
[[ -e check-report.html ]] && dodoc check-report.html
|
||||||
|
|
||||||
|
if use kernel_linux; then
|
||||||
|
udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use python; then
|
||||||
|
python_foreach_impl qemu_python_install
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "${S}/tools-build" || die
|
||||||
|
emake DESTDIR="${ED}" install
|
||||||
|
|
||||||
|
# If USE=doc, there'll be newly generated docs which we install instead.
|
||||||
|
if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
|
||||||
|
doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
|
||||||
|
pushd "${ED}"/usr/bin >/dev/null || die
|
||||||
|
pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
|
||||||
|
popd >/dev/null || die
|
||||||
|
|
||||||
|
# Install config file example for qemu-bridge-helper
|
||||||
|
insinto "/etc/qemu"
|
||||||
|
doins "${FILESDIR}/bridge.conf"
|
||||||
|
|
||||||
|
cd "${S}" || die
|
||||||
|
dodoc MAINTAINERS
|
||||||
|
newdoc pc-bios/README README.pc-bios
|
||||||
|
|
||||||
|
# Disallow stripping of prebuilt firmware files.
|
||||||
|
dostrip -x ${QA_PREBUILT}
|
||||||
|
|
||||||
|
if [[ -n ${softmmu_targets} ]]; then
|
||||||
|
# Remove SeaBIOS since we're using the SeaBIOS packaged one
|
||||||
|
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||||
|
dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove vgabios since we're using the seavgabios packaged one
|
||||||
|
rm "${ED}/usr/share/qemu/vgabios.bin"
|
||||||
|
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
|
||||||
|
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
|
||||||
|
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
|
||||||
|
rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
|
||||||
|
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
|
||||||
|
|
||||||
|
# PPC/PPC64 loads vgabios-stdvga
|
||||||
|
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
|
||||||
|
dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
|
||||||
|
dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
|
||||||
|
dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
|
||||||
|
dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
|
||||||
|
dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
|
||||||
|
dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove sgabios since we're using the sgabios packaged one
|
||||||
|
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||||
|
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove iPXE since we're using the iPXE packaged one
|
||||||
|
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||||
|
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
|
||||||
|
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
|
||||||
|
dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
|
||||||
|
dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
|
||||||
|
dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
|
||||||
|
dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
DISABLE_AUTOFORMATTING=true
|
||||||
|
readme.gentoo_create_doc
|
||||||
|
}
|
||||||
|
|
||||||
|
firmware_abi_change() {
|
||||||
|
local pv
|
||||||
|
for pv in ${REPLACING_VERSIONS}; do
|
||||||
|
if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
|
||||||
|
udev_reload
|
||||||
|
fi
|
||||||
|
|
||||||
|
xdg_icon_cache_update
|
||||||
|
|
||||||
|
[[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
|
||||||
|
fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
|
||||||
|
|
||||||
|
DISABLE_AUTOFORMATTING=true
|
||||||
|
readme.gentoo_print_elog
|
||||||
|
|
||||||
|
if use pin-upstream-blobs && firmware_abi_change; then
|
||||||
|
ewarn "This version of qemu pins new versions of firmware blobs:"
|
||||||
|
|
||||||
|
if has_version 'sys-firmware/edk2-ovmf-bin'; then
|
||||||
|
ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
|
||||||
|
else
|
||||||
|
ewarn " $(best_version sys-firmware/edk2-ovmf)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if has_version 'sys-firmware/seabios-bin'; then
|
||||||
|
ewarn " $(best_version sys-firmware/seabios-bin)"
|
||||||
|
else
|
||||||
|
ewarn " $(best_version sys-firmware/seabios)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ewarn " $(best_version sys-firmware/ipxe)"
|
||||||
|
ewarn " $(best_version sys-firmware/sgabios)"
|
||||||
|
ewarn "This might break resume of hibernated guests (started with a different"
|
||||||
|
ewarn "firmware version) and live migration to/from qemu versions with different"
|
||||||
|
ewarn "firmware. Please (cold) restart all running guests. For functional"
|
||||||
|
ewarn "guest migration ensure that all"
|
||||||
|
ewarn "hosts run at least"
|
||||||
|
ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_info() {
|
||||||
|
echo "Using:"
|
||||||
|
echo " $(best_version app-emulation/spice-protocol)"
|
||||||
|
|
||||||
|
if has_version 'sys-firmware/edk2-ovmf-bin'; then
|
||||||
|
echo " $(best_version sys-firmware/edk2-ovmf-bin)"
|
||||||
|
else
|
||||||
|
echo " $(best_version sys-firmware/edk2-ovmf)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if has_version 'sys-firmware/seabios-bin'; then
|
||||||
|
echo " $(best_version sys-firmware/seabios-bin)"
|
||||||
|
else
|
||||||
|
echo " $(best_version sys-firmware/seabios)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo " $(best_version sys-firmware/ipxe)"
|
||||||
|
echo " $(best_version sys-firmware/sgabios)"
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
xdg_icon_cache_update
|
||||||
|
udev_reload
|
||||||
|
}
|
@ -13,7 +13,7 @@ QEMU_DOCS_VERSION=$(ver_cut 1-3)
|
|||||||
# bug #830088
|
# bug #830088
|
||||||
QEMU_DOC_USEFLAG="+doc"
|
QEMU_DOC_USEFLAG="+doc"
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{9,10,11,12} )
|
PYTHON_COMPAT=( python3_{10..12} )
|
||||||
PYTHON_REQ_USE="ncurses,readline"
|
PYTHON_REQ_USE="ncurses,readline"
|
||||||
|
|
||||||
FIRMWARE_ABI_VERSION="7.2.0"
|
FIRMWARE_ABI_VERSION="7.2.0"
|
||||||
@ -204,7 +204,7 @@ SOFTMMU_TOOLS_DEPEND="
|
|||||||
media-libs/mesa[egl(+),gbm(+)]
|
media-libs/mesa[egl(+),gbm(+)]
|
||||||
)
|
)
|
||||||
pam? ( sys-libs/pam )
|
pam? ( sys-libs/pam )
|
||||||
pipewire? ( media-video/pipewire )
|
pipewire? ( >=media-video/pipewire-0.3.60 )
|
||||||
png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] )
|
png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] )
|
||||||
pulseaudio? ( media-libs/libpulse )
|
pulseaudio? ( media-libs/libpulse )
|
||||||
rbd? ( sys-cluster/ceph )
|
rbd? ( sys-cluster/ceph )
|
||||||
@ -268,14 +268,15 @@ PPC_FIRMWARE_DEPEND="
|
|||||||
)
|
)
|
||||||
"
|
"
|
||||||
|
|
||||||
|
# See bug #913084 for pip dep
|
||||||
BDEPEND="
|
BDEPEND="
|
||||||
$(python_gen_impl_dep)
|
$(python_gen_impl_dep)
|
||||||
dev-lang/perl
|
dev-lang/perl
|
||||||
dev-util/meson
|
>=dev-util/meson-0.63.0
|
||||||
sys-apps/texinfo
|
dev-python/pip[${PYTHON_USEDEP}]
|
||||||
virtual/pkgconfig
|
virtual/pkgconfig
|
||||||
doc? (
|
doc? (
|
||||||
dev-python/sphinx[${PYTHON_USEDEP}]
|
>=dev-python/sphinx-1.6.0[${PYTHON_USEDEP}]
|
||||||
dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
|
dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
|
||||||
)
|
)
|
||||||
gtk? ( nls? ( sys-devel/gettext ) )
|
gtk? ( nls? ( sys-devel/gettext ) )
|
||||||
@ -310,6 +311,8 @@ PATCHES=(
|
|||||||
"${FILESDIR}"/${PN}-8.0.0-disable-keymap.patch
|
"${FILESDIR}"/${PN}-8.0.0-disable-keymap.patch
|
||||||
"${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
|
"${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
|
||||||
"${FILESDIR}"/${PN}-8.1.0-also-build-virtfs-proxy-helper.patch
|
"${FILESDIR}"/${PN}-8.1.0-also-build-virtfs-proxy-helper.patch
|
||||||
|
"${FILESDIR}"/${PN}-8.1.0-skip-tests.patch
|
||||||
|
"${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch
|
||||||
)
|
)
|
||||||
|
|
||||||
QA_PREBUILT="
|
QA_PREBUILT="
|
||||||
@ -450,11 +453,6 @@ src_prepare() {
|
|||||||
# Verbose builds
|
# Verbose builds
|
||||||
MAKEOPTS+=" V=1"
|
MAKEOPTS+=" V=1"
|
||||||
|
|
||||||
# We already force -D_FORTIFY_SOURCE=2 (or 3) in our toolchain, but
|
|
||||||
# this setting (-U then -D..=2) will prevent us from trying out 3, so
|
|
||||||
# drop it. No change to level of protection b/c we patch our toolchain.
|
|
||||||
sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die
|
|
||||||
|
|
||||||
# Remove bundled modules
|
# Remove bundled modules
|
||||||
rm -r subprojects/dtc roms/*/ || die
|
rm -r subprojects/dtc roms/*/ || die
|
||||||
}
|
}
|
||||||
@ -484,7 +482,7 @@ qemu_src_configure() {
|
|||||||
--disable-containers # bug #732972
|
--disable-containers # bug #732972
|
||||||
--disable-guest-agent
|
--disable-guest-agent
|
||||||
--disable-strip
|
--disable-strip
|
||||||
--with-git-submodules=ignore
|
--disable-download
|
||||||
|
|
||||||
# bug #746752: TCG interpreter has a few limitations:
|
# bug #746752: TCG interpreter has a few limitations:
|
||||||
# - it does not support FPU
|
# - it does not support FPU
|
||||||
@ -503,6 +501,7 @@ qemu_src_configure() {
|
|||||||
--disable-gcrypt
|
--disable-gcrypt
|
||||||
--cc="$(tc-getCC)"
|
--cc="$(tc-getCC)"
|
||||||
--cxx="$(tc-getCXX)"
|
--cxx="$(tc-getCXX)"
|
||||||
|
--objcc="$(tc-getCC)"
|
||||||
--host-cc="$(tc-getBUILD_CC)"
|
--host-cc="$(tc-getBUILD_CC)"
|
||||||
|
|
||||||
$(use_enable alsa)
|
$(use_enable alsa)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright 1999-2022 Gentoo Authors
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
EAPI=7
|
EAPI=7
|
||||||
@ -8,7 +8,7 @@ HOMEPAGE="https://gitweb.gentoo.org/proj/eselect-iptables.git/"
|
|||||||
SRC_URI="https://dev.gentoo.org/~chutzpah/dist/iptables/${P}.tar.xz
|
SRC_URI="https://dev.gentoo.org/~chutzpah/dist/iptables/${P}.tar.xz
|
||||||
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz"
|
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz"
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
LICENSE="GPL-2+"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||||
|
|
||||||
|
@ -3,8 +3,7 @@
|
|||||||
|
|
||||||
EAPI=8
|
EAPI=8
|
||||||
|
|
||||||
DISTUTILS_USE_SETUPTOOLS=no
|
PYTHON_COMPAT=( python3_{10..12} pypy3 )
|
||||||
PYTHON_COMPAT=( python3_{9..11} pypy3 )
|
|
||||||
PYTHON_REQ_USE="xml(+),threads(+)"
|
PYTHON_REQ_USE="xml(+),threads(+)"
|
||||||
|
|
||||||
inherit distutils-r1 tmpfiles
|
inherit distutils-r1 tmpfiles
|
||||||
@ -23,12 +22,16 @@ HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage-Tools"
|
|||||||
LICENSE="GPL-2"
|
LICENSE="GPL-2"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
|
|
||||||
# Need newer Portage for XML fix, bug #857537
|
# Need newer Portage for eclean-pkg API, bug #900224
|
||||||
DEPEND="
|
DEPEND="
|
||||||
>=sys-apps/portage-3.0.32[${PYTHON_USEDEP}]"
|
>=sys-apps/portage-3.0.52[${PYTHON_USEDEP}]
|
||||||
RDEPEND="${DEPEND}
|
"
|
||||||
|
RDEPEND="
|
||||||
|
${DEPEND}
|
||||||
app-alternatives/awk
|
app-alternatives/awk
|
||||||
sys-apps/gentoo-functions"
|
sys-apps/gentoo-functions
|
||||||
|
"
|
||||||
|
BDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
|
||||||
|
|
||||||
distutils_enable_tests setup.py
|
distutils_enable_tests setup.py
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ if [[ ${PV} == *9999 ]]; then
|
|||||||
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/portage-utils.git"
|
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/portage-utils.git"
|
||||||
else
|
else
|
||||||
SRC_URI="https://dev.gentoo.org/~grobian/distfiles/${P}.tar.xz"
|
SRC_URI="https://dev.gentoo.org/~grobian/distfiles/${P}.tar.xz"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
LICENSE="GPL-2"
|
||||||
|
@ -1,2 +1,4 @@
|
|||||||
DIST sqlite-doc-3420000.zip 10665938 BLAKE2B 62aef59e6976101ecca60d1ee194e9e558009dd8bdb7cd911f9938f1256e50bc946f8ca554666b6c101f7024baac7857b83adf6e897164afb9b5c4d4917593d1 SHA512 d675ee2897323d468816bc713594c4e94cb5c15270b4f991758e2c82e2891ad724c5790f29b76bc9e5d6b3be04e95aee371c57ceb2d855c1057b4af62a5af162
|
DIST sqlite-doc-3420000.zip 10665938 BLAKE2B 62aef59e6976101ecca60d1ee194e9e558009dd8bdb7cd911f9938f1256e50bc946f8ca554666b6c101f7024baac7857b83adf6e897164afb9b5c4d4917593d1 SHA512 d675ee2897323d468816bc713594c4e94cb5c15270b4f991758e2c82e2891ad724c5790f29b76bc9e5d6b3be04e95aee371c57ceb2d855c1057b4af62a5af162
|
||||||
|
DIST sqlite-doc-3430000.zip 10663888 BLAKE2B 2bffca5a33c46183bf9d82042b89ad0968aa6061c7ccd5f6cd7a886ae48faa9a5356883b02048b66661f253401513d90f689f8a9f6debc0897cd25997c19ab4e SHA512 393c759e86a2fd6a7bbdc820c78289b84f984acd83879d7385c8627c73060562d376d66a9464887fdbccdea395025db677aa4c6f37aa32e99048fcde3561ae06
|
||||||
DIST sqlite-src-3420000.zip 13910252 BLAKE2B defe14bf0b5588775b2a2b17b3adbbaf39f1e95eac049cbd4868e2e59fbf50fb92b11c74ecf12fe0138521e7d4d3cc2a4bf45e7c83fd774abd7aa9ed7ee0f925 SHA512 509b7aa292870c927ef137469028e5e07ca74907414c5b295360cb10b377a42de7469d3afe79f8d9947d486ef74d676679c7f2d3b1caaeb8c949f27201180def
|
DIST sqlite-src-3420000.zip 13910252 BLAKE2B defe14bf0b5588775b2a2b17b3adbbaf39f1e95eac049cbd4868e2e59fbf50fb92b11c74ecf12fe0138521e7d4d3cc2a4bf45e7c83fd774abd7aa9ed7ee0f925 SHA512 509b7aa292870c927ef137469028e5e07ca74907414c5b295360cb10b377a42de7469d3afe79f8d9947d486ef74d676679c7f2d3b1caaeb8c949f27201180def
|
||||||
|
DIST sqlite-src-3430000.zip 13927457 BLAKE2B dfa7311af66b76ca18001f98712f6187030d24e4ca679dbe1d30ef12d77f439056724087ae19640a77b075b35e3faeecc342ab8fcd5625ccd832f3e0fbe2b004 SHA512 56a16980bf10ba0d312ada183cabaa4123faf4ed531749d70349ca55ca11cc8a6733f473b2247f6cc0e500523f1b598ffee31efb81e07879c523957f0e3efa90
|
||||||
|
428
sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.43.0.ebuild
vendored
Normal file
428
sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.43.0.ebuild
vendored
Normal file
@ -0,0 +1,428 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit autotools flag-o-matic multilib-minimal toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="SQL database engine"
|
||||||
|
HOMEPAGE="https://sqlite.org/"
|
||||||
|
|
||||||
|
# On version updates, make sure to read the forum (https://sqlite.org/forum/forum)
|
||||||
|
# for hints regarding test failures, backports, etc.
|
||||||
|
if [[ ${PV} == 9999 ]]; then
|
||||||
|
S="${WORKDIR}"/${PN}
|
||||||
|
PROPERTIES="live"
|
||||||
|
else
|
||||||
|
printf -v SRC_PV "%u%02u%02u%02u" $(ver_rs 1- " ")
|
||||||
|
DOC_PV="${SRC_PV}"
|
||||||
|
#printf -v DOC_PV "%u%02u%02u00" $(ver_rs 1-3 " ")
|
||||||
|
|
||||||
|
SRC_URI="
|
||||||
|
https://sqlite.org/2023/${PN}-src-${SRC_PV}.zip
|
||||||
|
doc? ( https://sqlite.org/2023/${PN}-doc-${DOC_PV}.zip )
|
||||||
|
"
|
||||||
|
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
LICENSE="public-domain"
|
||||||
|
SLOT="3"
|
||||||
|
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
sys-libs/zlib:=[${MULTILIB_USEDEP}]
|
||||||
|
icu? ( dev-libs/icu:=[${MULTILIB_USEDEP}] )
|
||||||
|
readline? ( sys-libs/readline:=[${MULTILIB_USEDEP}] )
|
||||||
|
tcl? ( dev-lang/tcl:=[${MULTILIB_USEDEP}] )
|
||||||
|
tools? ( dev-lang/tcl:= )
|
||||||
|
"
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )
|
||||||
|
"
|
||||||
|
BDEPEND=">=dev-lang/tcl-8.6:0"
|
||||||
|
if [[ ${PV} == 9999 ]]; then
|
||||||
|
BDEPEND+=" dev-vcs/fossil"
|
||||||
|
else
|
||||||
|
BDEPEND+=" app-arch/unzip"
|
||||||
|
fi
|
||||||
|
|
||||||
|
_fossil_fetch() {
|
||||||
|
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||||
|
local repo_id="${1}"
|
||||||
|
local repo_uri="${2}"
|
||||||
|
|
||||||
|
local -x FOSSIL_HOME="${HOME}"
|
||||||
|
|
||||||
|
mkdir -p "${T}/fossil/${repo_id}" || die
|
||||||
|
pushd "${T}/fossil/${repo_id}" > /dev/null || die
|
||||||
|
|
||||||
|
if [[ -n "${EVCS_OFFLINE}" ]]; then
|
||||||
|
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||||
|
die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||||
|
einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil"
|
||||||
|
fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die
|
||||||
|
echo
|
||||||
|
else
|
||||||
|
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die
|
||||||
|
einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}"
|
||||||
|
fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
|
(
|
||||||
|
addwrite "${distdir}"
|
||||||
|
mkdir -p "${distdir}/fossil-src/${repo_id}" || die
|
||||||
|
cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
popd > /dev/null || die
|
||||||
|
}
|
||||||
|
|
||||||
|
_fossil_checkout() {
|
||||||
|
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||||
|
local repo_id="${1}"
|
||||||
|
local branch_or_commit="${2}"
|
||||||
|
local target_directory="${3}"
|
||||||
|
|
||||||
|
local -x FOSSIL_HOME="${HOME}"
|
||||||
|
|
||||||
|
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||||
|
die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then
|
||||||
|
mkdir -p "${T}/fossil/${repo_id}" || die
|
||||||
|
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir "${target_directory}" || die
|
||||||
|
pushd "${target_directory}" > /dev/null || die
|
||||||
|
|
||||||
|
einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}"
|
||||||
|
fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die
|
||||||
|
echo
|
||||||
|
|
||||||
|
popd > /dev/null || die
|
||||||
|
}
|
||||||
|
|
||||||
|
fossil_fetch() {
|
||||||
|
local repo_id="${1}"
|
||||||
|
local repo_uri="${2}"
|
||||||
|
local target_directory="${3}"
|
||||||
|
|
||||||
|
local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}"
|
||||||
|
|
||||||
|
_fossil_fetch "${repo_id}" "${repo_uri}"
|
||||||
|
_fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == 9999 ]]; then
|
||||||
|
fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}"
|
||||||
|
if use doc; then
|
||||||
|
fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
default
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
|
||||||
|
eautoreconf
|
||||||
|
multilib_copy_sources
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_configure() {
|
||||||
|
local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}"
|
||||||
|
local options=()
|
||||||
|
|
||||||
|
options+=(
|
||||||
|
--enable-load-extension
|
||||||
|
--enable-threadsafe
|
||||||
|
)
|
||||||
|
|
||||||
|
# Support detection of misuse of SQLite API.
|
||||||
|
# https://sqlite.org/compile.html#enable_api_armor
|
||||||
|
append-cppflags -DSQLITE_ENABLE_API_ARMOR
|
||||||
|
|
||||||
|
# Support bytecode and tables_used virtual tables.
|
||||||
|
# https://sqlite.org/compile.html#enable_bytecode_vtab
|
||||||
|
# https://sqlite.org/bytecodevtab.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB
|
||||||
|
|
||||||
|
# Support column metadata functions.
|
||||||
|
# https://sqlite.org/compile.html#enable_column_metadata
|
||||||
|
# https://sqlite.org/c3ref/column_database_name.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
|
||||||
|
|
||||||
|
# Support sqlite_dbpage virtual table.
|
||||||
|
# https://sqlite.org/compile.html#enable_dbpage_vtab
|
||||||
|
# https://sqlite.org/dbpage.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
|
||||||
|
|
||||||
|
# Support dbstat virtual table.
|
||||||
|
# https://sqlite.org/compile.html#enable_dbstat_vtab
|
||||||
|
# https://sqlite.org/dbstat.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
|
||||||
|
|
||||||
|
# Support sqlite3_serialize() and sqlite3_deserialize() functions.
|
||||||
|
# https://sqlite.org/compile.html#enable_deserialize
|
||||||
|
# https://sqlite.org/c3ref/serialize.html
|
||||||
|
# https://sqlite.org/c3ref/deserialize.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_DESERIALIZE
|
||||||
|
|
||||||
|
# Support comments in output of EXPLAIN.
|
||||||
|
# https://sqlite.org/compile.html#enable_explain_comments
|
||||||
|
append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS
|
||||||
|
|
||||||
|
# Support Full-Text Search versions 3, 4 and 5.
|
||||||
|
# https://sqlite.org/compile.html#enable_fts3
|
||||||
|
# https://sqlite.org/compile.html#enable_fts3_parenthesis
|
||||||
|
# https://sqlite.org/compile.html#enable_fts4
|
||||||
|
# https://sqlite.org/compile.html#enable_fts5
|
||||||
|
# https://sqlite.org/fts3.html
|
||||||
|
# https://sqlite.org/fts5.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4
|
||||||
|
options+=( --enable-fts5 )
|
||||||
|
|
||||||
|
# Support hidden columns.
|
||||||
|
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
||||||
|
|
||||||
|
# Support memsys5 memory allocator.
|
||||||
|
# https://sqlite.org/compile.html#enable_memsys5
|
||||||
|
# https://sqlite.org/malloc.html#memsys5
|
||||||
|
append-cppflags -DSQLITE_ENABLE_MEMSYS5
|
||||||
|
|
||||||
|
# Support sqlite3_normalized_sql() function.
|
||||||
|
# https://sqlite.org/c3ref/expanded_sql.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_NORMALIZE
|
||||||
|
|
||||||
|
# Support sqlite_offset() function.
|
||||||
|
# https://sqlite.org/compile.html#enable_offset_sql_func
|
||||||
|
# https://sqlite.org/lang_corefunc.html#sqlite_offset
|
||||||
|
append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC
|
||||||
|
|
||||||
|
# Support pre-update hook functions.
|
||||||
|
# https://sqlite.org/compile.html#enable_preupdate_hook
|
||||||
|
# https://sqlite.org/c3ref/preupdate_count.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK
|
||||||
|
|
||||||
|
# Support Resumable Bulk Update extension.
|
||||||
|
# https://sqlite.org/compile.html#enable_rbu
|
||||||
|
# https://sqlite.org/rbu.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_RBU
|
||||||
|
|
||||||
|
# Support R*Trees.
|
||||||
|
# https://sqlite.org/compile.html#enable_rtree
|
||||||
|
# https://sqlite.org/compile.html#enable_geopoly
|
||||||
|
# https://sqlite.org/rtree.html
|
||||||
|
# https://sqlite.org/geopoly.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY
|
||||||
|
|
||||||
|
# Support Session extension.
|
||||||
|
# https://sqlite.org/compile.html#enable_session
|
||||||
|
# https://sqlite.org/sessionintro.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_SESSION
|
||||||
|
|
||||||
|
# Support scan status functions.
|
||||||
|
# https://sqlite.org/compile.html#enable_stmt_scanstatus
|
||||||
|
# https://sqlite.org/c3ref/stmt_scanstatus.html
|
||||||
|
# https://sqlite.org/c3ref/stmt_scanstatus_reset.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
|
||||||
|
|
||||||
|
# Support sqlite_stmt virtual table.
|
||||||
|
# https://sqlite.org/compile.html#enable_stmtvtab
|
||||||
|
# https://sqlite.org/stmt.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_STMTVTAB
|
||||||
|
|
||||||
|
# Support unknown() function.
|
||||||
|
# https://sqlite.org/compile.html#enable_unknown_sql_function
|
||||||
|
append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
|
||||||
|
|
||||||
|
# Support unlock notification.
|
||||||
|
# https://sqlite.org/compile.html#enable_unlock_notify
|
||||||
|
# https://sqlite.org/c3ref/unlock_notify.html
|
||||||
|
# https://sqlite.org/unlock_notify.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
|
||||||
|
|
||||||
|
# Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements.
|
||||||
|
# https://sqlite.org/compile.html#enable_update_delete_limit
|
||||||
|
# https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses
|
||||||
|
# https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses
|
||||||
|
append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
|
||||||
|
|
||||||
|
# Support soundex() function.
|
||||||
|
# https://sqlite.org/compile.html#soundex
|
||||||
|
# https://sqlite.org/lang_corefunc.html#soundex
|
||||||
|
append-cppflags -DSQLITE_SOUNDEX
|
||||||
|
|
||||||
|
# Support URI filenames.
|
||||||
|
# https://sqlite.org/compile.html#use_uri
|
||||||
|
# https://sqlite.org/uri.html
|
||||||
|
append-cppflags -DSQLITE_USE_URI
|
||||||
|
|
||||||
|
options+=( $(use_enable debug) )
|
||||||
|
|
||||||
|
if use icu; then
|
||||||
|
# Support ICU extension.
|
||||||
|
# https://sqlite.org/compile.html#enable_icu
|
||||||
|
append-cppflags -DSQLITE_ENABLE_ICU
|
||||||
|
sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
options+=(
|
||||||
|
--disable-editline
|
||||||
|
$(use_enable readline)
|
||||||
|
)
|
||||||
|
|
||||||
|
if use readline; then
|
||||||
|
options+=( --with-readline-inc="-I${ESYSROOT}/usr/include/readline" )
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use secure-delete; then
|
||||||
|
# Enable secure_delete pragma by default.
|
||||||
|
# https://sqlite.org/compile.html#secure_delete
|
||||||
|
# https://sqlite.org/pragma.html#pragma_secure_delete
|
||||||
|
append-cppflags -DSQLITE_SECURE_DELETE
|
||||||
|
fi
|
||||||
|
|
||||||
|
options+=( $(use_enable static-libs static) )
|
||||||
|
|
||||||
|
# tcl, test, tools USE flags.
|
||||||
|
if use tcl || use test || { use tools && multilib_is_native_abi; }; then
|
||||||
|
options+=(
|
||||||
|
--enable-tcl
|
||||||
|
--with-tcl="${ESYSROOT}/usr/$(get_libdir)"
|
||||||
|
)
|
||||||
|
else
|
||||||
|
options+=( --disable-tcl )
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${ABI}" == "x86" ]]; then
|
||||||
|
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
||||||
|
append-cflags -mfpmath=sse
|
||||||
|
else
|
||||||
|
append-cflags -ffloat-store
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Skip known-broken test for now
|
||||||
|
# https://sqlite.org/forum/forumpost/d97caf168f
|
||||||
|
# https://sqlite.org/forum/forumpost/50f136d91d
|
||||||
|
if use test ; then
|
||||||
|
rm test/atof1.test || die
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
econf "${options[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_compile() {
|
||||||
|
emake HAVE_TCL="$(usev tcl 1)" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
|
||||||
|
|
||||||
|
if use tools && multilib_is_native_abi; then
|
||||||
|
emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]] && use doc && multilib_is_native_abi; then
|
||||||
|
emake tclsqlite3.c
|
||||||
|
|
||||||
|
local build_directory="$(pwd)"
|
||||||
|
build_directory="${build_directory##*/}"
|
||||||
|
|
||||||
|
mkdir "${WORKDIR}/${PN}-doc-build" || die
|
||||||
|
pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die
|
||||||
|
|
||||||
|
emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc
|
||||||
|
rmdir doc/matrix{/*,} || die
|
||||||
|
|
||||||
|
popd > /dev/null || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_test() {
|
||||||
|
if [[ "${EUID}" -eq 0 ]]; then
|
||||||
|
ewarn "Skipping tests due to root permissions"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
||||||
|
|
||||||
|
# e_uri.test tries to open files in /.
|
||||||
|
# bug #839798
|
||||||
|
local SANDBOX_PREDICT=${SANDBOX_PREDICT}
|
||||||
|
addpredict "/test.db:/ÿ.db"
|
||||||
|
|
||||||
|
emake -Onone HAVE_TCL="$(usex tcl 1 "")" $(usex debug 'fulltest' 'test')
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install() {
|
||||||
|
emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
|
||||||
|
|
||||||
|
if use tools && multilib_is_native_abi; then
|
||||||
|
install_tool() {
|
||||||
|
if [[ -f ".libs/${1}" ]]; then
|
||||||
|
newbin ".libs/${1}" "${2}"
|
||||||
|
else
|
||||||
|
newbin "${1}" "${2}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
install_tool changeset sqlite3-changeset
|
||||||
|
install_tool dbdump sqlite3-db-dump
|
||||||
|
install_tool dbhash sqlite3-db-hash
|
||||||
|
install_tool dbtotxt sqlite3-db-to-txt
|
||||||
|
install_tool index_usage sqlite3-index-usage
|
||||||
|
install_tool rbu sqlite3-rbu
|
||||||
|
install_tool scrub sqlite3-scrub
|
||||||
|
install_tool showdb sqlite3-show-db
|
||||||
|
install_tool showjournal sqlite3-show-journal
|
||||||
|
install_tool showshm sqlite3-show-shm
|
||||||
|
install_tool showstat4 sqlite3-show-stat4
|
||||||
|
install_tool showwal sqlite3-show-wal
|
||||||
|
install_tool sqldiff sqlite3-diff
|
||||||
|
install_tool sqlite3_analyzer sqlite3-analyzer
|
||||||
|
install_tool sqlite3_checker sqlite3-checker
|
||||||
|
install_tool sqlite3_expert sqlite3-expert
|
||||||
|
install_tool sqltclsh sqlite3-tclsh
|
||||||
|
|
||||||
|
unset -f install_tool
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install_all() {
|
||||||
|
find "${ED}" -name "*.la" -delete || die
|
||||||
|
|
||||||
|
doman sqlite3.1
|
||||||
|
|
||||||
|
if use doc; then
|
||||||
|
if [[ ${PV} == 9999 ]]; then
|
||||||
|
pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die
|
||||||
|
else
|
||||||
|
pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
find "(" -name "*.db" -o -name "*.txt" ")" -delete || die
|
||||||
|
if [[ ${PV} != 9999 ]]; then
|
||||||
|
rm search search.d/admin || die
|
||||||
|
rmdir search.d || die
|
||||||
|
find -name "*~" -delete || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
(
|
||||||
|
docinto html
|
||||||
|
dodoc -r *
|
||||||
|
)
|
||||||
|
|
||||||
|
popd > /dev/null || die
|
||||||
|
fi
|
||||||
|
}
|
@ -19,8 +19,8 @@ else
|
|||||||
#printf -v DOC_PV "%u%02u%02u00" $(ver_rs 1-3 " ")
|
#printf -v DOC_PV "%u%02u%02u00" $(ver_rs 1-3 " ")
|
||||||
|
|
||||||
SRC_URI="
|
SRC_URI="
|
||||||
https://sqlite.org/2022/${PN}-src-${SRC_PV}.zip
|
https://sqlite.org/2023/${PN}-src-${SRC_PV}.zip
|
||||||
doc? ( https://sqlite.org/2022/${PN}-doc-${DOC_PV}.zip )
|
doc? ( https://sqlite.org/2023/${PN}-doc-${DOC_PV}.zip )
|
||||||
"
|
"
|
||||||
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
||||||
|
|
||||||
@ -362,7 +362,7 @@ multilib_src_test() {
|
|||||||
local SANDBOX_PREDICT=${SANDBOX_PREDICT}
|
local SANDBOX_PREDICT=${SANDBOX_PREDICT}
|
||||||
addpredict "/test.db:/ÿ.db"
|
addpredict "/test.db:/ÿ.db"
|
||||||
|
|
||||||
emake HAVE_TCL="$(usex tcl 1 "")" $(usex debug 'fulltest' 'test')
|
emake -Onone HAVE_TCL="$(usex tcl 1 "")" $(usex debug 'fulltest' 'test')
|
||||||
}
|
}
|
||||||
|
|
||||||
multilib_src_install() {
|
multilib_src_install() {
|
||||||
|
@ -1,13 +1,8 @@
|
|||||||
DIST perl-5.34.0-patches-1.tar.xz 20360 BLAKE2B e60074c49f357d4841708f58b5165a44201783238ff33ee81580bb83ba07d3d2dda447edd30a71ce8c9bafe5e5e0235b68e31a79081c3482bdd589231f0e898e SHA512 909e1fb22cda4ca769b51645b51a64df81b92210cfee388ac57834406bc13e404f0a1e6bad0888fafc73fc34b7fb224801fd02e87fb4c2f9145482ad74374e7b
|
|
||||||
DIST perl-5.34.1-zlib-1.2.12-encrypt-standard.zip.bin 207 BLAKE2B b52e1322930d5f7b8d6e3a319d24322b5dffb2313bdc757c0c8eb8713fd03adace199c8449ccc306e49b5b71e3c1b9786b2acb0ab8780a09d718a1c54f653226 SHA512 5a7e0950f0f94bd961fa9cf3e4ab5dd30006bee0f4553da755688a32d0411a4a850a28d4f998b36e7177dcf3aba192b899ca4138e84452baffef1a0b2ed1fb7b
|
|
||||||
DIST perl-5.34.1-zlib-1.2.12.patch.xz 180480 BLAKE2B 39da5c1ef406d018f73e641d86ff81d5257cf1f7d6c1b0caac9651a546d70a2e0fff53bf0fc584907e792cb681a961c8442ab355f8f0c2cfffbb26c997cdbac0 SHA512 b32b57721b10943e21003429b42c535f7833e450f097855162241775a161a557fe0ea86ce615d6a9c885f165f45438cabba5580f9b299796d3a3da5ea720f1ff
|
|
||||||
DIST perl-5.34.1.tar.xz 12760168 BLAKE2B 3768e55f66551c83295153e91d25d568b7b8638789141f7fcd5a304509cb391cb9ad0232ba6ac70113bb0881ddb00ca5b19c53aa01e1e206c44401dad60d8942 SHA512 9261958291b49eea30c120a89e5ee32dc6a5fd46de4869c89c3d6a4c1162d6cf192ebe429d01a293eda93d8680ce15294af27717fd4ec4c75f511c1fa820fdac
|
|
||||||
DIST perl-5.36.0-patches-1.tar.xz 20352 BLAKE2B f5413c75c5bbced230ad7fa692998caef8e4041f3394ae5212dc2aaee465de619b56cf07551be1bb36f2e06b9ed7d0ddda31ad4a7ec81d5c0c64b698ddd80379 SHA512 ab24577b6d71a13d9ccf272efa0881b29933b6a39532ca0d71d4c9a134f451bbe5f3d87c6c851f26114702ac3f92af5c5a72129a458ebee31e372106955eb157
|
DIST perl-5.36.0-patches-1.tar.xz 20352 BLAKE2B f5413c75c5bbced230ad7fa692998caef8e4041f3394ae5212dc2aaee465de619b56cf07551be1bb36f2e06b9ed7d0ddda31ad4a7ec81d5c0c64b698ddd80379 SHA512 ab24577b6d71a13d9ccf272efa0881b29933b6a39532ca0d71d4c9a134f451bbe5f3d87c6c851f26114702ac3f92af5c5a72129a458ebee31e372106955eb157
|
||||||
DIST perl-5.36.0.tar.xz 13051500 BLAKE2B e4864a4c21e5242df4164c73db8af10f7b9c36b075e0c05777abec79716db7778ccbf2c0c9e7e749518ad310019d2a6b32bd8b5ab2af5a8b16b5d920f83d034f SHA512 6dd6ac2a77566c173c5ab9c238cf555f2c3e592e89abb5600bc23ce1cbd0c349e0233f6417cbbf1f6d0aefc6a734ba491285af0d3dc68a605b658b65c89f1dab
|
DIST perl-5.36.0.tar.xz 13051500 BLAKE2B e4864a4c21e5242df4164c73db8af10f7b9c36b075e0c05777abec79716db7778ccbf2c0c9e7e749518ad310019d2a6b32bd8b5ab2af5a8b16b5d920f83d034f SHA512 6dd6ac2a77566c173c5ab9c238cf555f2c3e592e89abb5600bc23ce1cbd0c349e0233f6417cbbf1f6d0aefc6a734ba491285af0d3dc68a605b658b65c89f1dab
|
||||||
DIST perl-5.36.1.tar.xz 13053604 BLAKE2B baab610d16e444338ad7d529bad6a88e12010786bd25f2ab117ab4dd636859ff862cb925700095434f05a802bea5b89a9d41769f26bdbae439443020950882bd SHA512 8d1ec654c59d078bfc477f11c9526233199a85e4d4f6f5a55bf9eb7802cd355189c669cc6785d2d5e741c1de4d740b7a0cfd3c0198122586a07ac7f527fb14af
|
DIST perl-5.36.1.tar.xz 13053604 BLAKE2B baab610d16e444338ad7d529bad6a88e12010786bd25f2ab117ab4dd636859ff862cb925700095434f05a802bea5b89a9d41769f26bdbae439443020950882bd SHA512 8d1ec654c59d078bfc477f11c9526233199a85e4d4f6f5a55bf9eb7802cd355189c669cc6785d2d5e741c1de4d740b7a0cfd3c0198122586a07ac7f527fb14af
|
||||||
DIST perl-5.38.0-patches-1.tar.gz 26047 BLAKE2B 809dd5242f9868e54525ae8056598d3252c889afc72ed6f122174f828947223399a5ba4dbc16dd43501f7138205991f8c102cbe0ed94175ae3353040c53a0162 SHA512 c66160e20095555aa21d3be70050dce934d62e55e01dcf0f716129b2faa390923958a48bc448b4fab6f55e5b097eb378f7a6409a92c024fe68c8b34fddcfc5e4
|
DIST perl-5.38.0-patches-1.tar.gz 26047 BLAKE2B 809dd5242f9868e54525ae8056598d3252c889afc72ed6f122174f828947223399a5ba4dbc16dd43501f7138205991f8c102cbe0ed94175ae3353040c53a0162 SHA512 c66160e20095555aa21d3be70050dce934d62e55e01dcf0f716129b2faa390923958a48bc448b4fab6f55e5b097eb378f7a6409a92c024fe68c8b34fddcfc5e4
|
||||||
DIST perl-5.38.0.tar.xz 13565448 BLAKE2B 22fd334d911e8ebe16ad2a96522110ad2c14d09dcd04d5e64391c7ffffbb8ec92dd80d3a0f8eb105fb45aef8a2f78457174133503f7aeac4d90f762a44631478 SHA512 71beff7f6daa22a967972f5805daf2d4ff837a17e5ab808780f815d5914a67acf4f2e92acac0f2d8b24bdde4ceec0c2f7cb3029b5eadeeb30191f757e1bf0f9d
|
DIST perl-5.38.0.tar.xz 13565448 BLAKE2B 22fd334d911e8ebe16ad2a96522110ad2c14d09dcd04d5e64391c7ffffbb8ec92dd80d3a0f8eb105fb45aef8a2f78457174133503f7aeac4d90f762a44631478 SHA512 71beff7f6daa22a967972f5805daf2d4ff837a17e5ab808780f815d5914a67acf4f2e92acac0f2d8b24bdde4ceec0c2f7cb3029b5eadeeb30191f757e1bf0f9d
|
||||||
DIST perl-cross-1.3.7.tar.gz 118291 BLAKE2B dc9c060857d6905c817e91c3f5b1f546b76e02c6de02dc260185e0de8628a5ead3a557501da75549e2585cd30879190558740e697b1c78a69fa08ccb5649efcd SHA512 1111274f34f8b46e9f418883e9b1652ba4a5a9b4a5880a9a5b38bc8aeb5d75a9f4943233870f5ebf5fbcdc0c30b2983ace11ad051b55d3283327d8f2c15e172c
|
|
||||||
DIST perl-cross-1.4.1.tar.gz 117688 BLAKE2B e01103fb92764213dafb1ab92954fdc4bdcf1bd71a0064279ee75fed55a1c71850eaabdf667d6ab1c15eadccf7497668e5bb5ab13de33fef707fba14bfd52912 SHA512 5f403d3a52f724383d25c23b08e8001954300fa8f07a5b49df440ef4d06ef756404a6e448093c4f4d4f9a470b1c3f2b1b8b27d3d227ac1823552f6a377edd06a
|
DIST perl-cross-1.4.1.tar.gz 117688 BLAKE2B e01103fb92764213dafb1ab92954fdc4bdcf1bd71a0064279ee75fed55a1c71850eaabdf667d6ab1c15eadccf7497668e5bb5ab13de33fef707fba14bfd52912 SHA512 5f403d3a52f724383d25c23b08e8001954300fa8f07a5b49df440ef4d06ef756404a6e448093c4f4d4f9a470b1c3f2b1b8b27d3d227ac1823552f6a377edd06a
|
||||||
DIST perl-cross-1.4.tar.gz 113861 BLAKE2B 7c7783afccc6a04ab122a7c60b1cff7f0a2725655b2b63325ca25d7b8acb0cf993b496e2a590db943054336337ad215550b6b2a565f1d91a5aa9cfe3a4c36db4 SHA512 bde73cac13c0b42c4c6783d7e30dea491d70b65131e1c8434ef75db1f39a8e15ef5857568b706e8456faa3822402676dd247a1f20f4bed983597fdd5a6b4faad
|
DIST perl-cross-1.4.tar.gz 113861 BLAKE2B 7c7783afccc6a04ab122a7c60b1cff7f0a2725655b2b63325ca25d7b8acb0cf993b496e2a590db943054336337ad215550b6b2a565f1d91a5aa9cfe3a4c36db4 SHA512 bde73cac13c0b42c4c6783d7e30dea491d70b65131e1c8434ef75db1f39a8e15ef5857568b706e8456faa3822402676dd247a1f20f4bed983597fdd5a6b4faad
|
||||||
DIST perl-cross-1.5.tar.gz 115073 BLAKE2B ecc2764beef5dd188e56c2e499297e09e03a48fe4cb3b1582005e5899d7a3e9f28b9e600a18e16560a9a1955fef6d0a543a601574991a3853c8c9cdee7acc5df SHA512 b358d79e10777118b97568329e11b6b72cfe4960f2f3c0e857de31b515bd588448ad224d182b083f4075b47fd3877decbb037e7d26d4ba090011e6e41946370f
|
DIST perl-cross-1.5.tar.gz 115073 BLAKE2B ecc2764beef5dd188e56c2e499297e09e03a48fe4cb3b1582005e5899d7a3e9f28b9e600a18e16560a9a1955fef6d0a543a601574991a3853c8c9cdee7acc5df SHA512 b358d79e10777118b97568329e11b6b72cfe4960f2f3c0e857de31b515bd588448ad224d182b083f4075b47fd3877decbb037e7d26d4ba090011e6e41946370f
|
||||||
|
@ -1,263 +0,0 @@
|
|||||||
https://github.com/Perl/perl5/pull/18791
|
|
||||||
https://github.com/Perl/perl5/issues/18703
|
|
||||||
https://bugs.gentoo.org/818172
|
|
||||||
|
|
||||||
From: Tony Cook <tony@develop-help.com>
|
|
||||||
Date: Tue, 4 May 2021 14:55:50 +1000
|
|
||||||
Subject: [PATCH 1/4] remove code that assuming finding pwd on the path is
|
|
||||||
reasonable
|
|
||||||
|
|
||||||
We deliberately clear PATH when invoking pwd, so this search is
|
|
||||||
useless.
|
|
||||||
---
|
|
||||||
dist/PathTools/Cwd.pm | 14 --------------
|
|
||||||
1 file changed, 14 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dist/PathTools/Cwd.pm b/dist/PathTools/Cwd.pm
|
|
||||||
index 6a1d2f17ee57..49c12885b32e 100644
|
|
||||||
--- a/dist/PathTools/Cwd.pm
|
|
||||||
+++ b/dist/PathTools/Cwd.pm
|
|
||||||
@@ -213,20 +213,6 @@ sub _backtick_pwd {
|
|
||||||
# we take care not to override an existing definition for cwd().
|
|
||||||
|
|
||||||
unless ($METHOD_MAP{$^O}{cwd} or defined &cwd) {
|
|
||||||
- # The pwd command is not available in some chroot(2)'ed environments
|
|
||||||
- my $sep = $Config::Config{path_sep} || ':';
|
|
||||||
- my $os = $^O; # Protect $^O from tainting
|
|
||||||
-
|
|
||||||
-
|
|
||||||
- # Try again to find a pwd, this time searching the whole PATH.
|
|
||||||
- if (defined $ENV{PATH} and $os ne 'MSWin32') { # no pwd on Windows
|
|
||||||
- my @candidates = split($sep, $ENV{PATH});
|
|
||||||
- while (!$found_pwd_cmd and @candidates) {
|
|
||||||
- my $candidate = shift @candidates;
|
|
||||||
- $found_pwd_cmd = 1 if -x "$candidate/pwd";
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
if( $found_pwd_cmd )
|
|
||||||
{
|
|
||||||
*cwd = \&_backtick_pwd;
|
|
||||||
|
|
||||||
From e5378ea37c6c4910107975d8099c1d552af0c7b3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tony Cook <tony@develop-help.com>
|
|
||||||
Date: Wed, 5 May 2021 10:12:31 +1000
|
|
||||||
Subject: [PATCH 2/4] don't fallback to simple pwd
|
|
||||||
|
|
||||||
When _backtick_pwd invokes $pwd_cmd it first clears the PATH, and since
|
|
||||||
the command has no shell metacharacters, it perl won't invoke the
|
|
||||||
shell, so it will always fail.
|
|
||||||
|
|
||||||
An alternative here might be to use "/bin/sh -c pwd" but there's no
|
|
||||||
guarantee that pwd is available as a shell builtin.
|
|
||||||
---
|
|
||||||
dist/PathTools/Cwd.pm | 6 ------
|
|
||||||
1 file changed, 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dist/PathTools/Cwd.pm b/dist/PathTools/Cwd.pm
|
|
||||||
index 49c12885b32e..fbe683e20b8a 100644
|
|
||||||
--- a/dist/PathTools/Cwd.pm
|
|
||||||
+++ b/dist/PathTools/Cwd.pm
|
|
||||||
@@ -181,12 +181,6 @@ if ($^O =~ /android/) {
|
|
||||||
}
|
|
||||||
|
|
||||||
my $found_pwd_cmd = defined($pwd_cmd);
|
|
||||||
-unless ($pwd_cmd) {
|
|
||||||
- # Isn't this wrong? _backtick_pwd() will fail if someone has
|
|
||||||
- # pwd in their path but it is not /bin/pwd or /usr/bin/pwd?
|
|
||||||
- # See [perl #16774]. --jhi
|
|
||||||
- $pwd_cmd = 'pwd';
|
|
||||||
-}
|
|
||||||
|
|
||||||
# Lazy-load Carp
|
|
||||||
sub _carp { require Carp; Carp::carp(@_) }
|
|
||||||
|
|
||||||
From e14ffd3c21efe708a5fb5e25f29d61ccb6ee0a0a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tony Cook <tony@develop-help.com>
|
|
||||||
Date: Tue, 4 May 2021 15:04:25 +1000
|
|
||||||
Subject: [PATCH 3/4] avoid a prototype warning assigning \&getcwd to *cwd
|
|
||||||
|
|
||||||
This would produce a warning if we fallback to using getcwd() where
|
|
||||||
getcwd() has a prototype.
|
|
||||||
---
|
|
||||||
dist/PathTools/Cwd.pm | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/dist/PathTools/Cwd.pm b/dist/PathTools/Cwd.pm
|
|
||||||
index fbe683e20b8a..b6dc0b798e8c 100644
|
|
||||||
--- a/dist/PathTools/Cwd.pm
|
|
||||||
+++ b/dist/PathTools/Cwd.pm
|
|
||||||
@@ -212,7 +212,8 @@ unless ($METHOD_MAP{$^O}{cwd} or defined &cwd) {
|
|
||||||
*cwd = \&_backtick_pwd;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
- *cwd = \&getcwd;
|
|
||||||
+ # getcwd() might have an empty prototype
|
|
||||||
+ *cwd = sub { getcwd(); };
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
From e725e6ced4d2bbb6a5866992509c2ac3e995c228 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tony Cook <tony@develop-help.com>
|
|
||||||
Date: Wed, 12 May 2021 12:24:59 +1000
|
|
||||||
Subject: [PATCH 4/4] bump PathTools to 3.81
|
|
||||||
|
|
||||||
---
|
|
||||||
dist/PathTools/Cwd.pm | 2 +-
|
|
||||||
dist/PathTools/lib/File/Spec.pm | 2 +-
|
|
||||||
dist/PathTools/lib/File/Spec/AmigaOS.pm | 2 +-
|
|
||||||
dist/PathTools/lib/File/Spec/Cygwin.pm | 2 +-
|
|
||||||
dist/PathTools/lib/File/Spec/Epoc.pm | 2 +-
|
|
||||||
dist/PathTools/lib/File/Spec/Functions.pm | 2 +-
|
|
||||||
dist/PathTools/lib/File/Spec/Mac.pm | 2 +-
|
|
||||||
dist/PathTools/lib/File/Spec/OS2.pm | 2 +-
|
|
||||||
dist/PathTools/lib/File/Spec/Unix.pm | 2 +-
|
|
||||||
dist/PathTools/lib/File/Spec/VMS.pm | 2 +-
|
|
||||||
dist/PathTools/lib/File/Spec/Win32.pm | 2 +-
|
|
||||||
11 files changed, 11 insertions(+), 11 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dist/PathTools/Cwd.pm b/dist/PathTools/Cwd.pm
|
|
||||||
index b6dc0b798e8c..4a9c786c1c3c 100644
|
|
||||||
--- a/dist/PathTools/Cwd.pm
|
|
||||||
+++ b/dist/PathTools/Cwd.pm
|
|
||||||
@@ -3,7 +3,7 @@ use strict;
|
|
||||||
use Exporter;
|
|
||||||
|
|
||||||
|
|
||||||
-our $VERSION = '3.80';
|
|
||||||
+our $VERSION = '3.81';
|
|
||||||
my $xs_version = $VERSION;
|
|
||||||
$VERSION =~ tr/_//d;
|
|
||||||
|
|
||||||
diff --git a/dist/PathTools/lib/File/Spec.pm b/dist/PathTools/lib/File/Spec.pm
|
|
||||||
index 30d883b61b3e..fe738acf58bd 100644
|
|
||||||
--- a/dist/PathTools/lib/File/Spec.pm
|
|
||||||
+++ b/dist/PathTools/lib/File/Spec.pm
|
|
||||||
@@ -2,7 +2,7 @@ package File::Spec;
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
|
|
||||||
-our $VERSION = '3.80';
|
|
||||||
+our $VERSION = '3.81';
|
|
||||||
$VERSION =~ tr/_//d;
|
|
||||||
|
|
||||||
my %module = (
|
|
||||||
diff --git a/dist/PathTools/lib/File/Spec/AmigaOS.pm b/dist/PathTools/lib/File/Spec/AmigaOS.pm
|
|
||||||
index fd9da81cdf5a..1398379ca57c 100644
|
|
||||||
--- a/dist/PathTools/lib/File/Spec/AmigaOS.pm
|
|
||||||
+++ b/dist/PathTools/lib/File/Spec/AmigaOS.pm
|
|
||||||
@@ -3,7 +3,7 @@ package File::Spec::AmigaOS;
|
|
||||||
use strict;
|
|
||||||
require File::Spec::Unix;
|
|
||||||
|
|
||||||
-our $VERSION = '3.80';
|
|
||||||
+our $VERSION = '3.81';
|
|
||||||
$VERSION =~ tr/_//d;
|
|
||||||
|
|
||||||
our @ISA = qw(File::Spec::Unix);
|
|
||||||
diff --git a/dist/PathTools/lib/File/Spec/Cygwin.pm b/dist/PathTools/lib/File/Spec/Cygwin.pm
|
|
||||||
index 953c23361a10..55d551ce0663 100644
|
|
||||||
--- a/dist/PathTools/lib/File/Spec/Cygwin.pm
|
|
||||||
+++ b/dist/PathTools/lib/File/Spec/Cygwin.pm
|
|
||||||
@@ -3,7 +3,7 @@ package File::Spec::Cygwin;
|
|
||||||
use strict;
|
|
||||||
require File::Spec::Unix;
|
|
||||||
|
|
||||||
-our $VERSION = '3.80';
|
|
||||||
+our $VERSION = '3.81';
|
|
||||||
$VERSION =~ tr/_//d;
|
|
||||||
|
|
||||||
our @ISA = qw(File::Spec::Unix);
|
|
||||||
diff --git a/dist/PathTools/lib/File/Spec/Epoc.pm b/dist/PathTools/lib/File/Spec/Epoc.pm
|
|
||||||
index fcb9e894e33c..4cde744231aa 100644
|
|
||||||
--- a/dist/PathTools/lib/File/Spec/Epoc.pm
|
|
||||||
+++ b/dist/PathTools/lib/File/Spec/Epoc.pm
|
|
||||||
@@ -2,7 +2,7 @@ package File::Spec::Epoc;
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
|
|
||||||
-our $VERSION = '3.80';
|
|
||||||
+our $VERSION = '3.81';
|
|
||||||
$VERSION =~ tr/_//d;
|
|
||||||
|
|
||||||
require File::Spec::Unix;
|
|
||||||
diff --git a/dist/PathTools/lib/File/Spec/Functions.pm b/dist/PathTools/lib/File/Spec/Functions.pm
|
|
||||||
index e14ad2f74538..4b3d7bbde130 100644
|
|
||||||
--- a/dist/PathTools/lib/File/Spec/Functions.pm
|
|
||||||
+++ b/dist/PathTools/lib/File/Spec/Functions.pm
|
|
||||||
@@ -3,7 +3,7 @@ package File::Spec::Functions;
|
|
||||||
use File::Spec;
|
|
||||||
use strict;
|
|
||||||
|
|
||||||
-our $VERSION = '3.80';
|
|
||||||
+our $VERSION = '3.81';
|
|
||||||
$VERSION =~ tr/_//d;
|
|
||||||
|
|
||||||
require Exporter;
|
|
||||||
diff --git a/dist/PathTools/lib/File/Spec/Mac.pm b/dist/PathTools/lib/File/Spec/Mac.pm
|
|
||||||
index 8026edcb1261..51d00a01f6f7 100644
|
|
||||||
--- a/dist/PathTools/lib/File/Spec/Mac.pm
|
|
||||||
+++ b/dist/PathTools/lib/File/Spec/Mac.pm
|
|
||||||
@@ -4,7 +4,7 @@ use strict;
|
|
||||||
use Cwd ();
|
|
||||||
require File::Spec::Unix;
|
|
||||||
|
|
||||||
-our $VERSION = '3.80';
|
|
||||||
+our $VERSION = '3.81';
|
|
||||||
$VERSION =~ tr/_//d;
|
|
||||||
|
|
||||||
our @ISA = qw(File::Spec::Unix);
|
|
||||||
diff --git a/dist/PathTools/lib/File/Spec/OS2.pm b/dist/PathTools/lib/File/Spec/OS2.pm
|
|
||||||
index 3c35ba99b48a..57d67ba01e93 100644
|
|
||||||
--- a/dist/PathTools/lib/File/Spec/OS2.pm
|
|
||||||
+++ b/dist/PathTools/lib/File/Spec/OS2.pm
|
|
||||||
@@ -4,7 +4,7 @@ use strict;
|
|
||||||
use Cwd ();
|
|
||||||
require File::Spec::Unix;
|
|
||||||
|
|
||||||
-our $VERSION = '3.80';
|
|
||||||
+our $VERSION = '3.81';
|
|
||||||
$VERSION =~ tr/_//d;
|
|
||||||
|
|
||||||
our @ISA = qw(File::Spec::Unix);
|
|
||||||
diff --git a/dist/PathTools/lib/File/Spec/Unix.pm b/dist/PathTools/lib/File/Spec/Unix.pm
|
|
||||||
index c06d18f46819..df98f580c3ea 100644
|
|
||||||
--- a/dist/PathTools/lib/File/Spec/Unix.pm
|
|
||||||
+++ b/dist/PathTools/lib/File/Spec/Unix.pm
|
|
||||||
@@ -3,7 +3,7 @@ package File::Spec::Unix;
|
|
||||||
use strict;
|
|
||||||
use Cwd ();
|
|
||||||
|
|
||||||
-our $VERSION = '3.80';
|
|
||||||
+our $VERSION = '3.81';
|
|
||||||
$VERSION =~ tr/_//d;
|
|
||||||
|
|
||||||
=head1 NAME
|
|
||||||
diff --git a/dist/PathTools/lib/File/Spec/VMS.pm b/dist/PathTools/lib/File/Spec/VMS.pm
|
|
||||||
index 9b78c8b4bc6e..bbff3ad7d807 100644
|
|
||||||
--- a/dist/PathTools/lib/File/Spec/VMS.pm
|
|
||||||
+++ b/dist/PathTools/lib/File/Spec/VMS.pm
|
|
||||||
@@ -4,7 +4,7 @@ use strict;
|
|
||||||
use Cwd ();
|
|
||||||
require File::Spec::Unix;
|
|
||||||
|
|
||||||
-our $VERSION = '3.80';
|
|
||||||
+our $VERSION = '3.81';
|
|
||||||
$VERSION =~ tr/_//d;
|
|
||||||
|
|
||||||
our @ISA = qw(File::Spec::Unix);
|
|
||||||
diff --git a/dist/PathTools/lib/File/Spec/Win32.pm b/dist/PathTools/lib/File/Spec/Win32.pm
|
|
||||||
index 153744202338..b38419cdf1a6 100644
|
|
||||||
--- a/dist/PathTools/lib/File/Spec/Win32.pm
|
|
||||||
+++ b/dist/PathTools/lib/File/Spec/Win32.pm
|
|
||||||
@@ -5,7 +5,7 @@ use strict;
|
|
||||||
use Cwd ();
|
|
||||||
require File::Spec::Unix;
|
|
||||||
|
|
||||||
-our $VERSION = '3.80';
|
|
||||||
+our $VERSION = '3.81';
|
|
||||||
$VERSION =~ tr/_//d;
|
|
||||||
|
|
||||||
our @ISA = qw(File::Spec::Unix);
|
|
||||||
|
|
@ -1,830 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=7
|
|
||||||
|
|
||||||
inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing
|
|
||||||
|
|
||||||
PATCH_VER=1
|
|
||||||
CROSS_VER=1.3.7
|
|
||||||
PATCH_BASE="perl-5.34.0-patches-${PATCH_VER}"
|
|
||||||
PATCH_DEV=dilfridge
|
|
||||||
|
|
||||||
DIST_AUTHOR=XSAWYERX
|
|
||||||
|
|
||||||
# Greatest first, don't include yourself
|
|
||||||
# Devel point-releases are not ABI-intercompatible, but stable point releases are
|
|
||||||
# BIN_OLDVERSEN contains only C-ABI-intercompatible versions
|
|
||||||
PERL_BIN_OLDVERSEN=""
|
|
||||||
|
|
||||||
if [[ "${PV##*.}" == "9999" ]]; then
|
|
||||||
DIST_VERSION=5.30.0
|
|
||||||
else
|
|
||||||
DIST_VERSION="${PV/_rc/-RC}"
|
|
||||||
fi
|
|
||||||
SHORT_PV="${DIST_VERSION%.*}"
|
|
||||||
|
|
||||||
# Even numbered major versions are ABI intercompatible
|
|
||||||
# Odd numbered major versions are not
|
|
||||||
if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then
|
|
||||||
SUBSLOT="${DIST_VERSION%-RC*}"
|
|
||||||
else
|
|
||||||
SUBSLOT="${DIST_VERSION%.*}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Used only in tar paths
|
|
||||||
MY_P="perl-${DIST_VERSION}"
|
|
||||||
# Used in library paths
|
|
||||||
MY_PV="${DIST_VERSION%-RC*}"
|
|
||||||
|
|
||||||
DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
|
|
||||||
|
|
||||||
SRC_URI="
|
|
||||||
mirror://cpan/src/5.0/${MY_P}.tar.xz
|
|
||||||
mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
|
|
||||||
https://github.com/gentoo-perl/perl-patchset/releases/download/${PATCH_BASE}/${PATCH_BASE}.tar.xz
|
|
||||||
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz
|
|
||||||
https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
|
|
||||||
"
|
|
||||||
|
|
||||||
SRC_URI+="
|
|
||||||
https://dev.gentoo.org/~dilfridge/distfiles/perl-5.34.1-zlib-1.2.12.patch.xz
|
|
||||||
https://dev.gentoo.org/~dilfridge/distfiles/perl-5.34.1-zlib-1.2.12-encrypt-standard.zip.bin
|
|
||||||
"
|
|
||||||
|
|
||||||
HOMEPAGE="https://www.perl.org/"
|
|
||||||
|
|
||||||
LICENSE="|| ( Artistic GPL-1+ )"
|
|
||||||
SLOT="0/${SUBSLOT}"
|
|
||||||
|
|
||||||
if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; 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="berkdb debug doc gdbm ithreads minimal quadmath"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
berkdb? ( sys-libs/db:= )
|
|
||||||
gdbm? ( >=sys-libs/gdbm-1.8.3:= )
|
|
||||||
app-arch/bzip2
|
|
||||||
sys-libs/zlib
|
|
||||||
virtual/libcrypt:=
|
|
||||||
"
|
|
||||||
DEPEND="${RDEPEND}"
|
|
||||||
BDEPEND="${RDEPEND}"
|
|
||||||
|
|
||||||
PDEPEND="
|
|
||||||
!minimal? (
|
|
||||||
>=app-admin/perl-cleaner-2.5
|
|
||||||
>=virtual/perl-CPAN-2.290.0
|
|
||||||
>=virtual/perl-Encode-3.120.0
|
|
||||||
>=virtual/perl-File-Temp-0.230.400-r2
|
|
||||||
>=virtual/perl-Data-Dumper-2.154.0
|
|
||||||
virtual/perl-Test-Harness
|
|
||||||
)
|
|
||||||
"
|
|
||||||
# bug 390719, bug 523624
|
|
||||||
# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
|
|
||||||
|
|
||||||
S="${WORKDIR}/${MY_P}"
|
|
||||||
|
|
||||||
dual_scripts() {
|
|
||||||
src_remove_dual perl-core/Archive-Tar 2.380.0 ptar ptardiff ptargrep
|
|
||||||
src_remove_dual perl-core/CPAN 2.280.0 cpan
|
|
||||||
src_remove_dual perl-core/Digest-SHA 6.20.0 shasum
|
|
||||||
src_remove_dual perl-core/Encode 3.80.100_rc enc2xs piconv
|
|
||||||
src_remove_dual perl-core/ExtUtils-MakeMaker 7.620.0 instmodsh
|
|
||||||
src_remove_dual perl-core/ExtUtils-ParseXS 3.430.0 xsubpp
|
|
||||||
src_remove_dual perl-core/IO-Compress 2.103.0 zipdetails
|
|
||||||
src_remove_dual perl-core/JSON-PP 4.60.0 json_pp
|
|
||||||
src_remove_dual perl-core/Module-CoreList 5.202.203.130 corelist
|
|
||||||
src_remove_dual perl-core/Pod-Checker 1.740.0 podchecker
|
|
||||||
src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc
|
|
||||||
src_remove_dual perl-core/Pod-Usage 2.10.0 pod2usage
|
|
||||||
src_remove_dual perl-core/Test-Harness 3.430.0 prove
|
|
||||||
src_remove_dual perl-core/podlators 4.140.0 pod2man pod2text
|
|
||||||
src_remove_dual_man perl-core/podlators 4.140.0 /usr/share/man/man1/perlpodstyle.1
|
|
||||||
}
|
|
||||||
|
|
||||||
check_rebuild() {
|
|
||||||
# Fresh install
|
|
||||||
if [[ -z "${REPLACING_VERSIONS}" ]]; then
|
|
||||||
return 0;
|
|
||||||
# Major Upgrade
|
|
||||||
# doesn't matter if there's multiple copies, it still needs a rebuild
|
|
||||||
# if the string is anything other than "5.CURRENTMAJOR"
|
|
||||||
elif [[ "${REPLACING_VERSIONS%.*}" != "${PV%.*}" ]]; then
|
|
||||||
echo ""
|
|
||||||
ewarn "UPDATE THE PERL MODULES:"
|
|
||||||
ewarn "After updating dev-lang/perl the installed Perl modules"
|
|
||||||
ewarn "have to be re-installed. In most cases, this is done automatically"
|
|
||||||
ewarn "by the package manager, but subsequent steps are still recommended"
|
|
||||||
ewarn "to ensure system consistency."
|
|
||||||
ewarn
|
|
||||||
ewarn "You should start with a depclean to remove any unused perl dependencies"
|
|
||||||
ewarn "that may confuse portage in future. Regular depcleans are also encouraged"
|
|
||||||
ewarn "as part of your regular update cycle, as that will keep perl upgrades working."
|
|
||||||
ewarn "Recommended: emerge --depclean -va"
|
|
||||||
ewarn
|
|
||||||
ewarn "You should then call perl-cleaner to clean up any old files and trigger any"
|
|
||||||
ewarn "remaining rebuilds portage may have missed."
|
|
||||||
ewarn "Use: perl-cleaner --all"
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
# Reinstall w/ USE Change
|
|
||||||
elif
|
|
||||||
( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \
|
|
||||||
( ! use ithreads && has_version dev-lang/perl[ithreads] ) || \
|
|
||||||
( use quadmath && ! has_version dev-lang/perl[quadmath] ) || \
|
|
||||||
( ! use quadmath && has_version dev-lang/perl[quadmath] ) || \
|
|
||||||
( use debug && ! has_version dev-lang/perl[debug] ) || \
|
|
||||||
( ! use debug && has_version dev-lang/perl[debug] ) ; then
|
|
||||||
echo ""
|
|
||||||
ewarn "TOGGLED USE-FLAGS WARNING:"
|
|
||||||
ewarn "You changed one of the use-flags ithreads, quadmath, or debug."
|
|
||||||
ewarn "You must rebuild all perl-modules installed."
|
|
||||||
ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
case ${CHOST} in
|
|
||||||
*-darwin*) osname="darwin" ;;
|
|
||||||
*-solaris*) osname="solaris" ;;
|
|
||||||
*) osname="linux" ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
myarch="${CHOST%%-*}-${osname}"
|
|
||||||
if use debug ; then
|
|
||||||
myarch+="-debug"
|
|
||||||
fi
|
|
||||||
if use quadmath ; then
|
|
||||||
myarch+="-quadmath"
|
|
||||||
fi
|
|
||||||
if use ithreads ; then
|
|
||||||
mythreading="-multi"
|
|
||||||
myarch+="-thread"
|
|
||||||
fi
|
|
||||||
|
|
||||||
PRIV_BASE="/usr/$(get_libdir)/perl5"
|
|
||||||
SITE_BASE="/usr/local/$(get_libdir)/perl5"
|
|
||||||
VENDOR_BASE="/usr/$(get_libdir)/perl5/vendor_perl"
|
|
||||||
|
|
||||||
LIBPERL="libperl$(get_libname ${MY_PV} )"
|
|
||||||
|
|
||||||
PRIV_LIB="${PRIV_BASE}/${SUBSLOT}"
|
|
||||||
ARCH_LIB="${PRIV_BASE}/${SUBSLOT}/${myarch}${mythreading}"
|
|
||||||
SITE_LIB="${SITE_BASE}/${SUBSLOT}"
|
|
||||||
SITE_ARCH="${SITE_BASE}/${SUBSLOT}/${myarch}${mythreading}"
|
|
||||||
VENDOR_LIB="${VENDOR_BASE}/${SUBSLOT}"
|
|
||||||
VENDOR_ARCH="${VENDOR_BASE}/${SUBSLOT}/${myarch}${mythreading}"
|
|
||||||
|
|
||||||
dual_scripts
|
|
||||||
}
|
|
||||||
|
|
||||||
src_remove_dual_file() {
|
|
||||||
local i pkg ver
|
|
||||||
pkg="$1"
|
|
||||||
ver="$2"
|
|
||||||
shift 2
|
|
||||||
case "${EBUILD_PHASE:-none}" in
|
|
||||||
postinst|postrm)
|
|
||||||
for i in "$@" ; do
|
|
||||||
alternatives_auto_makesym "${i}" "${i}-[0-9]*"
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
setup)
|
|
||||||
for i in "$@" ; do
|
|
||||||
if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; then
|
|
||||||
has_version ${pkg} && ewarn "You must reinstall ${pkg} !"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
install)
|
|
||||||
for i in "$@" ; do
|
|
||||||
if ! [[ -f "${ED}"${i} ]] ; then
|
|
||||||
ewarn "${i} does not exist!"
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
mv "${ED}"${i}{,-${ver}-${P}} || die
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
src_remove_dual_man() {
|
|
||||||
local i pkg ver ff
|
|
||||||
pkg="$1"
|
|
||||||
ver="$2"
|
|
||||||
shift 2
|
|
||||||
case "${EBUILD_PHASE:-none}" in
|
|
||||||
postinst|postrm)
|
|
||||||
for i in "$@" ; do
|
|
||||||
ff=`echo "${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*`
|
|
||||||
ff=${ff##*${i#${i%.[0-9]}}}
|
|
||||||
alternatives_auto_makesym "${i}${ff}" "${i%.[0-9]}-[0-9]*"
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
install)
|
|
||||||
for i in "$@" ; do
|
|
||||||
if ! [[ -f "${ED}"${i} ]] ; then
|
|
||||||
ewarn "${i} does not exist!"
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
mv "${ED}"${i} "${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
src_remove_dual() {
|
|
||||||
local i pkg ver
|
|
||||||
pkg="$1"
|
|
||||||
ver="$2"
|
|
||||||
shift 2
|
|
||||||
for i in "$@" ; do
|
|
||||||
src_remove_dual_file "${pkg}" "${ver}" "/usr/bin/${i}"
|
|
||||||
src_remove_dual_man "${pkg}" "${ver}" "/usr/share/man/man1/${i}.1"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare_perlcross() {
|
|
||||||
cp -a ../perl-cross-${CROSS_VER}/* . || die
|
|
||||||
|
|
||||||
# bug 794463, needs further analysis what is exactly wrong here
|
|
||||||
eapply "${FILESDIR}/perl-5.34.0-crossfit.patch"
|
|
||||||
|
|
||||||
# bug 604072
|
|
||||||
MAKEOPTS+=" -j1"
|
|
||||||
export MAKEOPTS
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare_dynamic() {
|
|
||||||
ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
|
|
||||||
ln -s ${LIBPERL} libperl$(get_libname ) || die
|
|
||||||
}
|
|
||||||
|
|
||||||
# Copy a patch into the patch series
|
|
||||||
# add_patch SRC_PATH DEST_NAME ['description'] ['bug'] ['bug']
|
|
||||||
# - description is optional, but recommended
|
|
||||||
# - all arguments after descriptions are bug URLs
|
|
||||||
add_patch() {
|
|
||||||
local patchdir="${WORKDIR}/patches"
|
|
||||||
local infodir="${WORKDIR}/patch-info"
|
|
||||||
local src_name dest_name desc
|
|
||||||
src_name="$1"
|
|
||||||
dest_name="$2"
|
|
||||||
desc="$3"
|
|
||||||
shift; shift; shift;
|
|
||||||
einfo "Adding ${dest_name} to patch bundle"
|
|
||||||
cp "${src_name}" "${patchdir}/${dest_name}" || die "Couldn't copy ${src_name} to ${dest_name}"
|
|
||||||
if [[ -n "${desc}" ]]; then
|
|
||||||
printf "%s" "${desc}" > "${infodir}/${dest_name}.desc" || die "Couldn't write ${dest_name}.desc"
|
|
||||||
fi
|
|
||||||
if [[ $# -gt 0 ]]; then
|
|
||||||
# Note: when $@ is more than one element, this emits a
|
|
||||||
# line for each element
|
|
||||||
printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Remove a patch using a glob expr
|
|
||||||
# eg:
|
|
||||||
# rm_patch *-darwin-Use-CC*
|
|
||||||
#
|
|
||||||
rm_patch() {
|
|
||||||
local patchdir="${WORKDIR}/patches"
|
|
||||||
local expr="$1"
|
|
||||||
local patch="$( cd "${patchdir}"; echo $expr )"
|
|
||||||
einfo "Removing $patch ($expr) from patch bundle"
|
|
||||||
if [[ -e "${patchdir}/${patch}" ]]; then
|
|
||||||
rm -f "${patchdir}/${patch}" || die "Can't remove ${patch} ( $expr )"
|
|
||||||
else
|
|
||||||
ewarn "No ${expr} found in ${patchdir} to remove"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Yes, this is a reasonable amount of code for something seemingly simple
|
|
||||||
# but this is far easier to debug when things go wrong, and things went wrong
|
|
||||||
# multiple times while I was getting the exact number of slashes right, which
|
|
||||||
# requires circumnavigating both bash and sed escape mechanisms.
|
|
||||||
c_escape_string() {
|
|
||||||
local slash dquote
|
|
||||||
slash='\'
|
|
||||||
dquote='"'
|
|
||||||
re_slash="${slash}${slash}"
|
|
||||||
re_dquote="${slash}${dquote}"
|
|
||||||
|
|
||||||
# Convert \ to \\,
|
|
||||||
# " to \"
|
|
||||||
echo "$1" |\
|
|
||||||
sed "s|${re_slash}|${re_slash}${re_slash}|g" |\
|
|
||||||
sed "s|${re_dquote}|${re_slash}${re_dquote}|g"
|
|
||||||
}
|
|
||||||
c_escape_file() {
|
|
||||||
c_escape_string "$(cat "$1")"
|
|
||||||
}
|
|
||||||
|
|
||||||
apply_patchdir() {
|
|
||||||
local patchdir="${WORKDIR}/patches"
|
|
||||||
local infodir="${WORKDIR}/patch-info"
|
|
||||||
local patchoutput="patchlevel-gentoo.h"
|
|
||||||
|
|
||||||
# Inject Patch-Level info into description for patchlevel.h patch
|
|
||||||
# to show in -V
|
|
||||||
local patch_expr="*List-packaged-patches*"
|
|
||||||
local patch="$( cd "${patchdir}"; echo $patch_expr )";
|
|
||||||
einfo "Injecting patch-level info into ${patch}.desc ( $patch_expr )"
|
|
||||||
|
|
||||||
if [[ -e "${patchdir}/${patch}" ]]; then
|
|
||||||
printf "List packaged patches for %s(%s) in patchlevel.h" "${PF}" "${PATCH_BASE}"\
|
|
||||||
>"${infodir}/${patch}.desc" || die "Can't rewrite ${patch}.desc"
|
|
||||||
else
|
|
||||||
eerror "No $patch_expr found in ${patchdir}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Compute patch list to apply
|
|
||||||
# different name other than PATCHES to stop default
|
|
||||||
# reapplying it
|
|
||||||
# Single depth is currently only supported, as artifacts can reside
|
|
||||||
# from the old layout being multiple-directories, as well as it grossly
|
|
||||||
# simplifying the patchlevel_gentoo.h generation.
|
|
||||||
local PERL_PATCHES=($(
|
|
||||||
find "${patchdir}" -maxdepth 1 -mindepth 1 -type f -printf "%f\n" |\
|
|
||||||
grep -E '[.](diff|patch)$' |\
|
|
||||||
sort -n
|
|
||||||
))
|
|
||||||
|
|
||||||
for patch in "${PERL_PATCHES[@]}"; do
|
|
||||||
eapply "${WORKDIR}"/patches/${patch}
|
|
||||||
done
|
|
||||||
|
|
||||||
einfo "Generating $patchoutput"
|
|
||||||
|
|
||||||
# This code creates a header file, each iteration
|
|
||||||
# creates one-or-more-lines for each entry found in PERL_PATCHES
|
|
||||||
# and STDOUT is redirected to the .h file
|
|
||||||
for patch in "${PERL_PATCHES[@]}"; do
|
|
||||||
local desc_f="${infodir}/${patch}.desc"
|
|
||||||
local bugs_f="${infodir}/${patch}.bugs"
|
|
||||||
|
|
||||||
printf ',"%s"\n' "${patch}"
|
|
||||||
if [[ ! -e "${desc_f}" ]]; then
|
|
||||||
ewarn "No description provided for ${patch} (expected: ${desc_f} )"
|
|
||||||
else
|
|
||||||
local desc="$(c_escape_file "${desc_f}")"
|
|
||||||
printf ',"- %s"\n' "${desc}"
|
|
||||||
fi
|
|
||||||
if [[ -e "${bugs_f}" ]]; then
|
|
||||||
while read -d $'\n' -r line; do
|
|
||||||
local esc_line="$(c_escape_string "${line}")"
|
|
||||||
printf ',"- Bug: %s"\n' "${esc_line}"
|
|
||||||
done <"${bugs_f}"
|
|
||||||
fi
|
|
||||||
done > "${S}/${patchoutput}"
|
|
||||||
printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST"
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
local patchdir="${WORKDIR}/patches"
|
|
||||||
|
|
||||||
# Prepare Patch dir with additional patches / remove unwanted patches
|
|
||||||
# Inject bug/desc entries for perl -V
|
|
||||||
# Old example:
|
|
||||||
# add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\
|
|
||||||
# "Fix broken miniperl on hppa"\
|
|
||||||
# "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
|
|
||||||
|
|
||||||
add_patch "${WORKDIR}/perl-5.34.1-zlib-1.2.12.patch" "0501-5.34.1-zlib-1.2.12.patch"\
|
|
||||||
"Update IO-Compress, Compress-Raw-* to 2.103"\
|
|
||||||
"https://bugs.gentoo.org/837176"
|
|
||||||
# this is the binary chunk that gnu patch can't do
|
|
||||||
cp "${DISTDIR}/perl-5.34.1-zlib-1.2.12-encrypt-standard.zip.bin" "${S}/cpan/IO-Compress/t/files/encrypt-standard.zip" || die
|
|
||||||
|
|
||||||
if use prefix ; then
|
|
||||||
add_patch "${FILESDIR}/${PN}"-5.34.0-fallback-getcwd-pwd.patch "0102-5.34.0-fallback-get-cwd-pwd.patch"\
|
|
||||||
"Fix installation during Prefix bootstrap (finding 'pwd' from coreutils)"\
|
|
||||||
"https://bugs.gentoo.org/818172"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ${CHOST} == *-solaris* ]] ; then
|
|
||||||
# do NOT mess with nsl, on Solaris this is always necessary,
|
|
||||||
# when -lsocket is used e.g. to get h_errno
|
|
||||||
rm_patch "*-nsl-and-cl*"
|
|
||||||
fi
|
|
||||||
|
|
||||||
apply_patchdir
|
|
||||||
|
|
||||||
tc-is-cross-compiler && src_prepare_perlcross
|
|
||||||
|
|
||||||
tc-is-static-only || src_prepare_dynamic
|
|
||||||
|
|
||||||
if use gdbm; then
|
|
||||||
sed -i "s:INC => .*:INC => \"-I${EROOT}/usr/include/gdbm\":g" \
|
|
||||||
ext/NDBM_File/Makefile.PL || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Use errno.h from prefix rather than from host system, bug #645804
|
|
||||||
if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
|
|
||||||
sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ${CHOST} == *-solaris* ]] ; then
|
|
||||||
# set a soname, fix linking against just built libperl
|
|
||||||
sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ${CHOST} == *-darwin* ]] ; then
|
|
||||||
# fix install_name (soname) not to reference $D
|
|
||||||
sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
|
|
||||||
|
|
||||||
# fix environ linkage absence (only a real issue on Darwin9)
|
|
||||||
if [[ ${CHOST##*-darwin} -le 9 ]] ; then
|
|
||||||
sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \
|
|
||||||
Makefile.SH || die
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
}
|
|
||||||
|
|
||||||
myconf() {
|
|
||||||
# the myconf array is declared in src_configure
|
|
||||||
myconf=( "${myconf[@]}" "$@" )
|
|
||||||
}
|
|
||||||
|
|
||||||
# Outputs a list of versions which have been seen in any of the
|
|
||||||
# primary perl @INC prefix paths, such as:
|
|
||||||
# /usr/lib64/perl5/<NUMBER>
|
|
||||||
# /usr/local/lib64/perl5/<NUMBER>
|
|
||||||
# /usr/lib64/perl5/vendor_perl/<NUMBER>
|
|
||||||
#
|
|
||||||
# All values of NUMBER must be like "5.x.y" or like "5.x"
|
|
||||||
#
|
|
||||||
find_candidate_inc_versions() {
|
|
||||||
local regex='.*/5[.][0-9]+\([.][0-9]+\|\)$'
|
|
||||||
local dirs=(
|
|
||||||
"${EROOT}${PRIV_BASE}"
|
|
||||||
"${EROOT}${SITE_BASE}"
|
|
||||||
"${EROOT}${VENDOR_BASE}"
|
|
||||||
)
|
|
||||||
for dir in "${dirs[@]}"; do
|
|
||||||
if [[ ! -e "${dir}" ]]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
# Without access to readdir() on these dirs, find will not be able
|
|
||||||
# to reveal any @INC directories inside them, and will subsequently prune
|
|
||||||
# them from the built perl's @INC support, breaking our compatiblity options
|
|
||||||
# entirely.
|
|
||||||
if [[ ! -r "${dir}" || ! -x "${dir}" ]]; then
|
|
||||||
eerror "Bad permissions on ${dir}, this will probably break things"
|
|
||||||
eerror "Ensure ${dir} is +rx for at least uid=$EUID"
|
|
||||||
eerror "Recommended permission is +rx for all"
|
|
||||||
eerror "> chmod o+rx ${dir}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}"
|
|
||||||
find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
# Sort versions passed versiony-ly, remove self-version if present
|
|
||||||
# dedup. Takes each version as an argument
|
|
||||||
sanitize_inc_versions() {
|
|
||||||
local vexclude="${SUBSLOT}"
|
|
||||||
einfo "Normalizing/Sorting candidate list: $*"
|
|
||||||
einfo " to remove '${vexclude}'"
|
|
||||||
# Note, general numeric sort has to be used
|
|
||||||
# for the last component, or unique will convert
|
|
||||||
# 5.30.0 + 5.30 into just 5.30
|
|
||||||
printf "%s\n" "$@" |\
|
|
||||||
grep -vxF "${vexclude}" |\
|
|
||||||
sort -u -nr -t'.' -k1,1rn -k2,2rn -k3,3rg
|
|
||||||
}
|
|
||||||
|
|
||||||
versions_to_inclist() {
|
|
||||||
local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
|
|
||||||
|
|
||||||
for v; do
|
|
||||||
has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ ";
|
|
||||||
echo -n "${v}/ ";
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
versions_to_gentoolibdirs() {
|
|
||||||
local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
|
|
||||||
local root
|
|
||||||
local v
|
|
||||||
for v; do
|
|
||||||
for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do
|
|
||||||
local fullpath="${EROOT}${root}/${v}"
|
|
||||||
if [[ -e "${fullpath}" ]]; then
|
|
||||||
has "${v}" ${oldv} && printf "%s:" "${fullpath}/${myarch}${mythreading}";
|
|
||||||
printf "%s:" "${fullpath}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
declare -a myconf
|
|
||||||
|
|
||||||
export LC_ALL="C"
|
|
||||||
[[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
|
|
||||||
|
|
||||||
# Perl has problems compiling with -Os in your flags with glibc
|
|
||||||
replace-flags "-Os" "-O2"
|
|
||||||
|
|
||||||
# xlocale.h is going away in glibc-2.26, so it's counterproductive
|
|
||||||
# if we use it and include it in CORE/perl.h ... Perl builds just
|
|
||||||
# fine with glibc and locale.h only.
|
|
||||||
# However, the darwin prefix people have no locale.h ...
|
|
||||||
use elibc_glibc && myconf -Ui_xlocale
|
|
||||||
|
|
||||||
# This flag makes compiling crash in interesting ways
|
|
||||||
filter-flags "-malign-double"
|
|
||||||
|
|
||||||
# Generic LTO broken since 5.28, triggers EUMM failures
|
|
||||||
filter-flags "-flto"
|
|
||||||
|
|
||||||
use sparc && myconf -Ud_longdbl
|
|
||||||
|
|
||||||
export BUILD_BZIP2=0
|
|
||||||
export BZIP2_INCLUDE=${EROOT}/usr/include
|
|
||||||
export BZIP2_LIB=${EROOT}/usr/$(get_libdir)
|
|
||||||
|
|
||||||
export BUILD_ZLIB=False
|
|
||||||
export ZLIB_INCLUDE=${EROOT}/usr/include
|
|
||||||
export ZLIB_LIB=${EROOT}/usr/$(get_libdir)
|
|
||||||
|
|
||||||
# allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1
|
|
||||||
myndbm='U'
|
|
||||||
mygdbm='U'
|
|
||||||
mydb='U'
|
|
||||||
if use gdbm ; then
|
|
||||||
mygdbm='D'
|
|
||||||
if use berkdb ; then
|
|
||||||
myndbm='D'
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if use berkdb ; then
|
|
||||||
mydb='D'
|
|
||||||
has_version '=sys-libs/db-1*' && myndbm='D'
|
|
||||||
fi
|
|
||||||
|
|
||||||
myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db"
|
|
||||||
|
|
||||||
if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then
|
|
||||||
ewarn "Perl will not be built with berkdb support, use gcc if you needed it..."
|
|
||||||
myconf -Ui_db -Ui_ndbm
|
|
||||||
fi
|
|
||||||
|
|
||||||
use ithreads && myconf -Dusethreads
|
|
||||||
|
|
||||||
use quadmath && myconf -Dusequadmath
|
|
||||||
|
|
||||||
if use debug ; then
|
|
||||||
append-cflags "-g"
|
|
||||||
myconf -DDEBUGGING
|
|
||||||
elif [[ ${CFLAGS} == *-g* ]] ; then
|
|
||||||
myconf -DDEBUGGING=-g
|
|
||||||
else
|
|
||||||
myconf -DDEBUGGING=none
|
|
||||||
fi
|
|
||||||
|
|
||||||
# modifying 'optimize' prevents cross configure script from appending required flags
|
|
||||||
if tc-is-cross-compiler; then
|
|
||||||
append-cflags "-fwrapv"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# bug #877659, bug #821577
|
|
||||||
append-cflags -fno-strict-aliasing
|
|
||||||
|
|
||||||
# Autodiscover all old version directories, some of them will even be newer
|
|
||||||
# if you downgrade
|
|
||||||
if [[ -z ${PERL_OLDVERSEN} ]]; then
|
|
||||||
PERL_OLDVERSEN="$( find_candidate_inc_versions )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Fixup versions, removing self match, fixing order and dupes
|
|
||||||
PERL_OLDVERSEN="$( sanitize_inc_versions ${PERL_OLDVERSEN} )"
|
|
||||||
|
|
||||||
# Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string
|
|
||||||
if [[ -n "${PERL_OLDVERSEN// }" ]]; then
|
|
||||||
local inclist="$( versions_to_inclist ${PERL_OLDVERSEN} )"
|
|
||||||
einfo "This version of perl may partially support modules previously"
|
|
||||||
einfo "installed in any of the following paths:"
|
|
||||||
for incpath in ${inclist}; do
|
|
||||||
[[ -e "${EROOT}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT}${VENDOR_BASE}/${incpath}"
|
|
||||||
[[ -e "${EROOT}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROOT}${PRIV_BASE}/${incpath}"
|
|
||||||
[[ -e "${EROOT}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT}${SITE_BASE}/${incpath}"
|
|
||||||
done
|
|
||||||
einfo "This is a temporary measure and you should aim to cleanup these paths"
|
|
||||||
einfo "via world updates and perl-cleaner"
|
|
||||||
# myconf -Dinc_version_list="${inclist}"
|
|
||||||
myconf -Dgentoolibdirs="$( versions_to_gentoolibdirs ${PERL_OLDVERSEN} )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
[[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a"
|
|
||||||
|
|
||||||
# Make sure we can do the final link #523730, need to set deployment
|
|
||||||
# target to override hardcoded 10.3 which breaks on modern OSX
|
|
||||||
[[ ${CHOST} == *-darwin* ]] && \
|
|
||||||
myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
|
|
||||||
|
|
||||||
# Older macOS with non-Apple GCC chokes on inline in system headers
|
|
||||||
# using c89 mode as injected by cflags.SH, in addition, we override
|
|
||||||
# cflags, so we loose PERL_DARWIN which enables compat code that
|
|
||||||
# apparently on more recent macOS releases is no longer necessary
|
|
||||||
[[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
|
|
||||||
append-cflags -Dinline=__inline__ -DPERL_DARWIN
|
|
||||||
|
|
||||||
# Prefix: the host system needs not to follow Gentoo multilib stuff, and in
|
|
||||||
# Prefix itself we don't do multilib either, so make sure perl can find
|
|
||||||
# something compatible.
|
|
||||||
if use prefix ; then
|
|
||||||
# Set a hook to check for each detected library whether it actually works.
|
|
||||||
export libscheck="
|
|
||||||
( echo 'main(){}' > '${T}'/conftest.c &&
|
|
||||||
$(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
|
|
||||||
) || xxx=/dev/null"
|
|
||||||
|
|
||||||
# Use all host paths that might contain useful stuff, the hook above will filter out bad choices.
|
|
||||||
local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib"
|
|
||||||
myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}"
|
|
||||||
elif [[ $(get_libdir) != "lib" ]] ; then
|
|
||||||
# We need to use " and not ', as the written config.sh use ' ...
|
|
||||||
myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# don't try building ODBM, bug #354453
|
|
||||||
disabled_extensions="ODBM_File"
|
|
||||||
|
|
||||||
if ! use gdbm ; then
|
|
||||||
# workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm"
|
|
||||||
disabled_extensions="${disabled_extensions} GDBM_File NDBM_File"
|
|
||||||
fi
|
|
||||||
|
|
||||||
myconf -Dnoextensions="${disabled_extensions}"
|
|
||||||
|
|
||||||
[[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly
|
|
||||||
|
|
||||||
[[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF}
|
|
||||||
# allow fiddling via EXTRA_ECONF, bug 558070
|
|
||||||
eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})"
|
|
||||||
|
|
||||||
# setting -Dld= to tc-getLD breaks perl and all perl things
|
|
||||||
# https://github.com/Perl/perl5/issues/17791#issuecomment-630145202
|
|
||||||
myconf \
|
|
||||||
-Duseshrplib \
|
|
||||||
-Darchname="${myarch}" \
|
|
||||||
-Dcc="$(tc-getCC)" \
|
|
||||||
-Dar="$(tc-getAR)" \
|
|
||||||
-Dnm="$(tc-getNM)" \
|
|
||||||
-Dcpp="$(tc-getCPP)" \
|
|
||||||
-Dranlib="$(tc-getRANLIB)" \
|
|
||||||
-Accflags="${CFLAGS}" \
|
|
||||||
-Doptimize="${CFLAGS}" \
|
|
||||||
-Dldflags="${LDFLAGS}" \
|
|
||||||
-Dprefix="${EPREFIX}"'/usr' \
|
|
||||||
-Dsiteprefix="${EPREFIX}"'/usr/local' \
|
|
||||||
-Dvendorprefix="${EPREFIX}"'/usr' \
|
|
||||||
-Dscriptdir="${EPREFIX}"'/usr/bin' \
|
|
||||||
-Dprivlib="${EPREFIX}${PRIV_LIB}" \
|
|
||||||
-Darchlib="${EPREFIX}${ARCH_LIB}" \
|
|
||||||
-Dsitelib="${EPREFIX}${SITE_LIB}" \
|
|
||||||
-Dsitearch="${EPREFIX}${SITE_ARCH}" \
|
|
||||||
-Dvendorlib="${EPREFIX}${VENDOR_LIB}" \
|
|
||||||
-Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \
|
|
||||||
-Dman1dir="${EPREFIX}"/usr/share/man/man1 \
|
|
||||||
-Dman3dir="${EPREFIX}"/usr/share/man/man3 \
|
|
||||||
-Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \
|
|
||||||
-Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \
|
|
||||||
-Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \
|
|
||||||
-Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \
|
|
||||||
-Dman1ext='1' \
|
|
||||||
-Dman3ext='3pm' \
|
|
||||||
-Dlibperl="${LIBPERL}" \
|
|
||||||
-Dlocincpth="${EPREFIX}"'/usr/include ' \
|
|
||||||
-Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \
|
|
||||||
-Duselargefiles \
|
|
||||||
-Dd_semctl_semun \
|
|
||||||
-Dcf_by='Gentoo' \
|
|
||||||
-Dmyhostname='localhost' \
|
|
||||||
-Dperladmin='root@localhost' \
|
|
||||||
-Ud_csh \
|
|
||||||
-Dsh="${EPREFIX}"/bin/sh \
|
|
||||||
-Dtargetsh="${EPREFIX}"/bin/sh \
|
|
||||||
-Uusenm \
|
|
||||||
"${EXTRA_ECONF[@]}"
|
|
||||||
|
|
||||||
if tc-is-cross-compiler; then
|
|
||||||
./configure \
|
|
||||||
--target="${CHOST}" \
|
|
||||||
--build="${CBUILD}" \
|
|
||||||
-Dinstallprefix='' \
|
|
||||||
-Dinstallusrbinperl='undef' \
|
|
||||||
-Dusevendorprefix='define' \
|
|
||||||
"${myconf[@]}" \
|
|
||||||
|| die "Unable to configure"
|
|
||||||
else
|
|
||||||
sh Configure \
|
|
||||||
-des \
|
|
||||||
-Dinstallprefix="${EPREFIX}"'/usr' \
|
|
||||||
-Dinstallusrbinperl='n' \
|
|
||||||
"${myconf[@]}" \
|
|
||||||
|| die "Unable to configure"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
export NO_GENTOO_NETWORK_TESTS=1;
|
|
||||||
export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}"
|
|
||||||
export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}"
|
|
||||||
if [[ ${EUID} == 0 ]] ; then
|
|
||||||
ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..."
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
local i
|
|
||||||
local coredir="${ARCH_LIB}/CORE"
|
|
||||||
|
|
||||||
emake DESTDIR="${D}" install
|
|
||||||
|
|
||||||
rm -f "${ED}/usr/bin/perl${MY_PV}"
|
|
||||||
ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die
|
|
||||||
|
|
||||||
if ! tc-is-static-only ; then
|
|
||||||
dolib.so "${ED}"${coredir}/${LIBPERL}
|
|
||||||
rm -f "${ED}"${coredir}/${LIBPERL}
|
|
||||||
ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die
|
|
||||||
ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die
|
|
||||||
|
|
||||||
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die
|
|
||||||
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die
|
|
||||||
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages"
|
|
||||||
|
|
||||||
# This removes ${D} from Config.pm
|
|
||||||
for i in $(find "${D}" -iname "Config.pm" ) ; do
|
|
||||||
einfo "Removing ${D} from ${i}..."
|
|
||||||
sed -i -e "s:${D}::" "${i}" || die "Sed failed"
|
|
||||||
done
|
|
||||||
|
|
||||||
dodoc Changes* README AUTHORS
|
|
||||||
|
|
||||||
if use doc ; then
|
|
||||||
# HTML Documentation
|
|
||||||
# We expect errors, warnings, and such with the following.
|
|
||||||
|
|
||||||
dodir /usr/share/doc/${PF}/html
|
|
||||||
LD_LIBRARY_PATH=. ./perl installhtml \
|
|
||||||
--podroot='.' \
|
|
||||||
--podpath='lib:ext:pod:vms' \
|
|
||||||
--recurse \
|
|
||||||
--htmldir="${ED}/usr/share/doc/${PF}/html"
|
|
||||||
fi
|
|
||||||
|
|
||||||
[[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local
|
|
||||||
|
|
||||||
dual_scripts
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
check_rebuild
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
dual_scripts
|
|
||||||
|
|
||||||
if [[ -z "${ROOT}" ]] ; then
|
|
||||||
local INC DIR file
|
|
||||||
INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }')
|
|
||||||
einfo "Removing old .ph files"
|
|
||||||
for DIR in ${INC} ; do
|
|
||||||
if [[ -d "${DIR}" ]] ; then
|
|
||||||
for file in $(find "${DIR}" -name "*.ph" -type f ) ; do
|
|
||||||
rm -f "${file}"
|
|
||||||
einfo "<< ${file}"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
# Silently remove the now empty dirs
|
|
||||||
for DIR in ${INC} ; do
|
|
||||||
if [[ -d "${DIR}" ]] ; then
|
|
||||||
find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
dual_scripts
|
|
||||||
}
|
|
@ -1,813 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=7
|
|
||||||
|
|
||||||
inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing
|
|
||||||
|
|
||||||
PATCH_VER=1
|
|
||||||
CROSS_VER=1.4
|
|
||||||
PATCH_BASE="perl-5.36.0-patches-${PATCH_VER}"
|
|
||||||
PATCH_DEV=dilfridge
|
|
||||||
|
|
||||||
DIST_AUTHOR=RJBS
|
|
||||||
|
|
||||||
# Greatest first, don't include yourself
|
|
||||||
# Devel point-releases are not ABI-intercompatible, but stable point releases are
|
|
||||||
# BIN_OLDVERSEN contains only C-ABI-intercompatible versions
|
|
||||||
PERL_BIN_OLDVERSEN=""
|
|
||||||
|
|
||||||
if [[ "${PV##*.}" == "9999" ]]; then
|
|
||||||
DIST_VERSION=5.30.0
|
|
||||||
else
|
|
||||||
DIST_VERSION="${PV/_rc/-RC}"
|
|
||||||
fi
|
|
||||||
SHORT_PV="${DIST_VERSION%.*}"
|
|
||||||
|
|
||||||
# Even numbered major versions are ABI intercompatible
|
|
||||||
# Odd numbered major versions are not
|
|
||||||
if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then
|
|
||||||
SUBSLOT="${DIST_VERSION%-RC*}"
|
|
||||||
else
|
|
||||||
SUBSLOT="${DIST_VERSION%.*}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Used only in tar paths
|
|
||||||
MY_P="perl-${DIST_VERSION}"
|
|
||||||
# Used in library paths
|
|
||||||
MY_PV="${DIST_VERSION%-RC*}"
|
|
||||||
|
|
||||||
DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
|
|
||||||
|
|
||||||
SRC_URI="
|
|
||||||
mirror://cpan/src/5.0/${MY_P}.tar.xz
|
|
||||||
mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
|
|
||||||
https://github.com/gentoo-perl/perl-patchset/releases/download/${PATCH_BASE}/${PATCH_BASE}.tar.xz
|
|
||||||
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz
|
|
||||||
https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
|
|
||||||
"
|
|
||||||
|
|
||||||
HOMEPAGE="https://www.perl.org/"
|
|
||||||
|
|
||||||
LICENSE="|| ( Artistic GPL-1+ )"
|
|
||||||
SLOT="0/${SUBSLOT}"
|
|
||||||
|
|
||||||
if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; 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="berkdb debug doc gdbm ithreads minimal quadmath"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
berkdb? ( sys-libs/db:= )
|
|
||||||
gdbm? ( >=sys-libs/gdbm-1.8.3:= )
|
|
||||||
app-arch/bzip2
|
|
||||||
>=sys-libs/zlib-1.2.12
|
|
||||||
virtual/libcrypt:=
|
|
||||||
"
|
|
||||||
DEPEND="${RDEPEND}"
|
|
||||||
BDEPEND="${RDEPEND}"
|
|
||||||
|
|
||||||
PDEPEND="
|
|
||||||
!minimal? (
|
|
||||||
>=app-admin/perl-cleaner-2.5
|
|
||||||
>=virtual/perl-CPAN-2.290.0
|
|
||||||
>=virtual/perl-Encode-3.120.0
|
|
||||||
>=virtual/perl-File-Temp-0.230.400-r2
|
|
||||||
>=virtual/perl-Data-Dumper-2.154.0
|
|
||||||
virtual/perl-Test-Harness
|
|
||||||
)
|
|
||||||
"
|
|
||||||
# bug 390719, bug 523624
|
|
||||||
# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
|
|
||||||
|
|
||||||
S="${WORKDIR}/${MY_P}"
|
|
||||||
|
|
||||||
dual_scripts() {
|
|
||||||
src_remove_dual perl-core/Archive-Tar 2.400.0 ptar ptardiff ptargrep
|
|
||||||
src_remove_dual perl-core/CPAN 2.330.0 cpan
|
|
||||||
src_remove_dual perl-core/Digest-SHA 6.20.0 shasum
|
|
||||||
src_remove_dual perl-core/Encode 3.170.0 enc2xs piconv
|
|
||||||
src_remove_dual perl-core/ExtUtils-MakeMaker 7.640.0 instmodsh
|
|
||||||
src_remove_dual perl-core/ExtUtils-ParseXS 3.450.0 xsubpp
|
|
||||||
src_remove_dual perl-core/IO-Compress 2.106.0 zipdetails
|
|
||||||
src_remove_dual perl-core/JSON-PP 4.70.0 json_pp
|
|
||||||
src_remove_dual perl-core/Module-CoreList 5.202.205.200 corelist
|
|
||||||
src_remove_dual perl-core/Pod-Checker 1.740.0 podchecker
|
|
||||||
src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc
|
|
||||||
src_remove_dual perl-core/Pod-Usage 2.10.0 pod2usage
|
|
||||||
src_remove_dual perl-core/Test-Harness 3.440.0 prove
|
|
||||||
src_remove_dual perl-core/podlators 4.140.0 pod2man pod2text
|
|
||||||
src_remove_dual_man perl-core/podlators 4.140.0 /usr/share/man/man1/perlpodstyle.1
|
|
||||||
}
|
|
||||||
|
|
||||||
check_rebuild() {
|
|
||||||
# Fresh install
|
|
||||||
if [[ -z "${REPLACING_VERSIONS}" ]]; then
|
|
||||||
return 0;
|
|
||||||
# Major Upgrade
|
|
||||||
# doesn't matter if there's multiple copies, it still needs a rebuild
|
|
||||||
# if the string is anything other than "5.CURRENTMAJOR"
|
|
||||||
elif [[ "${REPLACING_VERSIONS%.*}" != "${PV%.*}" ]]; then
|
|
||||||
echo ""
|
|
||||||
ewarn "UPDATE THE PERL MODULES:"
|
|
||||||
ewarn "After updating dev-lang/perl the installed Perl modules"
|
|
||||||
ewarn "have to be re-installed. In most cases, this is done automatically"
|
|
||||||
ewarn "by the package manager, but subsequent steps are still recommended"
|
|
||||||
ewarn "to ensure system consistency."
|
|
||||||
ewarn
|
|
||||||
ewarn "You should start with a depclean to remove any unused perl dependencies"
|
|
||||||
ewarn "that may confuse portage in future. Regular depcleans are also encouraged"
|
|
||||||
ewarn "as part of your regular update cycle, as that will keep perl upgrades working."
|
|
||||||
ewarn "Recommended: emerge --depclean -va"
|
|
||||||
ewarn
|
|
||||||
ewarn "You should then call perl-cleaner to clean up any old files and trigger any"
|
|
||||||
ewarn "remaining rebuilds portage may have missed."
|
|
||||||
ewarn "Use: perl-cleaner --all"
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
# Reinstall w/ USE Change
|
|
||||||
elif
|
|
||||||
( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \
|
|
||||||
( ! use ithreads && has_version dev-lang/perl[ithreads] ) || \
|
|
||||||
( use quadmath && ! has_version dev-lang/perl[quadmath] ) || \
|
|
||||||
( ! use quadmath && has_version dev-lang/perl[quadmath] ) || \
|
|
||||||
( use debug && ! has_version dev-lang/perl[debug] ) || \
|
|
||||||
( ! use debug && has_version dev-lang/perl[debug] ) ; then
|
|
||||||
echo ""
|
|
||||||
ewarn "TOGGLED USE-FLAGS WARNING:"
|
|
||||||
ewarn "You changed one of the use-flags ithreads, quadmath, or debug."
|
|
||||||
ewarn "You must rebuild all perl-modules installed."
|
|
||||||
ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
case ${CHOST} in
|
|
||||||
*-darwin*) osname="darwin" ;;
|
|
||||||
*-solaris*) osname="solaris" ;;
|
|
||||||
*) osname="linux" ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
myarch="${CHOST%%-*}-${osname}"
|
|
||||||
if use debug ; then
|
|
||||||
myarch+="-debug"
|
|
||||||
fi
|
|
||||||
if use quadmath ; then
|
|
||||||
myarch+="-quadmath"
|
|
||||||
fi
|
|
||||||
if use ithreads ; then
|
|
||||||
mythreading="-multi"
|
|
||||||
myarch+="-thread"
|
|
||||||
fi
|
|
||||||
|
|
||||||
PRIV_BASE="/usr/$(get_libdir)/perl5"
|
|
||||||
SITE_BASE="/usr/local/$(get_libdir)/perl5"
|
|
||||||
VENDOR_BASE="/usr/$(get_libdir)/perl5/vendor_perl"
|
|
||||||
|
|
||||||
LIBPERL="libperl$(get_libname ${MY_PV} )"
|
|
||||||
|
|
||||||
PRIV_LIB="${PRIV_BASE}/${SUBSLOT}"
|
|
||||||
ARCH_LIB="${PRIV_BASE}/${SUBSLOT}/${myarch}${mythreading}"
|
|
||||||
SITE_LIB="${SITE_BASE}/${SUBSLOT}"
|
|
||||||
SITE_ARCH="${SITE_BASE}/${SUBSLOT}/${myarch}${mythreading}"
|
|
||||||
VENDOR_LIB="${VENDOR_BASE}/${SUBSLOT}"
|
|
||||||
VENDOR_ARCH="${VENDOR_BASE}/${SUBSLOT}/${myarch}${mythreading}"
|
|
||||||
|
|
||||||
dual_scripts
|
|
||||||
}
|
|
||||||
|
|
||||||
src_remove_dual_file() {
|
|
||||||
local i pkg ver
|
|
||||||
pkg="$1"
|
|
||||||
ver="$2"
|
|
||||||
shift 2
|
|
||||||
case "${EBUILD_PHASE:-none}" in
|
|
||||||
postinst|postrm)
|
|
||||||
for i in "$@" ; do
|
|
||||||
alternatives_auto_makesym "${i}" "${i}-[0-9]*"
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
setup)
|
|
||||||
for i in "$@" ; do
|
|
||||||
if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; then
|
|
||||||
has_version ${pkg} && ewarn "You must reinstall ${pkg} !"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
install)
|
|
||||||
for i in "$@" ; do
|
|
||||||
if ! [[ -f "${ED}"${i} ]] ; then
|
|
||||||
ewarn "${i} does not exist!"
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
mv "${ED}"${i}{,-${ver}-${P}} || die
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
src_remove_dual_man() {
|
|
||||||
local i pkg ver ff
|
|
||||||
pkg="$1"
|
|
||||||
ver="$2"
|
|
||||||
shift 2
|
|
||||||
case "${EBUILD_PHASE:-none}" in
|
|
||||||
postinst|postrm)
|
|
||||||
for i in "$@" ; do
|
|
||||||
ff=`echo "${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*`
|
|
||||||
ff=${ff##*${i#${i%.[0-9]}}}
|
|
||||||
alternatives_auto_makesym "${i}${ff}" "${i%.[0-9]}-[0-9]*"
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
install)
|
|
||||||
for i in "$@" ; do
|
|
||||||
if ! [[ -f "${ED}"${i} ]] ; then
|
|
||||||
ewarn "${i} does not exist!"
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
mv "${ED}"${i} "${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
src_remove_dual() {
|
|
||||||
local i pkg ver
|
|
||||||
pkg="$1"
|
|
||||||
ver="$2"
|
|
||||||
shift 2
|
|
||||||
for i in "$@" ; do
|
|
||||||
src_remove_dual_file "${pkg}" "${ver}" "/usr/bin/${i}"
|
|
||||||
src_remove_dual_man "${pkg}" "${ver}" "/usr/share/man/man1/${i}.1"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare_perlcross() {
|
|
||||||
cp -a ../perl-cross-${CROSS_VER}/* . || die
|
|
||||||
|
|
||||||
# bug 794463, needs further analysis what is exactly wrong here
|
|
||||||
eapply "${FILESDIR}/perl-5.34.0-crossfit.patch"
|
|
||||||
|
|
||||||
# bug 604072
|
|
||||||
MAKEOPTS+=" -j1"
|
|
||||||
export MAKEOPTS
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare_dynamic() {
|
|
||||||
ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
|
|
||||||
ln -s ${LIBPERL} libperl$(get_libname ) || die
|
|
||||||
}
|
|
||||||
|
|
||||||
# Copy a patch into the patch series
|
|
||||||
# add_patch SRC_PATH DEST_NAME ['description'] ['bug'] ['bug']
|
|
||||||
# - description is optional, but recommended
|
|
||||||
# - all arguments after descriptions are bug URLs
|
|
||||||
add_patch() {
|
|
||||||
local patchdir="${WORKDIR}/patches"
|
|
||||||
local infodir="${WORKDIR}/patch-info"
|
|
||||||
local src_name dest_name desc
|
|
||||||
src_name="$1"
|
|
||||||
dest_name="$2"
|
|
||||||
desc="$3"
|
|
||||||
shift; shift; shift;
|
|
||||||
einfo "Adding ${dest_name} to patch bundle"
|
|
||||||
cp "${src_name}" "${patchdir}/${dest_name}" || die "Couldn't copy ${src_name} to ${dest_name}"
|
|
||||||
if [[ -n "${desc}" ]]; then
|
|
||||||
printf "%s" "${desc}" > "${infodir}/${dest_name}.desc" || die "Couldn't write ${dest_name}.desc"
|
|
||||||
fi
|
|
||||||
if [[ $# -gt 0 ]]; then
|
|
||||||
# Note: when $@ is more than one element, this emits a
|
|
||||||
# line for each element
|
|
||||||
printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Remove a patch using a glob expr
|
|
||||||
# eg:
|
|
||||||
# rm_patch *-darwin-Use-CC*
|
|
||||||
#
|
|
||||||
rm_patch() {
|
|
||||||
local patchdir="${WORKDIR}/patches"
|
|
||||||
local expr="$1"
|
|
||||||
local patch="$( cd "${patchdir}"; echo $expr )"
|
|
||||||
einfo "Removing $patch ($expr) from patch bundle"
|
|
||||||
if [[ -e "${patchdir}/${patch}" ]]; then
|
|
||||||
rm -f "${patchdir}/${patch}" || die "Can't remove ${patch} ( $expr )"
|
|
||||||
else
|
|
||||||
ewarn "No ${expr} found in ${patchdir} to remove"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Yes, this is a reasonable amount of code for something seemingly simple
|
|
||||||
# but this is far easier to debug when things go wrong, and things went wrong
|
|
||||||
# multiple times while I was getting the exact number of slashes right, which
|
|
||||||
# requires circumnavigating both bash and sed escape mechanisms.
|
|
||||||
c_escape_string() {
|
|
||||||
local slash dquote
|
|
||||||
slash='\'
|
|
||||||
dquote='"'
|
|
||||||
re_slash="${slash}${slash}"
|
|
||||||
re_dquote="${slash}${dquote}"
|
|
||||||
|
|
||||||
# Convert \ to \\,
|
|
||||||
# " to \"
|
|
||||||
echo "$1" |\
|
|
||||||
sed "s|${re_slash}|${re_slash}${re_slash}|g" |\
|
|
||||||
sed "s|${re_dquote}|${re_slash}${re_dquote}|g"
|
|
||||||
}
|
|
||||||
c_escape_file() {
|
|
||||||
c_escape_string "$(cat "$1")"
|
|
||||||
}
|
|
||||||
|
|
||||||
apply_patchdir() {
|
|
||||||
local patchdir="${WORKDIR}/patches"
|
|
||||||
local infodir="${WORKDIR}/patch-info"
|
|
||||||
local patchoutput="patchlevel-gentoo.h"
|
|
||||||
|
|
||||||
# Inject Patch-Level info into description for patchlevel.h patch
|
|
||||||
# to show in -V
|
|
||||||
local patch_expr="*List-packaged-patches*"
|
|
||||||
local patch="$( cd "${patchdir}"; echo $patch_expr )";
|
|
||||||
einfo "Injecting patch-level info into ${patch}.desc ( $patch_expr )"
|
|
||||||
|
|
||||||
if [[ -e "${patchdir}/${patch}" ]]; then
|
|
||||||
printf "List packaged patches for %s(%s) in patchlevel.h" "${PF}" "${PATCH_BASE}"\
|
|
||||||
>"${infodir}/${patch}.desc" || die "Can't rewrite ${patch}.desc"
|
|
||||||
else
|
|
||||||
eerror "No $patch_expr found in ${patchdir}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Compute patch list to apply
|
|
||||||
# different name other than PATCHES to stop default
|
|
||||||
# reapplying it
|
|
||||||
# Single depth is currently only supported, as artifacts can reside
|
|
||||||
# from the old layout being multiple-directories, as well as it grossly
|
|
||||||
# simplifying the patchlevel_gentoo.h generation.
|
|
||||||
local PERL_PATCHES=($(
|
|
||||||
find "${patchdir}" -maxdepth 1 -mindepth 1 -type f -printf "%f\n" |\
|
|
||||||
grep -E '[.](diff|patch)$' |\
|
|
||||||
sort -n
|
|
||||||
))
|
|
||||||
|
|
||||||
for patch in "${PERL_PATCHES[@]}"; do
|
|
||||||
eapply "${WORKDIR}"/patches/${patch}
|
|
||||||
done
|
|
||||||
|
|
||||||
einfo "Generating $patchoutput"
|
|
||||||
|
|
||||||
# This code creates a header file, each iteration
|
|
||||||
# creates one-or-more-lines for each entry found in PERL_PATCHES
|
|
||||||
# and STDOUT is redirected to the .h file
|
|
||||||
for patch in "${PERL_PATCHES[@]}"; do
|
|
||||||
local desc_f="${infodir}/${patch}.desc"
|
|
||||||
local bugs_f="${infodir}/${patch}.bugs"
|
|
||||||
|
|
||||||
printf ',"%s"\n' "${patch}"
|
|
||||||
if [[ ! -e "${desc_f}" ]]; then
|
|
||||||
ewarn "No description provided for ${patch} (expected: ${desc_f} )"
|
|
||||||
else
|
|
||||||
local desc="$(c_escape_file "${desc_f}")"
|
|
||||||
printf ',"- %s"\n' "${desc}"
|
|
||||||
fi
|
|
||||||
if [[ -e "${bugs_f}" ]]; then
|
|
||||||
while read -d $'\n' -r line; do
|
|
||||||
local esc_line="$(c_escape_string "${line}")"
|
|
||||||
printf ',"- Bug: %s"\n' "${esc_line}"
|
|
||||||
done <"${bugs_f}"
|
|
||||||
fi
|
|
||||||
done > "${S}/${patchoutput}"
|
|
||||||
printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST"
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
local patchdir="${WORKDIR}/patches"
|
|
||||||
|
|
||||||
# Prepare Patch dir with additional patches / remove unwanted patches
|
|
||||||
# Inject bug/desc entries for perl -V
|
|
||||||
# Old example:
|
|
||||||
# add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\
|
|
||||||
# "Fix broken miniperl on hppa"\
|
|
||||||
# "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
|
|
||||||
|
|
||||||
if [[ ${CHOST} == *-solaris* ]] ; then
|
|
||||||
# do NOT mess with nsl, on Solaris this is always necessary,
|
|
||||||
# when -lsocket is used e.g. to get h_errno
|
|
||||||
rm_patch "*-nsl-and-cl*"
|
|
||||||
fi
|
|
||||||
|
|
||||||
apply_patchdir
|
|
||||||
|
|
||||||
tc-is-cross-compiler && src_prepare_perlcross
|
|
||||||
|
|
||||||
tc-is-static-only || src_prepare_dynamic
|
|
||||||
|
|
||||||
if use gdbm; then
|
|
||||||
sed -i "s:INC => .*:INC => \"-I${EROOT}/usr/include/gdbm\":g" \
|
|
||||||
ext/NDBM_File/Makefile.PL || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Use errno.h from prefix rather than from host system, bug #645804
|
|
||||||
if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
|
|
||||||
sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ${CHOST} == *-solaris* ]] ; then
|
|
||||||
# set a soname, fix linking against just built libperl
|
|
||||||
sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ${CHOST} == *-darwin* ]] ; then
|
|
||||||
# fix install_name (soname) not to reference $D
|
|
||||||
sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
|
|
||||||
|
|
||||||
# fix environ linkage absence (only a real issue on Darwin9)
|
|
||||||
if [[ ${CHOST##*-darwin} -le 9 ]] ; then
|
|
||||||
sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \
|
|
||||||
Makefile.SH || die
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
}
|
|
||||||
|
|
||||||
myconf() {
|
|
||||||
# the myconf array is declared in src_configure
|
|
||||||
myconf=( "${myconf[@]}" "$@" )
|
|
||||||
}
|
|
||||||
|
|
||||||
# Outputs a list of versions which have been seen in any of the
|
|
||||||
# primary perl @INC prefix paths, such as:
|
|
||||||
# /usr/lib64/perl5/<NUMBER>
|
|
||||||
# /usr/local/lib64/perl5/<NUMBER>
|
|
||||||
# /usr/lib64/perl5/vendor_perl/<NUMBER>
|
|
||||||
#
|
|
||||||
# All values of NUMBER must be like "5.x.y" or like "5.x"
|
|
||||||
#
|
|
||||||
find_candidate_inc_versions() {
|
|
||||||
local regex='.*/5[.][0-9]+\([.][0-9]+\|\)$'
|
|
||||||
local dirs=(
|
|
||||||
"${EROOT}${PRIV_BASE}"
|
|
||||||
"${EROOT}${SITE_BASE}"
|
|
||||||
"${EROOT}${VENDOR_BASE}"
|
|
||||||
)
|
|
||||||
for dir in "${dirs[@]}"; do
|
|
||||||
if [[ ! -e "${dir}" ]]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
# Without access to readdir() on these dirs, find will not be able
|
|
||||||
# to reveal any @INC directories inside them, and will subsequently prune
|
|
||||||
# them from the built perl's @INC support, breaking our compatiblity options
|
|
||||||
# entirely.
|
|
||||||
if [[ ! -r "${dir}" || ! -x "${dir}" ]]; then
|
|
||||||
eerror "Bad permissions on ${dir}, this will probably break things"
|
|
||||||
eerror "Ensure ${dir} is +rx for at least uid=$EUID"
|
|
||||||
eerror "Recommended permission is +rx for all"
|
|
||||||
eerror "> chmod o+rx ${dir}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}"
|
|
||||||
find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
# Sort versions passed versiony-ly, remove self-version if present
|
|
||||||
# dedup. Takes each version as an argument
|
|
||||||
sanitize_inc_versions() {
|
|
||||||
local vexclude="${SUBSLOT}"
|
|
||||||
einfo "Normalizing/Sorting candidate list: $*"
|
|
||||||
einfo " to remove '${vexclude}'"
|
|
||||||
# Note, general numeric sort has to be used
|
|
||||||
# for the last component, or unique will convert
|
|
||||||
# 5.30.0 + 5.30 into just 5.30
|
|
||||||
printf "%s\n" "$@" |\
|
|
||||||
grep -vxF "${vexclude}" |\
|
|
||||||
sort -u -nr -t'.' -k1,1rn -k2,2rn -k3,3rg
|
|
||||||
}
|
|
||||||
|
|
||||||
versions_to_inclist() {
|
|
||||||
local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
|
|
||||||
|
|
||||||
for v; do
|
|
||||||
has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ ";
|
|
||||||
echo -n "${v}/ ";
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
versions_to_gentoolibdirs() {
|
|
||||||
local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
|
|
||||||
local root
|
|
||||||
local v
|
|
||||||
for v; do
|
|
||||||
for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do
|
|
||||||
local fullpath="${EROOT}${root}/${v}"
|
|
||||||
if [[ -e "${fullpath}" ]]; then
|
|
||||||
has "${v}" ${oldv} && printf "%s:" "${fullpath}/${myarch}${mythreading}";
|
|
||||||
printf "%s:" "${fullpath}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
declare -a myconf
|
|
||||||
|
|
||||||
export LC_ALL="C"
|
|
||||||
[[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
|
|
||||||
|
|
||||||
# Perl has problems compiling with -Os in your flags with glibc
|
|
||||||
replace-flags "-Os" "-O2"
|
|
||||||
|
|
||||||
# xlocale.h is going away in glibc-2.26, so it's counterproductive
|
|
||||||
# if we use it and include it in CORE/perl.h ... Perl builds just
|
|
||||||
# fine with glibc and locale.h only.
|
|
||||||
# However, the darwin prefix people have no locale.h ...
|
|
||||||
use elibc_glibc && myconf -Ui_xlocale
|
|
||||||
|
|
||||||
# This flag makes compiling crash in interesting ways
|
|
||||||
filter-flags "-malign-double"
|
|
||||||
|
|
||||||
# Generic LTO broken since 5.28, triggers EUMM failures
|
|
||||||
filter-flags "-flto"
|
|
||||||
|
|
||||||
use sparc && myconf -Ud_longdbl
|
|
||||||
|
|
||||||
export BUILD_BZIP2=0
|
|
||||||
export BZIP2_INCLUDE=${EROOT}/usr/include
|
|
||||||
export BZIP2_LIB=${EROOT}/usr/$(get_libdir)
|
|
||||||
|
|
||||||
export BUILD_ZLIB=False
|
|
||||||
export ZLIB_INCLUDE=${EROOT}/usr/include
|
|
||||||
export ZLIB_LIB=${EROOT}/usr/$(get_libdir)
|
|
||||||
|
|
||||||
# allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1
|
|
||||||
myndbm='U'
|
|
||||||
mygdbm='U'
|
|
||||||
mydb='U'
|
|
||||||
if use gdbm ; then
|
|
||||||
mygdbm='D'
|
|
||||||
if use berkdb ; then
|
|
||||||
myndbm='D'
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if use berkdb ; then
|
|
||||||
mydb='D'
|
|
||||||
has_version '=sys-libs/db-1*' && myndbm='D'
|
|
||||||
fi
|
|
||||||
|
|
||||||
myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db"
|
|
||||||
|
|
||||||
if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then
|
|
||||||
ewarn "Perl will not be built with berkdb support, use gcc if you needed it..."
|
|
||||||
myconf -Ui_db -Ui_ndbm
|
|
||||||
fi
|
|
||||||
|
|
||||||
use ithreads && myconf -Dusethreads
|
|
||||||
|
|
||||||
use quadmath && myconf -Dusequadmath
|
|
||||||
|
|
||||||
if use debug ; then
|
|
||||||
append-cflags "-g"
|
|
||||||
myconf -DDEBUGGING
|
|
||||||
elif [[ ${CFLAGS} == *-g* ]] ; then
|
|
||||||
myconf -DDEBUGGING=-g
|
|
||||||
else
|
|
||||||
myconf -DDEBUGGING=none
|
|
||||||
fi
|
|
||||||
|
|
||||||
# modifying 'optimize' prevents cross configure script from appending required flags
|
|
||||||
if tc-is-cross-compiler; then
|
|
||||||
append-cflags "-fwrapv"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# bug #877659, bug #821577
|
|
||||||
append-cflags -fno-strict-aliasing
|
|
||||||
|
|
||||||
# Autodiscover all old version directories, some of them will even be newer
|
|
||||||
# if you downgrade
|
|
||||||
if [[ -z ${PERL_OLDVERSEN} ]]; then
|
|
||||||
PERL_OLDVERSEN="$( find_candidate_inc_versions )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Fixup versions, removing self match, fixing order and dupes
|
|
||||||
PERL_OLDVERSEN="$( sanitize_inc_versions ${PERL_OLDVERSEN} )"
|
|
||||||
|
|
||||||
# Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string
|
|
||||||
if [[ -n "${PERL_OLDVERSEN// }" ]]; then
|
|
||||||
local inclist="$( versions_to_inclist ${PERL_OLDVERSEN} )"
|
|
||||||
einfo "This version of perl may partially support modules previously"
|
|
||||||
einfo "installed in any of the following paths:"
|
|
||||||
for incpath in ${inclist}; do
|
|
||||||
[[ -e "${EROOT}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT}${VENDOR_BASE}/${incpath}"
|
|
||||||
[[ -e "${EROOT}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROOT}${PRIV_BASE}/${incpath}"
|
|
||||||
[[ -e "${EROOT}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT}${SITE_BASE}/${incpath}"
|
|
||||||
done
|
|
||||||
einfo "This is a temporary measure and you should aim to cleanup these paths"
|
|
||||||
einfo "via world updates and perl-cleaner"
|
|
||||||
# myconf -Dinc_version_list="${inclist}"
|
|
||||||
myconf -Dgentoolibdirs="$( versions_to_gentoolibdirs ${PERL_OLDVERSEN} )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
[[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a"
|
|
||||||
|
|
||||||
# Make sure we can do the final link #523730, need to set deployment
|
|
||||||
# target to override hardcoded 10.3 which breaks on modern OSX
|
|
||||||
[[ ${CHOST} == *-darwin* ]] && \
|
|
||||||
myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
|
|
||||||
|
|
||||||
# Older macOS with non-Apple GCC chokes on inline in system headers
|
|
||||||
# using c89 mode as injected by cflags.SH, in addition, we override
|
|
||||||
# cflags, so we loose PERL_DARWIN which enables compat code that
|
|
||||||
# apparently on more recent macOS releases is no longer necessary
|
|
||||||
[[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
|
|
||||||
append-cflags -Dinline=__inline__ -DPERL_DARWIN
|
|
||||||
|
|
||||||
# Prefix: the host system needs not to follow Gentoo multilib stuff, and in
|
|
||||||
# Prefix itself we don't do multilib either, so make sure perl can find
|
|
||||||
# something compatible.
|
|
||||||
if use prefix ; then
|
|
||||||
# Set a hook to check for each detected library whether it actually works.
|
|
||||||
export libscheck="
|
|
||||||
( echo 'main(){}' > '${T}'/conftest.c &&
|
|
||||||
$(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
|
|
||||||
) || xxx=/dev/null"
|
|
||||||
|
|
||||||
# Use all host paths that might contain useful stuff, the hook above will filter out bad choices.
|
|
||||||
local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib"
|
|
||||||
myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}"
|
|
||||||
elif [[ $(get_libdir) != "lib" ]] ; then
|
|
||||||
# We need to use " and not ', as the written config.sh use ' ...
|
|
||||||
myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# don't try building ODBM, bug #354453
|
|
||||||
disabled_extensions="ODBM_File"
|
|
||||||
|
|
||||||
if ! use gdbm ; then
|
|
||||||
# workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm"
|
|
||||||
disabled_extensions="${disabled_extensions} GDBM_File NDBM_File"
|
|
||||||
fi
|
|
||||||
|
|
||||||
myconf -Dnoextensions="${disabled_extensions}"
|
|
||||||
|
|
||||||
[[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly
|
|
||||||
|
|
||||||
[[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF}
|
|
||||||
# allow fiddling via EXTRA_ECONF, bug 558070
|
|
||||||
eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})"
|
|
||||||
|
|
||||||
# setting -Dld= to tc-getLD breaks perl and all perl things
|
|
||||||
# https://github.com/Perl/perl5/issues/17791#issuecomment-630145202
|
|
||||||
myconf \
|
|
||||||
-Duseshrplib \
|
|
||||||
-Darchname="${myarch}" \
|
|
||||||
-Dcc="$(tc-getCC)" \
|
|
||||||
-Dar="$(tc-getAR)" \
|
|
||||||
-Dnm="$(tc-getNM)" \
|
|
||||||
-Dcpp="$(tc-getCPP)" \
|
|
||||||
-Dranlib="$(tc-getRANLIB)" \
|
|
||||||
-Accflags="${CFLAGS}" \
|
|
||||||
-Doptimize="${CFLAGS}" \
|
|
||||||
-Dldflags="${LDFLAGS}" \
|
|
||||||
-Dprefix="${EPREFIX}"'/usr' \
|
|
||||||
-Dsiteprefix="${EPREFIX}"'/usr/local' \
|
|
||||||
-Dvendorprefix="${EPREFIX}"'/usr' \
|
|
||||||
-Dscriptdir="${EPREFIX}"'/usr/bin' \
|
|
||||||
-Dprivlib="${EPREFIX}${PRIV_LIB}" \
|
|
||||||
-Darchlib="${EPREFIX}${ARCH_LIB}" \
|
|
||||||
-Dsitelib="${EPREFIX}${SITE_LIB}" \
|
|
||||||
-Dsitearch="${EPREFIX}${SITE_ARCH}" \
|
|
||||||
-Dvendorlib="${EPREFIX}${VENDOR_LIB}" \
|
|
||||||
-Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \
|
|
||||||
-Dman1dir="${EPREFIX}"/usr/share/man/man1 \
|
|
||||||
-Dman3dir="${EPREFIX}"/usr/share/man/man3 \
|
|
||||||
-Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \
|
|
||||||
-Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \
|
|
||||||
-Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \
|
|
||||||
-Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \
|
|
||||||
-Dman1ext='1' \
|
|
||||||
-Dman3ext='3pm' \
|
|
||||||
-Dlibperl="${LIBPERL}" \
|
|
||||||
-Dlocincpth="${EPREFIX}"'/usr/include ' \
|
|
||||||
-Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \
|
|
||||||
-Duselargefiles \
|
|
||||||
-Dd_semctl_semun \
|
|
||||||
-Dcf_by='Gentoo' \
|
|
||||||
-Dmyhostname='localhost' \
|
|
||||||
-Dperladmin='root@localhost' \
|
|
||||||
-Ud_csh \
|
|
||||||
-Dsh="${EPREFIX}"/bin/sh \
|
|
||||||
-Dtargetsh="${EPREFIX}"/bin/sh \
|
|
||||||
-Uusenm \
|
|
||||||
"${EXTRA_ECONF[@]}"
|
|
||||||
|
|
||||||
if tc-is-cross-compiler; then
|
|
||||||
./configure \
|
|
||||||
--target="${CHOST}" \
|
|
||||||
--build="${CBUILD}" \
|
|
||||||
-Dinstallprefix='' \
|
|
||||||
-Dinstallusrbinperl='undef' \
|
|
||||||
-Dusevendorprefix='define' \
|
|
||||||
"${myconf[@]}" \
|
|
||||||
|| die "Unable to configure"
|
|
||||||
else
|
|
||||||
sh Configure \
|
|
||||||
-des \
|
|
||||||
-Dinstallprefix="${EPREFIX}"'/usr' \
|
|
||||||
-Dinstallusrbinperl='n' \
|
|
||||||
"${myconf[@]}" \
|
|
||||||
|| die "Unable to configure"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
export NO_GENTOO_NETWORK_TESTS=1;
|
|
||||||
export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}"
|
|
||||||
export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}"
|
|
||||||
if [[ ${EUID} == 0 ]] ; then
|
|
||||||
ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..."
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
local i
|
|
||||||
local coredir="${ARCH_LIB}/CORE"
|
|
||||||
|
|
||||||
emake DESTDIR="${D}" install
|
|
||||||
|
|
||||||
rm -f "${ED}/usr/bin/perl${MY_PV}"
|
|
||||||
ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die
|
|
||||||
|
|
||||||
if ! tc-is-static-only ; then
|
|
||||||
dolib.so "${ED}"${coredir}/${LIBPERL}
|
|
||||||
rm -f "${ED}"${coredir}/${LIBPERL}
|
|
||||||
ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die
|
|
||||||
ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die
|
|
||||||
|
|
||||||
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die
|
|
||||||
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die
|
|
||||||
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages"
|
|
||||||
|
|
||||||
# This removes ${D} from Config.pm
|
|
||||||
for i in $(find "${D}" -iname "Config.pm" ) ; do
|
|
||||||
einfo "Removing ${D} from ${i}..."
|
|
||||||
sed -i -e "s:${D}::" "${i}" || die "Sed failed"
|
|
||||||
done
|
|
||||||
|
|
||||||
dodoc Changes* README AUTHORS
|
|
||||||
|
|
||||||
if use doc ; then
|
|
||||||
# HTML Documentation
|
|
||||||
# We expect errors, warnings, and such with the following.
|
|
||||||
|
|
||||||
dodir /usr/share/doc/${PF}/html
|
|
||||||
LD_LIBRARY_PATH=. ./perl installhtml \
|
|
||||||
--podroot='.' \
|
|
||||||
--podpath='lib:ext:pod:vms' \
|
|
||||||
--recurse \
|
|
||||||
--htmldir="${ED}/usr/share/doc/${PF}/html"
|
|
||||||
fi
|
|
||||||
|
|
||||||
[[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local
|
|
||||||
|
|
||||||
dual_scripts
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
check_rebuild
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
dual_scripts
|
|
||||||
|
|
||||||
if [[ -z "${ROOT}" ]] ; then
|
|
||||||
local INC DIR file
|
|
||||||
INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }')
|
|
||||||
einfo "Removing old .ph files"
|
|
||||||
for DIR in ${INC} ; do
|
|
||||||
if [[ -d "${DIR}" ]] ; then
|
|
||||||
for file in $(find "${DIR}" -name "*.ph" -type f ) ; do
|
|
||||||
rm -f "${file}"
|
|
||||||
einfo "<< ${file}"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
# Silently remove the now empty dirs
|
|
||||||
for DIR in ${INC} ; do
|
|
||||||
if [[ -d "${DIR}" ]] ; then
|
|
||||||
find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
dual_scripts
|
|
||||||
}
|
|
@ -533,7 +533,7 @@ src_configure() {
|
|||||||
filter-flags "-malign-double"
|
filter-flags "-malign-double"
|
||||||
|
|
||||||
# Generic LTO broken since 5.28, triggers EUMM failures
|
# Generic LTO broken since 5.28, triggers EUMM failures
|
||||||
filter-flags "-flto"
|
filter-lto
|
||||||
|
|
||||||
use sparc && myconf -Ud_longdbl
|
use sparc && myconf -Ud_longdbl
|
||||||
|
|
||||||
@ -583,6 +583,9 @@ src_configure() {
|
|||||||
# modifying 'optimize' prevents cross configure script from appending required flags
|
# modifying 'optimize' prevents cross configure script from appending required flags
|
||||||
if tc-is-cross-compiler; then
|
if tc-is-cross-compiler; then
|
||||||
append-cflags "-fwrapv"
|
append-cflags "-fwrapv"
|
||||||
|
|
||||||
|
# bug #913171
|
||||||
|
export HOSTCFLAGS="${CFLAGS_FOR_BUILD} -D_GNU_SOURCE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# bug #877659, bug #821577
|
# bug #877659, bug #821577
|
||||||
|
@ -1,813 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=7
|
|
||||||
|
|
||||||
inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing
|
|
||||||
|
|
||||||
PATCH_VER=1
|
|
||||||
CROSS_VER=1.4
|
|
||||||
PATCH_BASE="perl-5.36.0-patches-${PATCH_VER}"
|
|
||||||
PATCH_DEV=dilfridge
|
|
||||||
|
|
||||||
DIST_AUTHOR=RJBS
|
|
||||||
|
|
||||||
# Greatest first, don't include yourself
|
|
||||||
# Devel point-releases are not ABI-intercompatible, but stable point releases are
|
|
||||||
# BIN_OLDVERSEN contains only C-ABI-intercompatible versions
|
|
||||||
PERL_BIN_OLDVERSEN=""
|
|
||||||
|
|
||||||
if [[ "${PV##*.}" == "9999" ]]; then
|
|
||||||
DIST_VERSION=5.30.0
|
|
||||||
else
|
|
||||||
DIST_VERSION="${PV/_rc/-RC}"
|
|
||||||
fi
|
|
||||||
SHORT_PV="${DIST_VERSION%.*}"
|
|
||||||
|
|
||||||
# Even numbered major versions are ABI intercompatible
|
|
||||||
# Odd numbered major versions are not
|
|
||||||
if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then
|
|
||||||
SUBSLOT="${DIST_VERSION%-RC*}"
|
|
||||||
else
|
|
||||||
SUBSLOT="${DIST_VERSION%.*}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Used only in tar paths
|
|
||||||
MY_P="perl-${DIST_VERSION}"
|
|
||||||
# Used in library paths
|
|
||||||
MY_PV="${DIST_VERSION%-RC*}"
|
|
||||||
|
|
||||||
DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
|
|
||||||
|
|
||||||
SRC_URI="
|
|
||||||
mirror://cpan/src/5.0/${MY_P}.tar.xz
|
|
||||||
mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
|
|
||||||
https://github.com/gentoo-perl/perl-patchset/releases/download/${PATCH_BASE}/${PATCH_BASE}.tar.xz
|
|
||||||
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz
|
|
||||||
https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
|
|
||||||
"
|
|
||||||
|
|
||||||
HOMEPAGE="https://www.perl.org/"
|
|
||||||
|
|
||||||
LICENSE="|| ( Artistic GPL-1+ )"
|
|
||||||
SLOT="0/${SUBSLOT}"
|
|
||||||
|
|
||||||
if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; 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="berkdb debug doc gdbm ithreads minimal quadmath"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
berkdb? ( sys-libs/db:= )
|
|
||||||
gdbm? ( >=sys-libs/gdbm-1.8.3:= )
|
|
||||||
app-arch/bzip2
|
|
||||||
>=sys-libs/zlib-1.2.12
|
|
||||||
virtual/libcrypt:=
|
|
||||||
"
|
|
||||||
DEPEND="${RDEPEND}"
|
|
||||||
BDEPEND="${RDEPEND}"
|
|
||||||
|
|
||||||
PDEPEND="
|
|
||||||
!minimal? (
|
|
||||||
>=app-admin/perl-cleaner-2.5
|
|
||||||
>=virtual/perl-CPAN-2.290.0
|
|
||||||
>=virtual/perl-Encode-3.120.0
|
|
||||||
>=virtual/perl-File-Temp-0.230.400-r2
|
|
||||||
>=virtual/perl-Data-Dumper-2.154.0
|
|
||||||
virtual/perl-Test-Harness
|
|
||||||
)
|
|
||||||
"
|
|
||||||
# bug 390719, bug 523624
|
|
||||||
# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
|
|
||||||
|
|
||||||
S="${WORKDIR}/${MY_P}"
|
|
||||||
|
|
||||||
dual_scripts() {
|
|
||||||
src_remove_dual perl-core/Archive-Tar 2.400.0 ptar ptardiff ptargrep
|
|
||||||
src_remove_dual perl-core/CPAN 2.330.0 cpan
|
|
||||||
src_remove_dual perl-core/Digest-SHA 6.20.0 shasum
|
|
||||||
src_remove_dual perl-core/Encode 3.170.0 enc2xs piconv
|
|
||||||
src_remove_dual perl-core/ExtUtils-MakeMaker 7.640.0 instmodsh
|
|
||||||
src_remove_dual perl-core/ExtUtils-ParseXS 3.450.0 xsubpp
|
|
||||||
src_remove_dual perl-core/IO-Compress 2.106.0 zipdetails
|
|
||||||
src_remove_dual perl-core/JSON-PP 4.70.0 json_pp
|
|
||||||
src_remove_dual perl-core/Module-CoreList 5.202.304.230 corelist
|
|
||||||
src_remove_dual perl-core/Pod-Checker 1.740.0 podchecker
|
|
||||||
src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc
|
|
||||||
src_remove_dual perl-core/Pod-Usage 2.10.0 pod2usage
|
|
||||||
src_remove_dual perl-core/Test-Harness 3.440.0 prove
|
|
||||||
src_remove_dual perl-core/podlators 4.140.0 pod2man pod2text
|
|
||||||
src_remove_dual_man perl-core/podlators 4.140.0 /usr/share/man/man1/perlpodstyle.1
|
|
||||||
}
|
|
||||||
|
|
||||||
check_rebuild() {
|
|
||||||
# Fresh install
|
|
||||||
if [[ -z "${REPLACING_VERSIONS}" ]]; then
|
|
||||||
return 0;
|
|
||||||
# Major Upgrade
|
|
||||||
# doesn't matter if there's multiple copies, it still needs a rebuild
|
|
||||||
# if the string is anything other than "5.CURRENTMAJOR"
|
|
||||||
elif [[ "${REPLACING_VERSIONS%.*}" != "${PV%.*}" ]]; then
|
|
||||||
echo ""
|
|
||||||
ewarn "UPDATE THE PERL MODULES:"
|
|
||||||
ewarn "After updating dev-lang/perl the installed Perl modules"
|
|
||||||
ewarn "have to be re-installed. In most cases, this is done automatically"
|
|
||||||
ewarn "by the package manager, but subsequent steps are still recommended"
|
|
||||||
ewarn "to ensure system consistency."
|
|
||||||
ewarn
|
|
||||||
ewarn "You should start with a depclean to remove any unused perl dependencies"
|
|
||||||
ewarn "that may confuse portage in future. Regular depcleans are also encouraged"
|
|
||||||
ewarn "as part of your regular update cycle, as that will keep perl upgrades working."
|
|
||||||
ewarn "Recommended: emerge --depclean -va"
|
|
||||||
ewarn
|
|
||||||
ewarn "You should then call perl-cleaner to clean up any old files and trigger any"
|
|
||||||
ewarn "remaining rebuilds portage may have missed."
|
|
||||||
ewarn "Use: perl-cleaner --all"
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
# Reinstall w/ USE Change
|
|
||||||
elif
|
|
||||||
( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \
|
|
||||||
( ! use ithreads && has_version dev-lang/perl[ithreads] ) || \
|
|
||||||
( use quadmath && ! has_version dev-lang/perl[quadmath] ) || \
|
|
||||||
( ! use quadmath && has_version dev-lang/perl[quadmath] ) || \
|
|
||||||
( use debug && ! has_version dev-lang/perl[debug] ) || \
|
|
||||||
( ! use debug && has_version dev-lang/perl[debug] ) ; then
|
|
||||||
echo ""
|
|
||||||
ewarn "TOGGLED USE-FLAGS WARNING:"
|
|
||||||
ewarn "You changed one of the use-flags ithreads, quadmath, or debug."
|
|
||||||
ewarn "You must rebuild all perl-modules installed."
|
|
||||||
ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
case ${CHOST} in
|
|
||||||
*-darwin*) osname="darwin" ;;
|
|
||||||
*-solaris*) osname="solaris" ;;
|
|
||||||
*) osname="linux" ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
myarch="${CHOST%%-*}-${osname}"
|
|
||||||
if use debug ; then
|
|
||||||
myarch+="-debug"
|
|
||||||
fi
|
|
||||||
if use quadmath ; then
|
|
||||||
myarch+="-quadmath"
|
|
||||||
fi
|
|
||||||
if use ithreads ; then
|
|
||||||
mythreading="-multi"
|
|
||||||
myarch+="-thread"
|
|
||||||
fi
|
|
||||||
|
|
||||||
PRIV_BASE="/usr/$(get_libdir)/perl5"
|
|
||||||
SITE_BASE="/usr/local/$(get_libdir)/perl5"
|
|
||||||
VENDOR_BASE="/usr/$(get_libdir)/perl5/vendor_perl"
|
|
||||||
|
|
||||||
LIBPERL="libperl$(get_libname ${MY_PV} )"
|
|
||||||
|
|
||||||
PRIV_LIB="${PRIV_BASE}/${SUBSLOT}"
|
|
||||||
ARCH_LIB="${PRIV_BASE}/${SUBSLOT}/${myarch}${mythreading}"
|
|
||||||
SITE_LIB="${SITE_BASE}/${SUBSLOT}"
|
|
||||||
SITE_ARCH="${SITE_BASE}/${SUBSLOT}/${myarch}${mythreading}"
|
|
||||||
VENDOR_LIB="${VENDOR_BASE}/${SUBSLOT}"
|
|
||||||
VENDOR_ARCH="${VENDOR_BASE}/${SUBSLOT}/${myarch}${mythreading}"
|
|
||||||
|
|
||||||
dual_scripts
|
|
||||||
}
|
|
||||||
|
|
||||||
src_remove_dual_file() {
|
|
||||||
local i pkg ver
|
|
||||||
pkg="$1"
|
|
||||||
ver="$2"
|
|
||||||
shift 2
|
|
||||||
case "${EBUILD_PHASE:-none}" in
|
|
||||||
postinst|postrm)
|
|
||||||
for i in "$@" ; do
|
|
||||||
alternatives_auto_makesym "${i}" "${i}-[0-9]*"
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
setup)
|
|
||||||
for i in "$@" ; do
|
|
||||||
if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; then
|
|
||||||
has_version ${pkg} && ewarn "You must reinstall ${pkg} !"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
install)
|
|
||||||
for i in "$@" ; do
|
|
||||||
if ! [[ -f "${ED}"${i} ]] ; then
|
|
||||||
ewarn "${i} does not exist!"
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
mv "${ED}"${i}{,-${ver}-${P}} || die
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
src_remove_dual_man() {
|
|
||||||
local i pkg ver ff
|
|
||||||
pkg="$1"
|
|
||||||
ver="$2"
|
|
||||||
shift 2
|
|
||||||
case "${EBUILD_PHASE:-none}" in
|
|
||||||
postinst|postrm)
|
|
||||||
for i in "$@" ; do
|
|
||||||
ff=`echo "${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*`
|
|
||||||
ff=${ff##*${i#${i%.[0-9]}}}
|
|
||||||
alternatives_auto_makesym "${i}${ff}" "${i%.[0-9]}-[0-9]*"
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
install)
|
|
||||||
for i in "$@" ; do
|
|
||||||
if ! [[ -f "${ED}"${i} ]] ; then
|
|
||||||
ewarn "${i} does not exist!"
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
mv "${ED}"${i} "${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
src_remove_dual() {
|
|
||||||
local i pkg ver
|
|
||||||
pkg="$1"
|
|
||||||
ver="$2"
|
|
||||||
shift 2
|
|
||||||
for i in "$@" ; do
|
|
||||||
src_remove_dual_file "${pkg}" "${ver}" "/usr/bin/${i}"
|
|
||||||
src_remove_dual_man "${pkg}" "${ver}" "/usr/share/man/man1/${i}.1"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare_perlcross() {
|
|
||||||
cp -a ../perl-cross-${CROSS_VER}/* . || die
|
|
||||||
|
|
||||||
# bug 794463, needs further analysis what is exactly wrong here
|
|
||||||
eapply "${FILESDIR}/perl-5.34.0-crossfit.patch"
|
|
||||||
|
|
||||||
# bug 604072
|
|
||||||
MAKEOPTS+=" -j1"
|
|
||||||
export MAKEOPTS
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare_dynamic() {
|
|
||||||
ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
|
|
||||||
ln -s ${LIBPERL} libperl$(get_libname ) || die
|
|
||||||
}
|
|
||||||
|
|
||||||
# Copy a patch into the patch series
|
|
||||||
# add_patch SRC_PATH DEST_NAME ['description'] ['bug'] ['bug']
|
|
||||||
# - description is optional, but recommended
|
|
||||||
# - all arguments after descriptions are bug URLs
|
|
||||||
add_patch() {
|
|
||||||
local patchdir="${WORKDIR}/patches"
|
|
||||||
local infodir="${WORKDIR}/patch-info"
|
|
||||||
local src_name dest_name desc
|
|
||||||
src_name="$1"
|
|
||||||
dest_name="$2"
|
|
||||||
desc="$3"
|
|
||||||
shift; shift; shift;
|
|
||||||
einfo "Adding ${dest_name} to patch bundle"
|
|
||||||
cp "${src_name}" "${patchdir}/${dest_name}" || die "Couldn't copy ${src_name} to ${dest_name}"
|
|
||||||
if [[ -n "${desc}" ]]; then
|
|
||||||
printf "%s" "${desc}" > "${infodir}/${dest_name}.desc" || die "Couldn't write ${dest_name}.desc"
|
|
||||||
fi
|
|
||||||
if [[ $# -gt 0 ]]; then
|
|
||||||
# Note: when $@ is more than one element, this emits a
|
|
||||||
# line for each element
|
|
||||||
printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Remove a patch using a glob expr
|
|
||||||
# eg:
|
|
||||||
# rm_patch *-darwin-Use-CC*
|
|
||||||
#
|
|
||||||
rm_patch() {
|
|
||||||
local patchdir="${WORKDIR}/patches"
|
|
||||||
local expr="$1"
|
|
||||||
local patch="$( cd "${patchdir}"; echo $expr )"
|
|
||||||
einfo "Removing $patch ($expr) from patch bundle"
|
|
||||||
if [[ -e "${patchdir}/${patch}" ]]; then
|
|
||||||
rm -f "${patchdir}/${patch}" || die "Can't remove ${patch} ( $expr )"
|
|
||||||
else
|
|
||||||
ewarn "No ${expr} found in ${patchdir} to remove"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Yes, this is a reasonable amount of code for something seemingly simple
|
|
||||||
# but this is far easier to debug when things go wrong, and things went wrong
|
|
||||||
# multiple times while I was getting the exact number of slashes right, which
|
|
||||||
# requires circumnavigating both bash and sed escape mechanisms.
|
|
||||||
c_escape_string() {
|
|
||||||
local slash dquote
|
|
||||||
slash='\'
|
|
||||||
dquote='"'
|
|
||||||
re_slash="${slash}${slash}"
|
|
||||||
re_dquote="${slash}${dquote}"
|
|
||||||
|
|
||||||
# Convert \ to \\,
|
|
||||||
# " to \"
|
|
||||||
echo "$1" |\
|
|
||||||
sed "s|${re_slash}|${re_slash}${re_slash}|g" |\
|
|
||||||
sed "s|${re_dquote}|${re_slash}${re_dquote}|g"
|
|
||||||
}
|
|
||||||
c_escape_file() {
|
|
||||||
c_escape_string "$(cat "$1")"
|
|
||||||
}
|
|
||||||
|
|
||||||
apply_patchdir() {
|
|
||||||
local patchdir="${WORKDIR}/patches"
|
|
||||||
local infodir="${WORKDIR}/patch-info"
|
|
||||||
local patchoutput="patchlevel-gentoo.h"
|
|
||||||
|
|
||||||
# Inject Patch-Level info into description for patchlevel.h patch
|
|
||||||
# to show in -V
|
|
||||||
local patch_expr="*List-packaged-patches*"
|
|
||||||
local patch="$( cd "${patchdir}"; echo $patch_expr )";
|
|
||||||
einfo "Injecting patch-level info into ${patch}.desc ( $patch_expr )"
|
|
||||||
|
|
||||||
if [[ -e "${patchdir}/${patch}" ]]; then
|
|
||||||
printf "List packaged patches for %s(%s) in patchlevel.h" "${PF}" "${PATCH_BASE}"\
|
|
||||||
>"${infodir}/${patch}.desc" || die "Can't rewrite ${patch}.desc"
|
|
||||||
else
|
|
||||||
eerror "No $patch_expr found in ${patchdir}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Compute patch list to apply
|
|
||||||
# different name other than PATCHES to stop default
|
|
||||||
# reapplying it
|
|
||||||
# Single depth is currently only supported, as artifacts can reside
|
|
||||||
# from the old layout being multiple-directories, as well as it grossly
|
|
||||||
# simplifying the patchlevel_gentoo.h generation.
|
|
||||||
local PERL_PATCHES=($(
|
|
||||||
find "${patchdir}" -maxdepth 1 -mindepth 1 -type f -printf "%f\n" |\
|
|
||||||
grep -E '[.](diff|patch)$' |\
|
|
||||||
sort -n
|
|
||||||
))
|
|
||||||
|
|
||||||
for patch in "${PERL_PATCHES[@]}"; do
|
|
||||||
eapply "${WORKDIR}"/patches/${patch}
|
|
||||||
done
|
|
||||||
|
|
||||||
einfo "Generating $patchoutput"
|
|
||||||
|
|
||||||
# This code creates a header file, each iteration
|
|
||||||
# creates one-or-more-lines for each entry found in PERL_PATCHES
|
|
||||||
# and STDOUT is redirected to the .h file
|
|
||||||
for patch in "${PERL_PATCHES[@]}"; do
|
|
||||||
local desc_f="${infodir}/${patch}.desc"
|
|
||||||
local bugs_f="${infodir}/${patch}.bugs"
|
|
||||||
|
|
||||||
printf ',"%s"\n' "${patch}"
|
|
||||||
if [[ ! -e "${desc_f}" ]]; then
|
|
||||||
ewarn "No description provided for ${patch} (expected: ${desc_f} )"
|
|
||||||
else
|
|
||||||
local desc="$(c_escape_file "${desc_f}")"
|
|
||||||
printf ',"- %s"\n' "${desc}"
|
|
||||||
fi
|
|
||||||
if [[ -e "${bugs_f}" ]]; then
|
|
||||||
while read -d $'\n' -r line; do
|
|
||||||
local esc_line="$(c_escape_string "${line}")"
|
|
||||||
printf ',"- Bug: %s"\n' "${esc_line}"
|
|
||||||
done <"${bugs_f}"
|
|
||||||
fi
|
|
||||||
done > "${S}/${patchoutput}"
|
|
||||||
printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST"
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
local patchdir="${WORKDIR}/patches"
|
|
||||||
|
|
||||||
# Prepare Patch dir with additional patches / remove unwanted patches
|
|
||||||
# Inject bug/desc entries for perl -V
|
|
||||||
# Old example:
|
|
||||||
# add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\
|
|
||||||
# "Fix broken miniperl on hppa"\
|
|
||||||
# "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
|
|
||||||
|
|
||||||
if [[ ${CHOST} == *-solaris* ]] ; then
|
|
||||||
# do NOT mess with nsl, on Solaris this is always necessary,
|
|
||||||
# when -lsocket is used e.g. to get h_errno
|
|
||||||
rm_patch "*-nsl-and-cl*"
|
|
||||||
fi
|
|
||||||
|
|
||||||
apply_patchdir
|
|
||||||
|
|
||||||
tc-is-cross-compiler && src_prepare_perlcross
|
|
||||||
|
|
||||||
tc-is-static-only || src_prepare_dynamic
|
|
||||||
|
|
||||||
if use gdbm; then
|
|
||||||
sed -i "s:INC => .*:INC => \"-I${EROOT}/usr/include/gdbm\":g" \
|
|
||||||
ext/NDBM_File/Makefile.PL || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Use errno.h from prefix rather than from host system, bug #645804
|
|
||||||
if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
|
|
||||||
sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ${CHOST} == *-solaris* ]] ; then
|
|
||||||
# set a soname, fix linking against just built libperl
|
|
||||||
sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ${CHOST} == *-darwin* ]] ; then
|
|
||||||
# fix install_name (soname) not to reference $D
|
|
||||||
sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
|
|
||||||
|
|
||||||
# fix environ linkage absence (only a real issue on Darwin9)
|
|
||||||
if [[ ${CHOST##*-darwin} -le 9 ]] ; then
|
|
||||||
sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \
|
|
||||||
Makefile.SH || die
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
}
|
|
||||||
|
|
||||||
myconf() {
|
|
||||||
# the myconf array is declared in src_configure
|
|
||||||
myconf=( "${myconf[@]}" "$@" )
|
|
||||||
}
|
|
||||||
|
|
||||||
# Outputs a list of versions which have been seen in any of the
|
|
||||||
# primary perl @INC prefix paths, such as:
|
|
||||||
# /usr/lib64/perl5/<NUMBER>
|
|
||||||
# /usr/local/lib64/perl5/<NUMBER>
|
|
||||||
# /usr/lib64/perl5/vendor_perl/<NUMBER>
|
|
||||||
#
|
|
||||||
# All values of NUMBER must be like "5.x.y" or like "5.x"
|
|
||||||
#
|
|
||||||
find_candidate_inc_versions() {
|
|
||||||
local regex='.*/5[.][0-9]+\([.][0-9]+\|\)$'
|
|
||||||
local dirs=(
|
|
||||||
"${EROOT}${PRIV_BASE}"
|
|
||||||
"${EROOT}${SITE_BASE}"
|
|
||||||
"${EROOT}${VENDOR_BASE}"
|
|
||||||
)
|
|
||||||
for dir in "${dirs[@]}"; do
|
|
||||||
if [[ ! -e "${dir}" ]]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
# Without access to readdir() on these dirs, find will not be able
|
|
||||||
# to reveal any @INC directories inside them, and will subsequently prune
|
|
||||||
# them from the built perl's @INC support, breaking our compatiblity options
|
|
||||||
# entirely.
|
|
||||||
if [[ ! -r "${dir}" || ! -x "${dir}" ]]; then
|
|
||||||
eerror "Bad permissions on ${dir}, this will probably break things"
|
|
||||||
eerror "Ensure ${dir} is +rx for at least uid=$EUID"
|
|
||||||
eerror "Recommended permission is +rx for all"
|
|
||||||
eerror "> chmod o+rx ${dir}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}"
|
|
||||||
find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
# Sort versions passed versiony-ly, remove self-version if present
|
|
||||||
# dedup. Takes each version as an argument
|
|
||||||
sanitize_inc_versions() {
|
|
||||||
local vexclude="${SUBSLOT}"
|
|
||||||
einfo "Normalizing/Sorting candidate list: $*"
|
|
||||||
einfo " to remove '${vexclude}'"
|
|
||||||
# Note, general numeric sort has to be used
|
|
||||||
# for the last component, or unique will convert
|
|
||||||
# 5.30.0 + 5.30 into just 5.30
|
|
||||||
printf "%s\n" "$@" |\
|
|
||||||
grep -vxF "${vexclude}" |\
|
|
||||||
sort -u -nr -t'.' -k1,1rn -k2,2rn -k3,3rg
|
|
||||||
}
|
|
||||||
|
|
||||||
versions_to_inclist() {
|
|
||||||
local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
|
|
||||||
|
|
||||||
for v; do
|
|
||||||
has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ ";
|
|
||||||
echo -n "${v}/ ";
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
versions_to_gentoolibdirs() {
|
|
||||||
local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
|
|
||||||
local root
|
|
||||||
local v
|
|
||||||
for v; do
|
|
||||||
for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do
|
|
||||||
local fullpath="${EROOT}${root}/${v}"
|
|
||||||
if [[ -e "${fullpath}" ]]; then
|
|
||||||
has "${v}" ${oldv} && printf "%s:" "${fullpath}/${myarch}${mythreading}";
|
|
||||||
printf "%s:" "${fullpath}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
declare -a myconf
|
|
||||||
|
|
||||||
export LC_ALL="C"
|
|
||||||
[[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
|
|
||||||
|
|
||||||
# Perl has problems compiling with -Os in your flags with glibc
|
|
||||||
replace-flags "-Os" "-O2"
|
|
||||||
|
|
||||||
# xlocale.h is going away in glibc-2.26, so it's counterproductive
|
|
||||||
# if we use it and include it in CORE/perl.h ... Perl builds just
|
|
||||||
# fine with glibc and locale.h only.
|
|
||||||
# However, the darwin prefix people have no locale.h ...
|
|
||||||
use elibc_glibc && myconf -Ui_xlocale
|
|
||||||
|
|
||||||
# This flag makes compiling crash in interesting ways
|
|
||||||
filter-flags "-malign-double"
|
|
||||||
|
|
||||||
# Generic LTO broken since 5.28, triggers EUMM failures
|
|
||||||
filter-flags "-flto"
|
|
||||||
|
|
||||||
use sparc && myconf -Ud_longdbl
|
|
||||||
|
|
||||||
export BUILD_BZIP2=0
|
|
||||||
export BZIP2_INCLUDE=${EROOT}/usr/include
|
|
||||||
export BZIP2_LIB=${EROOT}/usr/$(get_libdir)
|
|
||||||
|
|
||||||
export BUILD_ZLIB=False
|
|
||||||
export ZLIB_INCLUDE=${EROOT}/usr/include
|
|
||||||
export ZLIB_LIB=${EROOT}/usr/$(get_libdir)
|
|
||||||
|
|
||||||
# allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1
|
|
||||||
myndbm='U'
|
|
||||||
mygdbm='U'
|
|
||||||
mydb='U'
|
|
||||||
if use gdbm ; then
|
|
||||||
mygdbm='D'
|
|
||||||
if use berkdb ; then
|
|
||||||
myndbm='D'
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if use berkdb ; then
|
|
||||||
mydb='D'
|
|
||||||
has_version '=sys-libs/db-1*' && myndbm='D'
|
|
||||||
fi
|
|
||||||
|
|
||||||
myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db"
|
|
||||||
|
|
||||||
if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then
|
|
||||||
ewarn "Perl will not be built with berkdb support, use gcc if you needed it..."
|
|
||||||
myconf -Ui_db -Ui_ndbm
|
|
||||||
fi
|
|
||||||
|
|
||||||
use ithreads && myconf -Dusethreads
|
|
||||||
|
|
||||||
use quadmath && myconf -Dusequadmath
|
|
||||||
|
|
||||||
if use debug ; then
|
|
||||||
append-cflags "-g"
|
|
||||||
myconf -DDEBUGGING
|
|
||||||
elif [[ ${CFLAGS} == *-g* ]] ; then
|
|
||||||
myconf -DDEBUGGING=-g
|
|
||||||
else
|
|
||||||
myconf -DDEBUGGING=none
|
|
||||||
fi
|
|
||||||
|
|
||||||
# modifying 'optimize' prevents cross configure script from appending required flags
|
|
||||||
if tc-is-cross-compiler; then
|
|
||||||
append-cflags "-fwrapv"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# bug #877659, bug #821577
|
|
||||||
append-cflags -fno-strict-aliasing
|
|
||||||
|
|
||||||
# Autodiscover all old version directories, some of them will even be newer
|
|
||||||
# if you downgrade
|
|
||||||
if [[ -z ${PERL_OLDVERSEN} ]]; then
|
|
||||||
PERL_OLDVERSEN="$( find_candidate_inc_versions )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Fixup versions, removing self match, fixing order and dupes
|
|
||||||
PERL_OLDVERSEN="$( sanitize_inc_versions ${PERL_OLDVERSEN} )"
|
|
||||||
|
|
||||||
# Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string
|
|
||||||
if [[ -n "${PERL_OLDVERSEN// }" ]]; then
|
|
||||||
local inclist="$( versions_to_inclist ${PERL_OLDVERSEN} )"
|
|
||||||
einfo "This version of perl may partially support modules previously"
|
|
||||||
einfo "installed in any of the following paths:"
|
|
||||||
for incpath in ${inclist}; do
|
|
||||||
[[ -e "${EROOT}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT}${VENDOR_BASE}/${incpath}"
|
|
||||||
[[ -e "${EROOT}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROOT}${PRIV_BASE}/${incpath}"
|
|
||||||
[[ -e "${EROOT}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT}${SITE_BASE}/${incpath}"
|
|
||||||
done
|
|
||||||
einfo "This is a temporary measure and you should aim to cleanup these paths"
|
|
||||||
einfo "via world updates and perl-cleaner"
|
|
||||||
# myconf -Dinc_version_list="${inclist}"
|
|
||||||
myconf -Dgentoolibdirs="$( versions_to_gentoolibdirs ${PERL_OLDVERSEN} )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
[[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a"
|
|
||||||
|
|
||||||
# Make sure we can do the final link #523730, need to set deployment
|
|
||||||
# target to override hardcoded 10.3 which breaks on modern OSX
|
|
||||||
[[ ${CHOST} == *-darwin* ]] && \
|
|
||||||
myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
|
|
||||||
|
|
||||||
# Older macOS with non-Apple GCC chokes on inline in system headers
|
|
||||||
# using c89 mode as injected by cflags.SH, in addition, we override
|
|
||||||
# cflags, so we loose PERL_DARWIN which enables compat code that
|
|
||||||
# apparently on more recent macOS releases is no longer necessary
|
|
||||||
[[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
|
|
||||||
append-cflags -Dinline=__inline__ -DPERL_DARWIN
|
|
||||||
|
|
||||||
# Prefix: the host system needs not to follow Gentoo multilib stuff, and in
|
|
||||||
# Prefix itself we don't do multilib either, so make sure perl can find
|
|
||||||
# something compatible.
|
|
||||||
if use prefix ; then
|
|
||||||
# Set a hook to check for each detected library whether it actually works.
|
|
||||||
export libscheck="
|
|
||||||
( echo 'main(){}' > '${T}'/conftest.c &&
|
|
||||||
$(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
|
|
||||||
) || xxx=/dev/null"
|
|
||||||
|
|
||||||
# Use all host paths that might contain useful stuff, the hook above will filter out bad choices.
|
|
||||||
local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib"
|
|
||||||
myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}"
|
|
||||||
elif [[ $(get_libdir) != "lib" ]] ; then
|
|
||||||
# We need to use " and not ', as the written config.sh use ' ...
|
|
||||||
myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# don't try building ODBM, bug #354453
|
|
||||||
disabled_extensions="ODBM_File"
|
|
||||||
|
|
||||||
if ! use gdbm ; then
|
|
||||||
# workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm"
|
|
||||||
disabled_extensions="${disabled_extensions} GDBM_File NDBM_File"
|
|
||||||
fi
|
|
||||||
|
|
||||||
myconf -Dnoextensions="${disabled_extensions}"
|
|
||||||
|
|
||||||
[[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly
|
|
||||||
|
|
||||||
[[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF}
|
|
||||||
# allow fiddling via EXTRA_ECONF, bug 558070
|
|
||||||
eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})"
|
|
||||||
|
|
||||||
# setting -Dld= to tc-getLD breaks perl and all perl things
|
|
||||||
# https://github.com/Perl/perl5/issues/17791#issuecomment-630145202
|
|
||||||
myconf \
|
|
||||||
-Duseshrplib \
|
|
||||||
-Darchname="${myarch}" \
|
|
||||||
-Dcc="$(tc-getCC)" \
|
|
||||||
-Dar="$(tc-getAR)" \
|
|
||||||
-Dnm="$(tc-getNM)" \
|
|
||||||
-Dcpp="$(tc-getCPP)" \
|
|
||||||
-Dranlib="$(tc-getRANLIB)" \
|
|
||||||
-Accflags="${CFLAGS}" \
|
|
||||||
-Doptimize="${CFLAGS}" \
|
|
||||||
-Dldflags="${LDFLAGS}" \
|
|
||||||
-Dprefix="${EPREFIX}"'/usr' \
|
|
||||||
-Dsiteprefix="${EPREFIX}"'/usr/local' \
|
|
||||||
-Dvendorprefix="${EPREFIX}"'/usr' \
|
|
||||||
-Dscriptdir="${EPREFIX}"'/usr/bin' \
|
|
||||||
-Dprivlib="${EPREFIX}${PRIV_LIB}" \
|
|
||||||
-Darchlib="${EPREFIX}${ARCH_LIB}" \
|
|
||||||
-Dsitelib="${EPREFIX}${SITE_LIB}" \
|
|
||||||
-Dsitearch="${EPREFIX}${SITE_ARCH}" \
|
|
||||||
-Dvendorlib="${EPREFIX}${VENDOR_LIB}" \
|
|
||||||
-Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \
|
|
||||||
-Dman1dir="${EPREFIX}"/usr/share/man/man1 \
|
|
||||||
-Dman3dir="${EPREFIX}"/usr/share/man/man3 \
|
|
||||||
-Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \
|
|
||||||
-Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \
|
|
||||||
-Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \
|
|
||||||
-Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \
|
|
||||||
-Dman1ext='1' \
|
|
||||||
-Dman3ext='3pm' \
|
|
||||||
-Dlibperl="${LIBPERL}" \
|
|
||||||
-Dlocincpth="${EPREFIX}"'/usr/include ' \
|
|
||||||
-Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \
|
|
||||||
-Duselargefiles \
|
|
||||||
-Dd_semctl_semun \
|
|
||||||
-Dcf_by='Gentoo' \
|
|
||||||
-Dmyhostname='localhost' \
|
|
||||||
-Dperladmin='root@localhost' \
|
|
||||||
-Ud_csh \
|
|
||||||
-Dsh="${EPREFIX}"/bin/sh \
|
|
||||||
-Dtargetsh="${EPREFIX}"/bin/sh \
|
|
||||||
-Uusenm \
|
|
||||||
"${EXTRA_ECONF[@]}"
|
|
||||||
|
|
||||||
if tc-is-cross-compiler; then
|
|
||||||
./configure \
|
|
||||||
--target="${CHOST}" \
|
|
||||||
--build="${CBUILD}" \
|
|
||||||
-Dinstallprefix='' \
|
|
||||||
-Dinstallusrbinperl='undef' \
|
|
||||||
-Dusevendorprefix='define' \
|
|
||||||
"${myconf[@]}" \
|
|
||||||
|| die "Unable to configure"
|
|
||||||
else
|
|
||||||
sh Configure \
|
|
||||||
-des \
|
|
||||||
-Dinstallprefix="${EPREFIX}"'/usr' \
|
|
||||||
-Dinstallusrbinperl='n' \
|
|
||||||
"${myconf[@]}" \
|
|
||||||
|| die "Unable to configure"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
export NO_GENTOO_NETWORK_TESTS=1;
|
|
||||||
export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}"
|
|
||||||
export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}"
|
|
||||||
if [[ ${EUID} == 0 ]] ; then
|
|
||||||
ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..."
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
local i
|
|
||||||
local coredir="${ARCH_LIB}/CORE"
|
|
||||||
|
|
||||||
emake DESTDIR="${D}" install
|
|
||||||
|
|
||||||
rm -f "${ED}/usr/bin/perl${MY_PV}"
|
|
||||||
ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die
|
|
||||||
|
|
||||||
if ! tc-is-static-only ; then
|
|
||||||
dolib.so "${ED}"${coredir}/${LIBPERL}
|
|
||||||
rm -f "${ED}"${coredir}/${LIBPERL}
|
|
||||||
ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die
|
|
||||||
ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die
|
|
||||||
|
|
||||||
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die
|
|
||||||
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die
|
|
||||||
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages"
|
|
||||||
|
|
||||||
# This removes ${D} from Config.pm
|
|
||||||
for i in $(find "${D}" -iname "Config.pm" ) ; do
|
|
||||||
einfo "Removing ${D} from ${i}..."
|
|
||||||
sed -i -e "s:${D}::" "${i}" || die "Sed failed"
|
|
||||||
done
|
|
||||||
|
|
||||||
dodoc Changes* README AUTHORS
|
|
||||||
|
|
||||||
if use doc ; then
|
|
||||||
# HTML Documentation
|
|
||||||
# We expect errors, warnings, and such with the following.
|
|
||||||
|
|
||||||
dodir /usr/share/doc/${PF}/html
|
|
||||||
LD_LIBRARY_PATH=. ./perl installhtml \
|
|
||||||
--podroot='.' \
|
|
||||||
--podpath='lib:ext:pod:vms' \
|
|
||||||
--recurse \
|
|
||||||
--htmldir="${ED}/usr/share/doc/${PF}/html"
|
|
||||||
fi
|
|
||||||
|
|
||||||
[[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local
|
|
||||||
|
|
||||||
dual_scripts
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
check_rebuild
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
dual_scripts
|
|
||||||
|
|
||||||
if [[ -z "${ROOT}" ]] ; then
|
|
||||||
local INC DIR file
|
|
||||||
INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }')
|
|
||||||
einfo "Removing old .ph files"
|
|
||||||
for DIR in ${INC} ; do
|
|
||||||
if [[ -d "${DIR}" ]] ; then
|
|
||||||
for file in $(find "${DIR}" -name "*.ph" -type f ) ; do
|
|
||||||
rm -f "${file}"
|
|
||||||
einfo "<< ${file}"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
# Silently remove the now empty dirs
|
|
||||||
for DIR in ${INC} ; do
|
|
||||||
if [[ -d "${DIR}" ]] ; then
|
|
||||||
find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
dual_scripts
|
|
||||||
}
|
|
@ -53,7 +53,7 @@ LICENSE="|| ( Artistic GPL-1+ )"
|
|||||||
SLOT="0/${SUBSLOT}"
|
SLOT="0/${SUBSLOT}"
|
||||||
|
|
||||||
if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then
|
if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; 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
|
||||||
|
|
||||||
IUSE="berkdb debug doc gdbm ithreads minimal quadmath"
|
IUSE="berkdb debug doc gdbm ithreads minimal quadmath"
|
||||||
@ -533,7 +533,7 @@ src_configure() {
|
|||||||
filter-flags "-malign-double"
|
filter-flags "-malign-double"
|
||||||
|
|
||||||
# Generic LTO broken since 5.28, triggers EUMM failures
|
# Generic LTO broken since 5.28, triggers EUMM failures
|
||||||
filter-flags "-flto"
|
filter-lto
|
||||||
|
|
||||||
use sparc && myconf -Ud_longdbl
|
use sparc && myconf -Ud_longdbl
|
||||||
|
|
||||||
@ -583,6 +583,9 @@ src_configure() {
|
|||||||
# modifying 'optimize' prevents cross configure script from appending required flags
|
# modifying 'optimize' prevents cross configure script from appending required flags
|
||||||
if tc-is-cross-compiler; then
|
if tc-is-cross-compiler; then
|
||||||
append-cflags "-fwrapv"
|
append-cflags "-fwrapv"
|
||||||
|
|
||||||
|
# bug #913171
|
||||||
|
export HOSTCFLAGS="${CFLAGS_FOR_BUILD} -D_GNU_SOURCE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# bug #877659, bug #821577
|
# bug #877659, bug #821577
|
||||||
|
@ -1,27 +1,22 @@
|
|||||||
DIST Python-2.7.18.tar.xz 12854736 BLAKE2B 060a621c91dd8e3d321aec99d44c17aa67381998256a1a002d316b38288349884d5960de35c49352d03129ed0bae599e641ec2225898158ebce50a7a2fd74d2c SHA512 a7bb62b51f48ff0b6df0b18f5b0312a523e3110f49c3237936bfe56ed0e26838c0274ff5401bda6fc21bf24337477ccac49e8026c5d651e4b4cafb5eb5086f6c
|
DIST Python-2.7.18.tar.xz 12854736 BLAKE2B 060a621c91dd8e3d321aec99d44c17aa67381998256a1a002d316b38288349884d5960de35c49352d03129ed0bae599e641ec2225898158ebce50a7a2fd74d2c SHA512 a7bb62b51f48ff0b6df0b18f5b0312a523e3110f49c3237936bfe56ed0e26838c0274ff5401bda6fc21bf24337477ccac49e8026c5d651e4b4cafb5eb5086f6c
|
||||||
DIST Python-2.7.18.tar.xz.asc 833 BLAKE2B 1d98770e46171971fb99994508d238c01d2755281d2f94353314014d9e83e0ec5f0b3e3950ea1fdf5fce9ba6b8f55312355845c2a3fc4291c27ee56fe6215448 SHA512 c2a5f5a52f47dec52460ad3275758d4e5de6e7075c3def4353c988d74d563a39b42cae2d5eb24e2a23a6247cef69100f91620b11a49c2359fbf99b203c9cbda8
|
DIST Python-2.7.18.tar.xz.asc 833 BLAKE2B 1d98770e46171971fb99994508d238c01d2755281d2f94353314014d9e83e0ec5f0b3e3950ea1fdf5fce9ba6b8f55312355845c2a3fc4291c27ee56fe6215448 SHA512 c2a5f5a52f47dec52460ad3275758d4e5de6e7075c3def4353c988d74d563a39b42cae2d5eb24e2a23a6247cef69100f91620b11a49c2359fbf99b203c9cbda8
|
||||||
DIST Python-3.10.12.tar.xz 19654836 BLAKE2B f7a3e27b437003915e4ebeeba82d1cc0c9de169f6e4bfe8d957e910141767668f3f1dd19374c212dba09325465f859244b955f3ffd3d0e6e879cc31bb4229ed6 SHA512 5ea018e71bfe7872e02eaf8aef56d5583c0880e4ce5fbbdf8ea76da20c2e94ac6a3ba8badb4b7d1bc21853402a3b63541b04181737417b1626e786b696595cf5
|
DIST Python-3.10.13.tar.xz 19663088 BLAKE2B d9a8edf89d0ccd665fd5ed444a144af240e078fcab1876fea8b44586c23651a08cf5833fc54c39e8471fd9e66ea0ded11fcaa5d215bc025acaf4504a15c5846d SHA512 7579772e501486b2b07f78142082dee1e99c7643640098860ac0cf2ca87daf7588b0c00b1db1960146b37f56a6ed98fd08297c25c9a19b612cf6e6a258984da8
|
||||||
DIST Python-3.10.12.tar.xz.asc 833 BLAKE2B a0278118ce8e1806a68838e77f2448570e41791d968e23f27940e48ba996a21dbe3766e670180ec0f78d32d89aa7574a95e5232aa9173f2c58886069a76a4cca SHA512 d5f1c98d8509e078bf7d7205f9fe25d028178fb7940cff406761c14a2689a82425f6bfe9b58b2aa6e9d4fee53626fb56658e56bd54028245de827dc5ebc1d7d8
|
DIST Python-3.10.13.tar.xz.asc 833 BLAKE2B b00222b30a6701e77c11c6019e2240be7cf42f2b4e558c03f7a058664d242a00665fbc52fdf03106e84c75f49b51b705d8acd1f381d1f41ada67c4647652ef4c SHA512 3083e66f8d26128302dc77a0c6ba3bfefc4229928a1bbd06460f2fec2421188bd30d493e3bce138cde1fed1df206e1dda04912b9f43a0b81229f1e69135e3a7f
|
||||||
DIST Python-3.11.4.tar.xz 19954828 BLAKE2B b423aa1838702f555160b41cd90d752180250381af9222d714f0545281e8577e14d7771dc2e1217d877ba31e85590da8adcc50b5019faaecdd775cd09b313d47 SHA512 7eb14fecbf60824d10c22a9057584c3a142c2866f4af6caa2525c10c8bcb24e6e7afb32a44a0e118df0a2b2543d578c3b422ffd4a5fa317dfe6ea371cc7ee1ee
|
DIST Python-3.11.5.tar.xz 20053580 BLAKE2B 3b85f2d9d32787b0500abeec4211032bb147bd991f1a865ff3d13350f6beddef8051ebdda21e130cbf094e6546b31ae43d827840735ce245f462feea6868e0b2 SHA512 93fa640bedcea449060caac8aa691aa315a19f172fd9f0422183d17749c3512d4ecac60e7599f9ef14e3cdb3c8b4b060e484c9061b1e7ee8d958200d6041e408
|
||||||
DIST Python-3.11.4.tar.xz.asc 833 BLAKE2B 0384dfbda5f897e749d8fca21773c599d1910ce1188f3c2dbf9632c9a79347644e1354e0ec6fc182c387b9cd6c66b8c224e5bfd8237877786918414f8d49f5f7 SHA512 8ee82bf116b2cc7407e260eccf53e7fee4d7497165d0b9c3e59931c73f3b419bc0299b459eee9544a6e51e323ff0a6aa07827efd89f9c320b54556feeea04a78
|
DIST Python-3.11.5.tar.xz.asc 833 BLAKE2B e3c277f30203b5a0253aa1a41b8754bce7c00b54f0563e2d178c8fd264925a1b308ed84a875faeeae18405c419341ee286ea4ddaff93ce1e59b896daaf805e6e SHA512 5a8e1b1cabe89de03c050d581bbd3ec917d93ec943b2e8241db05c245809cf80294022c4cfc1bea3b90aa0570176109aac90455057256c025e2596aa136375fc
|
||||||
DIST Python-3.12.0b3.tar.xz 20220780 BLAKE2B 78deb1efe3642bd11265fdb810d8e40d6d816ebadd55872bfa7de313956865d4370631449a7f0db7ca95f38643598753aaf94c9a02d44f9a2707f45bba41f77f SHA512 2d83285ea09445da25204285937366b20793b12223f5a0979276633213773d14de6dbb6a311629b755962804d8521b30cf9fe032f447608b6df7af721a18ba0c
|
|
||||||
DIST Python-3.12.0b3.tar.xz.asc 963 BLAKE2B fad39386d4f8a6a1103e0cef431ba171fd5e6af75b097684717f68046683bf967981d1aee0e17f7dc7f97578e686565f817e39de11b309c4e8d64949fff396aa SHA512 ab0d91f3c2fc001fe924f71182526d543a3c9e65238954bb954c58d03171a6cb3640a15570d2d7b889c6251fd876790121cd36bcc29a901f53d17f5f4f8f6f4e
|
|
||||||
DIST Python-3.12.0b4.tar.xz 20244176 BLAKE2B 6f1d199fcce07b5ca4fbf5a24b382aac2af793c6f43346708d984b20422a2f9ac4e6bc352e3c008e7815083e06c4b69e36c1a3ea94a8e3c398a1d2188595a0f5 SHA512 942a47d12c51e13939c815de908e766b818e4862c536153ae94b8032b5263b0cc23bda9a75fe60f48ee400a4ce405e2583da684847623cf552c20efcbc663469
|
DIST Python-3.12.0b4.tar.xz 20244176 BLAKE2B 6f1d199fcce07b5ca4fbf5a24b382aac2af793c6f43346708d984b20422a2f9ac4e6bc352e3c008e7815083e06c4b69e36c1a3ea94a8e3c398a1d2188595a0f5 SHA512 942a47d12c51e13939c815de908e766b818e4862c536153ae94b8032b5263b0cc23bda9a75fe60f48ee400a4ce405e2583da684847623cf552c20efcbc663469
|
||||||
DIST Python-3.12.0b4.tar.xz.asc 963 BLAKE2B 3ed0c47bd892791325598f20578bca72d8ffce9421c80d35c12b2a0d23611dfc329a2016f332950910990fcd9bd55e90753f547ca8a54dde039618b43c71a6b4 SHA512 ab2684cc4044bf39c8064ec7d41dc2d04f01c9bccf5404ec1fffbce89a3a831b4d7dac3613ef892988a16839aeb13cbc03a085fae5c086ee19d3bfb925dff6c0
|
DIST Python-3.12.0b4.tar.xz.asc 963 BLAKE2B 3ed0c47bd892791325598f20578bca72d8ffce9421c80d35c12b2a0d23611dfc329a2016f332950910990fcd9bd55e90753f547ca8a54dde039618b43c71a6b4 SHA512 ab2684cc4044bf39c8064ec7d41dc2d04f01c9bccf5404ec1fffbce89a3a831b4d7dac3613ef892988a16839aeb13cbc03a085fae5c086ee19d3bfb925dff6c0
|
||||||
DIST Python-3.12.0rc1.tar.xz 20285264 BLAKE2B 2cbf77e9405426c58714506c14281a941b4006219215d990f79672719eaa4f26c7b6356a1096400aae84d682c5a9622dfd8ea90dc635312efba6cd8c730d3f37 SHA512 67c38317e34aa1c4ced831cf50f74de21f9e40ce708397be3682d0c1012c3e0b2617d77525dc6c3246725dfc11b5448792adc0ef2e3741e818776bc5fba0c50d
|
DIST Python-3.12.0rc1.tar.xz 20285264 BLAKE2B 2cbf77e9405426c58714506c14281a941b4006219215d990f79672719eaa4f26c7b6356a1096400aae84d682c5a9622dfd8ea90dc635312efba6cd8c730d3f37 SHA512 67c38317e34aa1c4ced831cf50f74de21f9e40ce708397be3682d0c1012c3e0b2617d77525dc6c3246725dfc11b5448792adc0ef2e3741e818776bc5fba0c50d
|
||||||
DIST Python-3.12.0rc1.tar.xz.asc 963 BLAKE2B 852298edf878c891e53e317d21a31a5fbd6876aa958aae715a77c0bd27a508844964ad69280d15d59428375a14a8f97c24ce9ef64ab101020bd541d5125e8676 SHA512 319ce9c5d935dcbb5ea12468c5127b4541c1b8af443aef210bdd26030fc3eee062639601fd72e70428cc18179fafb33ad2527a0c262650c4da678544fd06d0b9
|
DIST Python-3.12.0rc1.tar.xz.asc 963 BLAKE2B 852298edf878c891e53e317d21a31a5fbd6876aa958aae715a77c0bd27a508844964ad69280d15d59428375a14a8f97c24ce9ef64ab101020bd541d5125e8676 SHA512 319ce9c5d935dcbb5ea12468c5127b4541c1b8af443aef210bdd26030fc3eee062639601fd72e70428cc18179fafb33ad2527a0c262650c4da678544fd06d0b9
|
||||||
DIST Python-3.8.17.tar.xz 20696584 BLAKE2B 07be197f7d753775b039ca200864e6d40cbb0115538604d0b214a5404beecd38e3ef416c1941f7871e2e92913d09faba48745bb9df141cf8e5ca77c7de6f0a24 SHA512 bc7e02acfebba86e4394f02195993500fac9347a52c7b49727eb0cdda38786ae917234272872d75effaddb042810d9682ef5627b0cc199f8aa0d5d3e315ddc0e
|
DIST Python-3.8.18.tar.xz 20696952 BLAKE2B 45be712aeef8bb3ba04aa2bd7d0282aa5f817327749c620ede18ee307fcb432540db9062a8186b08b49467515c74f01eb6fa739f366cca76dfadedcb22858429 SHA512 0be1d85cafade25e99b8277ba51d7b9b3a3d2dbbcc52fd0d1c633c47982e5dd87fd7a0ca180a78d7801d79a8ecafa79bd9d501d544cd7b6da53ea409daa70adf
|
||||||
DIST Python-3.8.17.tar.xz.asc 833 BLAKE2B c1eb893e8005c59c918528d676f06679182cf45ae256f9929d2daf56577dd2dcb3aff264e9ca47b605ecba2a1c00fabf282c59a231e67cec2324c33c6b3ca7f6 SHA512 bb017e2b17a3ca8ed568d2589285a87365bcca6a677e06fab5184d03e251ace6276117a160f59201e6a1c597e32d79ee109ffc7083266e6e2105b7afaaac3876
|
DIST Python-3.8.18.tar.xz.asc 833 BLAKE2B bc4e989748d53c6be7040e78d9f1852227c6a76f4c63a68824f5139defd51d1ea7988df01f961ff5c77382e156ef45fead2bb97bddbb38b208ddfa9c709e4f34 SHA512 99a0fd74fe19144819fd9522836474e10c1593787eb464694bdc6224b2d4a9331e31d2ecafc35c2bbb9bf67f20186295b28f9374c1fdcd05ac13f5f400219489
|
||||||
DIST Python-3.9.17.tar.xz 19647312 BLAKE2B eae9d1c0b9a6cd9ce84af75e58899bcd127163c90434d2bc879047706adb087721aa5ac9425e6906e6238296b2695ea0304a2b93288627cee3560ee85f450062 SHA512 994d92346e563a4635411808744eac8207c68e6fc9c1db1c2eb4103dad8553aaad4a8116e38c61f28cb17905a12cc46dccdde985e1c45882bf1815081b88b6be
|
DIST Python-3.9.18.tar.xz 19673928 BLAKE2B 97da9bedaf29101e5df82199ac3ee12f1da74d5cc89de21ff1510c3f6d34d7f9194489e79855f1ab3c6f26768738e784cb7231c1a692fa746edd21d35558bc4e SHA512 aab155aca757d298394eddb91ff9a8f239665bd46feb495c6b6f735bbcb7489c05c858cc4cd08f1575c24f293b33492d763e9a140d92f0b2b0cc81a165a677c7
|
||||||
DIST Python-3.9.17.tar.xz.asc 833 BLAKE2B ff3dc342e89149b89b060d0bd8d2a147cc901bc64c1e97d3c21ca8ff2165cd4959ca76ae1df9dbc76039b43d75e8108382ad2d8954e4ae892d174f6eb3aaeb44 SHA512 948196f104539b2e05b17fb5ef2387be392c515222213def7ab6f5b0f490d60e472e8df2dc6ec1df1d293a34d8c26a761412c93aabbdefd3390ee8bdef95a5d8
|
DIST Python-3.9.18.tar.xz.asc 833 BLAKE2B b2160eedf7a7529c379ede5cd626f2d1e36db65bad8c8968adbc2940e597bf0e66f4872078c6543c69aed9b7f38b41d922fdc1cb8046738c1d8566a3f48da7d3 SHA512 dff9a86df2b0774b68e7c762bacf05e2482dbb218301acfdc9128fc600bbc51c97a3a44f6b7cee87bd4e153bcb4a0af3c98109560d0c7861b7508edc9ae05ea1
|
||||||
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.12.tar.xz 13980 BLAKE2B 8ca0e652b73634d9fa52fbdd5f224a68ca7f0d6798079e4e5dfa41a3619e9b387166c49551ec77fb2ee035680e1681c129d6db4f82531fe94f56aa46bc1c78e3 SHA512 e41f81afcbf0948a66bc3550225f69a48797eca7461e516ed5259584e4651fe81973c8e76ca4f4a32ef78247306ad33c7a85faea69797f3e090010a1dceff13f
|
DIST python-gentoo-patches-3.10.13.tar.xz 13996 BLAKE2B 0123a18c8c39397ac03b1be1d243d8ae4da9f62888f409157bc1781285c9c6cd3d9ec23f1ae7ff0e0591b3dd2934ee366b3eb235e7cc6663afc9d617c4fd42f2 SHA512 ddfc830d2ced508a64e202a6082930f53edb48411c19cc9f364b29977ecd5a4f052d0ce953bbfb7fdf26072acb2836e0b7d5ce55f941955f2039551fa1f48edd
|
||||||
DIST python-gentoo-patches-3.11.4.tar.xz 7108 BLAKE2B 185bc558a24bead21719d543319a47b36fcd6bdd22a5dcb11ad794a381b2bc51c28f5ea03ca1ad3359e3f96c081c10b08285e4354daf85a0535bfd2123d40d16 SHA512 19ca9fa9071cab3938008af515a65def75ed5cff7152dcab5895b29fc1ba87044a1027540a1cc63231c4e77a8b67fe931bf39adf3d642a648e7da970a0cecd3c
|
DIST python-gentoo-patches-3.11.5.tar.xz 7124 BLAKE2B 04e19b0cce37794622d211fb7758988e734eca7298be59169fff81f8ec98f9c2454be3bba0944e681efcdca0810b74b4a07993965d89cdc0261cbc61862cd6f1 SHA512 3e137ab2b7ff4aaa41e4c760a7340d86cc3fb226c47985bd0f0bb8a4ef4fc157e1442e69995e585db15f04f95a734a19d80534a89067981ea314ef5be042b02e
|
||||||
DIST python-gentoo-patches-3.12.0b3.tar.xz 4656 BLAKE2B b7ae4023c1aea6f3fe9f98bc1a974cfd79769dae104fb1dd88cf778f89b6a7d30f68093abc5211e746548e46ed06044beb7458b2ed3b0d67b5a48f00bc960683 SHA512 8d7fbb6ecf65770c6900dccff34c668a79efa3a86d55be50edaa3f583b50be9b4a7e628a41fa9efc92ad61ed9be8e04f1b324e68240fcfdaaad67b7a077ef928
|
|
||||||
DIST python-gentoo-patches-3.12.0b4.tar.xz 4660 BLAKE2B 50c8b2d80b33f26a274a80884a071568ec0c79fa9312da544d5a748a5bd38d245de4f6919d8fc482e9f81c0c6686ef7d02f0b311e861d20be32846ccc875be72 SHA512 7cddf24248ee24c06b9bd765b2445b8bcf08e2f244cd9a9e1515d7207059e27efe818e0da088dc6f3b7fa882858836443484e13cdaabbbe0afe7a7db8c2dffce
|
|
||||||
DIST python-gentoo-patches-3.12.0b4_p1.tar.xz 7772 BLAKE2B 54bc9fa2a39d36e83b4fca11c5f1b19df96777a1abc18a1dbd894d83e1504971e52e861225af44201d0d2c1740559c6fde0a52fe4d97111a5c1acf61efc4b47d SHA512 8bc7d81255f6b8f6b7d6be84af0a778bbb51126154c0ff2f0f5bb1a5ebdaf1055a4e012bbf239a1bbd0c5ca7d98fe8257731d1cf916ba55c10fddd5e75f6f33b
|
|
||||||
DIST python-gentoo-patches-3.12.0b4_p2.tar.xz 8132 BLAKE2B 4c1df7c8e1dda483724d8c3bb8ab7a7739fcdee16eaf1a2a5aeedb6011c13769ee9f2d0b1cf849df12aaf3230c0771b16533496539e1a0fab633e38699c8a75f SHA512 9051311d1e31163d13b8d2b1981d700ad2cf297b30f8d2867df8fe535fdb7da11efcb6fef8a201a76ff05aa8ae91c3679eeee72a729dc7249714796f6af2be9f
|
DIST python-gentoo-patches-3.12.0b4_p2.tar.xz 8132 BLAKE2B 4c1df7c8e1dda483724d8c3bb8ab7a7739fcdee16eaf1a2a5aeedb6011c13769ee9f2d0b1cf849df12aaf3230c0771b16533496539e1a0fab633e38699c8a75f SHA512 9051311d1e31163d13b8d2b1981d700ad2cf297b30f8d2867df8fe535fdb7da11efcb6fef8a201a76ff05aa8ae91c3679eeee72a729dc7249714796f6af2be9f
|
||||||
DIST python-gentoo-patches-3.12.0rc1.tar.xz 5040 BLAKE2B c03e9cc0f5ef0a68ab5d74764a30b8ab336b2b0feb105124fcb6f1ba660db7c27deab412f91b0980b072dcbe6bca06b8f2f9fd11aa11e95196d936fc8ba75bbc SHA512 bc8d67ccff73e3841c9fb591f5b1b4db7156cea0bde4edc2de605d6e921b5998c6f67bf7f1be505bcd50bc55b8f844be2b011720b5a93b04e7bf60df38bd5373
|
DIST python-gentoo-patches-3.12.0rc1_p5.tar.xz 348764 BLAKE2B 8f71d6172ca4e557c195f4226d548f10b888842a110824db6c73613016d5b1c900545a2a3331519cc35cd9cc740fba3970737f40cdb64bd4d48e23a2be9e8be6 SHA512 e05f6e51a0689f0b5bdc745518742aebc3ae9fe145cb82c5e43a1a048df0ea4f11711ac4850726f807a73e232f76cfdc09c62d513ad0007acea7d5d5420c8569
|
||||||
DIST python-gentoo-patches-3.12.0rc1_p1.tar.xz 5812 BLAKE2B 41a33aadac1bb563ec55f12794fc48061ef01d2bada0e9f06287410cd235286ed04c6fddb78bbec1d8a9fa54c46861198e03b4d995e715a5e739ac2c915e0941 SHA512 82e45ab804e7e269805b760dc5dae3803a9983765718b975ec2029c82ca45d6cfbd9ba330cf09149ed24cd808a37fb021b0c6a8324b855dce0a92ff01ef42391
|
DIST python-gentoo-patches-3.12.0rc1_p6.tar.xz 349384 BLAKE2B 975aae449a01a31c459b287a47bd4d1a2d8b0b39e594a1c976371acc4948765bcb4733dd9e10b70c87dfb9409d4db6b2492004841db61577576852634a40365c SHA512 f262d1a9291867e1bdc8f92c682338369b1b52f210d6db0c648c3bbabea68c6b596dfd8d13507f6d65de37d1b83beb336be3abff239d2a588054794b5bebeb81
|
||||||
DIST python-gentoo-patches-3.8.17.tar.xz 32424 BLAKE2B d992f6b1c971583000086175d07198d367e4504dea8829b35742a3daf2279ba1fbade8c37f00018bda97fa9080d1d40087c236486bbcd369c2d1c850de47a976 SHA512 d309da6805a72742cf8d1bb170a777edd7b7aa936d6e9967e96bed4427285180cd9935f202f899f3aa54632a31a5a94c5b7c20a343b1a714d8aa5fc6f8e9f371
|
DIST python-gentoo-patches-3.8.18.tar.xz 32424 BLAKE2B 2e0b6e1c8e3df666934ba283214ca1577b01140dea00513f6420b0255650002e4bc4cb142076620227cd430bc2547123fd392883285886e543ef72ca466f8ea6 SHA512 b005f1054b726fc8c82a50b006309de64fb7858fe5c22cc7b160687d059a7859ec9388706b74a0e6c1f42301bed071dc639eb8cfae0d7c5eef2f565c63cc2d29
|
||||||
DIST python-gentoo-patches-3.9.17.tar.xz 25048 BLAKE2B da19105dfa2fda7b422ac368f85c97d7541be74a6f9b9170a19ceac901e026ab39baef83c610172ecba1f70cce6e2832e956c2e4c87387b0e21c79c2c633b116 SHA512 ce9d3c62c675bceccaac21fd467c54322a55a1c8af9be3a6dcfd7a892c03b39b38dc35ba570e3dd9fc984a5f3eeabb3cc564ba2d7f935dbf6df829264cb32b2f
|
DIST python-gentoo-patches-3.9.18.tar.xz 25044 BLAKE2B 1d9ace5c5a0f1c15bc23595cc51d64b4c2b416552cdaaa960c3e34360aba3e7029a06e2a077212c68fa7aee4fd20f649a3b0926bd4ebb10e529e8350ab051e63 SHA512 bc180c3346dfae60a7db221d114146ee83409bc42092171eb05c83de528bf5f0e5654d1441f40ba839d0a98e866a5b43452fb7a72047c837497620a12097b8f5
|
||||||
|
@ -248,9 +248,13 @@ src_configure() {
|
|||||||
|
|
||||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
# propagated to sysconfig for built extensions
|
# propagated to sysconfig for built extensions
|
||||||
local -x CFLAGS_NODIST=${CFLAGS_FOR_BUILD}
|
#
|
||||||
local -x LDFLAGS_NODIST=${LDFLAGS_FOR_BUILD}
|
# -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 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.
|
# We need to build our own Python on CBUILD first, and feed it in.
|
||||||
# bug #847910 and bug #864911.
|
# bug #847910 and bug #864911.
|
@ -237,9 +237,13 @@ src_configure() {
|
|||||||
|
|
||||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
# propagated to sysconfig for built extensions
|
# propagated to sysconfig for built extensions
|
||||||
local -x CFLAGS_NODIST=${CFLAGS_FOR_BUILD}
|
#
|
||||||
local -x LDFLAGS_NODIST=${LDFLAGS_FOR_BUILD}
|
# -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 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.
|
# We need to build our own Python on CBUILD first, and feed it in.
|
||||||
# bug #847910
|
# bug #847910
|
@ -1,526 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI="7"
|
|
||||||
WANT_LIBTOOL="none"
|
|
||||||
|
|
||||||
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
|
|
||||||
inherit python-utils-r1 toolchain-funcs verify-sig
|
|
||||||
|
|
||||||
MY_PV=${PV/_beta/b}
|
|
||||||
MY_P="Python-${MY_PV%_p*}"
|
|
||||||
PYVER=$(ver_cut 1-2)
|
|
||||||
PATCHSET="python-gentoo-patches-${MY_PV}"
|
|
||||||
|
|
||||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
|
||||||
HOMEPAGE="
|
|
||||||
https://www.python.org/
|
|
||||||
https://github.com/python/cpython/
|
|
||||||
"
|
|
||||||
SRC_URI="
|
|
||||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
|
||||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
|
||||||
verify-sig? (
|
|
||||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.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 lto
|
|
||||||
+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-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[extra-filters(+)]
|
|
||||||
dev-python/ensurepip-pip
|
|
||||||
dev-python/ensurepip-setuptools
|
|
||||||
dev-python/ensurepip-wheel
|
|
||||||
)
|
|
||||||
valgrind? ( dev-util/valgrind )
|
|
||||||
"
|
|
||||||
# autoconf-archive needed to eautoreconf
|
|
||||||
BDEPEND="
|
|
||||||
sys-devel/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=${BROOT}/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
|
|
||||||
|
|
||||||
eautoreconf
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local disable
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# https://bugs.gentoo.org/700012
|
|
||||||
if is-flagq -flto || is-flagq '-flto=*'; then
|
|
||||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 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_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
|
|
||||||
--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
|
|
||||||
--with-system-expat
|
|
||||||
--with-platlibdir=lib
|
|
||||||
--with-pkg-config=yes
|
|
||||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
|
||||||
|
|
||||||
$(use_with debug assertions)
|
|
||||||
$(use_with lto)
|
|
||||||
$(use_enable pgo optimizations)
|
|
||||||
$(use_with readline readline "$(usex libedit editline readline)")
|
|
||||||
$(use_with valgrind)
|
|
||||||
)
|
|
||||||
|
|
||||||
# disable implicit optimization/debugging flags
|
|
||||||
local -x OPT=
|
|
||||||
|
|
||||||
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
|
|
||||||
local -x CFLAGS_NODIST=${CFLAGS_FOR_BUILD}
|
|
||||||
local -x LDFLAGS_NODIST=${LDFLAGS_FOR_BUILD}
|
|
||||||
local -x CFLAGS= LDFLAGS=
|
|
||||||
|
|
||||||
# We need to build our own Python on CBUILD first, and feed it in.
|
|
||||||
# bug #847910
|
|
||||||
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 to satisfy --with-build-python.
|
|
||||||
--without-lto
|
|
||||||
--without-readline
|
|
||||||
--disable-optimizations
|
|
||||||
)
|
|
||||||
|
|
||||||
myeconfargs+=(
|
|
||||||
# Point the imminent CHOST build to the Python we just
|
|
||||||
# built for CBUILD.
|
|
||||||
--with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
|
|
||||||
)
|
|
||||||
|
|
||||||
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_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="${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
|
|
||||||
|
|
||||||
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
|
|
||||||
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_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=
|
|
||||||
# workaround https://bugs.gentoo.org/775416
|
|
||||||
addwrite "/usr/lib/python${PYVER}/site-packages"
|
|
||||||
|
|
||||||
nonfatal emake 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
|
|
||||||
}
|
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
@ -1,526 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI="7"
|
|
||||||
WANT_LIBTOOL="none"
|
|
||||||
|
|
||||||
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
|
|
||||||
inherit python-utils-r1 toolchain-funcs verify-sig
|
|
||||||
|
|
||||||
MY_PV=${PV/_beta/b}
|
|
||||||
MY_P="Python-${MY_PV%_p*}"
|
|
||||||
PYVER=$(ver_cut 1-2)
|
|
||||||
PATCHSET="python-gentoo-patches-${MY_PV}"
|
|
||||||
|
|
||||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
|
||||||
HOMEPAGE="
|
|
||||||
https://www.python.org/
|
|
||||||
https://github.com/python/cpython/
|
|
||||||
"
|
|
||||||
SRC_URI="
|
|
||||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
|
||||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
|
||||||
verify-sig? (
|
|
||||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.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 lto
|
|
||||||
+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-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[extra-filters(+)]
|
|
||||||
dev-python/ensurepip-pip
|
|
||||||
dev-python/ensurepip-setuptools
|
|
||||||
dev-python/ensurepip-wheel
|
|
||||||
)
|
|
||||||
valgrind? ( dev-util/valgrind )
|
|
||||||
"
|
|
||||||
# autoconf-archive needed to eautoreconf
|
|
||||||
BDEPEND="
|
|
||||||
sys-devel/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=${BROOT}/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
|
|
||||||
|
|
||||||
eautoreconf
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local disable
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# https://bugs.gentoo.org/700012
|
|
||||||
if is-flagq -flto || is-flagq '-flto=*'; then
|
|
||||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 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_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
|
|
||||||
--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
|
|
||||||
--with-system-expat
|
|
||||||
--with-platlibdir=lib
|
|
||||||
--with-pkg-config=yes
|
|
||||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
|
||||||
|
|
||||||
$(use_with debug assertions)
|
|
||||||
$(use_with lto)
|
|
||||||
$(use_enable pgo optimizations)
|
|
||||||
$(use_with readline readline "$(usex libedit editline readline)")
|
|
||||||
$(use_with valgrind)
|
|
||||||
)
|
|
||||||
|
|
||||||
# disable implicit optimization/debugging flags
|
|
||||||
local -x OPT=
|
|
||||||
|
|
||||||
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
|
|
||||||
local -x CFLAGS_NODIST=${CFLAGS_FOR_BUILD}
|
|
||||||
local -x LDFLAGS_NODIST=${LDFLAGS_FOR_BUILD}
|
|
||||||
local -x CFLAGS= LDFLAGS=
|
|
||||||
|
|
||||||
# We need to build our own Python on CBUILD first, and feed it in.
|
|
||||||
# bug #847910
|
|
||||||
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 to satisfy --with-build-python.
|
|
||||||
--without-lto
|
|
||||||
--without-readline
|
|
||||||
--disable-optimizations
|
|
||||||
)
|
|
||||||
|
|
||||||
myeconfargs+=(
|
|
||||||
# Point the imminent CHOST build to the Python we just
|
|
||||||
# built for CBUILD.
|
|
||||||
--with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
|
|
||||||
)
|
|
||||||
|
|
||||||
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_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="${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
|
|
||||||
|
|
||||||
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
|
|
||||||
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_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=
|
|
||||||
# workaround https://bugs.gentoo.org/775416
|
|
||||||
addwrite "/usr/lib/python${PYVER}/site-packages"
|
|
||||||
|
|
||||||
nonfatal emake 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
|
|
||||||
}
|
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
@ -1,526 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI="7"
|
|
||||||
WANT_LIBTOOL="none"
|
|
||||||
|
|
||||||
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
|
|
||||||
inherit python-utils-r1 toolchain-funcs verify-sig
|
|
||||||
|
|
||||||
MY_PV=${PV/_beta/b}
|
|
||||||
MY_P="Python-${MY_PV%_p*}"
|
|
||||||
PYVER=$(ver_cut 1-2)
|
|
||||||
PATCHSET="python-gentoo-patches-${MY_PV}"
|
|
||||||
|
|
||||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
|
||||||
HOMEPAGE="
|
|
||||||
https://www.python.org/
|
|
||||||
https://github.com/python/cpython/
|
|
||||||
"
|
|
||||||
SRC_URI="
|
|
||||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
|
||||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
|
||||||
verify-sig? (
|
|
||||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.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 lto
|
|
||||||
+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-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[extra-filters(+)]
|
|
||||||
dev-python/ensurepip-pip
|
|
||||||
dev-python/ensurepip-setuptools
|
|
||||||
dev-python/ensurepip-wheel
|
|
||||||
)
|
|
||||||
valgrind? ( dev-util/valgrind )
|
|
||||||
"
|
|
||||||
# autoconf-archive needed to eautoreconf
|
|
||||||
BDEPEND="
|
|
||||||
sys-devel/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=${BROOT}/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
|
|
||||||
|
|
||||||
eautoreconf
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local disable
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# https://bugs.gentoo.org/700012
|
|
||||||
if is-flagq -flto || is-flagq '-flto=*'; then
|
|
||||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 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_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
|
|
||||||
--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
|
|
||||||
--with-system-expat
|
|
||||||
--with-platlibdir=lib
|
|
||||||
--with-pkg-config=yes
|
|
||||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
|
||||||
|
|
||||||
$(use_with debug assertions)
|
|
||||||
$(use_with lto)
|
|
||||||
$(use_enable pgo optimizations)
|
|
||||||
$(use_with readline readline "$(usex libedit editline readline)")
|
|
||||||
$(use_with valgrind)
|
|
||||||
)
|
|
||||||
|
|
||||||
# disable implicit optimization/debugging flags
|
|
||||||
local -x OPT=
|
|
||||||
|
|
||||||
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
|
|
||||||
local -x CFLAGS_NODIST=${CFLAGS_FOR_BUILD}
|
|
||||||
local -x LDFLAGS_NODIST=${LDFLAGS_FOR_BUILD}
|
|
||||||
local -x CFLAGS= LDFLAGS=
|
|
||||||
|
|
||||||
# We need to build our own Python on CBUILD first, and feed it in.
|
|
||||||
# bug #847910
|
|
||||||
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 to satisfy --with-build-python.
|
|
||||||
--without-lto
|
|
||||||
--without-readline
|
|
||||||
--disable-optimizations
|
|
||||||
)
|
|
||||||
|
|
||||||
myeconfargs+=(
|
|
||||||
# Point the imminent CHOST build to the Python we just
|
|
||||||
# built for CBUILD.
|
|
||||||
--with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
|
|
||||||
)
|
|
||||||
|
|
||||||
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_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="${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
|
|
||||||
|
|
||||||
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
|
|
||||||
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_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=
|
|
||||||
# workaround https://bugs.gentoo.org/775416
|
|
||||||
addwrite "/usr/lib/python${PYVER}/site-packages"
|
|
||||||
|
|
||||||
nonfatal emake 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
|
|
||||||
}
|
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
@ -236,9 +236,13 @@ src_configure() {
|
|||||||
|
|
||||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
# propagated to sysconfig for built extensions
|
# propagated to sysconfig for built extensions
|
||||||
local -x CFLAGS_NODIST=${CFLAGS_FOR_BUILD}
|
#
|
||||||
local -x LDFLAGS_NODIST=${LDFLAGS_FOR_BUILD}
|
# -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 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.
|
# We need to build our own Python on CBUILD first, and feed it in.
|
||||||
# bug #847910
|
# bug #847910
|
||||||
|
@ -236,9 +236,13 @@ src_configure() {
|
|||||||
|
|
||||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
# propagated to sysconfig for built extensions
|
# propagated to sysconfig for built extensions
|
||||||
local -x CFLAGS_NODIST=${CFLAGS_FOR_BUILD}
|
#
|
||||||
local -x LDFLAGS_NODIST=${LDFLAGS_FOR_BUILD}
|
# -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 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.
|
# We need to build our own Python on CBUILD first, and feed it in.
|
||||||
# bug #847910
|
# bug #847910
|
@ -236,9 +236,13 @@ src_configure() {
|
|||||||
|
|
||||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
# propagated to sysconfig for built extensions
|
# propagated to sysconfig for built extensions
|
||||||
local -x CFLAGS_NODIST=${CFLAGS_FOR_BUILD}
|
#
|
||||||
local -x LDFLAGS_NODIST=${LDFLAGS_FOR_BUILD}
|
# -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 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.
|
# We need to build our own Python on CBUILD first, and feed it in.
|
||||||
# bug #847910
|
# bug #847910
|
@ -195,9 +195,13 @@ src_configure() {
|
|||||||
|
|
||||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
# propagated to sysconfig for built extensions
|
# propagated to sysconfig for built extensions
|
||||||
local -x CFLAGS_NODIST=${CFLAGS_FOR_BUILD}
|
#
|
||||||
local -x LDFLAGS_NODIST=${LDFLAGS_FOR_BUILD}
|
# -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 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.
|
# We need to build our own Python on CBUILD first, and feed it in.
|
||||||
# bug #847910 and bug #864911.
|
# bug #847910 and bug #864911.
|
@ -237,9 +237,13 @@ src_configure() {
|
|||||||
|
|
||||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
# propagated to sysconfig for built extensions
|
# propagated to sysconfig for built extensions
|
||||||
local -x CFLAGS_NODIST=${CFLAGS_FOR_BUILD}
|
#
|
||||||
local -x LDFLAGS_NODIST=${LDFLAGS_FOR_BUILD}
|
# -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 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.
|
# We need to build our own Python on CBUILD first, and feed it in.
|
||||||
# bug #847910 and bug #864911.
|
# bug #847910 and bug #864911.
|
@ -3,6 +3,12 @@
|
|||||||
|
|
||||||
EAPI=8
|
EAPI=8
|
||||||
|
|
||||||
|
# Keep an eye on both of these after releases for patches:
|
||||||
|
# * https://www.boost.org/patches/
|
||||||
|
# * https://www.boost.org/users/history/version_${MY_PV}.html
|
||||||
|
# (e.g. https://www.boost.org/users/history/version_1_83_0.html)
|
||||||
|
# Note that the latter may sometimes feature patches not on the former too.
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{10..12} )
|
PYTHON_COMPAT=( python3_{10..12} )
|
||||||
|
|
||||||
inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
|
inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
|
||||||
@ -16,7 +22,7 @@ S="${WORKDIR}/${PN}_${MY_PV}"
|
|||||||
|
|
||||||
LICENSE="Boost-1.0"
|
LICENSE="Boost-1.0"
|
||||||
SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122
|
SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122
|
||||||
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
IUSE="bzip2 +context debug doc icu lzma +nls mpi numpy python +stacktrace tools zlib zstd"
|
IUSE="bzip2 +context debug doc icu lzma +nls mpi numpy python +stacktrace tools zlib zstd"
|
||||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
|
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
|
||||||
# the tests will never fail because these are not intended as sanity
|
# the tests will never fail because these are not intended as sanity
|
||||||
|
@ -14,7 +14,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 lzma nls static-libs test +utils zstd"
|
IUSE="bzip2 lzma nls static-libs test +utils zstd"
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
126
sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.189-r4.ebuild
vendored
Normal file
126
sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.189-r4.ebuild
vendored
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
# Copyright 2003-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/elfutils.gpg
|
||||||
|
inherit autotools flag-o-matic multilib-minimal verify-sig
|
||||||
|
|
||||||
|
DESCRIPTION="Libraries/utilities to handle ELF objects (drop in replacement for libelf)"
|
||||||
|
HOMEPAGE="https://sourceware.org/elfutils/"
|
||||||
|
SRC_URI="https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2"
|
||||||
|
SRC_URI+=" verify-sig? ( https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2.sig )"
|
||||||
|
|
||||||
|
LICENSE="|| ( GPL-2+ LGPL-3+ ) utils? ( GPL-3+ )"
|
||||||
|
SLOT="0"
|
||||||
|
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"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
!dev-libs/libelf
|
||||||
|
>=sys-libs/zlib-1.2.8-r1[static-libs?,${MULTILIB_USEDEP}]
|
||||||
|
bzip2? ( >=app-arch/bzip2-1.0.6-r4[static-libs?,${MULTILIB_USEDEP}] )
|
||||||
|
debuginfod? (
|
||||||
|
app-arch/libarchive:=
|
||||||
|
dev-db/sqlite:3=
|
||||||
|
net-libs/libmicrohttpd:=
|
||||||
|
|
||||||
|
net-misc/curl[static-libs?,${MULTILIB_USEDEP}]
|
||||||
|
)
|
||||||
|
lzma? ( >=app-arch/xz-utils-5.0.5-r1[static-libs?,${MULTILIB_USEDEP}] )
|
||||||
|
zstd? ( app-arch/zstd:=[static-libs?,${MULTILIB_USEDEP}] )
|
||||||
|
elibc_musl? (
|
||||||
|
dev-libs/libbsd
|
||||||
|
sys-libs/argp-standalone
|
||||||
|
sys-libs/fts-standalone
|
||||||
|
sys-libs/obstack-standalone
|
||||||
|
)
|
||||||
|
"
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
"
|
||||||
|
BDEPEND="
|
||||||
|
>=sys-devel/flex-2.5.4a
|
||||||
|
sys-devel/m4
|
||||||
|
virtual/pkgconfig
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
verify-sig? ( sec-keys/openpgp-keys-elfutils )
|
||||||
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${PN}-0.189-PaX-support.patch
|
||||||
|
"${FILESDIR}"/${PN}-0.189-skip-DT_RELR-failing-tests.patch
|
||||||
|
"${FILESDIR}"/${PN}-0.189-musl-aarch64-regs.patch
|
||||||
|
"${FILESDIR}"/${PN}-0.189-musl-macros.patch
|
||||||
|
"${FILESDIR}"/${P}-configure-bashisms.patch
|
||||||
|
"${FILESDIR}"/${P}-clang16-tests.patch
|
||||||
|
"${FILESDIR}"/${P}-tests-run-lfs-symbols.sh-needs-gawk.patch
|
||||||
|
"${FILESDIR}"/${P}-lld-17.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
|
||||||
|
# Only here for ${P}-configure-bashisms.patch, delete on next bump!
|
||||||
|
eautoreconf
|
||||||
|
|
||||||
|
if ! use static-libs; then
|
||||||
|
sed -i -e '/^lib_LIBRARIES/s:=.*:=:' -e '/^%.os/s:%.o$::' lib{asm,dw,elf}/Makefile.in || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# https://sourceware.org/PR23914
|
||||||
|
sed -i 's:-Werror::' */Makefile.in || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# bug #407135
|
||||||
|
use test && append-flags -g
|
||||||
|
|
||||||
|
multilib-minimal_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_configure() {
|
||||||
|
local myeconfargs=(
|
||||||
|
$(use_enable nls)
|
||||||
|
$(multilib_native_use_enable debuginfod)
|
||||||
|
$(use_enable debuginfod libdebuginfod)
|
||||||
|
|
||||||
|
# explicitly disable thread safety, it's not recommended by upstream
|
||||||
|
# doesn't build either on musl.
|
||||||
|
--disable-thread-safety
|
||||||
|
|
||||||
|
# Valgrind option is just for running tests under it; dodgy under sandbox
|
||||||
|
# and indeed even w/ glibc with newer instructions.
|
||||||
|
--disable-valgrind
|
||||||
|
--program-prefix="eu-"
|
||||||
|
--with-zlib
|
||||||
|
$(use_with bzip2 bzlib)
|
||||||
|
$(use_with lzma)
|
||||||
|
$(use_with zstd)
|
||||||
|
)
|
||||||
|
|
||||||
|
# Needed because sets alignment macro
|
||||||
|
is-flagq -fsanitize=address && myeconfargs+=( --enable-sanitize-address )
|
||||||
|
is-flagq -fsanitize=undefined && myeconfargs+=( --enable-sanitize-undefined )
|
||||||
|
|
||||||
|
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_test() {
|
||||||
|
env LD_LIBRARY_PATH="${BUILD_DIR}/libelf:${BUILD_DIR}/libebl:${BUILD_DIR}/libdw:${BUILD_DIR}/libasm" \
|
||||||
|
LC_ALL="C" \
|
||||||
|
emake check VERBOSE=1
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install_all() {
|
||||||
|
einstalldocs
|
||||||
|
|
||||||
|
dodoc NOTES
|
||||||
|
|
||||||
|
# These build quick, and are needed for most tests, so don't
|
||||||
|
# disable their building when the USE flag is disabled.
|
||||||
|
if ! use utils; then
|
||||||
|
rm -rf "${ED}"/usr/bin || die
|
||||||
|
fi
|
||||||
|
}
|
31
sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.189-lld-17.patch
vendored
Normal file
31
sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.189-lld-17.patch
vendored
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
https://bugs.gentoo.org/913112
|
||||||
|
https://sourceware.org/PR30729
|
||||||
|
https://sourceware.org/git/?p=elfutils.git;a=commit;h=09e61a65953ed814d9e970f7f9ffb9c2d8cda477
|
||||||
|
|
||||||
|
From 09e61a65953ed814d9e970f7f9ffb9c2d8cda477 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mark Wielaard <mark@klomp.org>
|
||||||
|
Date: Mon, 28 Aug 2023 20:23:41 +0200
|
||||||
|
Subject: [PATCH] libelf: Remove elf_scncnt from libelf.map
|
||||||
|
|
||||||
|
elf_scncnt was never implemented. It was probably an old name for
|
||||||
|
elf_getshnum (which was the deprecated name of the elf_getshdrnum
|
||||||
|
alias). Just remove it from the map file
|
||||||
|
|
||||||
|
* libelf/libelf.map (ELFUTILS_1.0): Remove elf_scncnt.
|
||||||
|
|
||||||
|
https://sourceware.org/PR30729
|
||||||
|
|
||||||
|
Reported-by: Kostadin Shishmanov <kocelfc@tutanota.com>
|
||||||
|
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
||||||
|
--- a/libelf/libelf.map
|
||||||
|
+++ b/libelf/libelf.map
|
||||||
|
@@ -50,7 +50,6 @@ ELFUTILS_1.0 {
|
||||||
|
elf_rand;
|
||||||
|
elf_rawdata;
|
||||||
|
elf_rawfile;
|
||||||
|
- elf_scncnt;
|
||||||
|
elf_strptr;
|
||||||
|
elf_update;
|
||||||
|
elf_version;
|
||||||
|
--
|
||||||
|
2.39.3
|
@ -1,3 +1,4 @@
|
|||||||
DIST glib-2.76.2.tar.xz 5273836 BLAKE2B db5d5e45fe4a17bade7f5bf923ac0e5541237d19146ede33b4d52f05b82e4ecb94519393f49ac3b04e17d0f56bfd5dd99b8e81ae80956cfdb5cb2396cd5ec8cc SHA512 5a99723d72ae987999bdf3eac4f3cabe2e014616038f2006e84060b97d6d290b7d44a20d700e9c0f4572a6defed56169f624bcd21b0337f32832b311aa2737e6
|
|
||||||
DIST glib-2.76.3.tar.xz 5273460 BLAKE2B 894635281d1a3eb60d274b8db91cd59069b6d0abe61295175c794ad44e8669d869009fac44c7d6f416a93adcea5b9aeb90b944047d013fa1f2d9b1a8ded3de1e SHA512 291b8913918d411b679442b888f56893a857a77decfe428086c8bd1da1949498938ddb0bf254ed99d192e4a09b5e8cee1905fd6932ee642463fb229cac7c226e
|
DIST glib-2.76.3.tar.xz 5273460 BLAKE2B 894635281d1a3eb60d274b8db91cd59069b6d0abe61295175c794ad44e8669d869009fac44c7d6f416a93adcea5b9aeb90b944047d013fa1f2d9b1a8ded3de1e SHA512 291b8913918d411b679442b888f56893a857a77decfe428086c8bd1da1949498938ddb0bf254ed99d192e4a09b5e8cee1905fd6932ee642463fb229cac7c226e
|
||||||
DIST glib-2.76.4.tar.xz 5274356 BLAKE2B c9ceb514ea81e1e6ab2d0efc82c48c0d8ae6c997fd0e3c56d47a5174b027f785b58266fff73b1d1132e272305126fbff22e3c65d47de46224cd12fa49796d5bc SHA512 f76932dc5090a44880373228e2b162f338415d06f7c90f2950eab1a43bb191c56a1797da4d377594f6a999197fef4defb848039259cfa4105bb68288a928f5b7
|
DIST glib-2.76.4.tar.xz 5274356 BLAKE2B c9ceb514ea81e1e6ab2d0efc82c48c0d8ae6c997fd0e3c56d47a5174b027f785b58266fff73b1d1132e272305126fbff22e3c65d47de46224cd12fa49796d5bc SHA512 f76932dc5090a44880373228e2b162f338415d06f7c90f2950eab1a43bb191c56a1797da4d377594f6a999197fef4defb848039259cfa4105bb68288a928f5b7
|
||||||
|
DIST glib-2.77.1.tar.xz 5305568 BLAKE2B bca94b2884e4d4ef3246a398c785a83d814986ca5dc49dbbfed471b0303b2ef1aaa194728b580cc12155a0791b75d217e978ca6b9eb7b7ee5314799b7570059f SHA512 0f32eb7dcc652a727331226324225864212e14d0b1adac4493eb92f34c562cabd50cf8a602dae1b877e7adb73e038d2cc1e8d641e71eab77497990af4afb4906
|
||||||
|
DIST glib-2.77.3.tar.xz 5316816 BLAKE2B 94d28c1526a19cb679a85f32bda159ee07862ce6aa0e2bb2e953c748d8cc790454603d3db8c748638754fef60e74a6e3584952804ff438b49fcfc009803a07b5 SHA512 d9727d67e63d7f8ce710bff497c183799b0192ac10900da87887bd76812aad9603e7f132d7eb4e8626787c427048aeafb4a28654ab808c676bcfc2b897e005d9
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
EAPI=8
|
EAPI=8
|
||||||
PYTHON_REQ_USE="xml(+)"
|
PYTHON_REQ_USE="xml(+)"
|
||||||
PYTHON_COMPAT=( python3_{9..12} )
|
PYTHON_COMPAT=( python3_{10..11} )
|
||||||
|
|
||||||
inherit gnome.org gnome2-utils linux-info meson-multilib multilib python-any-r1 toolchain-funcs xdg
|
inherit gnome.org gnome2-utils linux-info meson-multilib multilib python-any-r1 toolchain-funcs xdg
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
EAPI=8
|
EAPI=8
|
||||||
PYTHON_REQ_USE="xml(+)"
|
PYTHON_REQ_USE="xml(+)"
|
||||||
PYTHON_COMPAT=( python3_{9..12} )
|
PYTHON_COMPAT=( python3_{10..11} )
|
||||||
|
|
||||||
inherit gnome.org gnome2-utils linux-info meson-multilib multilib python-any-r1 toolchain-funcs xdg
|
inherit gnome.org gnome2-utils linux-info meson-multilib multilib python-any-r1 toolchain-funcs xdg
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ IUSE="dbus debug +elf gtk-doc +mime selinux static-libs sysprof systemtap test u
|
|||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
REQUIRED_USE="gtk-doc? ( test )" # Bug #777636
|
REQUIRED_USE="gtk-doc? ( test )" # Bug #777636
|
||||||
|
|
||||||
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"
|
||||||
|
|
||||||
# * elfutils (via libelf) does not build on Windows. gresources are not embedded
|
# * elfutils (via libelf) does not build on Windows. gresources are not embedded
|
||||||
# within ELF binaries on that platform anyway and inspecting ELF binaries from
|
# within ELF binaries on that platform anyway and inspecting ELF binaries from
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
EAPI=8
|
EAPI=8
|
||||||
PYTHON_REQ_USE="xml(+)"
|
PYTHON_REQ_USE="xml(+)"
|
||||||
PYTHON_COMPAT=( python3_{9..11} )
|
PYTHON_COMPAT=( python3_{10..11} )
|
||||||
|
|
||||||
inherit gnome.org gnome2-utils linux-info meson-multilib multilib python-any-r1 toolchain-funcs xdg
|
inherit gnome.org gnome2-utils linux-info meson-multilib multilib python-any-r1 toolchain-funcs xdg
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ IUSE="dbus debug +elf gtk-doc +mime selinux static-libs sysprof systemtap test u
|
|||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
REQUIRED_USE="gtk-doc? ( test )" # Bug #777636
|
REQUIRED_USE="gtk-doc? ( test )" # Bug #777636
|
||||||
|
|
||||||
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"
|
||||||
|
|
||||||
# * elfutils (via libelf) does not build on Windows. gresources are not embedded
|
# * elfutils (via libelf) does not build on Windows. gresources are not embedded
|
||||||
# within ELF binaries on that platform anyway and inspecting ELF binaries from
|
# within ELF binaries on that platform anyway and inspecting ELF binaries from
|
||||||
@ -99,7 +99,8 @@ src_prepare() {
|
|||||||
#if ! has_version x11-terms/xterm && ! has_version x11-terms/gnome-terminal ; then
|
#if ! has_version x11-terms/xterm && ! has_version x11-terms/gnome-terminal ; then
|
||||||
# ewarn "Some tests will be skipped due to missing terminal program"
|
# 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
|
# 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
|
# 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
|
sed -i -e "/appinfo\/launch/d" gio/tests/appinfo.c || die
|
||||||
# desktop-app-info/launch* might fail similarly
|
# desktop-app-info/launch* might fail similarly
|
||||||
sed -i -e "/desktop-app-info\/launch-as-manager/d" gio/tests/desktop-app-info.c || die
|
sed -i -e "/desktop-app-info\/launch-as-manager/d" gio/tests/desktop-app-info.c || die
|
||||||
@ -165,10 +166,12 @@ src_prepare() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
multilib_src_configure() {
|
multilib_src_configure() {
|
||||||
# TODO: figure a way to pass appropriate values for all cross properties that glib uses (search for get_cross_property)
|
# 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
|
#if tc-is-cross-compiler ; then
|
||||||
# https://bugzilla.gnome.org/show_bug.cgi?id=756473
|
# 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
|
# TODO-meson: This should be in meson cross file as 'growing_stack'
|
||||||
|
# property; and more, look at get_cross_property
|
||||||
#case ${CHOST} in
|
#case ${CHOST} in
|
||||||
#hppa*|metag*) export glib_cv_stack_grows=yes ;;
|
#hppa*|metag*) export glib_cv_stack_grows=yes ;;
|
||||||
#*) export glib_cv_stack_grows=no ;;
|
#*) export glib_cv_stack_grows=no ;;
|
||||||
@ -224,7 +227,9 @@ multilib_src_install() {
|
|||||||
|
|
||||||
multilib_src_install_all() {
|
multilib_src_install_all() {
|
||||||
# These are installed by dev-util/glib-utils
|
# 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
|
# 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/bin/glib-genmarshal" || die
|
||||||
rm "${ED}/usr/share/man/man1/glib-genmarshal.1" || die
|
rm "${ED}/usr/share/man/man1/glib-genmarshal.1" || die
|
||||||
rm "${ED}/usr/bin/glib-mkenums" || die
|
rm "${ED}/usr/bin/glib-mkenums" || die
|
312
sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.77.3.ebuild
vendored
Normal file
312
sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.77.3.ebuild
vendored
Normal file
@ -0,0 +1,312 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
PYTHON_REQ_USE="xml(+)"
|
||||||
|
PYTHON_COMPAT=( python3_{10..11} )
|
||||||
|
|
||||||
|
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"
|
||||||
|
IUSE="dbus debug +elf gtk-doc +mime selinux static-libs sysprof systemtap test utils xattr"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
REQUIRED_USE="gtk-doc? ( test )" # Bug #777636
|
||||||
|
|
||||||
|
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"
|
||||||
|
|
||||||
|
# * 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-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}]
|
||||||
|
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
|
||||||
|
gtk-doc? ( >=dev-util/gtk-doc-1.33
|
||||||
|
app-text/docbook-xml-dtd:4.2
|
||||||
|
app-text/docbook-xml-dtd:4.5 )
|
||||||
|
systemtap? ( >=dev-util/systemtap-1.3 )
|
||||||
|
${PYTHON_DEPS}
|
||||||
|
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
|
||||||
|
)
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
local emesonargs=(
|
||||||
|
--buildtype $(usex debug debug plain)
|
||||||
|
-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=true
|
||||||
|
$(meson_use systemtap dtrace)
|
||||||
|
$(meson_use systemtap)
|
||||||
|
$(meson_feature sysprof)
|
||||||
|
$(meson_native_use_bool gtk-doc gtk_doc)
|
||||||
|
$(meson_use test tests)
|
||||||
|
-Dinstalled_tests=false
|
||||||
|
-Dnls=enabled
|
||||||
|
-Doss_fuzz=disabled
|
||||||
|
$(meson_native_use_feature elf libelf)
|
||||||
|
-Dmultiarch=false
|
||||||
|
)
|
||||||
|
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"
|
||||||
|
chmod 0700 "$G_DBUS_COOKIE_SHA1_KEYRING_DIR"
|
||||||
|
|
||||||
|
meson_src_test --timeout-multiplier 2 --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
|
||||||
|
}
|
||||||
|
multilib_foreach_abi multilib_pkg_postrm
|
||||||
|
rm -f "${EROOT}"/usr/share/glib-2.0/schemas/gschemas.compiled
|
||||||
|
fi
|
||||||
|
}
|
@ -15,7 +15,7 @@ S="${WORKDIR}"/inih-r${PV}
|
|||||||
|
|
||||||
LICENSE="BSD"
|
LICENSE="BSD"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||||
|
|
||||||
DOCS=( README.md )
|
DOCS=( README.md )
|
||||||
|
|
||||||
|
62
sdk_container/src/third_party/portage-stable/dev-libs/libksba/libksba-1.6.4-r1.ebuild
vendored
Normal file
62
sdk_container/src/third_party/portage-stable/dev-libs/libksba/libksba-1.6.4-r1.ebuild
vendored
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
# Maintainers should:
|
||||||
|
# 1. Join the "Gentoo" project at https://dev.gnupg.org/project/view/27/
|
||||||
|
# 2. Subscribe to release tasks like https://dev.gnupg.org/T6159
|
||||||
|
# (find the one for the current release then subscribe to it +
|
||||||
|
# any subsequent ones linked within so you're covered for a while.)
|
||||||
|
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/gnupg.asc
|
||||||
|
# in-source builds are not supported: https://dev.gnupg.org/T6313#166339
|
||||||
|
inherit toolchain-funcs out-of-source verify-sig libtool
|
||||||
|
|
||||||
|
DESCRIPTION="X.509 and CMS (PKCS#7) library"
|
||||||
|
HOMEPAGE="https://www.gnupg.org/related_software/libksba"
|
||||||
|
SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
|
||||||
|
SRC_URI+=" verify-sig? ( mirror://gnupg/${PN}/${P}.tar.bz2.sig )"
|
||||||
|
|
||||||
|
LICENSE="LGPL-3+ GPL-2+ GPL-3"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
IUSE="static-libs"
|
||||||
|
|
||||||
|
RDEPEND=">=dev-libs/libgpg-error-1.33"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
sys-devel/bison
|
||||||
|
verify-sig? ( sec-keys/openpgp-keys-gnupg )
|
||||||
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${PN}-1.6.0-no-fgrep-ksba-config.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
|
||||||
|
elibtoolize # necessary on Solaris for shared lib support
|
||||||
|
}
|
||||||
|
|
||||||
|
my_src_configure() {
|
||||||
|
export CC_FOR_BUILD="$(tc-getBUILD_CC)"
|
||||||
|
|
||||||
|
local myeconfargs=(
|
||||||
|
--disable-valgrind-tests
|
||||||
|
$(use_enable static-libs static)
|
||||||
|
|
||||||
|
GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config"
|
||||||
|
LIBGCRYPT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-libgcrypt-config"
|
||||||
|
)
|
||||||
|
|
||||||
|
econf "${myeconfargs[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
my_src_install() {
|
||||||
|
default
|
||||||
|
|
||||||
|
# People need to use ksba-config for --cflags and --libs
|
||||||
|
find "${ED}" -type f -name '*.la' -delete || die
|
||||||
|
}
|
@ -1 +1,2 @@
|
|||||||
DIST libnl-3.7.0.tar.gz 1000913 BLAKE2B 22c418ea520416d79ee4552ab6bc5ba99239b29e074c840d31b0ec4171a0403ea9d2c1afcbf1b3428564dd371cadd99bc062ae7540e7496f970c4fb98f967e84 SHA512 80fbbc079299c90afd2a5eda62e4d4f98bf4ef23958c3ce5101f4ed4d81d783af733213bb3bab15f218555d8460bc2394898f909f4ac024fc27281faec86a041
|
DIST libnl-3.7.0.tar.gz 1000913 BLAKE2B 22c418ea520416d79ee4552ab6bc5ba99239b29e074c840d31b0ec4171a0403ea9d2c1afcbf1b3428564dd371cadd99bc062ae7540e7496f970c4fb98f967e84 SHA512 80fbbc079299c90afd2a5eda62e4d4f98bf4ef23958c3ce5101f4ed4d81d783af733213bb3bab15f218555d8460bc2394898f909f4ac024fc27281faec86a041
|
||||||
|
DIST libnl-3.8.0.tar.gz 1071113 BLAKE2B ff90d52e9b617ad8a53e4d42f43bee065b331ed919a3effc4a0f38c8e15b46f86c1eb153816499ed77dd99063500b1dc52951891034475a5bb81da1ad8004594 SHA512 a8da7e8464c5cab2807cd86f83fca53bc77f7c3bdefe43880db7be9caf5ba6bfca1b7e778b906c12fda1cf7e6f413f88cc7ad1dcc42fe8c050a8d28a6e656c02
|
||||||
|
@ -0,0 +1,22 @@
|
|||||||
|
https://github.com/thom311/libnl/pull/360
|
||||||
|
|
||||||
|
From 32f84a052a4383299b9f30ad09d2a70c3b2cf2b3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sam James <sam@gentoo.org>
|
||||||
|
Date: Thu, 31 Aug 2023 06:59:59 +0100
|
||||||
|
Subject: [PATCH] Makefile.am: avoid use of non-portable echo arguments
|
||||||
|
|
||||||
|
This fixes tests with a non-bash shell as /bin/sh (in this case, dash) which
|
||||||
|
does not support `echo -e`. echo itself is portable, but not echo with any arguments.
|
||||||
|
|
||||||
|
Use `printf` instead.
|
||||||
|
--- a/Makefile.am
|
||||||
|
+++ b/Makefile.am
|
||||||
|
@@ -1129,7 +1129,7 @@ EXTRA_DIST += \
|
||||||
|
|
||||||
|
%.build-headers-test.c: %
|
||||||
|
mkdir -p "$(dir $@)"
|
||||||
|
- echo -e "#include <$$(echo "$<" | sed 's|.*\<include/netlink/|netlink/|')>\nint main(int argc, char **argv) { return 0; }" > $@
|
||||||
|
+ printf "#include <$$(echo "$<" | sed 's|.*\<include/netlink/|netlink/|')>\nint main(int argc, char **argv) { return 0; }" > $@
|
||||||
|
|
||||||
|
%.build-headers-test.o: %.build-headers-test.c
|
||||||
|
$(COMPILE) -Wall -Werror -Wno-error=cpp -I$(srcdir)/include -I$(builddir)/include -c -o $@ $<
|
@ -0,0 +1,21 @@
|
|||||||
|
https://github.com/thom311/libnl/commit/9aab12dff8e89b7da826c5c0826ef13c71963e28
|
||||||
|
|
||||||
|
From 9aab12dff8e89b7da826c5c0826ef13c71963e28 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Ward <david.ward@ll.mit.edu>
|
||||||
|
Date: Tue, 29 Aug 2023 20:54:19 -0400
|
||||||
|
Subject: [PATCH] python: Use correct decorator syntax in HTBQdisc
|
||||||
|
|
||||||
|
Fixes: 87d370912ca8 ("netlink.nlattr re-implemented in more pythonic way")
|
||||||
|
|
||||||
|
https://github.com/thom311/libnl/pull/359
|
||||||
|
--- a/python/netlink/route/qdisc/htb.py
|
||||||
|
+++ b/python/netlink/route/qdisc/htb.py
|
||||||
|
@@ -28,7 +28,7 @@ def default_class(self, value):
|
||||||
|
capi.rtnl_htb_set_defcls(self._qdisc._rtnl_qdisc, int(value))
|
||||||
|
|
||||||
|
@property
|
||||||
|
- @netlink.nlattr("r2q", type=int)
|
||||||
|
+ @netlink.nlattr(type=int)
|
||||||
|
def r2q(self):
|
||||||
|
return capi.rtnl_htb_get_rate2quantum(self._qdisc._rtnl_qdisc)
|
||||||
|
|
124
sdk_container/src/third_party/portage-stable/dev-libs/libnl/libnl-3.8.0.ebuild
vendored
Normal file
124
sdk_container/src/third_party/portage-stable/dev-libs/libnl/libnl-3.8.0.ebuild
vendored
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
# Make sure to test USE=utils on bumps and update MULTILIB_WRAPPED_HEADERS if needed
|
||||||
|
|
||||||
|
DISTUTILS_EXT=1
|
||||||
|
DISTUTILS_OPTIONAL=1
|
||||||
|
DISTUTILS_USE_PEP517=setuptools
|
||||||
|
PYTHON_COMPAT=( python3_{10..11} )
|
||||||
|
inherit autotools distutils-r1 multilib-minimal
|
||||||
|
|
||||||
|
LIBNL_P=${P/_/-}
|
||||||
|
LIBNL_DIR=${PV/_/}
|
||||||
|
LIBNL_DIR=${LIBNL_DIR//./_}
|
||||||
|
|
||||||
|
DESCRIPTION="Libraries providing APIs to netlink protocol based Linux kernel interfaces"
|
||||||
|
HOMEPAGE="https://www.infradead.org/~tgr/libnl/ https://github.com/thom311/libnl"
|
||||||
|
if [[ ${PV} == 9999 ]] ; then
|
||||||
|
EGIT_REPO_URI="https://github.com/thom311/libnl"
|
||||||
|
inherit git-r3
|
||||||
|
else
|
||||||
|
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"
|
||||||
|
|
||||||
|
S="${WORKDIR}/${LIBNL_P}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
LICENSE="LGPL-2.1 utils? ( GPL-2 )"
|
||||||
|
SLOT="3"
|
||||||
|
IUSE="+debug python test utils"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
RDEPEND="python? ( ${PYTHON_DEPS} )"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
sys-devel/bison
|
||||||
|
sys-devel/flex
|
||||||
|
python? (
|
||||||
|
${DISTUTILS_DEPS}
|
||||||
|
dev-lang/swig
|
||||||
|
)
|
||||||
|
test? ( dev-libs/check )
|
||||||
|
"
|
||||||
|
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
|
||||||
|
|
||||||
|
MULTILIB_WRAPPED_HEADERS=(
|
||||||
|
# We do not install CLI stuff for non-native
|
||||||
|
/usr/include/libnl3/netlink/cli/addr.h
|
||||||
|
/usr/include/libnl3/netlink/cli/class.h
|
||||||
|
/usr/include/libnl3/netlink/cli/cls.h
|
||||||
|
/usr/include/libnl3/netlink/cli/ct.h
|
||||||
|
/usr/include/libnl3/netlink/cli/exp.h
|
||||||
|
/usr/include/libnl3/netlink/cli/link.h
|
||||||
|
/usr/include/libnl3/netlink/cli/mdb.h
|
||||||
|
/usr/include/libnl3/netlink/cli/nh.h
|
||||||
|
/usr/include/libnl3/netlink/cli/neigh.h
|
||||||
|
/usr/include/libnl3/netlink/cli/qdisc.h
|
||||||
|
/usr/include/libnl3/netlink/cli/route.h
|
||||||
|
/usr/include/libnl3/netlink/cli/rule.h
|
||||||
|
/usr/include/libnl3/netlink/cli/tc.h
|
||||||
|
/usr/include/libnl3/netlink/cli/utils.h
|
||||||
|
)
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${P}-python-decorator-syntax.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.8.0-printf-non-bash.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
|
||||||
|
eautoreconf
|
||||||
|
|
||||||
|
if use python; then
|
||||||
|
pushd "${S}"/python > /dev/null || die
|
||||||
|
distutils-r1_src_prepare
|
||||||
|
popd > /dev/null || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_configure() {
|
||||||
|
# bug #884277
|
||||||
|
export YACC=yacc.bison
|
||||||
|
|
||||||
|
ECONF_SOURCE="${S}" econf \
|
||||||
|
$(multilib_native_use_enable utils cli) \
|
||||||
|
$(use_enable debug)
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_compile() {
|
||||||
|
default
|
||||||
|
|
||||||
|
if multilib_is_native_abi && use python ; then
|
||||||
|
pushd python > /dev/null || die
|
||||||
|
distutils-r1_src_compile
|
||||||
|
popd > /dev/null || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install() {
|
||||||
|
default
|
||||||
|
|
||||||
|
if multilib_is_native_abi && use python ; then
|
||||||
|
# Unset DOCS= since distutils-r1.eclass interferes
|
||||||
|
local DOCS=()
|
||||||
|
|
||||||
|
pushd python > /dev/null || die
|
||||||
|
|
||||||
|
distutils-r1_src_install
|
||||||
|
|
||||||
|
popd > /dev/null || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install_all() {
|
||||||
|
DOCS=( ChangeLog )
|
||||||
|
|
||||||
|
einstalldocs
|
||||||
|
|
||||||
|
find "${ED}" -name '*.la' -delete || die
|
||||||
|
}
|
@ -3,9 +3,12 @@
|
|||||||
|
|
||||||
EAPI=8
|
EAPI=8
|
||||||
|
|
||||||
|
# Make sure to test USE=utils on bumps and update MULTILIB_WRAPPED_HEADERS if needed
|
||||||
|
|
||||||
|
DISTUTILS_EXT=1
|
||||||
DISTUTILS_OPTIONAL=1
|
DISTUTILS_OPTIONAL=1
|
||||||
DISTUTILS_USE_PEP517=setuptools
|
DISTUTILS_USE_PEP517=setuptools
|
||||||
PYTHON_COMPAT=( python3_{9..11} )
|
PYTHON_COMPAT=( python3_{10..11} )
|
||||||
inherit autotools distutils-r1 multilib-minimal
|
inherit autotools distutils-r1 multilib-minimal
|
||||||
|
|
||||||
LIBNL_P=${P/_/-}
|
LIBNL_P=${P/_/-}
|
||||||
@ -31,18 +34,20 @@ RESTRICT="!test? ( test )"
|
|||||||
|
|
||||||
RDEPEND="python? ( ${PYTHON_DEPS} )"
|
RDEPEND="python? ( ${PYTHON_DEPS} )"
|
||||||
DEPEND="${RDEPEND}"
|
DEPEND="${RDEPEND}"
|
||||||
BDEPEND="${RDEPEND}
|
BDEPEND="
|
||||||
|
${RDEPEND}
|
||||||
sys-devel/bison
|
sys-devel/bison
|
||||||
sys-devel/flex
|
sys-devel/flex
|
||||||
python? (
|
python? (
|
||||||
${DISTUTILS_DEPS}
|
${DISTUTILS_DEPS}
|
||||||
dev-lang/swig
|
dev-lang/swig
|
||||||
)
|
)
|
||||||
test? ( dev-libs/check )"
|
test? ( dev-libs/check )
|
||||||
|
"
|
||||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
|
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
|
||||||
|
|
||||||
MULTILIB_WRAPPED_HEADERS=(
|
MULTILIB_WRAPPED_HEADERS=(
|
||||||
# we do not install CLI stuff for non-native
|
# We do not install CLI stuff for non-native
|
||||||
/usr/include/libnl3/netlink/cli/addr.h
|
/usr/include/libnl3/netlink/cli/addr.h
|
||||||
/usr/include/libnl3/netlink/cli/class.h
|
/usr/include/libnl3/netlink/cli/class.h
|
||||||
/usr/include/libnl3/netlink/cli/cls.h
|
/usr/include/libnl3/netlink/cli/cls.h
|
||||||
@ -50,6 +55,7 @@ MULTILIB_WRAPPED_HEADERS=(
|
|||||||
/usr/include/libnl3/netlink/cli/exp.h
|
/usr/include/libnl3/netlink/cli/exp.h
|
||||||
/usr/include/libnl3/netlink/cli/link.h
|
/usr/include/libnl3/netlink/cli/link.h
|
||||||
/usr/include/libnl3/netlink/cli/mdb.h
|
/usr/include/libnl3/netlink/cli/mdb.h
|
||||||
|
/usr/include/libnl3/netlink/cli/nh.h
|
||||||
/usr/include/libnl3/netlink/cli/neigh.h
|
/usr/include/libnl3/netlink/cli/neigh.h
|
||||||
/usr/include/libnl3/netlink/cli/qdisc.h
|
/usr/include/libnl3/netlink/cli/qdisc.h
|
||||||
/usr/include/libnl3/netlink/cli/route.h
|
/usr/include/libnl3/netlink/cli/route.h
|
||||||
@ -58,6 +64,10 @@ MULTILIB_WRAPPED_HEADERS=(
|
|||||||
/usr/include/libnl3/netlink/cli/utils.h
|
/usr/include/libnl3/netlink/cli/utils.h
|
||||||
)
|
)
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${PN}-3.8.0-printf-non-bash.patch
|
||||||
|
)
|
||||||
|
|
||||||
src_prepare() {
|
src_prepare() {
|
||||||
default
|
default
|
||||||
|
|
||||||
@ -71,6 +81,9 @@ src_prepare() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
multilib_src_configure() {
|
multilib_src_configure() {
|
||||||
|
# bug #884277
|
||||||
|
export YACC=yacc.bison
|
||||||
|
|
||||||
ECONF_SOURCE="${S}" econf \
|
ECONF_SOURCE="${S}" econf \
|
||||||
$(multilib_native_use_enable utils cli) \
|
$(multilib_native_use_enable utils cli) \
|
||||||
$(use_enable debug)
|
$(use_enable debug)
|
||||||
|
@ -15,7 +15,7 @@ if [[ ${PV} == 9999 ]] ; then
|
|||||||
inherit autotools git-r3
|
inherit autotools git-r3
|
||||||
else
|
else
|
||||||
inherit libtool gnome.org
|
inherit libtool gnome.org
|
||||||
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
|
||||||
|
|
||||||
LICENSE="MIT"
|
LICENSE="MIT"
|
||||||
|
@ -14,7 +14,7 @@ SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${P}.tar.gz.sig )"
|
|||||||
LICENSE="|| ( LGPL-3 LGPL-2.1 )"
|
LICENSE="|| ( LGPL-3 LGPL-2.1 )"
|
||||||
# Subslot = libnettle - libhogweed soname version
|
# Subslot = libnettle - libhogweed soname version
|
||||||
SLOT="0/8-6"
|
SLOT="0/8-6"
|
||||||
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="+asm doc +gmp static-libs cpu_flags_arm_neon cpu_flags_arm_aes cpu_flags_arm_sha1 cpu_flags_arm_sha2 cpu_flags_ppc_altivec cpu_flags_ppc_vsx2 cpu_flags_ppc_vsx3 cpu_flags_x86_aes cpu_flags_x86_sha cpu_flags_x86_pclmul"
|
IUSE="+asm doc +gmp static-libs cpu_flags_arm_neon cpu_flags_arm_aes cpu_flags_arm_sha1 cpu_flags_arm_sha2 cpu_flags_ppc_altivec cpu_flags_ppc_vsx2 cpu_flags_ppc_vsx3 cpu_flags_x86_aes cpu_flags_x86_sha cpu_flags_x86_pclmul"
|
||||||
# The arm64 crypto option controls AES, SHA1, and SHA2 usage.
|
# The arm64 crypto option controls AES, SHA1, and SHA2 usage.
|
||||||
REQUIRED_USE="
|
REQUIRED_USE="
|
||||||
|
@ -22,7 +22,7 @@ src_prepare() {
|
|||||||
default
|
default
|
||||||
|
|
||||||
# Unclear what the background to this is, perhaps
|
# Unclear what the background to this is, perhaps
|
||||||
# https://git.exherbo.org/arbor.git/commit/?id=5545d22d3493279acf7a55246179f818ef22f5fa
|
# https://gitlab.exherbo.org/exherbo/arbor/-/commit/5545d22d3493279acf7a55246179f818ef22f5fa
|
||||||
sed -i -e 's:lt-test1:test1:' tests/testit.sh || die
|
sed -i -e 's:lt-test1:test1:' tests/testit.sh || die
|
||||||
|
|
||||||
elibtoolize
|
elibtoolize
|
||||||
|
@ -1 +1,3 @@
|
|||||||
|
DIST protobuf-21.12.tar.gz 5141166 BLAKE2B 33500612d103afb817062486a741e8e5503f82c42c70054d47d1899e6bb79f3fdde2666cad5b8eff6e1bc539c3b0cdf9f2b125ce7e5d3a459a69e84d67ab535e SHA512 2dc8f552388438268d8b9f7a9e84c6abf1736be3d5031438c789c317410c9f4b5cedd25bf7da6d67b3ba32ca890869f9ddaab2284d6ac0e734a5b135ffbb1346
|
||||||
DIST protobuf-21.9.tar.gz 5110670 BLAKE2B a4f5b7f58e1c5904ca990b100a72992f6f56177b28773f8de8c99e4158391d33cfb8aa8575915887fc9ae4294faf81d4ff6b470bc07b394bfd5885a09ba0fafe SHA512 6954b42d21921e630173b7848c056ab95635627d8eddec960f3db2ddda13eedde00520a9b350722e76e2998649eb8ebe10758e1db938b6a91e38ff3295b1b7c1
|
DIST protobuf-21.9.tar.gz 5110670 BLAKE2B a4f5b7f58e1c5904ca990b100a72992f6f56177b28773f8de8c99e4158391d33cfb8aa8575915887fc9ae4294faf81d4ff6b470bc07b394bfd5885a09ba0fafe SHA512 6954b42d21921e630173b7848c056ab95635627d8eddec960f3db2ddda13eedde00520a9b350722e76e2998649eb8ebe10758e1db938b6a91e38ff3295b1b7c1
|
||||||
|
DIST protobuf-23.3.tar.gz 5043803 BLAKE2B ee2edee230969555c9ef95069c7b1d6c23c3d1f8ea1b2249fb3e9f6fcf63312c6e10e9da65b80629fb08d5fb08d05a19bb9c752c25b892c1e3fd6f18b9279eb3 SHA512 646af367dbc61b42e322cf0b335f360e428b272e2b1f5361b2f17c18d3dc9dddd615e1279436028b1a42275a0beadda37c2c934fc27d6c892131cc8d526d8b3b
|
||||||
|
@ -0,0 +1,34 @@
|
|||||||
|
https://github.com/protocolbuffers/protobuf/issues/8460
|
||||||
|
--- a/src/google/protobuf/any_test.cc
|
||||||
|
+++ b/src/google/protobuf/any_test.cc
|
||||||
|
@@ -63,6 +63,8 @@ TEST(AnyTest, TestPackAndUnpack) {
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {
|
||||||
|
+ // Filter out this test on 32-bit architectures.
|
||||||
|
+ if(sizeof(void*) < 8) return;
|
||||||
|
protobuf_unittest::TestAny submessage;
|
||||||
|
submessage.mutable_text()->resize(INT_MAX, 'a');
|
||||||
|
protobuf_unittest::TestAny message;
|
||||||
|
|
||||||
|
https://github.com/protocolbuffers/protobuf/issues/8459
|
||||||
|
--- a/src/google/protobuf/arena_unittest.cc
|
||||||
|
+++ b/src/google/protobuf/arena_unittest.cc
|
||||||
|
@@ -1373,6 +1373,8 @@ TEST(ArenaTest, MessageLiteOnArena) {
|
||||||
|
uint64_t Align8(uint64_t n) { return (n + 7) & -8; }
|
||||||
|
|
||||||
|
TEST(ArenaTest, SpaceAllocated_and_Used) {
|
||||||
|
+ // Filter out this test on 32-bit architectures.
|
||||||
|
+ if(sizeof(void*) < 8) return;
|
||||||
|
Arena arena_1;
|
||||||
|
EXPECT_EQ(0, arena_1.SpaceAllocated());
|
||||||
|
EXPECT_EQ(0, arena_1.SpaceUsed());
|
||||||
|
@@ -1453,6 +1455,8 @@ TEST(ArenaTest, Alignment) {
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(ArenaTest, BlockSizeSmallerThanAllocation) {
|
||||||
|
+ // Filter out this test on 32-bit architectures.
|
||||||
|
+ if(sizeof(void*) < 8) return;
|
||||||
|
for (size_t i = 0; i <= 8; ++i) {
|
||||||
|
ArenaOptions opt;
|
||||||
|
opt.start_block_size = opt.max_block_size = i;
|
@ -0,0 +1,11 @@
|
|||||||
|
https://github.com/protocolbuffers/protobuf/issues/9433
|
||||||
|
--- a/src/google/protobuf/descriptor.cc
|
||||||
|
+++ b/src/google/protobuf/descriptor.cc
|
||||||
|
@@ -384,7 +384,6 @@ class FlatAllocatorImpl {
|
||||||
|
ABSL_CHECK(!has_allocated());
|
||||||
|
if (std::is_trivially_destructible<U>::value) {
|
||||||
|
// Trivial types are aligned to 8 bytes.
|
||||||
|
- static_assert(alignof(U) <= 8, "");
|
||||||
|
total_.template Get<char>() += RoundUpTo<8>(array_size * sizeof(U));
|
||||||
|
} else {
|
||||||
|
// Since we can't use `if constexpr`, just make the expression compile
|
105
sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-21.12.ebuild
vendored
Normal file
105
sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-21.12.ebuild
vendored
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
# Copyright 2008-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit cmake-multilib elisp-common toolchain-funcs
|
||||||
|
|
||||||
|
if [[ "${PV}" == *9999 ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
|
||||||
|
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git"
|
||||||
|
EGIT_SUBMODULES=()
|
||||||
|
else
|
||||||
|
SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~x64-macos"
|
||||||
|
fi
|
||||||
|
|
||||||
|
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
|
||||||
|
HOMEPAGE="https://protobuf.dev/"
|
||||||
|
|
||||||
|
LICENSE="BSD"
|
||||||
|
SLOT="0/3.$(ver_cut 1-2).0"
|
||||||
|
IUSE="emacs examples test zlib"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
BDEPEND="emacs? ( app-editors/emacs:* )"
|
||||||
|
DEPEND="
|
||||||
|
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )
|
||||||
|
test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
|
||||||
|
"
|
||||||
|
RDEPEND="
|
||||||
|
emacs? ( app-editors/emacs:* )
|
||||||
|
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )
|
||||||
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}/${PN}-23.3-disable-32-bit-tests.patch"
|
||||||
|
"${FILESDIR}/${PN}-23.3-static_assert-failure.patch"
|
||||||
|
)
|
||||||
|
|
||||||
|
DOCS=( CONTRIBUTORS.txt README.md )
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
if tc-ld-is-gold; then
|
||||||
|
# https://sourceware.org/bugzilla/show_bug.cgi?id=24527
|
||||||
|
tc-ld-disable-gold
|
||||||
|
fi
|
||||||
|
|
||||||
|
cmake-multilib_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_configure() {
|
||||||
|
local mycmakeargs=(
|
||||||
|
-Dprotobuf_DISABLE_RTTI=ON
|
||||||
|
-Dprotobuf_BUILD_EXAMPLES=$(usex examples)
|
||||||
|
-Dprotobuf_WITH_ZLIB=$(usex zlib)
|
||||||
|
-Dprotobuf_BUILD_TESTS=$(usex test)
|
||||||
|
)
|
||||||
|
use test && mycmakeargs+=(-Dprotobuf_USE_EXTERNAL_GTEST=ON)
|
||||||
|
|
||||||
|
cmake_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cmake-multilib_src_compile
|
||||||
|
|
||||||
|
if use emacs; then
|
||||||
|
elisp-compile editors/protobuf-mode.el
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install_all() {
|
||||||
|
find "${ED}" -name "*.la" -delete || die
|
||||||
|
|
||||||
|
if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" ]]; then
|
||||||
|
eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \
|
||||||
|
"Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}"
|
||||||
|
die "Please update SLOT variable"
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto /usr/share/vim/vimfiles/syntax
|
||||||
|
doins editors/proto.vim
|
||||||
|
insinto /usr/share/vim/vimfiles/ftdetect
|
||||||
|
doins "${FILESDIR}/proto.vim"
|
||||||
|
|
||||||
|
if use emacs; then
|
||||||
|
elisp-install ${PN} editors/protobuf-mode.el*
|
||||||
|
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use examples; then
|
||||||
|
DOCS+=(examples)
|
||||||
|
docompress -x /usr/share/doc/${PF}/examples
|
||||||
|
fi
|
||||||
|
|
||||||
|
einstalldocs
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
use emacs && elisp-site-regen
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
use emacs && elisp-site-regen
|
||||||
|
}
|
108
sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-23.3-r2.ebuild
vendored
Normal file
108
sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-23.3-r2.ebuild
vendored
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
# Copyright 2008-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit cmake-multilib elisp-common toolchain-funcs
|
||||||
|
|
||||||
|
if [[ "${PV}" == *9999 ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
|
||||||
|
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git"
|
||||||
|
EGIT_SUBMODULES=()
|
||||||
|
else
|
||||||
|
SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~x64-macos"
|
||||||
|
fi
|
||||||
|
|
||||||
|
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
|
||||||
|
HOMEPAGE="https://protobuf.dev/"
|
||||||
|
|
||||||
|
LICENSE="BSD"
|
||||||
|
SLOT="0/$(ver_cut 1-2).0"
|
||||||
|
IUSE="emacs examples test zlib"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
BDEPEND="emacs? ( app-editors/emacs:* )"
|
||||||
|
DEPEND="
|
||||||
|
>=dev-cpp/abseil-cpp-20230125.3:=[${MULTILIB_USEDEP}]
|
||||||
|
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )
|
||||||
|
test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
|
||||||
|
"
|
||||||
|
RDEPEND="
|
||||||
|
>=dev-cpp/abseil-cpp-20230125.3:=[${MULTILIB_USEDEP}]
|
||||||
|
emacs? ( app-editors/emacs:* )
|
||||||
|
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )
|
||||||
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}/${PN}-23.3-disable-32-bit-tests.patch"
|
||||||
|
"${FILESDIR}/${PN}-23.3-static_assert-failure.patch"
|
||||||
|
)
|
||||||
|
|
||||||
|
DOCS=( CONTRIBUTORS.txt README.md )
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
if tc-ld-is-gold; then
|
||||||
|
# https://sourceware.org/bugzilla/show_bug.cgi?id=24527
|
||||||
|
tc-ld-disable-gold
|
||||||
|
fi
|
||||||
|
|
||||||
|
cmake-multilib_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_configure() {
|
||||||
|
local mycmakeargs=(
|
||||||
|
-Dprotobuf_DISABLE_RTTI=ON
|
||||||
|
-Dprotobuf_BUILD_EXAMPLES=$(usex examples)
|
||||||
|
-Dprotobuf_WITH_ZLIB=$(usex zlib)
|
||||||
|
-Dprotobuf_BUILD_TESTS=$(usex test)
|
||||||
|
-Dprotobuf_ABSL_PROVIDER=package
|
||||||
|
)
|
||||||
|
use test && mycmakeargs+=(-Dprotobuf_USE_EXTERNAL_GTEST=ON)
|
||||||
|
|
||||||
|
cmake_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cmake-multilib_src_compile
|
||||||
|
|
||||||
|
if use emacs; then
|
||||||
|
elisp-compile editors/protobuf-mode.el
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install_all() {
|
||||||
|
find "${ED}" -name "*.la" -delete || die
|
||||||
|
|
||||||
|
if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" ]]; then
|
||||||
|
eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \
|
||||||
|
"Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}"
|
||||||
|
die "Please update SLOT variable"
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto /usr/share/vim/vimfiles/syntax
|
||||||
|
doins editors/proto.vim
|
||||||
|
insinto /usr/share/vim/vimfiles/ftdetect
|
||||||
|
doins "${FILESDIR}/proto.vim"
|
||||||
|
|
||||||
|
if use emacs; then
|
||||||
|
elisp-install ${PN} editors/protobuf-mode.el*
|
||||||
|
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use examples; then
|
||||||
|
DOCS+=(examples)
|
||||||
|
docompress -x /usr/share/doc/${PF}/examples
|
||||||
|
fi
|
||||||
|
|
||||||
|
einstalldocs
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
use emacs && elisp-site-regen
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
use emacs && elisp-site-regen
|
||||||
|
}
|
@ -1,4 +1,3 @@
|
|||||||
DIST cython-0.29.34.gh.tar.gz 2114639 BLAKE2B c5f70fd3e6074d9030a1035bc98d71b703e0f391b61bd91f3ffba2c35a29a98b9ff8ef2047e7c75743ead280f0f06a924abe84ae8bf7696b65da662a3c58ee0c SHA512 51679d1304d0f87dfb51e60c753f1ce60027f855a91cf130a5dcf84353884a7dcf09c01701945ae2f9173f8f095890c377d5faac28c2f01d7f764609c0130411
|
|
||||||
DIST cython-0.29.35.gh.tar.gz 2115190 BLAKE2B ac23abbd2b560ee52a79840d995a4cf36ddb3a8705b9327010f1ad6add8028185c15703efcc1d59b581d65b5de38e123c0f07c36fe6ffe54a6efee7512161344 SHA512 35d679d94e1f731e004b83fb4ae0d569703b0800c913012308146b1c54463ce12cb1cf3733e24162fb357f179444c5ca31108a37850e6c749ddebac5175119f5
|
|
||||||
DIST cython-0.29.36.gh.tar.gz 2115333 BLAKE2B 6d43779c7222ff65d7de3a35ec18ef636480807d53480a8f94cc8c92d462fcc2f4d201a3bbf6e840a11fd33025e32c53f85626b05c131d10eed2859cdca7eb2d SHA512 a086fe1a11290cd3c870b891e61a0a0e2595bab9c26888024a758b6950c07059346d682fa9349e46c0af89805abbdd750059b3189960b8ce18007dfb5eb4391a
|
DIST cython-0.29.36.gh.tar.gz 2115333 BLAKE2B 6d43779c7222ff65d7de3a35ec18ef636480807d53480a8f94cc8c92d462fcc2f4d201a3bbf6e840a11fd33025e32c53f85626b05c131d10eed2859cdca7eb2d SHA512 a086fe1a11290cd3c870b891e61a0a0e2595bab9c26888024a758b6950c07059346d682fa9349e46c0af89805abbdd750059b3189960b8ce18007dfb5eb4391a
|
||||||
DIST cython-3.0.0.gh.tar.gz 2713478 BLAKE2B 16be50b463cf155417fee02b4529bbde8c4402bac0098ddf2cb05e33ac4c5b455bf7595b046b2bc6edcc8121f2c6be3b7af60c3c721a37bebcf4c654cd41a43f SHA512 a9bf6f0a78accd0624bc2a61329541d97d60257ae3a6b6601f73bd9122427a3d460129b317f000d3061a4dfe3e6a6de59342354862ded13e85c7eb622ee39f9a
|
DIST cython-3.0.0.gh.tar.gz 2713478 BLAKE2B 16be50b463cf155417fee02b4529bbde8c4402bac0098ddf2cb05e33ac4c5b455bf7595b046b2bc6edcc8121f2c6be3b7af60c3c721a37bebcf4c654cd41a43f SHA512 a9bf6f0a78accd0624bc2a61329541d97d60257ae3a6b6601f73bd9122427a3d460129b317f000d3061a4dfe3e6a6de59342354862ded13e85c7eb622ee39f9a
|
||||||
|
DIST cython-3.0.2.gh.tar.gz 2744583 BLAKE2B f631891870a6ce24acf2bcde75ebcb9775cf0df7840fe9d7b138cfdea64d54e9253a53d35d892a9086f251c1294d9414eec8521218d031840a3cd06903fefb86 SHA512 f55be138efdca6ca61bd39c6f2fab736244328a170a6f6c9bda87036e022c846930b209e9e9101fad889cb179d6e60034ba6f299f14b3056536d46235b438eb7
|
||||||
|
@ -1,92 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
DISTUTILS_EXT=1
|
|
||||||
DISTUTILS_USE_PEP517=setuptools
|
|
||||||
PYTHON_COMPAT=( python3_{9..11} pypy3 )
|
|
||||||
PYTHON_REQ_USE="threads(+)"
|
|
||||||
|
|
||||||
inherit distutils-r1 toolchain-funcs elisp-common
|
|
||||||
|
|
||||||
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}.tar.gz
|
|
||||||
-> ${P}.gh.tar.gz
|
|
||||||
"
|
|
||||||
|
|
||||||
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="emacs test"
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
emacs? ( >=app-editors/emacs-23.1:* )
|
|
||||||
"
|
|
||||||
BDEPEND="
|
|
||||||
${RDEPEND}
|
|
||||||
test? (
|
|
||||||
$(python_gen_cond_dep '
|
|
||||||
dev-python/numpy[${PYTHON_USEDEP}]
|
|
||||||
' python3_{8..10})
|
|
||||||
)
|
|
||||||
"
|
|
||||||
|
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
SITEFILE=50cython-gentoo.el
|
|
||||||
|
|
||||||
distutils_enable_sphinx docs
|
|
||||||
|
|
||||||
python_compile() {
|
|
||||||
# Python gets confused when it is in sys.path before build.
|
|
||||||
local -x PYTHONPATH=
|
|
||||||
|
|
||||||
distutils-r1_python_compile
|
|
||||||
}
|
|
||||||
|
|
||||||
python_compile_all() {
|
|
||||||
use emacs && elisp-compile Tools/cython-mode.el
|
|
||||||
}
|
|
||||||
|
|
||||||
python_test() {
|
|
||||||
if has "${EPYTHON}" pypy3 python3.11; then
|
|
||||||
einfo "Skipping tests on ${EPYTHON} (xfail)"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
tc-export CC
|
|
||||||
# https://github.com/cython/cython/issues/1911
|
|
||||||
local -x CFLAGS="${CFLAGS} -fno-strict-overflow"
|
|
||||||
"${PYTHON}" runtests.py -vv --work-dir "${BUILD_DIR}"/tests ||
|
|
||||||
die "Tests fail with ${EPYTHON}"
|
|
||||||
}
|
|
||||||
|
|
||||||
python_install_all() {
|
|
||||||
local DOCS=( CHANGES.rst README.rst ToDo.txt USAGE.txt )
|
|
||||||
distutils-r1_python_install_all
|
|
||||||
|
|
||||||
if use emacs; then
|
|
||||||
elisp-install ${PN} Tools/cython-mode.*
|
|
||||||
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
use emacs && elisp-site-regen
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
use emacs && elisp-site-regen
|
|
||||||
}
|
|
@ -1,94 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
DISTUTILS_EXT=1
|
|
||||||
DISTUTILS_USE_PEP517=setuptools
|
|
||||||
PYTHON_TESTED=( python3_{10..11} )
|
|
||||||
# 3.12 not tested yet for https://github.com/cython/cython/issues/5285.
|
|
||||||
PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_12 pypy3 )
|
|
||||||
PYTHON_REQ_USE="threads(+)"
|
|
||||||
|
|
||||||
inherit distutils-r1 multiprocessing toolchain-funcs elisp-common
|
|
||||||
|
|
||||||
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}.tar.gz
|
|
||||||
-> ${P}.gh.tar.gz
|
|
||||||
"
|
|
||||||
|
|
||||||
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="emacs test"
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
emacs? ( >=app-editors/emacs-23.1:* )
|
|
||||||
"
|
|
||||||
BDEPEND="
|
|
||||||
${RDEPEND}
|
|
||||||
test? (
|
|
||||||
$(python_gen_cond_dep '
|
|
||||||
dev-python/numpy[${PYTHON_USEDEP}]
|
|
||||||
' python3_{10..11})
|
|
||||||
)
|
|
||||||
"
|
|
||||||
|
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
SITEFILE=50cython-gentoo.el
|
|
||||||
|
|
||||||
distutils_enable_sphinx docs
|
|
||||||
|
|
||||||
python_compile() {
|
|
||||||
# Python gets confused when it is in sys.path before build.
|
|
||||||
local -x PYTHONPATH=
|
|
||||||
|
|
||||||
distutils-r1_python_compile
|
|
||||||
}
|
|
||||||
|
|
||||||
python_compile_all() {
|
|
||||||
use emacs && elisp-compile Tools/cython-mode.el
|
|
||||||
}
|
|
||||||
|
|
||||||
python_test() {
|
|
||||||
if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
|
|
||||||
einfo "Skipping tests on ${EPYTHON} (xfail)"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
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 ||
|
|
||||||
die "Tests fail with ${EPYTHON}"
|
|
||||||
}
|
|
||||||
|
|
||||||
python_install_all() {
|
|
||||||
local DOCS=( CHANGES.rst README.rst ToDo.txt USAGE.txt )
|
|
||||||
distutils-r1_python_install_all
|
|
||||||
|
|
||||||
if use emacs; then
|
|
||||||
elisp-install ${PN} Tools/cython-mode.*
|
|
||||||
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
use emacs && elisp-site-regen
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
use emacs && elisp-site-regen
|
|
||||||
}
|
|
@ -25,7 +25,7 @@ SRC_URI="
|
|||||||
|
|
||||||
LICENSE="Apache-2.0"
|
LICENSE="Apache-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"
|
||||||
IUSE="emacs test"
|
IUSE="emacs test"
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ S=${WORKDIR}/${MY_P}
|
|||||||
|
|
||||||
LICENSE="Apache-2.0"
|
LICENSE="Apache-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"
|
||||||
IUSE="test"
|
IUSE="test"
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
@ -14,7 +14,8 @@ HOMEPAGE="
|
|||||||
https://pypi.org/project/docutils/
|
https://pypi.org/project/docutils/
|
||||||
"
|
"
|
||||||
|
|
||||||
LICENSE="BSD-2 GPL-3 public-domain"
|
# GPL-3+ only for emacs/rst.el
|
||||||
|
LICENSE="BSD BSD-2 GPL-3+ PSF-2.4 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"
|
||||||
|
|
@ -1 +1,3 @@
|
|||||||
DIST gpep517-13.gh.tar.gz 17197 BLAKE2B eb2f1061c0d762ec5cedf042c41a04eb1ddfbb146b5d81727f7e09d55e76323ee4ffb00e8a8c17a8d423b863bd46dc79a03048da1998cf50fee45bc75c64f38e SHA512 23219a3f7369def01e41fe6bbf96400cc85bb6f5efae3924451a5f3dbed0c9a5e7bb69aa1810897597aa248aa64fc6445fb32ed5bf314d0265c5339893ea58e3
|
DIST gpep517-13.gh.tar.gz 17197 BLAKE2B eb2f1061c0d762ec5cedf042c41a04eb1ddfbb146b5d81727f7e09d55e76323ee4ffb00e8a8c17a8d423b863bd46dc79a03048da1998cf50fee45bc75c64f38e SHA512 23219a3f7369def01e41fe6bbf96400cc85bb6f5efae3924451a5f3dbed0c9a5e7bb69aa1810897597aa248aa64fc6445fb32ed5bf314d0265c5339893ea58e3
|
||||||
|
DIST gpep517-14.gh.tar.gz 17896 BLAKE2B 53e903a8efd6dc2a861784093c078cc8196ac870cc837714e5afc69afaf6494484d7614039032db4f765d6a30b6e8f639a6f6870812b24effac208d668edd0b5 SHA512 9d2c55775c19fb8a071336749fa7b0c15a25c19af380999cffd4e23b6b4bbfca1d8b1b21ed4e57c89836d2fad527b18a7ba33ba4e06c78deeec68f071e4d2375
|
||||||
|
DIST gpep517-15.gh.tar.gz 17535 BLAKE2B 265c2392cc70f4a94f6b8329dbba0ec5eb821e687bba553009bdc5e230d856fe6f105c873a79ee7ca99fb75c072c3d3c3b4f716ca873d13a8e393b33a97c8540 SHA512 7c3b878220e907ef801301eadc0e3031dd3c31770cc50bb7119ab32f9244c8a33792b4896ddeffc5d4b7be9f1d881fba5179de155f11845f510e455be59fb92e
|
||||||
|
43
sdk_container/src/third_party/portage-stable/dev-python/gpep517/gpep517-14.ebuild
vendored
Normal file
43
sdk_container/src/third_party/portage-stable/dev-python/gpep517/gpep517-14.ebuild
vendored
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# Copyright 2022-2023 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=no
|
||||||
|
PYTHON_COMPAT=( pypy3 python3_{10..12} )
|
||||||
|
|
||||||
|
inherit distutils-r1
|
||||||
|
|
||||||
|
DESCRIPTION="A backend script to aid installing Python packages in Gentoo"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://pypi.org/project/gpep517/
|
||||||
|
https://github.com/projg2/gpep517/
|
||||||
|
"
|
||||||
|
SRC_URI="
|
||||||
|
https://github.com/projg2/gpep517/archive/v${PV}.tar.gz
|
||||||
|
-> ${P}.gh.tar.gz
|
||||||
|
"
|
||||||
|
|
||||||
|
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/installer-0.5.0[${PYTHON_USEDEP}]
|
||||||
|
$(python_gen_cond_dep '
|
||||||
|
>=dev-python/tomli-1.2.3[${PYTHON_USEDEP}]
|
||||||
|
' 3.{9..10})
|
||||||
|
"
|
||||||
|
|
||||||
|
distutils_enable_tests pytest
|
||||||
|
|
||||||
|
python_install() {
|
||||||
|
python_domodule gpep517
|
||||||
|
python_newscript - gpep517 <<-EOF
|
||||||
|
#!${EPREFIX}/usr/bin/python
|
||||||
|
import sys
|
||||||
|
from gpep517.__main__ import main
|
||||||
|
sys.exit(main())
|
||||||
|
EOF
|
||||||
|
}
|
43
sdk_container/src/third_party/portage-stable/dev-python/gpep517/gpep517-15.ebuild
vendored
Normal file
43
sdk_container/src/third_party/portage-stable/dev-python/gpep517/gpep517-15.ebuild
vendored
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# Copyright 2022-2023 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=no
|
||||||
|
PYTHON_COMPAT=( pypy3 python3_{10..12} )
|
||||||
|
|
||||||
|
inherit distutils-r1
|
||||||
|
|
||||||
|
DESCRIPTION="A backend script to aid installing Python packages in Gentoo"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://pypi.org/project/gpep517/
|
||||||
|
https://github.com/projg2/gpep517/
|
||||||
|
"
|
||||||
|
SRC_URI="
|
||||||
|
https://github.com/projg2/gpep517/archive/v${PV}.tar.gz
|
||||||
|
-> ${P}.gh.tar.gz
|
||||||
|
"
|
||||||
|
|
||||||
|
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/installer-0.5.0[${PYTHON_USEDEP}]
|
||||||
|
$(python_gen_cond_dep '
|
||||||
|
>=dev-python/tomli-1.2.3[${PYTHON_USEDEP}]
|
||||||
|
' 3.{9..10})
|
||||||
|
"
|
||||||
|
|
||||||
|
distutils_enable_tests pytest
|
||||||
|
|
||||||
|
python_install() {
|
||||||
|
python_domodule gpep517
|
||||||
|
python_newscript - gpep517 <<-EOF
|
||||||
|
#!${EPREFIX}/usr/bin/python
|
||||||
|
import sys
|
||||||
|
from gpep517.__main__ import main
|
||||||
|
sys.exit(main())
|
||||||
|
EOF
|
||||||
|
}
|
@ -1,4 +1 @@
|
|||||||
DIST inflect-6.0.4.tar.gz 71131 BLAKE2B 24ec6f25462594fde4558f7a4269c68d31989ead54c982f3a4382b5f0c192fd5fcac7544413fecef0abaf7c3fe2f9b4a8049fc7dc7d324e4397fb6a81763ef8e SHA512 96aaa74b3e8c5dcc91d81af336af73535826f3cedaa556d6baf540ca54db1a7c1f17a372c240446c0d81697520eab154bad4f0aad6195c6ab8e131ae443d3811
|
|
||||||
DIST inflect-6.1.0.tar.gz 71080 BLAKE2B a4f86fa3d64f979ad184d3744dd40c5a220ea904bef3cc87af3f675febdd1346b918797a879ebee368f4d9381e698476229b538fe15f14921c41351450132a04 SHA512 2457ed594081a3f26390e88b5d5826867cd3d54ffd73c4cfe52c20cac873157ec64e30ff3e01efebb0b1edf8b0e412930bae434e1cd8c7920a273667d5e6eb68
|
|
||||||
DIST inflect-6.2.0.tar.gz 71776 BLAKE2B f0ddd4a00d23db6462d8286baf11f46596cf1292dff327940e7aab2d17e73571f8ff68bb54f1b449176398448b1478c0b99e886990dbed75b33ba170bb54a343 SHA512 ebc1c0e0518112417bfbb1147c42e2c867e1a3dffb22a67bb995170a04c3813e55620bf6fd07d1c40d380bc8886435ec634c477f706134e4f8943c94b3269851
|
|
||||||
DIST inflect-7.0.0.tar.gz 70963 BLAKE2B ae896109acd33946e05902d121ecbd95e04dc33a1d6da6035148521de5baff8cff877a5c56c104bde29d56025e231e20f97e0ee50686de0ec19b567d53612314 SHA512 b2ca39d0e36cda8c8c42d208443d3b84b10d659dcd0d368273503d6e76df19c61ac3c623d526ea918ca8b347d6db8bdfb691609e480eaa33dd4f1c37e008473b
|
DIST inflect-7.0.0.tar.gz 70963 BLAKE2B ae896109acd33946e05902d121ecbd95e04dc33a1d6da6035148521de5baff8cff877a5c56c104bde29d56025e231e20f97e0ee50686de0ec19b567d53612314 SHA512 b2ca39d0e36cda8c8c42d208443d3b84b10d659dcd0d368273503d6e76df19c61ac3c623d526ea918ca8b347d6db8bdfb691609e480eaa33dd4f1c37e008473b
|
||||||
|
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