mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-25 15:41:04 +02:00
Merge pull request #934 from flatcar/buildbot/weekly-portage-stable-package-updates-2023-06-19
Weekly portage-stable package updates 2023-06-19
This commit is contained in:
commit
283423132f
@ -375,7 +375,6 @@ sys-apps/lshw
|
|||||||
sys-apps/makedev
|
sys-apps/makedev
|
||||||
sys-apps/man-db
|
sys-apps/man-db
|
||||||
sys-apps/man-pages
|
sys-apps/man-pages
|
||||||
sys-apps/man-pages-posix
|
|
||||||
sys-apps/miscfiles
|
sys-apps/miscfiles
|
||||||
sys-apps/net-tools
|
sys-apps/net-tools
|
||||||
sys-apps/nvme-cli
|
sys-apps/nvme-cli
|
||||||
|
1
changelog/security/2023-06-29-weekly-updates.md
Normal file
1
changelog/security/2023-06-29-weekly-updates.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
- vim ([CVE-2023-2426](https://nvd.nist.gov/vuln/detail/CVE-2023-2426))
|
25
changelog/updates/2023-06-29-weekly-updates.md
Normal file
25
changelog/updates/2023-06-29-weekly-updates.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
- XZ utils ([5.4.3](https://git.tukaani.org/?p=xz.git;a=blob;f=NEWS;h=2f4d35adca6198671434d2988803cc9316ad1ec8;hb=dbb3a536ed9873ffa0870321f6873e564c6a9da8))
|
||||||
|
- vim ([9.0.1503](https://github.com/vim/vim/commits/v9.0.1503))
|
||||||
|
- sqlite ([3.42.0](https://sqlite.org/releaselog/3_42_0.html))
|
||||||
|
- python ([3.10.12](https://www.python.org/downloads/release/python-31012/))
|
||||||
|
- libgpg-error ([1.47](https://dev.gnupg.org/T6231))
|
||||||
|
- bpftool ([6.3](https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/log/tools/bpf/bpftool?h=v6.3))
|
||||||
|
- strace ([6.3](https://github.com/strace/strace/releases/tag/v6.3))
|
||||||
|
- bind tools ([9.16.41](https://bind9.readthedocs.io/en/v9.16.41/notes.html#notes-for-bind-9-16-41))
|
||||||
|
- libpcap ([1.10.4](https://github.com/the-tcpdump-group/libpcap/blob/24832dd2728bd95ed9b9464ef27b47a943c38003/CHANGES#L51))
|
||||||
|
- curl ([8.1.2](https://curl.se/changes.html#8_1_2))
|
||||||
|
- wget ([1.21.4](https://lists.gnu.org/archive/html/info-gnu/2023-05/msg00003.html))
|
||||||
|
- whois ([5.5.17](https://github.com/rfc1036/whois/commit/bac7108b01cfd54c517444efa1239e10e6edd5a4))
|
||||||
|
- coreutils ([9.3](https://lists.gnu.org/archive/html/info-gnu/2023-04/msg00006.html))
|
||||||
|
- diffutils ([3.10](https://lists.gnu.org/archive/html/info-gnu/2023-05/msg00009.html))
|
||||||
|
- ethtool ([6.3](https://git.kernel.org/pub/scm/network/ethtool/ethtool.git/commit/?id=7bdf78f0d2a9ae1571fe9444e552490130e573fd))
|
||||||
|
- gawk ([5.2.2](https://lists.gnu.org/archive/html/info-gnu/2023-05/msg00008.html))
|
||||||
|
- grep ([3.11](https://lists.gnu.org/archive/html/info-gnu/2023-05/msg00004.html))
|
||||||
|
- hwdata ([0.371](https://github.com/vcrhonek/hwdata/commits/v0.371))
|
||||||
|
- iproute ([6.3.0](https://lwn.net/Articles/930473/))
|
||||||
|
- less ([633](http://www.greenwoodsoftware.com/less/news.633.html))
|
||||||
|
- pciutils ([3.10.0](https://github.com/pciutils/pciutils/blob/v3.10.0/ChangeLog))
|
||||||
|
- portage ([3.0.46](https://gitweb.gentoo.org/proj/portage.git/tree/NEWS?h=portage-3.0.46))
|
||||||
|
- gdb ([13.2](https://lists.gnu.org/archive/html/info-gnu/2023-05/msg00011.html))
|
||||||
|
- intel-microcode ([20230512](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/tag/microcode-20230512))
|
||||||
|
- multipath-tools ([0.9.5](https://github.com/opensvc/multipath-tools/commits/0.9.5))
|
@ -22,6 +22,9 @@
|
|||||||
=dev-embedded/u-boot-tools-2021.04_rc2 ~arm64
|
=dev-embedded/u-boot-tools-2021.04_rc2 ~arm64
|
||||||
=dev-lang/nasm-2.15.05 ~arm64
|
=dev-lang/nasm-2.15.05 ~arm64
|
||||||
|
|
||||||
|
# Keep versions on both arches in sync.
|
||||||
|
=dev-lang/python-3.10.12 ~amd64
|
||||||
|
|
||||||
# Accept unstable host Rust compilers
|
# Accept unstable host Rust compilers
|
||||||
=dev-lang/rust-1.70.0 ~amd64 ~arm64
|
=dev-lang/rust-1.70.0 ~amd64 ~arm64
|
||||||
|
|
||||||
@ -31,11 +34,7 @@
|
|||||||
# 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/libgcrypt-1.10.1-r3 ~arm64
|
=dev-libs/libgcrypt-1.10.1-r3 ~arm64
|
||||||
=dev-util/bpftool-6.2.1 ~arm64
|
=dev-util/bpftool-6.3 ~arm64
|
||||||
|
|
||||||
# Required for addressing CVE-2023-31124, CVE-2023-31130,
|
|
||||||
# CVE-2023-31147 and CVE-2023-32067.
|
|
||||||
=net-dns/c-ares-1.19.1 ~amd64 ~arm64
|
|
||||||
|
|
||||||
# Keep versions on both arches in sync.
|
# Keep versions on both arches in sync.
|
||||||
=net-firewall/conntrack-tools-1.4.6-r1 ~arm64
|
=net-firewall/conntrack-tools-1.4.6-r1 ~arm64
|
||||||
@ -48,7 +47,7 @@
|
|||||||
=net-libs/libnetfilter_cttimeout-1.0.0-r1 ~arm64
|
=net-libs/libnetfilter_cttimeout-1.0.0-r1 ~arm64
|
||||||
|
|
||||||
# Required for addressing CVE-2023-28319, CVE-2023-28320, CVE-2023-28321 and CVE-2023-28322.
|
# Required for addressing CVE-2023-28319, CVE-2023-28320, CVE-2023-28321 and CVE-2023-28322.
|
||||||
=net-misc/curl-8.1.0-r1 ~amd64 ~arm64
|
=net-misc/curl-8.1.2 ~amd64 ~arm64
|
||||||
|
|
||||||
# Keep versions on both arches in sync.
|
# Keep versions on both arches in sync.
|
||||||
=sec-policy/selinux-base-2.20200818-r2 ~arm64
|
=sec-policy/selinux-base-2.20200818-r2 ~arm64
|
||||||
@ -56,10 +55,10 @@
|
|||||||
=sec-policy/selinux-unconfined-2.20200818-r2 ~arm64
|
=sec-policy/selinux-unconfined-2.20200818-r2 ~arm64
|
||||||
=sec-policy/selinux-virt-2.20200818-r2 ~arm64
|
=sec-policy/selinux-virt-2.20200818-r2 ~arm64
|
||||||
=sys-apps/checkpolicy-3.1 ~arm64
|
=sys-apps/checkpolicy-3.1 ~arm64
|
||||||
|
=sys-apps/coreutils-9.3-r2 ~arm64
|
||||||
# Keep versions on both arches in sync.
|
|
||||||
=sys-apps/kexec-tools-2.0.24 ~arm64
|
=sys-apps/kexec-tools-2.0.24 ~arm64
|
||||||
=sys-apps/policycoreutils-3.1-r3 ~arm64
|
=sys-apps/policycoreutils-3.1-r3 ~arm64
|
||||||
|
=sys-apps/sandbox-2.30-r1 ~arm64
|
||||||
=sys-apps/semodule-utils-3.1 ~arm64
|
=sys-apps/semodule-utils-3.1 ~arm64
|
||||||
|
|
||||||
# Needed to force enable ipvsadm for arm64.
|
# Needed to force enable ipvsadm for arm64.
|
||||||
@ -72,7 +71,7 @@
|
|||||||
=sys-fs/cryptsetup-2.4.3-r1 ~amd64 ~arm64
|
=sys-fs/cryptsetup-2.4.3-r1 ~amd64 ~arm64
|
||||||
|
|
||||||
# Keep versions on both arches in sync.
|
# Keep versions on both arches in sync.
|
||||||
=sys-fs/multipath-tools-0.9.4-r1 ~amd64
|
=sys-fs/multipath-tools-0.9.5 ~amd64
|
||||||
=sys-libs/libselinux-3.1-r2 ~arm64
|
=sys-libs/libselinux-3.1-r2 ~arm64
|
||||||
=sys-libs/libsemanage-3.1-r1 ~arm64
|
=sys-libs/libsemanage-3.1-r1 ~arm64
|
||||||
=sys-libs/libsepol-3.1 ~arm64
|
=sys-libs/libsepol-3.1 ~arm64
|
||||||
|
@ -3,3 +3,9 @@
|
|||||||
# that results from the migration (python -> virtual/libcrypt ->
|
# that results from the migration (python -> virtual/libcrypt ->
|
||||||
# libxcrypt -> glibc -> python).
|
# libxcrypt -> glibc -> python).
|
||||||
=virtual/libcrypt-1-r1
|
=virtual/libcrypt-1-r1
|
||||||
|
|
||||||
|
# Overwrite portage-stable mask. We haven't seen LLVM related problems
|
||||||
|
# with rust so far, so keep using 1.70.0.
|
||||||
|
~dev-lang/rust-1.70.0
|
||||||
|
~dev-lang/rust-bin-1.70.0
|
||||||
|
~virtual/rust-1.70.0
|
||||||
|
@ -19,3 +19,6 @@ sys-libs/glibc crypt
|
|||||||
|
|
||||||
# Do not force this flag, we don't need XATTR_PAX
|
# Do not force this flag, we don't need XATTR_PAX
|
||||||
sys-apps/portage -xattr
|
sys-apps/portage -xattr
|
||||||
|
|
||||||
|
# Force openssl provider for net-misc/curl
|
||||||
|
net-misc/curl ssl openssl curl_ssl_openssl
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright 2020 Gentoo Authors
|
# Copyright 2020-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
|
@ -1,2 +1,2 @@
|
|||||||
DIST eselect-1.4.17.tar.xz 178980 BLAKE2B d905ac88bc009080912af75e64c7920d745788866fa3cb35466d68a652efbbd6984d6e1efeed76d9a344aed94705b74c85aa43e9c037d4d548d2e24afa69bd7a SHA512 35dc4c52f44c4f64db9c0dc2aec57b3055a6d36760b1bbbd094ad11b3f9e71a731444802632817b89c3b511f1dc9bb92046b59322d177e13fdc501ed767b591e
|
DIST eselect-1.4.22.tar.xz 183480 BLAKE2B 8f86bdddaf98bc075694bdf7283cbd366e0ef93635472b3bbac11fdd9765984cd82e493b16836bae66e4b2c42a9cb33ad0d2aacaaf8529b59e4898e11f172d26 SHA512 73a10278d604f462aefa099df398eec2b08aee33da69419351ff2faf1cf4c0f3de0f301d92015e52da63046fe7e2c1c388e11ac84b7deb3def505a59fa291dac
|
||||||
DIST eselect-1.4.20.tar.xz 180272 BLAKE2B 424653d00eda45335c3aaae50f6fbf2e89486da4529f657596516352f3b7fcb9859ceb2dc5b9762a34c44fb64e645fa27c46b86453bf50be6e8ae820664a4289 SHA512 9589ed89c4d5d31f71d535886eb50da67b84dec8a13a5df081e7569efee861dede4eaa43a0bfb9930c5b95d4f334e19245cb8820a73f7361527da262da1d1fb2
|
DIST eselect-1.4.25.tar.xz 184300 BLAKE2B 630fe27338bee0c921a2f90e42d0a8abbb60a141a82bc2c4e7cf43d37582c24b06986ae1cbd341f8d3e69d011edc6c29675bf91ceaf1dcbc2593086f451b8f5f SHA512 98f2752d61e2c31ff6d735d5df0e7d98c3cc51d51c26b71d796948b141ccbc017002185022e6e1e48660ae0012bfc9cd383dd5ac50f644b35bb0893b9271121b
|
||||||
|
@ -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
|
||||||
@ -11,7 +11,7 @@ SRC_URI="https://dev.gentoo.org/~ulm/eselect/${P}.tar.xz"
|
|||||||
|
|
||||||
LICENSE="GPL-2+ || ( GPL-2+ CC-BY-SA-4.0 )"
|
LICENSE="GPL-2+ || ( GPL-2+ CC-BY-SA-4.0 )"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-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="doc emacs vim-syntax"
|
IUSE="doc emacs vim-syntax"
|
||||||
|
|
||||||
DEPEND="sys-apps/sed
|
DEPEND="sys-apps/sed
|
||||||
@ -26,6 +26,8 @@ BDEPEND="doc? ( dev-python/docutils )"
|
|||||||
PDEPEND="emacs? ( app-emacs/eselect-mode )
|
PDEPEND="emacs? ( app-emacs/eselect-mode )
|
||||||
vim-syntax? ( app-vim/eselect-syntax )"
|
vim-syntax? ( app-vim/eselect-syntax )"
|
||||||
|
|
||||||
|
PATCHES=( "${FILESDIR}/${P}-env-module.patch" )
|
||||||
|
|
||||||
src_compile() {
|
src_compile() {
|
||||||
emake
|
emake
|
||||||
use doc && emake html
|
use doc && emake html
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright 1999-2021 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
|
||||||
@ -11,7 +11,7 @@ SRC_URI="https://dev.gentoo.org/~ulm/eselect/${P}.tar.xz"
|
|||||||
|
|
||||||
LICENSE="GPL-2+ || ( GPL-2+ CC-BY-SA-4.0 )"
|
LICENSE="GPL-2+ || ( GPL-2+ CC-BY-SA-4.0 )"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-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="doc emacs vim-syntax"
|
IUSE="doc emacs vim-syntax"
|
||||||
|
|
||||||
DEPEND="sys-apps/sed
|
DEPEND="sys-apps/sed
|
@ -0,0 +1,19 @@
|
|||||||
|
env.eselect: More robust file type detection
|
||||||
|
https://bugs.gentoo.org/908401
|
||||||
|
|
||||||
|
--- a/modules/env.eselect
|
||||||
|
+++ b/modules/env.eselect
|
||||||
|
@@ -46,9 +46,10 @@ is_envfile() {
|
||||||
|
[[ -n ${envfile##*~} ]] || return 1
|
||||||
|
[[ ${envfile##*.} != bak ]] || return 1
|
||||||
|
|
||||||
|
- mime=$(POSIXLY_CORRECT=1 file -i "${envfile}" \
|
||||||
|
- | cut -d ' ' -f 2 | sed -e 's/;$//')
|
||||||
|
- if ! has ${mime} ${MIME_WHITELIST}; then
|
||||||
|
+ mime=$(POSIXLY_CORRECT=1 file -bi -e soft "${envfile}") \
|
||||||
|
+ || die "'file' command failed"
|
||||||
|
+ mime=${mime%%;*}
|
||||||
|
+ if ! has "${mime}" ${MIME_WHITELIST}; then
|
||||||
|
echo "Skipping non-text file ${envfile}."
|
||||||
|
return 1
|
||||||
|
fi
|
@ -5,4 +5,7 @@
|
|||||||
<email>eselect@gentoo.org</email>
|
<email>eselect@gentoo.org</email>
|
||||||
<name>eselect configuration and management tool</name>
|
<name>eselect configuration and management tool</name>
|
||||||
</maintainer>
|
</maintainer>
|
||||||
|
<upstream>
|
||||||
|
<remote-id type="gentoo">proj/eselect</remote-id>
|
||||||
|
</upstream>
|
||||||
</pkgmetadata>
|
</pkgmetadata>
|
||||||
|
@ -11,7 +11,7 @@ SRC_URI="mirror://gnu/cpio/${P}.tar.bz2"
|
|||||||
|
|
||||||
LICENSE="GPL-3+"
|
LICENSE="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 ~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="nls"
|
IUSE="nls"
|
||||||
|
|
||||||
PDEPEND="
|
PDEPEND="
|
||||||
|
@ -12,7 +12,7 @@ SRC_URI="mirror://gentoo/${P}.tar.xz
|
|||||||
|
|
||||||
LICENSE="BSD-1"
|
LICENSE="BSD-1"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~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=""
|
IUSE=""
|
||||||
|
|
||||||
DEPEND=""
|
DEPEND=""
|
||||||
|
@ -35,7 +35,7 @@ else
|
|||||||
"
|
"
|
||||||
|
|
||||||
if [[ ${PV} != *_alpha* && ${PV} != *_beta* ]] ; then
|
if [[ ${PV} != *_alpha* && ${PV} != *_beta* ]] ; 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
|
||||||
|
|
||||||
S="${WORKDIR}/${MY_P}"
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
@ -1 +1,2 @@
|
|||||||
DIST libmd-1.0.4.tar.xz 264472 BLAKE2B ddc2da74635f5cc009c66a58ae82b83e6e0930e18af8a6b0ecec7cbf378246707b493a99fb97d3491d0d626a0d5ef068baea6a3ba2ec311c5a1516ba5b4e2fd5 SHA512 731553ecc5e0e1eb228cced8fccd531fe31fb5c7627ca30013d287e1aeb8222959cf7498fbb7414bbabb967b25d4e8b0edd54fc47f6ccf55fc91087db0725ce3
|
DIST libmd-1.0.4.tar.xz 264472 BLAKE2B ddc2da74635f5cc009c66a58ae82b83e6e0930e18af8a6b0ecec7cbf378246707b493a99fb97d3491d0d626a0d5ef068baea6a3ba2ec311c5a1516ba5b4e2fd5 SHA512 731553ecc5e0e1eb228cced8fccd531fe31fb5c7627ca30013d287e1aeb8222959cf7498fbb7414bbabb967b25d4e8b0edd54fc47f6ccf55fc91087db0725ce3
|
||||||
|
DIST libmd-1.1.0.tar.xz 271228 BLAKE2B a4dc72be4a46609d41453b19ba3110043e74fd0810d59f872e11151dbe87b0bdab203ef72c9d19255db32493b229bc0d33549e787979a42db08c838a810e1cdc SHA512 5d0da3337038e474fae7377bbc646d17214e72dc848a7aadc157f49333ce7b5ac1456e45d13674bd410ea08477c6115fc4282fed6c8e6a0bf63537a418c0df96
|
||||||
|
23
sdk_container/src/third_party/portage-stable/app-crypt/libmd/libmd-1.1.0.ebuild
vendored
Normal file
23
sdk_container/src/third_party/portage-stable/app-crypt/libmd/libmd-1.1.0.ebuild
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit multilib-minimal
|
||||||
|
|
||||||
|
DESCRIPTION="Message Digest functions from BSD systems"
|
||||||
|
HOMEPAGE="https://www.hadrons.org/software/libmd/"
|
||||||
|
SRC_URI="https://archive.hadrons.org/software/libmd/${P}.tar.xz"
|
||||||
|
|
||||||
|
LICENSE="|| ( BSD BSD-2 ISC BEER-WARE public-domain )"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
|
||||||
|
|
||||||
|
multilib_src_configure() {
|
||||||
|
ECONF_SOURCE="${S}" econf
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install_all() {
|
||||||
|
einstalldocs
|
||||||
|
find "${ED}" -type f -name '*.la' -delete || die
|
||||||
|
}
|
@ -1 +1,2 @@
|
|||||||
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.21.tar.gz 8622539 BLAKE2B 0f3a899dc1758ea013ebad3aae80605c14f0f6713919d005e799162a0c50a162f33d924c74a6f87ce225e1ab3847df2c0effb25b772fe259e7401531964b696f SHA512 8ee2366888f6d553a44fc642a89c69a57dbc1ec4c89a36b9ba8b00584a9a32c73a2b0566ba5f21852ad9617046666c276dac402393bf8eb19fbe0c07a838071a
|
||||||
|
146
sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.21.ebuild
vendored
Normal file
146
sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.21.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
|
||||||
|
}
|
@ -84,7 +84,7 @@ color magenta ":[^[:space:]]+([[:space:]]|$)"
|
|||||||
color brightred "[[:space:]]+\+?[A-Za-z0-9+_@-]+"
|
color brightred "[[:space:]]+\+?[A-Za-z0-9+_@-]+"
|
||||||
color brightblue "[[:space:]]+-[A-Za-z0-9+_@-]+"
|
color brightblue "[[:space:]]+-[A-Za-z0-9+_@-]+"
|
||||||
## Accepted arches:
|
## Accepted arches:
|
||||||
color white "[~-]?\<(alpha|amd64|arm(64)?|hppa|ia64|loong|m68k|mips|ppc(64)?|riscv|s390|sparc|x86)(-(cygwin|linux|macos|solaris|winnt))?\>"
|
color white "[~-]?\<(alpha|amd64|arm(64)?|hppa|ia64|loong|m68k|mips|ppc(64)?|riscv|s390|sparc|x86)(-(linux|macos|solaris))?\>"
|
||||||
color white "[[:space:]][*~-]?\*"
|
color white "[[:space:]][*~-]?\*"
|
||||||
## Categories:
|
## Categories:
|
||||||
color cyan "^[[:space:]]*[^/]*/"
|
color cyan "^[[:space:]]*[^/]*/"
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
DIST vim-9.0.1157.tar.gz 16924574 BLAKE2B 0cdc6cf61f5abdaff0762b98550bfa5bae8f0485ddd0e9947a5fe52390f9da54fc8f5fdae767fb8f5d3ac2b441253917a80ae7f6092f67b69bdc9b6a630df8e2 SHA512 19240a9bcf5900766db42e2894b1bf7b849274711f17dc267671aacd867b334c3d30f39947dde7dd0245f289e9ad801eeb272f34a2ab15d01fac40bf71a54271
|
|
||||||
DIST vim-9.0.1403.tar.gz 16976705 BLAKE2B 9664d52de488086308fcbcda0b0a1167161afbf0efbb40dd9ce9e2393f0ada35e0a44d7f0c3f789d26ae1427604a281f689e87885fbb1557dce12a69898ec46d SHA512 bd83feba38a4aa9b3cf910a0b5a2c153abc4c6eaf9abf0ebee389879ff9ddee51c6f9dba5151aab5df3f73594cf8921d0a0e34121c50e65366cdcdd6482fd00f
|
DIST vim-9.0.1403.tar.gz 16976705 BLAKE2B 9664d52de488086308fcbcda0b0a1167161afbf0efbb40dd9ce9e2393f0ada35e0a44d7f0c3f789d26ae1427604a281f689e87885fbb1557dce12a69898ec46d SHA512 bd83feba38a4aa9b3cf910a0b5a2c153abc4c6eaf9abf0ebee389879ff9ddee51c6f9dba5151aab5df3f73594cf8921d0a0e34121c50e65366cdcdd6482fd00f
|
||||||
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-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
|
||||||
|
@ -1,231 +0,0 @@
|
|||||||
# 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 ~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}
|
|
||||||
--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
|
|
||||||
}
|
|
@ -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}"
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
DIST vim-9.0.1157.tar.gz 16924574 BLAKE2B 0cdc6cf61f5abdaff0762b98550bfa5bae8f0485ddd0e9947a5fe52390f9da54fc8f5fdae767fb8f5d3ac2b441253917a80ae7f6092f67b69bdc9b6a630df8e2 SHA512 19240a9bcf5900766db42e2894b1bf7b849274711f17dc267671aacd867b334c3d30f39947dde7dd0245f289e9ad801eeb272f34a2ab15d01fac40bf71a54271
|
|
||||||
DIST vim-9.0.1403.tar.gz 16976705 BLAKE2B 9664d52de488086308fcbcda0b0a1167161afbf0efbb40dd9ce9e2393f0ada35e0a44d7f0c3f789d26ae1427604a281f689e87885fbb1557dce12a69898ec46d SHA512 bd83feba38a4aa9b3cf910a0b5a2c153abc4c6eaf9abf0ebee389879ff9ddee51c6f9dba5151aab5df3f73594cf8921d0a0e34121c50e65366cdcdd6482fd00f
|
DIST vim-9.0.1403.tar.gz 16976705 BLAKE2B 9664d52de488086308fcbcda0b0a1167161afbf0efbb40dd9ce9e2393f0ada35e0a44d7f0c3f789d26ae1427604a281f689e87885fbb1557dce12a69898ec46d SHA512 bd83feba38a4aa9b3cf910a0b5a2c153abc4c6eaf9abf0ebee389879ff9ddee51c6f9dba5151aab5df3f73594cf8921d0a0e34121c50e65366cdcdd6482fd00f
|
||||||
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-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
|
||||||
|
@ -1,371 +0,0 @@
|
|||||||
# 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 ~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}
|
|
||||||
!<app-editors/vim-core-8.2.4328-r1
|
|
||||||
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} \
|
|
||||||
"${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
|
|
||||||
}
|
|
@ -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"
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
DIST qemu-6.0.0.tar.xz 107333232 BLAKE2B 7746329d3e13782b7c346ce4052cc517cfc65cd9b2d514d199e4d5b8570ca79566ec04b0c114db2e97c84e68eb551e0d4cdce1b14b91a88fe08d2a5f682c1418 SHA512 ee3ff00aebec4d8891d2ff6dabe4e667e510b2a4fe3f6190aa34673a91ea32dcd2db2e9bf94c2f1bf05aa79788f17cfbbedc6027c0988ea08a92587b79ee05e4
|
DIST qemu-6.0.0.tar.xz 107333232 BLAKE2B 7746329d3e13782b7c346ce4052cc517cfc65cd9b2d514d199e4d5b8570ca79566ec04b0c114db2e97c84e68eb551e0d4cdce1b14b91a88fe08d2a5f682c1418 SHA512 ee3ff00aebec4d8891d2ff6dabe4e667e510b2a4fe3f6190aa34673a91ea32dcd2db2e9bf94c2f1bf05aa79788f17cfbbedc6027c0988ea08a92587b79ee05e4
|
||||||
DIST qemu-7.1.0.tar.xz 121833004 BLAKE2B e05f91ce4993c7591a2df08b5fb017f8b8ec2141ab7bfd55d14730ea6b793ac1091de539992058392a5522d4e58beee92a87752707be58e3619b8213ef9f35bf SHA512 c60c5ff8ec99b7552e485768908920658fdd8035ff7a6fa370fb6881957dc8b7e5f18ff1a8f49bd6aa22909ede2a7c084986d8244f12074ccd33ebe40a0c411f
|
DIST qemu-7.1.0.tar.xz 121833004 BLAKE2B e05f91ce4993c7591a2df08b5fb017f8b8ec2141ab7bfd55d14730ea6b793ac1091de539992058392a5522d4e58beee92a87752707be58e3619b8213ef9f35bf SHA512 c60c5ff8ec99b7552e485768908920658fdd8035ff7a6fa370fb6881957dc8b7e5f18ff1a8f49bd6aa22909ede2a7c084986d8244f12074ccd33ebe40a0c411f
|
||||||
DIST qemu-8.0.0.tar.xz 127835148 BLAKE2B 9b54aae10fe09691a26e68374723ded5fdda6409673b4de9461a25ee060cfd03968a16ddeadc21d48b9262e53aa6d4e5eb645376969f97c65807fad19607b04f SHA512 1f31d1e653dec2d35f1b7a5468ee3f471553b48eca8c8afafffcf9243c6b2260e78a5b73da3fe567f9b85d4133573eebd397747b3aec501fb24076263eb07b27
|
DIST qemu-8.0.0.tar.xz 127835148 BLAKE2B 9b54aae10fe09691a26e68374723ded5fdda6409673b4de9461a25ee060cfd03968a16ddeadc21d48b9262e53aa6d4e5eb645376969f97c65807fad19607b04f SHA512 1f31d1e653dec2d35f1b7a5468ee3f471553b48eca8c8afafffcf9243c6b2260e78a5b73da3fe567f9b85d4133573eebd397747b3aec501fb24076263eb07b27
|
||||||
|
DIST qemu-8.0.2.tar.xz 126707132 BLAKE2B f2b1a63e10c42aabfe39722c7732d0f04818ad367b769b3deb29c5bf9adcabc3aca1706f3c40fafeeb57ac1f7a61ded5066de32134c483e2fd27bc65b4b7d30a SHA512 4e915d33a662bf55b09247fb85150be376c92270d3764e3d6470c452cb70cc558f54e84de5610dd60a9eb3ea02d5d4277b1ec75c9804967d278fa8361c7f9b9a
|
||||||
|
@ -0,0 +1,81 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{9..11} )
|
||||||
|
|
||||||
|
inherit edo systemd toolchain-funcs python-any-r1 udev
|
||||||
|
|
||||||
|
MY_PN="qemu"
|
||||||
|
MY_P="${MY_PN}-${PV}"
|
||||||
|
|
||||||
|
DESCRIPTION="QEMU Guest Agent (qemu-ga) for use when running inside a VM"
|
||||||
|
HOMEPAGE="https://wiki.qemu.org/Features/GuestAgent"
|
||||||
|
SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz"
|
||||||
|
|
||||||
|
LICENSE="GPL-2 BSD-2"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
|
||||||
|
|
||||||
|
RDEPEND="dev-libs/glib"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="${PYTHON_DEPS}
|
||||||
|
dev-lang/perl
|
||||||
|
dev-util/ninja"
|
||||||
|
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
)
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
tc-export AR LD OBJCOPY RANLIB
|
||||||
|
|
||||||
|
local myconf=(
|
||||||
|
--prefix=/usr
|
||||||
|
--sysconfdir=/etc
|
||||||
|
--libdir="/usr/$(get_libdir)"
|
||||||
|
--localstatedir=/
|
||||||
|
--disable-bsd-user
|
||||||
|
--disable-linux-user
|
||||||
|
--disable-system
|
||||||
|
--disable-strip
|
||||||
|
--enable-tools
|
||||||
|
--disable-werror
|
||||||
|
--enable-guest-agent
|
||||||
|
--python="${PYTHON}"
|
||||||
|
--cc="$(tc-getCC)"
|
||||||
|
--cxx="$(tc-getCXX)"
|
||||||
|
--host-cc="$(tc-getBUILD_CC)"
|
||||||
|
)
|
||||||
|
|
||||||
|
edo ./configure "${myconf[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
dobin build/qga/qemu-ga
|
||||||
|
|
||||||
|
# Normal init stuff
|
||||||
|
newinitd "${FILESDIR}/qemu-ga.init-r1" qemu-guest-agent
|
||||||
|
newconfd "${FILESDIR}/qemu-ga.conf-r1" qemu-guest-agent
|
||||||
|
|
||||||
|
insinto /etc/logrotate.d
|
||||||
|
newins "${FILESDIR}/qemu-ga.logrotate" qemu-guest-agent
|
||||||
|
|
||||||
|
# systemd stuff
|
||||||
|
udev_newrules "${FILESDIR}/qemu-ga-systemd.udev" 99-qemu-guest-agent.rules
|
||||||
|
|
||||||
|
systemd_newunit "${FILESDIR}/qemu-ga-systemd.service" \
|
||||||
|
qemu-guest-agent.service
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
elog "You should add 'qemu-guest-agent' to the default runlevel."
|
||||||
|
elog "e.g. rc-update add qemu-guest-agent default"
|
||||||
|
udev_reload
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
udev_reload
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
DIST qemu-7.2.0-docs.tar.xz 1984184 BLAKE2B 103900fb7903ed8d75f7f012bf61fa2d6fce345b657c851d0437c3384f5735bd1cfd3129320683ea7846ea0b0940e5af5b2663c9320f12fee74b058523a8ea06 SHA512 a7edd448982865e07533c300d3e44a8b50cefbdde1982b73c24d0b2aa74315439252c59b634c75de312860874c7b06c75aa72629da681b5105f28ee936794585
|
DIST qemu-7.2.0-docs.tar.xz 1984184 BLAKE2B 103900fb7903ed8d75f7f012bf61fa2d6fce345b657c851d0437c3384f5735bd1cfd3129320683ea7846ea0b0940e5af5b2663c9320f12fee74b058523a8ea06 SHA512 a7edd448982865e07533c300d3e44a8b50cefbdde1982b73c24d0b2aa74315439252c59b634c75de312860874c7b06c75aa72629da681b5105f28ee936794585
|
||||||
DIST qemu-7.2.0.tar.xz 122408576 BLAKE2B 415ff621356c59f88b29cfe3ef5db1e282b26bbafbee3d535477c6125ccb060ec9762d9e3ab9f70ce5478804dca0a46a59bcf12c112a2462029a93e578e61530 SHA512 f3cfa00da739ba819a218d7e6e95c77fb79a8e0f487b024ddd281602e785249b81144595e3f8c746c32a4f5c4d1a88c6aebae3c162603edfbb50ae3722d7ed13
|
DIST qemu-7.2.0.tar.xz 122408576 BLAKE2B 415ff621356c59f88b29cfe3ef5db1e282b26bbafbee3d535477c6125ccb060ec9762d9e3ab9f70ce5478804dca0a46a59bcf12c112a2462029a93e578e61530 SHA512 f3cfa00da739ba819a218d7e6e95c77fb79a8e0f487b024ddd281602e785249b81144595e3f8c746c32a4f5c4d1a88c6aebae3c162603edfbb50ae3722d7ed13
|
||||||
DIST qemu-7.2.1.tar.xz 122400592 BLAKE2B bae1df5d332beaca313c4bac88f06dd5992988d7c1b6fdc6ced4043d858f437339cd7d0009ae667f9e66705117697bee7ee44ec4e911cc203d34eecc3d8f139b SHA512 e286dc66c923a5df77eb02d69235d048e80a7cced638fae52fbed385b4c3cd736cfea66bb3c9843bebf0a33e81ea141fc015e0bd82108df304f148ce59d9ae8a
|
DIST qemu-7.2.1.tar.xz 122400592 BLAKE2B bae1df5d332beaca313c4bac88f06dd5992988d7c1b6fdc6ced4043d858f437339cd7d0009ae667f9e66705117697bee7ee44ec4e911cc203d34eecc3d8f139b SHA512 e286dc66c923a5df77eb02d69235d048e80a7cced638fae52fbed385b4c3cd736cfea66bb3c9843bebf0a33e81ea141fc015e0bd82108df304f148ce59d9ae8a
|
||||||
|
DIST qemu-7.2.3.tar.xz 122395692 BLAKE2B 4e65cac7505a56da85c1d98dc6029d516dd4f07f0211ea5213724d231d448d9b49cc91a3058a2a89908608078854d97da480e6f0bc7ce47d9555c2bb1177fbdc SHA512 09523d456175da47d58d8d56fe9a95416ee3e6fd8aa7766383033396a1e5bd10f7758832f7f2b8662068ef94b21ab6a3a351c9158fb6bde0e1d7d5fb393bf6c7
|
||||||
DIST qemu-8.0.0-docs.tar.xz 3218024 BLAKE2B b764a625024e78a39470048355471e12cfb57ab3c34e764dc4200fdf5c1aea635d26095ec961979bf46f177101c5bd38618bacf7e98e04bd64688ab5e29591aa SHA512 d9dfe191372e105fe16fe8f66f41ed793ade4c89b5ab1d84b39459f3419a1ca61bd49422a83981965cc257c05eca7fd49054703f58f179f5c7b656e9473a1054
|
DIST qemu-8.0.0-docs.tar.xz 3218024 BLAKE2B b764a625024e78a39470048355471e12cfb57ab3c34e764dc4200fdf5c1aea635d26095ec961979bf46f177101c5bd38618bacf7e98e04bd64688ab5e29591aa SHA512 d9dfe191372e105fe16fe8f66f41ed793ade4c89b5ab1d84b39459f3419a1ca61bd49422a83981965cc257c05eca7fd49054703f58f179f5c7b656e9473a1054
|
||||||
DIST qemu-8.0.0.tar.xz 127835148 BLAKE2B 9b54aae10fe09691a26e68374723ded5fdda6409673b4de9461a25ee060cfd03968a16ddeadc21d48b9262e53aa6d4e5eb645376969f97c65807fad19607b04f SHA512 1f31d1e653dec2d35f1b7a5468ee3f471553b48eca8c8afafffcf9243c6b2260e78a5b73da3fe567f9b85d4133573eebd397747b3aec501fb24076263eb07b27
|
DIST qemu-8.0.0.tar.xz 127835148 BLAKE2B 9b54aae10fe09691a26e68374723ded5fdda6409673b4de9461a25ee060cfd03968a16ddeadc21d48b9262e53aa6d4e5eb645376969f97c65807fad19607b04f SHA512 1f31d1e653dec2d35f1b7a5468ee3f471553b48eca8c8afafffcf9243c6b2260e78a5b73da3fe567f9b85d4133573eebd397747b3aec501fb24076263eb07b27
|
||||||
DIST qemu-8.0.2.tar.xz 126707132 BLAKE2B f2b1a63e10c42aabfe39722c7732d0f04818ad367b769b3deb29c5bf9adcabc3aca1706f3c40fafeeb57ac1f7a61ded5066de32134c483e2fd27bc65b4b7d30a SHA512 4e915d33a662bf55b09247fb85150be376c92270d3764e3d6470c452cb70cc558f54e84de5610dd60a9eb3ea02d5d4277b1ec75c9804967d278fa8361c7f9b9a
|
DIST qemu-8.0.2.tar.xz 126707132 BLAKE2B f2b1a63e10c42aabfe39722c7732d0f04818ad367b769b3deb29c5bf9adcabc3aca1706f3c40fafeeb57ac1f7a61ded5066de32134c483e2fd27bc65b4b7d30a SHA512 4e915d33a662bf55b09247fb85150be376c92270d3764e3d6470c452cb70cc558f54e84de5610dd60a9eb3ea02d5d4277b1ec75c9804967d278fa8361c7f9b9a
|
||||||
|
@ -1,963 +0,0 @@
|
|||||||
# 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=ajak
|
|
||||||
QEMU_DOCS_VERSION="${PV}"
|
|
||||||
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
|
|
||||||
# bug #830088
|
|
||||||
QEMU_DOC_USEFLAG="+doc"
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{9,10,11} )
|
|
||||||
PYTHON_REQ_USE="ncurses,readline"
|
|
||||||
|
|
||||||
FIRMWARE_ABI_VERSION="7.2.0"
|
|
||||||
|
|
||||||
inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
|
|
||||||
pax-utils xdg-utils
|
|
||||||
|
|
||||||
if [[ ${PV} == *9999* ]]; then
|
|
||||||
QEMU_DOCS_PREBUILT=0
|
|
||||||
|
|
||||||
EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
|
|
||||||
EGIT_SUBMODULES=(
|
|
||||||
tests/fp/berkeley-softfloat-3
|
|
||||||
tests/fp/berkeley-testfloat-3
|
|
||||||
ui/keycodemapdb
|
|
||||||
)
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
else
|
|
||||||
MY_P="${PN}-${PV/_rc/-rc}"
|
|
||||||
SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
|
|
||||||
|
|
||||||
if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
|
|
||||||
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
S="${WORKDIR}/${MY_P}"
|
|
||||||
[[ "${PV}" != *_rc* ]] && KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86"
|
|
||||||
fi
|
|
||||||
|
|
||||||
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
|
|
||||||
HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
|
|
||||||
|
|
||||||
LICENSE="GPL-2 LGPL-2 BSD-2"
|
|
||||||
SLOT="0"
|
|
||||||
|
|
||||||
[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
|
|
||||||
|
|
||||||
IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
|
|
||||||
+fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
|
|
||||||
jack jemalloc +jpeg
|
|
||||||
lzo multipath
|
|
||||||
ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs
|
|
||||||
plugins +png pulseaudio python rbd sasl sdl sdl-image selinux
|
|
||||||
+slirp
|
|
||||||
smartcard snappy spice ssh static static-user systemtap test udev usb
|
|
||||||
usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
|
|
||||||
zstd"
|
|
||||||
|
|
||||||
COMMON_TARGETS="
|
|
||||||
aarch64
|
|
||||||
alpha
|
|
||||||
arm
|
|
||||||
cris
|
|
||||||
hppa
|
|
||||||
i386
|
|
||||||
loongarch64
|
|
||||||
m68k
|
|
||||||
microblaze
|
|
||||||
microblazeel
|
|
||||||
mips
|
|
||||||
mips64
|
|
||||||
mips64el
|
|
||||||
mipsel
|
|
||||||
nios2
|
|
||||||
or1k
|
|
||||||
ppc
|
|
||||||
ppc64
|
|
||||||
riscv32
|
|
||||||
riscv64
|
|
||||||
s390x
|
|
||||||
sh4
|
|
||||||
sh4eb
|
|
||||||
sparc
|
|
||||||
sparc64
|
|
||||||
x86_64
|
|
||||||
xtensa
|
|
||||||
xtensaeb
|
|
||||||
"
|
|
||||||
IUSE_SOFTMMU_TARGETS="
|
|
||||||
${COMMON_TARGETS}
|
|
||||||
avr
|
|
||||||
rx
|
|
||||||
tricore
|
|
||||||
"
|
|
||||||
IUSE_USER_TARGETS="
|
|
||||||
${COMMON_TARGETS}
|
|
||||||
aarch64_be
|
|
||||||
armeb
|
|
||||||
hexagon
|
|
||||||
mipsn32
|
|
||||||
mipsn32el
|
|
||||||
ppc64le
|
|
||||||
sparc32plus
|
|
||||||
"
|
|
||||||
|
|
||||||
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
|
|
||||||
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
|
|
||||||
IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
|
|
||||||
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
# Allow no targets to be built so that people can get a tools-only build.
|
|
||||||
# Block USE flag configurations known to not work.
|
|
||||||
REQUIRED_USE="
|
|
||||||
${PYTHON_REQUIRED_USE}
|
|
||||||
qemu_softmmu_targets_arm? ( fdt )
|
|
||||||
qemu_softmmu_targets_microblaze? ( fdt )
|
|
||||||
qemu_softmmu_targets_mips64el? ( fdt )
|
|
||||||
qemu_softmmu_targets_ppc64? ( fdt )
|
|
||||||
qemu_softmmu_targets_ppc? ( fdt )
|
|
||||||
qemu_softmmu_targets_riscv32? ( fdt )
|
|
||||||
qemu_softmmu_targets_riscv64? ( fdt )
|
|
||||||
qemu_softmmu_targets_x86_64? ( fdt )
|
|
||||||
sdl-image? ( sdl )
|
|
||||||
static? ( static-user !alsa !gtk !jack !opengl !pam !pulseaudio !plugins !rbd !snappy !udev )
|
|
||||||
static-user? ( !plugins )
|
|
||||||
virgl? ( opengl )
|
|
||||||
virtfs? ( xattr )
|
|
||||||
vnc? ( gnutls )
|
|
||||||
vte? ( gtk )
|
|
||||||
multipath? ( udev )
|
|
||||||
plugins? ( !static !static-user )
|
|
||||||
"
|
|
||||||
|
|
||||||
# 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.0[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="
|
|
||||||
sys-libs/libcap-ng[static-libs(+)]
|
|
||||||
>=sys-libs/libseccomp-2.1.0[static-libs(+)]
|
|
||||||
>=x11-libs/pixman-0.28.0[static-libs(+)]
|
|
||||||
accessibility? (
|
|
||||||
app-accessibility/brltty[api]
|
|
||||||
app-accessibility/brltty[static-libs(+)]
|
|
||||||
)
|
|
||||||
aio? ( dev-libs/libaio[static-libs(+)] )
|
|
||||||
alsa? ( >=media-libs/alsa-lib-1.0.13 )
|
|
||||||
bpf? ( dev-libs/libbpf:= )
|
|
||||||
bzip2? ( app-arch/bzip2[static-libs(+)] )
|
|
||||||
capstone? ( dev-libs/capstone:= )
|
|
||||||
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? (
|
|
||||||
dev-libs/nettle:=[static-libs(+)]
|
|
||||||
>=net-libs/gnutls-3.0:=[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(+)] )
|
|
||||||
lzo? ( dev-libs/lzo:2[static-libs(+)] )
|
|
||||||
multipath? ( sys-fs/multipath-tools )
|
|
||||||
ncurses? (
|
|
||||||
sys-libs/ncurses:=[unicode(+)]
|
|
||||||
sys-libs/ncurses:=[static-libs(+)]
|
|
||||||
)
|
|
||||||
nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
|
|
||||||
numa? ( sys-process/numactl[static-libs(+)] )
|
|
||||||
opengl? (
|
|
||||||
virtual/opengl
|
|
||||||
media-libs/libepoxy[static-libs(+)]
|
|
||||||
media-libs/mesa[static-libs(+)]
|
|
||||||
media-libs/mesa[egl(+),gbm(+)]
|
|
||||||
)
|
|
||||||
pam? ( sys-libs/pam )
|
|
||||||
png? ( media-libs/libpng:0=[static-libs(+)] )
|
|
||||||
pulseaudio? ( media-sound/pulseaudio )
|
|
||||||
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(+)] )
|
|
||||||
slirp? ( net-libs/libslirp[static-libs(+)] )
|
|
||||||
smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
|
|
||||||
snappy? ( app-arch/snappy:= )
|
|
||||||
spice? (
|
|
||||||
>=app-emulation/spice-protocol-0.12.3
|
|
||||||
>=app-emulation/spice-0.12.0[static-libs(+)]
|
|
||||||
)
|
|
||||||
ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
|
|
||||||
udev? ( virtual/libudev:= )
|
|
||||||
usb? ( >=virtual/libusb-1-r2[static-libs(+)] )
|
|
||||||
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
|
|
||||||
vde? ( net-misc/vde[static-libs(+)] )
|
|
||||||
virgl? ( media-libs/virglrenderer[static-libs(+)] )
|
|
||||||
virtfs? ( sys-libs/libcap )
|
|
||||||
xen? ( app-emulation/xen-tools:= )
|
|
||||||
zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
|
|
||||||
"
|
|
||||||
|
|
||||||
EDK2_OVMF_VERSION="202202"
|
|
||||||
SEABIOS_VERSION="1.16.0"
|
|
||||||
|
|
||||||
X86_FIRMWARE_DEPEND="
|
|
||||||
pin-upstream-blobs? (
|
|
||||||
~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
|
|
||||||
~sys-firmware/ipxe-1.21.1[binary,qemu]
|
|
||||||
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
|
||||||
~sys-firmware/sgabios-0.1_pre10[binary]
|
|
||||||
)
|
|
||||||
!pin-upstream-blobs? (
|
|
||||||
|| (
|
|
||||||
>=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
|
|
||||||
>=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
|
|
||||||
)
|
|
||||||
sys-firmware/ipxe[qemu]
|
|
||||||
|| (
|
|
||||||
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
|
|
||||||
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
|
||||||
)
|
|
||||||
sys-firmware/sgabios
|
|
||||||
)"
|
|
||||||
PPC_FIRMWARE_DEPEND="
|
|
||||||
pin-upstream-blobs? (
|
|
||||||
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
|
||||||
)
|
|
||||||
!pin-upstream-blobs? (
|
|
||||||
|| (
|
|
||||||
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
|
|
||||||
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
|
||||||
)
|
|
||||||
)
|
|
||||||
"
|
|
||||||
|
|
||||||
BDEPEND="
|
|
||||||
$(python_gen_impl_dep)
|
|
||||||
dev-lang/perl
|
|
||||||
dev-util/meson
|
|
||||||
sys-apps/texinfo
|
|
||||||
virtual/pkgconfig
|
|
||||||
doc? (
|
|
||||||
dev-python/sphinx[${PYTHON_USEDEP}]
|
|
||||||
dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
|
|
||||||
)
|
|
||||||
gtk? ( nls? ( sys-devel/gettext ) )
|
|
||||||
test? (
|
|
||||||
dev-libs/glib[utils]
|
|
||||||
sys-devel/bc
|
|
||||||
)
|
|
||||||
"
|
|
||||||
CDEPEND="
|
|
||||||
!static? (
|
|
||||||
${ALL_DEPEND//\[static-libs(+)]}
|
|
||||||
${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
|
|
||||||
)
|
|
||||||
qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
|
|
||||||
qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
|
|
||||||
qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
|
|
||||||
qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
|
|
||||||
"
|
|
||||||
DEPEND="${CDEPEND}
|
|
||||||
kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
|
|
||||||
static? (
|
|
||||||
${ALL_DEPEND}
|
|
||||||
${SOFTMMU_TOOLS_DEPEND}
|
|
||||||
)
|
|
||||||
static-user? ( ${ALL_DEPEND} )"
|
|
||||||
RDEPEND="${CDEPEND}
|
|
||||||
acct-group/kvm
|
|
||||||
selinux? (
|
|
||||||
sec-policy/selinux-qemu
|
|
||||||
sys-libs/libselinux
|
|
||||||
)"
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
|
|
||||||
"${FILESDIR}"/${PN}-6.0.0-make.patch
|
|
||||||
"${FILESDIR}"/${PN}-7.1.0-also-build-virtfs-proxy-helper.patch
|
|
||||||
"${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
|
|
||||||
)
|
|
||||||
|
|
||||||
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"
|
|
||||||
|
|
||||||
# We already force -D_FORTIFY_SOURCE=2 (or 3) in our toolchain, but
|
|
||||||
# this setting (-U then -D..=2) will prevent us from trying out 3, so
|
|
||||||
# drop it. No change to level of protection b/c we patch our toolchain.
|
|
||||||
sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die
|
|
||||||
|
|
||||||
# Remove bundled modules
|
|
||||||
rm -r dtc meson roms/*/ || die
|
|
||||||
}
|
|
||||||
|
|
||||||
##
|
|
||||||
# configures qemu based on the build directory and the build type
|
|
||||||
# we are using.
|
|
||||||
#
|
|
||||||
qemu_src_configure() {
|
|
||||||
debug-print-function ${FUNCNAME} "$@"
|
|
||||||
|
|
||||||
local buildtype=$1
|
|
||||||
local builddir="${S}/${buildtype}-build"
|
|
||||||
|
|
||||||
mkdir "${builddir}" || die
|
|
||||||
|
|
||||||
local conf_opts=(
|
|
||||||
--prefix=/usr
|
|
||||||
--sysconfdir=/etc
|
|
||||||
--bindir=/usr/bin
|
|
||||||
--libdir=/usr/$(get_libdir)
|
|
||||||
--datadir=/usr/share
|
|
||||||
--docdir=/usr/share/doc/${PF}/html
|
|
||||||
--mandir=/usr/share/man
|
|
||||||
--localstatedir=/var
|
|
||||||
--disable-bsd-user
|
|
||||||
--disable-containers # bug #732972
|
|
||||||
--disable-guest-agent
|
|
||||||
--disable-strip
|
|
||||||
--with-git-submodules=ignore
|
|
||||||
|
|
||||||
# bug #746752: TCG interpreter has a few limitations:
|
|
||||||
# - it does not support FPU
|
|
||||||
# - it's generally slower on non-self-modifying code
|
|
||||||
# It's advantage is support for host architectures
|
|
||||||
# where native codegeneration is not implemented.
|
|
||||||
# Gentoo has qemu keyworded only on targets with
|
|
||||||
# native code generation available. Avoid the interpreter.
|
|
||||||
--disable-tcg-interpreter
|
|
||||||
|
|
||||||
--disable-werror
|
|
||||||
# We support gnutls/nettle for crypto operations. It is possible
|
|
||||||
# to use gcrypt when gnutls/nettle are disabled (but not when they
|
|
||||||
# are enabled), but it's not really worth the hassle. Disable it
|
|
||||||
# all the time to avoid automatically detecting it. #568856
|
|
||||||
--disable-gcrypt
|
|
||||||
--cc="$(tc-getCC)"
|
|
||||||
--cxx="$(tc-getCXX)"
|
|
||||||
--host-cc="$(tc-getBUILD_CC)"
|
|
||||||
|
|
||||||
$(use_enable alsa)
|
|
||||||
$(use_enable debug debug-info)
|
|
||||||
$(use_enable debug debug-tcg)
|
|
||||||
$(use_enable jack)
|
|
||||||
$(use_enable nls gettext)
|
|
||||||
$(use_enable oss)
|
|
||||||
$(use_enable plugins)
|
|
||||||
$(use_enable pulseaudio pa)
|
|
||||||
$(use_enable selinux)
|
|
||||||
$(use_enable xattr attr)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Disable options not used by user targets. This simplifies building
|
|
||||||
# static user targets (USE=static-user) considerably.
|
|
||||||
conf_notuser() {
|
|
||||||
if [[ ${buildtype} == "user" ]] ; then
|
|
||||||
echo "--disable-${2:-$1}"
|
|
||||||
else
|
|
||||||
use_enable "$@"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
# Enable option only for softmmu build, but not 'user' or 'tools'
|
|
||||||
conf_softmmu() {
|
|
||||||
if [[ ${buildtype} == "softmmu" ]] ; then
|
|
||||||
use_enable "$@"
|
|
||||||
else
|
|
||||||
echo "--disable-${2:-$1}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
# Enable option only for tools build, but not 'user' or 'softmmu'
|
|
||||||
conf_tools() {
|
|
||||||
if [[ ${buildtype} == "tools" ]] ; then
|
|
||||||
use_enable "$@"
|
|
||||||
else
|
|
||||||
echo "--disable-${2:-$1}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
# Special case for the malloc flag, because the --disable flag does
|
|
||||||
# not exist and trying like above will break configuring.
|
|
||||||
conf_malloc() {
|
|
||||||
if [[ ! ${buildtype} == "user" ]] ; then
|
|
||||||
usex "${1}" "--enable-malloc=${1}" ""
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
conf_opts+=(
|
|
||||||
$(conf_notuser accessibility brlapi)
|
|
||||||
$(conf_notuser aio linux-aio)
|
|
||||||
$(conf_softmmu bpf)
|
|
||||||
$(conf_notuser bzip2)
|
|
||||||
$(conf_notuser capstone)
|
|
||||||
$(conf_notuser curl)
|
|
||||||
$(conf_tools doc docs)
|
|
||||||
$(conf_notuser fdt)
|
|
||||||
$(conf_notuser fuse)
|
|
||||||
$(conf_notuser glusterfs)
|
|
||||||
$(conf_notuser gnutls)
|
|
||||||
$(conf_notuser gnutls nettle)
|
|
||||||
$(conf_notuser gtk)
|
|
||||||
$(conf_notuser infiniband rdma)
|
|
||||||
$(conf_notuser iscsi libiscsi)
|
|
||||||
$(conf_notuser io-uring linux-io-uring)
|
|
||||||
$(conf_malloc jemalloc)
|
|
||||||
$(conf_notuser jpeg vnc-jpeg)
|
|
||||||
$(conf_notuser kernel_linux kvm)
|
|
||||||
$(conf_notuser lzo)
|
|
||||||
$(conf_notuser multipath mpath)
|
|
||||||
$(conf_notuser ncurses curses)
|
|
||||||
$(conf_notuser nfs libnfs)
|
|
||||||
$(conf_notuser numa)
|
|
||||||
$(conf_notuser opengl)
|
|
||||||
$(conf_notuser pam auth-pam)
|
|
||||||
$(conf_notuser png)
|
|
||||||
$(conf_notuser rbd)
|
|
||||||
$(conf_notuser sasl vnc-sasl)
|
|
||||||
$(conf_notuser sdl)
|
|
||||||
$(conf_softmmu sdl-image)
|
|
||||||
$(conf_notuser slirp)
|
|
||||||
$(conf_notuser smartcard)
|
|
||||||
$(conf_notuser snappy)
|
|
||||||
$(conf_notuser spice)
|
|
||||||
$(conf_notuser ssh libssh)
|
|
||||||
$(conf_notuser udev libudev)
|
|
||||||
$(conf_notuser usb libusb)
|
|
||||||
$(conf_notuser usbredir usb-redir)
|
|
||||||
$(conf_notuser vde)
|
|
||||||
$(conf_notuser vhost-net)
|
|
||||||
$(conf_notuser virgl virglrenderer)
|
|
||||||
$(conf_softmmu virtfs)
|
|
||||||
$(conf_notuser vnc)
|
|
||||||
$(conf_notuser vte)
|
|
||||||
$(conf_notuser xen)
|
|
||||||
$(conf_notuser xen xen-pci-passthrough)
|
|
||||||
# use prebuilt keymaps, bug #759604
|
|
||||||
--disable-xkbcommon
|
|
||||||
$(conf_notuser zstd)
|
|
||||||
)
|
|
||||||
|
|
||||||
if [[ ! ${buildtype} == "user" ]] ; then
|
|
||||||
# audio options
|
|
||||||
local audio_opts=(
|
|
||||||
# Note: backend order matters here: #716202
|
|
||||||
# We iterate from higher-level to lower level.
|
|
||||||
$(usex pulseaudio pa "")
|
|
||||||
$(usev jack)
|
|
||||||
$(usev sdl)
|
|
||||||
$(usev alsa)
|
|
||||||
$(usev oss)
|
|
||||||
)
|
|
||||||
conf_opts+=(
|
|
||||||
--audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
case ${buildtype} in
|
|
||||||
user)
|
|
||||||
conf_opts+=(
|
|
||||||
--enable-linux-user
|
|
||||||
--disable-system
|
|
||||||
--disable-blobs
|
|
||||||
--disable-tools
|
|
||||||
--disable-cap-ng
|
|
||||||
--disable-seccomp
|
|
||||||
)
|
|
||||||
local static_flag="static-user"
|
|
||||||
;;
|
|
||||||
softmmu)
|
|
||||||
conf_opts+=(
|
|
||||||
--disable-linux-user
|
|
||||||
--enable-system
|
|
||||||
--disable-tools
|
|
||||||
--enable-cap-ng
|
|
||||||
--enable-seccomp
|
|
||||||
)
|
|
||||||
local static_flag="static"
|
|
||||||
;;
|
|
||||||
tools)
|
|
||||||
conf_opts+=(
|
|
||||||
--disable-linux-user
|
|
||||||
--disable-system
|
|
||||||
--disable-blobs
|
|
||||||
--enable-tools
|
|
||||||
--enable-cap-ng
|
|
||||||
--enable-seccomp
|
|
||||||
)
|
|
||||||
local static_flag="static"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
local targets="${buildtype}_targets"
|
|
||||||
[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
|
|
||||||
|
|
||||||
# Add support for SystemTAP
|
|
||||||
use systemtap && conf_opts+=( --enable-trace-backend=dtrace )
|
|
||||||
|
|
||||||
# We always want to attempt to build with PIE support as it results
|
|
||||||
# in a more secure binary. But it doesn't work with static or if
|
|
||||||
# the current GCC doesn't have PIE support.
|
|
||||||
if use ${static_flag}; then
|
|
||||||
conf_opts+=( --static --disable-pie )
|
|
||||||
else
|
|
||||||
tc-enables-pie && conf_opts+=( --enable-pie )
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Meson will not use a cross-file unless cross_prefix is set.
|
|
||||||
tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
|
|
||||||
|
|
||||||
# Plumb through equivalent of EXTRA_ECONF to allow experiments
|
|
||||||
# like bug #747928.
|
|
||||||
conf_opts+=( ${EXTRA_CONF_QEMU} )
|
|
||||||
|
|
||||||
echo "../configure ${conf_opts[*]}"
|
|
||||||
cd "${builddir}"
|
|
||||||
../configure "${conf_opts[@]}" || die "configure failed"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local target
|
|
||||||
|
|
||||||
python_setup
|
|
||||||
|
|
||||||
softmmu_targets= softmmu_bins=()
|
|
||||||
user_targets= user_bins=()
|
|
||||||
|
|
||||||
for target in ${IUSE_SOFTMMU_TARGETS} ; do
|
|
||||||
if use "qemu_softmmu_targets_${target}"; then
|
|
||||||
softmmu_targets+=",${target}-softmmu"
|
|
||||||
softmmu_bins+=( "qemu-system-${target}" )
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
for target in ${IUSE_USER_TARGETS} ; do
|
|
||||||
if use "qemu_user_targets_${target}"; then
|
|
||||||
user_targets+=",${target}-linux-user"
|
|
||||||
user_bins+=( "qemu-${target}" )
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
softmmu_targets=${softmmu_targets#,}
|
|
||||||
user_targets=${user_targets#,}
|
|
||||||
|
|
||||||
[[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
|
|
||||||
[[ -n ${user_targets} ]] && qemu_src_configure "user"
|
|
||||||
qemu_src_configure "tools"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
if [[ -n ${user_targets} ]]; then
|
|
||||||
cd "${S}/user-build" || die
|
|
||||||
default
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n ${softmmu_targets} ]]; then
|
|
||||||
cd "${S}/softmmu-build" || die
|
|
||||||
default
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd "${S}/tools-build" || die
|
|
||||||
default
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
if [[ -n ${softmmu_targets} ]]; then
|
|
||||||
cd "${S}/softmmu-build" || die
|
|
||||||
pax-mark m */qemu-system-* #515550
|
|
||||||
emake check
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
qemu_python_install() {
|
|
||||||
python_domodule "${S}/python/qemu"
|
|
||||||
|
|
||||||
python_doscript "${S}/scripts/kvm/vmxcap"
|
|
||||||
python_doscript "${S}/scripts/qmp/qmp-shell"
|
|
||||||
python_doscript "${S}/scripts/qmp/qemu-ga-client"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Generate binfmt support files.
|
|
||||||
# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
|
|
||||||
# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
|
|
||||||
generate_initd() {
|
|
||||||
local out="${T}/qemu-binfmt"
|
|
||||||
local out_systemd="${T}/qemu.conf"
|
|
||||||
local d="${T}/binfmt.d"
|
|
||||||
|
|
||||||
einfo "Generating qemu binfmt scripts and configuration files"
|
|
||||||
|
|
||||||
# Generate the debian fragments first.
|
|
||||||
mkdir -p "${d}"
|
|
||||||
"${S}"/scripts/qemu-binfmt-conf.sh \
|
|
||||||
--debian \
|
|
||||||
--exportdir "${d}" \
|
|
||||||
--qemu-path "${EPREFIX}/usr/bin" \
|
|
||||||
|| die
|
|
||||||
# Then turn the fragments into a shell script we can source.
|
|
||||||
sed -E -i \
|
|
||||||
-e 's:^([^ ]+) (.*)$:\1="\2":' \
|
|
||||||
"${d}"/* || die
|
|
||||||
|
|
||||||
# Generate the init.d script by assembling the fragments from above.
|
|
||||||
local f qcpu package interpreter magic mask
|
|
||||||
cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
|
|
||||||
for f in "${d}"/qemu-* ; do
|
|
||||||
source "${f}"
|
|
||||||
|
|
||||||
# Normalize the cpu logic like we do in the init.d for the native cpu.
|
|
||||||
qcpu=${package#qemu-}
|
|
||||||
case ${qcpu} in
|
|
||||||
arm*) qcpu="arm";;
|
|
||||||
mips*) qcpu="mips";;
|
|
||||||
ppc*) qcpu="ppc";;
|
|
||||||
s390*) qcpu="s390";;
|
|
||||||
sh*) qcpu="sh";;
|
|
||||||
sparc*) qcpu="sparc";;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# we use 'printf' here to be portable across 'sh'
|
|
||||||
# implementations: #679168
|
|
||||||
cat <<EOF >>"${out}"
|
|
||||||
if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
|
|
||||||
printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
|
|
||||||
fi
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
|
|
||||||
|
|
||||||
done
|
|
||||||
cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
if [[ -n ${user_targets} ]]; then
|
|
||||||
cd "${S}/user-build"
|
|
||||||
emake DESTDIR="${ED}" install
|
|
||||||
|
|
||||||
# Install binfmt handler init script for user targets.
|
|
||||||
generate_initd
|
|
||||||
doinitd "${T}/qemu-binfmt"
|
|
||||||
|
|
||||||
# Install binfmt/qemu.conf.
|
|
||||||
insinto "/usr/share/qemu/binfmt.d"
|
|
||||||
doins "${T}/qemu.conf"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n ${softmmu_targets} ]]; then
|
|
||||||
cd "${S}/softmmu-build"
|
|
||||||
emake DESTDIR="${ED}" install
|
|
||||||
|
|
||||||
# This might not exist if the test failed. #512010
|
|
||||||
[[ -e check-report.html ]] && dodoc check-report.html
|
|
||||||
|
|
||||||
if use kernel_linux; then
|
|
||||||
udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
|
|
||||||
fi
|
|
||||||
|
|
||||||
if use python; then
|
|
||||||
python_foreach_impl qemu_python_install
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd "${S}/tools-build" || die
|
|
||||||
emake DESTDIR="${ED}" install
|
|
||||||
|
|
||||||
# If USE=doc, there'll be newly generated docs which we install instead.
|
|
||||||
if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
|
|
||||||
doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
|
|
||||||
pushd "${ED}"/usr/bin >/dev/null || die
|
|
||||||
pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
|
|
||||||
popd >/dev/null || die
|
|
||||||
|
|
||||||
# Install config file example for qemu-bridge-helper
|
|
||||||
insinto "/etc/qemu"
|
|
||||||
doins "${FILESDIR}/bridge.conf"
|
|
||||||
|
|
||||||
cd "${S}" || die
|
|
||||||
dodoc MAINTAINERS docs/specs/pci-ids.txt
|
|
||||||
newdoc pc-bios/README README.pc-bios
|
|
||||||
|
|
||||||
# Disallow stripping of prebuilt firmware files.
|
|
||||||
dostrip -x ${QA_PREBUILT}
|
|
||||||
|
|
||||||
if [[ -n ${softmmu_targets} ]]; then
|
|
||||||
# Remove SeaBIOS since we're using the SeaBIOS packaged one
|
|
||||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
|
||||||
dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove vgabios since we're using the seavgabios packaged one
|
|
||||||
rm "${ED}/usr/share/qemu/vgabios.bin"
|
|
||||||
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
|
|
||||||
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
|
|
||||||
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
|
|
||||||
rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
|
|
||||||
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
|
|
||||||
|
|
||||||
# PPC/PPC64 loads vgabios-stdvga
|
|
||||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
|
|
||||||
dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
|
|
||||||
dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
|
|
||||||
dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
|
|
||||||
dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
|
|
||||||
dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
|
|
||||||
dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove sgabios since we're using the sgabios packaged one
|
|
||||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
|
||||||
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove iPXE since we're using the iPXE packaged one
|
|
||||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
|
||||||
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
|
|
||||||
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
|
|
||||||
dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
|
|
||||||
dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
|
|
||||||
dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
|
|
||||||
dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
DISABLE_AUTOFORMATTING=true
|
|
||||||
readme.gentoo_create_doc
|
|
||||||
}
|
|
||||||
|
|
||||||
firmware_abi_change() {
|
|
||||||
local pv
|
|
||||||
for pv in ${REPLACING_VERSIONS}; do
|
|
||||||
if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
|
|
||||||
udev_reload
|
|
||||||
fi
|
|
||||||
|
|
||||||
xdg_icon_cache_update
|
|
||||||
|
|
||||||
[[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
|
|
||||||
fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
|
|
||||||
|
|
||||||
DISABLE_AUTOFORMATTING=true
|
|
||||||
readme.gentoo_print_elog
|
|
||||||
|
|
||||||
if use pin-upstream-blobs && firmware_abi_change; then
|
|
||||||
ewarn "This version of qemu pins new versions of firmware blobs:"
|
|
||||||
|
|
||||||
if has_version 'sys-firmware/edk2-ovmf-bin'; then
|
|
||||||
ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
|
|
||||||
else
|
|
||||||
ewarn " $(best_version sys-firmware/edk2-ovmf)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if has_version 'sys-firmware/seabios-bin'; then
|
|
||||||
ewarn " $(best_version sys-firmware/seabios-bin)"
|
|
||||||
else
|
|
||||||
ewarn " $(best_version sys-firmware/seabios)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
ewarn " $(best_version sys-firmware/ipxe)"
|
|
||||||
ewarn " $(best_version sys-firmware/sgabios)"
|
|
||||||
ewarn "This might break resume of hibernated guests (started with a different"
|
|
||||||
ewarn "firmware version) and live migration to/from qemu versions with different"
|
|
||||||
ewarn "firmware. Please (cold) restart all running guests. For functional"
|
|
||||||
ewarn "guest migration ensure that all"
|
|
||||||
ewarn "hosts run at least"
|
|
||||||
ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_info() {
|
|
||||||
echo "Using:"
|
|
||||||
echo " $(best_version app-emulation/spice-protocol)"
|
|
||||||
|
|
||||||
if has_version 'sys-firmware/edk2-ovmf-bin'; then
|
|
||||||
echo " $(best_version sys-firmware/edk2-ovmf-bin)"
|
|
||||||
else
|
|
||||||
echo " $(best_version sys-firmware/edk2-ovmf)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if has_version 'sys-firmware/seabios-bin'; then
|
|
||||||
echo " $(best_version sys-firmware/seabios-bin)"
|
|
||||||
else
|
|
||||||
echo " $(best_version sys-firmware/seabios)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo " $(best_version sys-firmware/ipxe)"
|
|
||||||
echo " $(best_version sys-firmware/sgabios)"
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
xdg_icon_cache_update
|
|
||||||
udev_reload
|
|
||||||
}
|
|
@ -8,7 +8,7 @@ EAPI=8
|
|||||||
# (the construct below is to allow overriding from env for script)
|
# (the construct below is to allow overriding from env for script)
|
||||||
QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
|
QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
|
||||||
QEMU_DOCS_PREBUILT_DEV=ajak
|
QEMU_DOCS_PREBUILT_DEV=ajak
|
||||||
QEMU_DOCS_VERSION="${PV}"
|
QEMU_DOCS_VERSION="7.2.0"
|
||||||
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
|
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
|
||||||
# bug #830088
|
# bug #830088
|
||||||
QEMU_DOC_USEFLAG="+doc"
|
QEMU_DOC_USEFLAG="+doc"
|
@ -138,7 +138,7 @@ REQUIRED_USE="
|
|||||||
plugins? ( !static-user )
|
plugins? ( !static-user )
|
||||||
"
|
"
|
||||||
for smname in ${IUSE_SOFTMMU_TARGETS} ; do
|
for smname in ${IUSE_SOFTMMU_TARGETS} ; do
|
||||||
REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( seccomp ) "
|
REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
|
||||||
done
|
done
|
||||||
|
|
||||||
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
||||||
@ -159,7 +159,6 @@ ALL_DEPEND="
|
|||||||
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
||||||
# softmmu targets (qemu-system-*).
|
# softmmu targets (qemu-system-*).
|
||||||
SOFTMMU_TOOLS_DEPEND="
|
SOFTMMU_TOOLS_DEPEND="
|
||||||
sys-libs/libcap-ng[static-libs(+)]
|
|
||||||
>=x11-libs/pixman-0.28.0[static-libs(+)]
|
>=x11-libs/pixman-0.28.0[static-libs(+)]
|
||||||
accessibility? (
|
accessibility? (
|
||||||
app-accessibility/brltty[api]
|
app-accessibility/brltty[api]
|
||||||
@ -191,6 +190,7 @@ SOFTMMU_TOOLS_DEPEND="
|
|||||||
jack? ( virtual/jack )
|
jack? ( virtual/jack )
|
||||||
jemalloc? ( dev-libs/jemalloc )
|
jemalloc? ( dev-libs/jemalloc )
|
||||||
jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
|
jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
|
||||||
|
kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] )
|
||||||
lzo? ( dev-libs/lzo:2[static-libs(+)] )
|
lzo? ( dev-libs/lzo:2[static-libs(+)] )
|
||||||
multipath? ( sys-fs/multipath-tools )
|
multipath? ( sys-fs/multipath-tools )
|
||||||
ncurses? (
|
ncurses? (
|
||||||
|
@ -138,7 +138,7 @@ REQUIRED_USE="
|
|||||||
plugins? ( !static-user )
|
plugins? ( !static-user )
|
||||||
"
|
"
|
||||||
for smname in ${IUSE_SOFTMMU_TARGETS} ; do
|
for smname in ${IUSE_SOFTMMU_TARGETS} ; do
|
||||||
REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( seccomp ) "
|
REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
|
||||||
done
|
done
|
||||||
|
|
||||||
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
||||||
@ -159,7 +159,6 @@ ALL_DEPEND="
|
|||||||
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
||||||
# softmmu targets (qemu-system-*).
|
# softmmu targets (qemu-system-*).
|
||||||
SOFTMMU_TOOLS_DEPEND="
|
SOFTMMU_TOOLS_DEPEND="
|
||||||
sys-libs/libcap-ng[static-libs(+)]
|
|
||||||
>=x11-libs/pixman-0.28.0[static-libs(+)]
|
>=x11-libs/pixman-0.28.0[static-libs(+)]
|
||||||
accessibility? (
|
accessibility? (
|
||||||
app-accessibility/brltty[api]
|
app-accessibility/brltty[api]
|
||||||
@ -188,6 +187,7 @@ SOFTMMU_TOOLS_DEPEND="
|
|||||||
jack? ( virtual/jack )
|
jack? ( virtual/jack )
|
||||||
jemalloc? ( dev-libs/jemalloc )
|
jemalloc? ( dev-libs/jemalloc )
|
||||||
jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
|
jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
|
||||||
|
kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] )
|
||||||
lzo? ( dev-libs/lzo:2[static-libs(+)] )
|
lzo? ( dev-libs/lzo:2[static-libs(+)] )
|
||||||
multipath? ( sys-fs/multipath-tools )
|
multipath? ( sys-fs/multipath-tools )
|
||||||
ncurses? (
|
ncurses? (
|
||||||
|
@ -57,13 +57,11 @@ strip_completions() {
|
|||||||
|
|
||||||
# Now-dead symlinks to deprecated completions
|
# Now-dead symlinks to deprecated completions
|
||||||
hd ncal
|
hd ncal
|
||||||
|
|
||||||
|
# FreeBSD
|
||||||
|
freebsd-update kldload kldunload portinstall portsnap
|
||||||
|
pkg_deinstall pkg_delete pkg_info
|
||||||
)
|
)
|
||||||
if [[ ${ARCH} != *-fbsd && ${ARCH} != *-freebsd ]]; then
|
|
||||||
strip_completions+=(
|
|
||||||
freebsd-update kldload kldunload portinstall portsnap
|
|
||||||
pkg_deinstall pkg_delete pkg_info
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
local file
|
local file
|
||||||
for file in "${strip_completions[@]}"; do
|
for file in "${strip_completions[@]}"; do
|
||||||
|
@ -51,13 +51,11 @@ strip_completions() {
|
|||||||
|
|
||||||
# Now-dead symlinks to deprecated completions
|
# Now-dead symlinks to deprecated completions
|
||||||
hd ncal
|
hd ncal
|
||||||
|
|
||||||
|
# FreeBSD
|
||||||
|
freebsd-update kldload kldunload portinstall portsnap
|
||||||
|
pkg_deinstall pkg_delete pkg_info
|
||||||
)
|
)
|
||||||
if [[ ${ARCH} != *-fbsd && ${ARCH} != *-freebsd ]]; then
|
|
||||||
strip_completions+=(
|
|
||||||
freebsd-update kldload kldunload portinstall portsnap
|
|
||||||
pkg_deinstall pkg_delete pkg_info
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
local file
|
local file
|
||||||
for file in "${strip_completions[@]}"; do
|
for file in "${strip_completions[@]}"; do
|
||||||
|
@ -1,97 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
USE_RUBY="ruby27 ruby30"
|
|
||||||
inherit ruby-single
|
|
||||||
|
|
||||||
DOCBOOKDIR="/usr/share/sgml/${PN/-//}"
|
|
||||||
MY_PN="${PN%-stylesheets}"
|
|
||||||
MY_P="${MY_PN}-${PV}"
|
|
||||||
|
|
||||||
DESCRIPTION="XSL Stylesheets for Docbook"
|
|
||||||
HOMEPAGE="https://github.com/docbook/wiki/wiki"
|
|
||||||
SRC_URI="mirror://sourceforge/docbook/${MY_P}.tar.bz2"
|
|
||||||
S="${WORKDIR}/${MY_P}"
|
|
||||||
|
|
||||||
LICENSE="BSD"
|
|
||||||
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="ruby"
|
|
||||||
# Makefile is broken since 1.76.0
|
|
||||||
RESTRICT="test"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
>=app-text/build-docbook-catalog-1.1
|
|
||||||
ruby? ( ${RUBY_DEPS} )
|
|
||||||
"
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}"/nonrecursive-string-subst.patch
|
|
||||||
)
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
default
|
|
||||||
|
|
||||||
# Delete the unnecessary Java-related stuff and other tools as they
|
|
||||||
# bloat the stage3 tarballs massively. See bug #575818.
|
|
||||||
rm -rv extensions/ tools/ || die
|
|
||||||
find \( -name build.xml -o -name build.properties \) \
|
|
||||||
-printf "removed %p\n" -delete || die
|
|
||||||
|
|
||||||
if ! use ruby; then
|
|
||||||
rm -rv epub/ || die
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# The makefile runs tests, not builds.
|
|
||||||
src_compile() { :; }
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
emake check
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
# The changelog is now zipped, and copied as the RELEASE-NOTES, so we
|
|
||||||
# don't need to install it
|
|
||||||
dodoc AUTHORS BUGS NEWS README RELEASE-NOTES.txt TODO
|
|
||||||
|
|
||||||
insinto ${DOCBOOKDIR}
|
|
||||||
doins VERSION VERSION.xsl
|
|
||||||
|
|
||||||
local i
|
|
||||||
for i in */; do
|
|
||||||
i=${i%/}
|
|
||||||
|
|
||||||
for doc in ChangeLog README; do
|
|
||||||
if [[ -e ${i}/${doc} ]]; then
|
|
||||||
newdoc ${i}/${doc} ${doc}.${i}
|
|
||||||
rm ${i}/${doc} || die
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
doins -r ${i}
|
|
||||||
done
|
|
||||||
|
|
||||||
if use ruby; then
|
|
||||||
local cmd="dbtoepub${MY_PN#docbook-xsl}"
|
|
||||||
|
|
||||||
# we can't use a symlink or it'll look for the library in the wrong path
|
|
||||||
newbin - ${cmd} <<-EOF
|
|
||||||
#!/usr/bin/env ruby
|
|
||||||
|
|
||||||
load "${EPREFIX}${DOCBOOKDIR}/epub/bin/dbtoepub"
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
# See bug #816303 for rationale behind die
|
|
||||||
build-docbook-catalog || die "Failed to regenerate docbook catalog. Is /run mounted?"
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
# See bug #816303 for rationale behind die
|
|
||||||
build-docbook-catalog || die "Failed to regenerate docbook catalog. Is /run mounted?"
|
|
||||||
}
|
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
EAPI=8
|
EAPI=8
|
||||||
|
|
||||||
USE_RUBY="ruby27 ruby30 ruby31"
|
USE_RUBY="ruby30 ruby31"
|
||||||
inherit ruby-single
|
inherit ruby-single
|
||||||
|
|
||||||
DOCBOOKDIR="/usr/share/sgml/${PN/-//}"
|
DOCBOOKDIR="/usr/share/sgml/${PN/-//}"
|
||||||
|
@ -14,9 +14,9 @@ if [[ ${PV} == 9999 ]]; then
|
|||||||
S="${WORKDIR}"/${PN}
|
S="${WORKDIR}"/${PN}
|
||||||
PROPERTIES="live"
|
PROPERTIES="live"
|
||||||
else
|
else
|
||||||
SRC_PV="$(printf "%u%02u%02u%02u" $(ver_rs 1- " "))"
|
printf -v SRC_PV "%u%02u%02u%02u" $(ver_rs 1- " ")
|
||||||
DOC_PV="${SRC_PV}"
|
DOC_PV="${SRC_PV}"
|
||||||
#DOC_PV="$(printf "%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/2023/${PN}-src-${SRC_PV}.zip
|
https://sqlite.org/2023/${PN}-src-${SRC_PV}.zip
|
||||||
|
@ -14,9 +14,9 @@ if [[ ${PV} == 9999 ]]; then
|
|||||||
S="${WORKDIR}"/${PN}
|
S="${WORKDIR}"/${PN}
|
||||||
PROPERTIES="live"
|
PROPERTIES="live"
|
||||||
else
|
else
|
||||||
SRC_PV="$(printf "%u%02u%02u%02u" $(ver_rs 1- " "))"
|
printf -v SRC_PV "%u%02u%02u%02u" $(ver_rs 1- " ")
|
||||||
DOC_PV="${SRC_PV}"
|
DOC_PV="${SRC_PV}"
|
||||||
#DOC_PV="$(printf "%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/2023/${PN}-src-${SRC_PV}.zip
|
https://sqlite.org/2023/${PN}-src-${SRC_PV}.zip
|
||||||
@ -24,7 +24,7 @@ else
|
|||||||
"
|
"
|
||||||
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
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"
|
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="public-domain"
|
LICENSE="public-domain"
|
||||||
|
@ -14,9 +14,9 @@ if [[ ${PV} == 9999 ]]; then
|
|||||||
S="${WORKDIR}"/${PN}
|
S="${WORKDIR}"/${PN}
|
||||||
PROPERTIES="live"
|
PROPERTIES="live"
|
||||||
else
|
else
|
||||||
SRC_PV="$(printf "%u%02u%02u%02u" $(ver_rs 1- " "))"
|
printf -v SRC_PV "%u%02u%02u%02u" $(ver_rs 1- " ")
|
||||||
DOC_PV="${SRC_PV}"
|
DOC_PV="${SRC_PV}"
|
||||||
#DOC_PV="$(printf "%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/2022/${PN}-src-${SRC_PV}.zip
|
||||||
|
@ -5,7 +5,7 @@ DIST perl-5.34.1.tar.xz 12760168 BLAKE2B 3768e55f66551c83295153e91d25d568b7b8638
|
|||||||
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-RC0.tar.gz 21163691 BLAKE2B 11f335e5811abf2d0a756414451889636969b442e1b030378b1fa1307fa4788aa0e1810ed6e01b9b9dc6829344d08246ac878104be69dfc3b29c8d9eca6a6d99 SHA512 189522d889eb3c14d3a1769c69ad1cf46a48b61a9dc67fd6b5426be45378d43217a80c69013240d67197db0281fa9d6ffe42768e057a859c97f7084420e66f72
|
DIST perl-5.38.0-RC1.tar.xz 13570400 BLAKE2B a08f5ab6d1d8cf4572929b6e47834cf3e17dec33e8e41916f5a9f3524281493f369b75054ef7232b777b9b162635e4ee7864d8fd4f97de542b3d9704ba526af2 SHA512 1bd17db43e5b25fdcd8f0addd53820371f78173fe2bf6ca12de06589ecb296314e996cfa37357f656a694cf56504b85e7d7aef4f8cd367edb64653951b7a2efd
|
||||||
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-cross-1.3.7.tar.gz 118291 BLAKE2B dc9c060857d6905c817e91c3f5b1f546b76e02c6de02dc260185e0de8628a5ead3a557501da75549e2585cd30879190558740e697b1c78a69fa08ccb5649efcd SHA512 1111274f34f8b46e9f418883e9b1652ba4a5a9b4a5880a9a5b38bc8aeb5d75a9f4943233870f5ebf5fbcdc0c30b2983ace11ad051b55d3283327d8f2c15e172c
|
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
|
||||||
|
@ -149,13 +149,8 @@ check_rebuild() {
|
|||||||
|
|
||||||
pkg_setup() {
|
pkg_setup() {
|
||||||
case ${CHOST} in
|
case ${CHOST} in
|
||||||
*-freebsd*) osname="freebsd" ;;
|
|
||||||
*-dragonfly*) osname="dragonfly" ;;
|
|
||||||
*-netbsd*) osname="netbsd" ;;
|
|
||||||
*-openbsd*) osname="openbsd" ;;
|
|
||||||
*-darwin*) osname="darwin" ;;
|
*-darwin*) osname="darwin" ;;
|
||||||
*-solaris*) osname="solaris" ;;
|
*-solaris*) osname="solaris" ;;
|
||||||
*-cygwin*) osname="cygwin" ;;
|
|
||||||
*) osname="linux" ;;
|
*) osname="linux" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -144,13 +144,8 @@ check_rebuild() {
|
|||||||
|
|
||||||
pkg_setup() {
|
pkg_setup() {
|
||||||
case ${CHOST} in
|
case ${CHOST} in
|
||||||
*-freebsd*) osname="freebsd" ;;
|
|
||||||
*-dragonfly*) osname="dragonfly" ;;
|
|
||||||
*-netbsd*) osname="netbsd" ;;
|
|
||||||
*-openbsd*) osname="openbsd" ;;
|
|
||||||
*-darwin*) osname="darwin" ;;
|
*-darwin*) osname="darwin" ;;
|
||||||
*-solaris*) osname="solaris" ;;
|
*-solaris*) osname="solaris" ;;
|
||||||
*-cygwin*) osname="cygwin" ;;
|
|
||||||
*) osname="linux" ;;
|
*) osname="linux" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -144,13 +144,8 @@ check_rebuild() {
|
|||||||
|
|
||||||
pkg_setup() {
|
pkg_setup() {
|
||||||
case ${CHOST} in
|
case ${CHOST} in
|
||||||
*-freebsd*) osname="freebsd" ;;
|
|
||||||
*-dragonfly*) osname="dragonfly" ;;
|
|
||||||
*-netbsd*) osname="netbsd" ;;
|
|
||||||
*-openbsd*) osname="openbsd" ;;
|
|
||||||
*-darwin*) osname="darwin" ;;
|
*-darwin*) osname="darwin" ;;
|
||||||
*-solaris*) osname="solaris" ;;
|
*-solaris*) osname="solaris" ;;
|
||||||
*-cygwin*) osname="cygwin" ;;
|
|
||||||
*) osname="linux" ;;
|
*) osname="linux" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -144,13 +144,8 @@ check_rebuild() {
|
|||||||
|
|
||||||
pkg_setup() {
|
pkg_setup() {
|
||||||
case ${CHOST} in
|
case ${CHOST} in
|
||||||
*-freebsd*) osname="freebsd" ;;
|
|
||||||
*-dragonfly*) osname="dragonfly" ;;
|
|
||||||
*-netbsd*) osname="netbsd" ;;
|
|
||||||
*-openbsd*) osname="openbsd" ;;
|
|
||||||
*-darwin*) osname="darwin" ;;
|
*-darwin*) osname="darwin" ;;
|
||||||
*-solaris*) osname="solaris" ;;
|
*-solaris*) osname="solaris" ;;
|
||||||
*-cygwin*) osname="cygwin" ;;
|
|
||||||
*) osname="linux" ;;
|
*) osname="linux" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -144,13 +144,8 @@ check_rebuild() {
|
|||||||
|
|
||||||
pkg_setup() {
|
pkg_setup() {
|
||||||
case ${CHOST} in
|
case ${CHOST} in
|
||||||
*-freebsd*) osname="freebsd" ;;
|
|
||||||
*-dragonfly*) osname="dragonfly" ;;
|
|
||||||
*-netbsd*) osname="netbsd" ;;
|
|
||||||
*-openbsd*) osname="openbsd" ;;
|
|
||||||
*-darwin*) osname="darwin" ;;
|
*-darwin*) osname="darwin" ;;
|
||||||
*-solaris*) osname="solaris" ;;
|
*-solaris*) osname="solaris" ;;
|
||||||
*-cygwin*) osname="cygwin" ;;
|
|
||||||
*) osname="linux" ;;
|
*) osname="linux" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -39,13 +39,12 @@ MY_PV="${DIST_VERSION%-RC*}"
|
|||||||
|
|
||||||
DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
|
DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
|
||||||
|
|
||||||
# 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
|
|
||||||
SRC_URI="
|
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/archive/refs/tags/${PATCH_BASE}.tar.gz
|
https://github.com/gentoo-perl/perl-patchset/archive/refs/tags/${PATCH_BASE}.tar.gz
|
||||||
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.gz
|
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.gz
|
||||||
https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
|
https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
|
||||||
https://semiotic.systems/perl-5.38.0-RC0.tar.gz
|
|
||||||
"
|
"
|
||||||
|
|
||||||
HOMEPAGE="https://www.perl.org/"
|
HOMEPAGE="https://www.perl.org/"
|
||||||
@ -145,13 +144,8 @@ check_rebuild() {
|
|||||||
|
|
||||||
pkg_setup() {
|
pkg_setup() {
|
||||||
case ${CHOST} in
|
case ${CHOST} in
|
||||||
*-freebsd*) osname="freebsd" ;;
|
|
||||||
*-dragonfly*) osname="dragonfly" ;;
|
|
||||||
*-netbsd*) osname="netbsd" ;;
|
|
||||||
*-openbsd*) osname="openbsd" ;;
|
|
||||||
*-darwin*) osname="darwin" ;;
|
*-darwin*) osname="darwin" ;;
|
||||||
*-solaris*) osname="solaris" ;;
|
*-solaris*) osname="solaris" ;;
|
||||||
*-cygwin*) osname="cygwin" ;;
|
|
||||||
*) osname="linux" ;;
|
*) osname="linux" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@ -402,10 +396,6 @@ src_prepare() {
|
|||||||
# "Fix broken miniperl on hppa"\
|
# "Fix broken miniperl on hppa"\
|
||||||
# "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
|
# "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
|
||||||
|
|
||||||
add_patch "${FILESDIR}/${PN}-5.36.1-http-tiny.patch" "0111-5.36.1-http-tiny.patch"\
|
|
||||||
"Enable certificate checking in HTTP::Tiny by default"\
|
|
||||||
"https://bugs.gentoo.org/905296" "https://bugs.debian.org/954089"
|
|
||||||
|
|
||||||
if [[ ${CHOST} == *-solaris* ]] ; then
|
if [[ ${CHOST} == *-solaris* ]] ; then
|
||||||
# do NOT mess with nsl, on Solaris this is always necessary,
|
# do NOT mess with nsl, on Solaris this is always necessary,
|
||||||
# when -lsocket is used e.g. to get h_errno
|
# when -lsocket is used e.g. to get h_errno
|
@ -2,20 +2,35 @@ DIST Python-2.7.18.tar.xz 12854736 BLAKE2B 060a621c91dd8e3d321aec99d44c17aa67381
|
|||||||
DIST Python-2.7.18.tar.xz.asc 833 BLAKE2B 1d98770e46171971fb99994508d238c01d2755281d2f94353314014d9e83e0ec5f0b3e3950ea1fdf5fce9ba6b8f55312355845c2a3fc4291c27ee56fe6215448 SHA512 c2a5f5a52f47dec52460ad3275758d4e5de6e7075c3def4353c988d74d563a39b42cae2d5eb24e2a23a6247cef69100f91620b11a49c2359fbf99b203c9cbda8
|
DIST Python-2.7.18.tar.xz.asc 833 BLAKE2B 1d98770e46171971fb99994508d238c01d2755281d2f94353314014d9e83e0ec5f0b3e3950ea1fdf5fce9ba6b8f55312355845c2a3fc4291c27ee56fe6215448 SHA512 c2a5f5a52f47dec52460ad3275758d4e5de6e7075c3def4353c988d74d563a39b42cae2d5eb24e2a23a6247cef69100f91620b11a49c2359fbf99b203c9cbda8
|
||||||
DIST Python-3.10.11.tar.xz 19640792 BLAKE2B ce281549cb8fdcb74e068cc76c5412af749a6394644c2aacabdcbf5e10210fb5c0f4e7cb2eb3b728837eb89e382873074e938f609d94001dd5b4bf823084a994 SHA512 fa113b4b635d271a1412999587ec64654d337db263851a6a9d88b3cab4ed66dba76fe03e65c4d341f0a83fd8182d35e245bfd9827465d7aebcb4deb71af4d047
|
DIST Python-3.10.11.tar.xz 19640792 BLAKE2B ce281549cb8fdcb74e068cc76c5412af749a6394644c2aacabdcbf5e10210fb5c0f4e7cb2eb3b728837eb89e382873074e938f609d94001dd5b4bf823084a994 SHA512 fa113b4b635d271a1412999587ec64654d337db263851a6a9d88b3cab4ed66dba76fe03e65c4d341f0a83fd8182d35e245bfd9827465d7aebcb4deb71af4d047
|
||||||
DIST Python-3.10.11.tar.xz.asc 833 BLAKE2B ba107904c1658374481636bc950187a7bd1a2fb33aa3fb2fd1343e5aec6e84afdadab0b2edc6f0768856ae7b847a592fc79a7476247f4ff67c38c1ff18f831e9 SHA512 edddacc81d4671851cd2a52853cabc53314fa226dac77c2248ee61cf7d58dd2f59301b7729b2ff9f5717b84268140c3bef30e358b80718c6c84b308bd560bcd8
|
DIST Python-3.10.11.tar.xz.asc 833 BLAKE2B ba107904c1658374481636bc950187a7bd1a2fb33aa3fb2fd1343e5aec6e84afdadab0b2edc6f0768856ae7b847a592fc79a7476247f4ff67c38c1ff18f831e9 SHA512 edddacc81d4671851cd2a52853cabc53314fa226dac77c2248ee61cf7d58dd2f59301b7729b2ff9f5717b84268140c3bef30e358b80718c6c84b308bd560bcd8
|
||||||
|
DIST Python-3.10.12.tar.xz 19654836 BLAKE2B f7a3e27b437003915e4ebeeba82d1cc0c9de169f6e4bfe8d957e910141767668f3f1dd19374c212dba09325465f859244b955f3ffd3d0e6e879cc31bb4229ed6 SHA512 5ea018e71bfe7872e02eaf8aef56d5583c0880e4ce5fbbdf8ea76da20c2e94ac6a3ba8badb4b7d1bc21853402a3b63541b04181737417b1626e786b696595cf5
|
||||||
|
DIST Python-3.10.12.tar.xz.asc 833 BLAKE2B a0278118ce8e1806a68838e77f2448570e41791d968e23f27940e48ba996a21dbe3766e670180ec0f78d32d89aa7574a95e5232aa9173f2c58886069a76a4cca SHA512 d5f1c98d8509e078bf7d7205f9fe25d028178fb7940cff406761c14a2689a82425f6bfe9b58b2aa6e9d4fee53626fb56658e56bd54028245de827dc5ebc1d7d8
|
||||||
DIST Python-3.11.3.tar.xz 19906156 BLAKE2B c23815e09a0012b2af03f3e18471389382978ef0991cb081c4c6410e98613589d47d3ad782c0a06a48ddd86fc5df7f1d59e93dbab5871b89559e225084544248 SHA512 a3bba4b69322a47bfeefe42ba0fd7331b5b67fd2ab41441e2219d16ef8c6f307f1a48977afd073c18cfd24ec6cb1bfe0c4bb4b273031eb524dc7e9fb5fbcc3b6
|
DIST Python-3.11.3.tar.xz 19906156 BLAKE2B c23815e09a0012b2af03f3e18471389382978ef0991cb081c4c6410e98613589d47d3ad782c0a06a48ddd86fc5df7f1d59e93dbab5871b89559e225084544248 SHA512 a3bba4b69322a47bfeefe42ba0fd7331b5b67fd2ab41441e2219d16ef8c6f307f1a48977afd073c18cfd24ec6cb1bfe0c4bb4b273031eb524dc7e9fb5fbcc3b6
|
||||||
DIST Python-3.11.3.tar.xz.asc 833 BLAKE2B 1846858480428293047bfaf87a74f5a6cf28227f63dbc36e658ab68444a5b91c2178fca42f35a413591103a0ceeea3cd5f8b757fb2f42cbcad023c62970ab950 SHA512 34bfb6e74e2bbec15bf3f653e32a3d705961b5f724e3f4713cf9b6b530f9c9e7e94f5cf855798bdf9763235b97a60ec9ad554d24cdc793e21a0c39540b5818d8
|
DIST Python-3.11.3.tar.xz.asc 833 BLAKE2B 1846858480428293047bfaf87a74f5a6cf28227f63dbc36e658ab68444a5b91c2178fca42f35a413591103a0ceeea3cd5f8b757fb2f42cbcad023c62970ab950 SHA512 34bfb6e74e2bbec15bf3f653e32a3d705961b5f724e3f4713cf9b6b530f9c9e7e94f5cf855798bdf9763235b97a60ec9ad554d24cdc793e21a0c39540b5818d8
|
||||||
|
DIST Python-3.11.4.tar.xz 19954828 BLAKE2B b423aa1838702f555160b41cd90d752180250381af9222d714f0545281e8577e14d7771dc2e1217d877ba31e85590da8adcc50b5019faaecdd775cd09b313d47 SHA512 7eb14fecbf60824d10c22a9057584c3a142c2866f4af6caa2525c10c8bcb24e6e7afb32a44a0e118df0a2b2543d578c3b422ffd4a5fa317dfe6ea371cc7ee1ee
|
||||||
|
DIST Python-3.11.4.tar.xz.asc 833 BLAKE2B 0384dfbda5f897e749d8fca21773c599d1910ce1188f3c2dbf9632c9a79347644e1354e0ec6fc182c387b9cd6c66b8c224e5bfd8237877786918414f8d49f5f7 SHA512 8ee82bf116b2cc7407e260eccf53e7fee4d7497165d0b9c3e59931c73f3b419bc0299b459eee9544a6e51e323ff0a6aa07827efd89f9c320b54556feeea04a78
|
||||||
DIST Python-3.12.0b1.tar.xz 20053428 BLAKE2B b5b0df040de6cff181689f7c53e09407ef3a92806a688faa8547b2c6a0adc1622ea15cc5efb0d1b96a711cbf16f73a1d5f8fa748983bc423e4bbe89bd6ff84a6 SHA512 7d6d009f765ba48ef48e6b25cb1f043ba66979d66cb9141452862e84ae954611361d24178cce628d1892b75d306370a56fcb30a7c1715b0eedcfef5610f3e1ae
|
DIST Python-3.12.0b1.tar.xz 20053428 BLAKE2B b5b0df040de6cff181689f7c53e09407ef3a92806a688faa8547b2c6a0adc1622ea15cc5efb0d1b96a711cbf16f73a1d5f8fa748983bc423e4bbe89bd6ff84a6 SHA512 7d6d009f765ba48ef48e6b25cb1f043ba66979d66cb9141452862e84ae954611361d24178cce628d1892b75d306370a56fcb30a7c1715b0eedcfef5610f3e1ae
|
||||||
DIST Python-3.12.0b1.tar.xz.asc 963 BLAKE2B e80cbc9cf93756b6efbce3037dfcd4fec310ce17a3db36f33ac617dae63a8c2abc8efb3cfd5ec42299b9e4c2bdd06a3405c50b5550869564ae5f6a6d79d596c9 SHA512 cea449f05ae66c28aeb4ffd99b5748ba4c09bfb2a6889a771744ea81ca2afc2420648d4ca92592d32ddb26660804e73912e6fb8d906674e9e1895ba613904b26
|
DIST Python-3.12.0b1.tar.xz.asc 963 BLAKE2B e80cbc9cf93756b6efbce3037dfcd4fec310ce17a3db36f33ac617dae63a8c2abc8efb3cfd5ec42299b9e4c2bdd06a3405c50b5550869564ae5f6a6d79d596c9 SHA512 cea449f05ae66c28aeb4ffd99b5748ba4c09bfb2a6889a771744ea81ca2afc2420648d4ca92592d32ddb26660804e73912e6fb8d906674e9e1895ba613904b26
|
||||||
|
DIST Python-3.12.0b2.tar.xz 20215500 BLAKE2B e38c9b77fd80510cccfad7b141164c9cae142f89ca112acd3e7c46256c5539688455c66ba60bb52cd57186766a8f2d61cf92f67944a5b9ffb0991ab88f3fd38b SHA512 9bfac70f2ccc1f6798bc63a55d92f0b162e3a9077624a2e37448002ea310cb7b1da64ad2aceda795b45de91f60eb4d95dde85984900e54906d814625b42143b5
|
||||||
|
DIST Python-3.12.0b2.tar.xz.asc 963 BLAKE2B d491a8ff123f35c6dfc77f466b67fbba13ec3496ea2dd95f0cb8375b755778e10ba4802618787b71006f8433175144ae1dc640171068c583bbd23831b2d78cca SHA512 22a1f2c3335bc428cfee0ce2e081aeed24474d3cd877fac1cc4cf92b4a2bee70f85aed0068a71600cddef9c8b46bbde257a92c57bd494ad820c0686ab7c8c0f0
|
||||||
DIST Python-3.8.16.tar.xz 19046724 BLAKE2B cbdeec7961d39cb9ab4960760b5d4c7ae71675c174156aa9f6fca55ee92a93a937ef39defe86e423237a25e0e24703233ce4b91dc97005b6ffc1f342ddd9e22c SHA512 d206e80806409410c00ef8acd8c3d90e3cc9553f996d0a57faa63802f2415e9d7591542b2e84b5e8e79245f40f6478790b5ba2acf1da98ebbc9495999183f7fd
|
DIST Python-3.8.16.tar.xz 19046724 BLAKE2B cbdeec7961d39cb9ab4960760b5d4c7ae71675c174156aa9f6fca55ee92a93a937ef39defe86e423237a25e0e24703233ce4b91dc97005b6ffc1f342ddd9e22c SHA512 d206e80806409410c00ef8acd8c3d90e3cc9553f996d0a57faa63802f2415e9d7591542b2e84b5e8e79245f40f6478790b5ba2acf1da98ebbc9495999183f7fd
|
||||||
DIST Python-3.8.16.tar.xz.asc 833 BLAKE2B 678dabc558d013b104bf9e65d4319076c4730a67093a66fefc073b429c640d4facb31a0d6b7238deb08b265586a0cfb2c345051fe4df7bf5001d7317e6c06c9b SHA512 e93c394c0c5afcaaab625a3bd540dcc8e0ab946803d212343b8d1d6d5e6b89b09b6a20607bab0d858b30389a03305d57e14548605a65277d053c7817f32f4546
|
DIST Python-3.8.16.tar.xz.asc 833 BLAKE2B 678dabc558d013b104bf9e65d4319076c4730a67093a66fefc073b429c640d4facb31a0d6b7238deb08b265586a0cfb2c345051fe4df7bf5001d7317e6c06c9b SHA512 e93c394c0c5afcaaab625a3bd540dcc8e0ab946803d212343b8d1d6d5e6b89b09b6a20607bab0d858b30389a03305d57e14548605a65277d053c7817f32f4546
|
||||||
|
DIST Python-3.8.17.tar.xz 20696584 BLAKE2B 07be197f7d753775b039ca200864e6d40cbb0115538604d0b214a5404beecd38e3ef416c1941f7871e2e92913d09faba48745bb9df141cf8e5ca77c7de6f0a24 SHA512 bc7e02acfebba86e4394f02195993500fac9347a52c7b49727eb0cdda38786ae917234272872d75effaddb042810d9682ef5627b0cc199f8aa0d5d3e315ddc0e
|
||||||
|
DIST Python-3.8.17.tar.xz.asc 833 BLAKE2B c1eb893e8005c59c918528d676f06679182cf45ae256f9929d2daf56577dd2dcb3aff264e9ca47b605ecba2a1c00fabf282c59a231e67cec2324c33c6b3ca7f6 SHA512 bb017e2b17a3ca8ed568d2589285a87365bcca6a677e06fab5184d03e251ace6276117a160f59201e6a1c597e32d79ee109ffc7083266e6e2105b7afaaac3876
|
||||||
DIST Python-3.9.16.tar.xz 19738796 BLAKE2B 70dedeb70d9d8f27e4f6db5106623e087c61d451c7a04639cf8d3503ad02d4d43f1b36d0cdf1131aefc9bf6e677e561227dd4baef2c2c3d2dbf6d3e7dc36bd94 SHA512 b5fd0afe131c82bbce6ddf887c59eef6945910d6a9a2bc87c0927f4e4a096bf9ca4d25bcb729c40f6ebb8a65fbe8bf7b0b97a7c4a8c9e551240eb4f34b878653
|
DIST Python-3.9.16.tar.xz 19738796 BLAKE2B 70dedeb70d9d8f27e4f6db5106623e087c61d451c7a04639cf8d3503ad02d4d43f1b36d0cdf1131aefc9bf6e677e561227dd4baef2c2c3d2dbf6d3e7dc36bd94 SHA512 b5fd0afe131c82bbce6ddf887c59eef6945910d6a9a2bc87c0927f4e4a096bf9ca4d25bcb729c40f6ebb8a65fbe8bf7b0b97a7c4a8c9e551240eb4f34b878653
|
||||||
DIST Python-3.9.16.tar.xz.asc 833 BLAKE2B 416b4a4be06e101c5971c12a6f21229c425bcabaea58487e0d1b24d6dea318c58806ee43892fc704df8252670451bd6a4a2610c25672d3983ddb081fed34b92d SHA512 468959c36a3ec6136f57a39475fff4745a25be0cb5d3d58cf3e5faf0b9ce2d2a8b89f1f9fea1479c4c6ad12ac49e97c1cfd4291c978bb3d30df5a582ec315210
|
DIST Python-3.9.16.tar.xz.asc 833 BLAKE2B 416b4a4be06e101c5971c12a6f21229c425bcabaea58487e0d1b24d6dea318c58806ee43892fc704df8252670451bd6a4a2610c25672d3983ddb081fed34b92d SHA512 468959c36a3ec6136f57a39475fff4745a25be0cb5d3d58cf3e5faf0b9ce2d2a8b89f1f9fea1479c4c6ad12ac49e97c1cfd4291c978bb3d30df5a582ec315210
|
||||||
|
DIST Python-3.9.17.tar.xz 19647312 BLAKE2B eae9d1c0b9a6cd9ce84af75e58899bcd127163c90434d2bc879047706adb087721aa5ac9425e6906e6238296b2695ea0304a2b93288627cee3560ee85f450062 SHA512 994d92346e563a4635411808744eac8207c68e6fc9c1db1c2eb4103dad8553aaad4a8116e38c61f28cb17905a12cc46dccdde985e1c45882bf1815081b88b6be
|
||||||
|
DIST Python-3.9.17.tar.xz.asc 833 BLAKE2B ff3dc342e89149b89b060d0bd8d2a147cc901bc64c1e97d3c21ca8ff2165cd4959ca76ae1df9dbc76039b43d75e8108382ad2d8954e4ae892d174f6eb3aaeb44 SHA512 948196f104539b2e05b17fb5ef2387be392c515222213def7ab6f5b0f490d60e472e8df2dc6ec1df1d293a34d8c26a761412c93aabbdefd3390ee8bdef95a5d8
|
||||||
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.11.tar.xz 13984 BLAKE2B 00c682609876756f61d41f637d0354538823dd713c81f8a3a168d217c515d4559d24e1988c1796b2b920f3962f56e023758b292175d29d5348a87bd8b422f6e7 SHA512 f819113908bc689bb522d2cbe749c658a6b29e7f627718954b12797461a13781352b01f798e2f42b3741a0a0489049bf03405ead4ac8103a025dac11e72b0888
|
DIST python-gentoo-patches-3.10.11.tar.xz 13984 BLAKE2B 00c682609876756f61d41f637d0354538823dd713c81f8a3a168d217c515d4559d24e1988c1796b2b920f3962f56e023758b292175d29d5348a87bd8b422f6e7 SHA512 f819113908bc689bb522d2cbe749c658a6b29e7f627718954b12797461a13781352b01f798e2f42b3741a0a0489049bf03405ead4ac8103a025dac11e72b0888
|
||||||
|
DIST python-gentoo-patches-3.10.12.tar.xz 13980 BLAKE2B 8ca0e652b73634d9fa52fbdd5f224a68ca7f0d6798079e4e5dfa41a3619e9b387166c49551ec77fb2ee035680e1681c129d6db4f82531fe94f56aa46bc1c78e3 SHA512 e41f81afcbf0948a66bc3550225f69a48797eca7461e516ed5259584e4651fe81973c8e76ca4f4a32ef78247306ad33c7a85faea69797f3e090010a1dceff13f
|
||||||
DIST python-gentoo-patches-3.11.3.tar.xz 7776 BLAKE2B 78bf26f554c608c68826b9ea3c63a1df2b45bff755860f39f14306ebb63f17f5111b117519c4a9cb30452a62a14a3a7393798b8920c3d108ec8b6a30db88641e SHA512 64b79c90055fd940590b72ffd3744fe02ab9e46caf7b46f4aa1d074bf3e62d355e128bb2ac68c42f228f2e1bcdee2b0b114d9e2b9bf8427512083c1c5f8680e8
|
DIST python-gentoo-patches-3.11.3.tar.xz 7776 BLAKE2B 78bf26f554c608c68826b9ea3c63a1df2b45bff755860f39f14306ebb63f17f5111b117519c4a9cb30452a62a14a3a7393798b8920c3d108ec8b6a30db88641e SHA512 64b79c90055fd940590b72ffd3744fe02ab9e46caf7b46f4aa1d074bf3e62d355e128bb2ac68c42f228f2e1bcdee2b0b114d9e2b9bf8427512083c1c5f8680e8
|
||||||
|
DIST python-gentoo-patches-3.11.4.tar.xz 7108 BLAKE2B 185bc558a24bead21719d543319a47b36fcd6bdd22a5dcb11ad794a381b2bc51c28f5ea03ca1ad3359e3f96c081c10b08285e4354daf85a0535bfd2123d40d16 SHA512 19ca9fa9071cab3938008af515a65def75ed5cff7152dcab5895b29fc1ba87044a1027540a1cc63231c4e77a8b67fe931bf39adf3d642a648e7da970a0cecd3c
|
||||||
DIST python-gentoo-patches-3.12.0b1.tar.xz 4652 BLAKE2B fcc0b2a8dddb4857e3bd381eb04ddbb593c18e4a3c7e565bc9d386e010f4ddfbb83ed479bd054e51055f30294f7065b045efabb6d45d0be41142dd450f1cada3 SHA512 ce39f99e54c44099a4fbd6da868af3c600320c39e2723b7958a40dfb2ff838e425ef0a87907cb084d96d059054f6222c211ebd258aec255f5fa97579cf9014c7
|
DIST python-gentoo-patches-3.12.0b1.tar.xz 4652 BLAKE2B fcc0b2a8dddb4857e3bd381eb04ddbb593c18e4a3c7e565bc9d386e010f4ddfbb83ed479bd054e51055f30294f7065b045efabb6d45d0be41142dd450f1cada3 SHA512 ce39f99e54c44099a4fbd6da868af3c600320c39e2723b7958a40dfb2ff838e425ef0a87907cb084d96d059054f6222c211ebd258aec255f5fa97579cf9014c7
|
||||||
DIST python-gentoo-patches-3.12.0b1_p1.tar.xz 73068 BLAKE2B 6728a4dcc102cc73e0e3a7e835e25df21075727e3096769f21df1e5411ebe1ad2d9909119bb6a12f96c932cf43de69fda122dffa3c88608c3b4acd76147153b3 SHA512 a459e341418d1882067d0d228401b9ce1365cdaeb75825ca0115add3c5499103986692d0a4fbdf20001632c03eba21171390326ccada6ab3f3c804448bdb79f0
|
DIST python-gentoo-patches-3.12.0b1_p1.tar.xz 73068 BLAKE2B 6728a4dcc102cc73e0e3a7e835e25df21075727e3096769f21df1e5411ebe1ad2d9909119bb6a12f96c932cf43de69fda122dffa3c88608c3b4acd76147153b3 SHA512 a459e341418d1882067d0d228401b9ce1365cdaeb75825ca0115add3c5499103986692d0a4fbdf20001632c03eba21171390326ccada6ab3f3c804448bdb79f0
|
||||||
DIST python-gentoo-patches-3.12.0b1_p3.tar.xz 127756 BLAKE2B b2e0d60cedaf2cfd798387a06e0ea16285b880526639f5050ce285482008bd034c4ee3463f396c96d7b7d6834d4e5f79a4bf441e92b0fe257369c9519d904bf5 SHA512 8e5da370301104f6520c364696b41ce9d1d2561abca096dfb626118d87ac14f8a15fb7a195903aa4aaf6a91189f3dbb9e3833c389fcabb1c9b19720c68228874
|
DIST python-gentoo-patches-3.12.0b1_p3.tar.xz 127756 BLAKE2B b2e0d60cedaf2cfd798387a06e0ea16285b880526639f5050ce285482008bd034c4ee3463f396c96d7b7d6834d4e5f79a4bf441e92b0fe257369c9519d904bf5 SHA512 8e5da370301104f6520c364696b41ce9d1d2561abca096dfb626118d87ac14f8a15fb7a195903aa4aaf6a91189f3dbb9e3833c389fcabb1c9b19720c68228874
|
||||||
DIST python-gentoo-patches-3.12.0b1_p4.tar.xz 127836 BLAKE2B 188fac1b90925b6f80666fd102832909490d82452bb1655c91657d6bf716fca6b4185c34e774387559234a68713ac14d0b5de21a4110ffb3fef200ba8b5379e0 SHA512 07d9dff9e8f53a8b6e79603f2a6b61f5448cf3eb83cdcd184b3131611a7f8bcb975a0ad41bd194256617696df138cff79fbf7626b29f2407435fb0f55175cc72
|
DIST python-gentoo-patches-3.12.0b1_p4.tar.xz 127836 BLAKE2B 188fac1b90925b6f80666fd102832909490d82452bb1655c91657d6bf716fca6b4185c34e774387559234a68713ac14d0b5de21a4110ffb3fef200ba8b5379e0 SHA512 07d9dff9e8f53a8b6e79603f2a6b61f5448cf3eb83cdcd184b3131611a7f8bcb975a0ad41bd194256617696df138cff79fbf7626b29f2407435fb0f55175cc72
|
||||||
|
DIST python-gentoo-patches-3.12.0b2.tar.xz 4652 BLAKE2B 401c9406c9f2f9acf403c73fe75dec65ceb61b4c36b2be0c8c2f3b0b8f02ef727e7f7a913a758931d582e8f10d0003df2adecfef883971157ab60193b00f8305 SHA512 1370b7399eccf6580f0b80303ab2b75bd3c37a4a6503348f3f7ac90dedcb95d00bb0a8b728d59d38e61b4aca237bbbe027eac478edf6ae983810e8c537281b74
|
||||||
DIST python-gentoo-patches-3.8.16_p4.tar.xz 32436 BLAKE2B 76984bbc04e5cf32d70853891967a33366dd28ca2cd47f3538ed1e9f4d39008d04c90f616d92112f5ec3468c42119089d195ee4d936536f8da4a772164aae221 SHA512 ad6d653fec3cce1f73db4b192f7e95b35ae2cf70aa8782d7b69f9d48eee240ef1cc32257a42bbb57f3952720df68b9976164a0b2748e36600332fba488383016
|
DIST python-gentoo-patches-3.8.16_p4.tar.xz 32436 BLAKE2B 76984bbc04e5cf32d70853891967a33366dd28ca2cd47f3538ed1e9f4d39008d04c90f616d92112f5ec3468c42119089d195ee4d936536f8da4a772164aae221 SHA512 ad6d653fec3cce1f73db4b192f7e95b35ae2cf70aa8782d7b69f9d48eee240ef1cc32257a42bbb57f3952720df68b9976164a0b2748e36600332fba488383016
|
||||||
|
DIST python-gentoo-patches-3.8.17.tar.xz 32424 BLAKE2B d992f6b1c971583000086175d07198d367e4504dea8829b35742a3daf2279ba1fbade8c37f00018bda97fa9080d1d40087c236486bbcd369c2d1c850de47a976 SHA512 d309da6805a72742cf8d1bb170a777edd7b7aa936d6e9967e96bed4427285180cd9935f202f899f3aa54632a31a5a94c5b7c20a343b1a714d8aa5fc6f8e9f371
|
||||||
DIST python-gentoo-patches-3.9.16_p3.tar.xz 27160 BLAKE2B 5a41a6ff135c3aca02b19cf9a61f554ca224173854274b872ce85e8c71f25c678604e50b87bae40d4b5ac082731c143338fcc6ef47acebad2b59ce0b1d600f5d SHA512 1ace0a9e929769c29082fdec6845a476c07c13fbbff8726a7a592fda09da8b50c996638b4e4e40acccb15630a796074329adbcc9a004c4305952fa5b0dc4146c
|
DIST python-gentoo-patches-3.9.16_p3.tar.xz 27160 BLAKE2B 5a41a6ff135c3aca02b19cf9a61f554ca224173854274b872ce85e8c71f25c678604e50b87bae40d4b5ac082731c143338fcc6ef47acebad2b59ce0b1d600f5d SHA512 1ace0a9e929769c29082fdec6845a476c07c13fbbff8726a7a592fda09da8b50c996638b4e4e40acccb15630a796074329adbcc9a004c4305952fa5b0dc4146c
|
||||||
|
DIST python-gentoo-patches-3.9.17.tar.xz 25048 BLAKE2B da19105dfa2fda7b422ac368f85c97d7541be74a6f9b9170a19ceac901e026ab39baef83c610172ecba1f70cce6e2832e956c2e4c87387b0e21c79c2c633b116 SHA512 ce9d3c62c675bceccaac21fd467c54322a55a1c8af9be3a6dcfd7a892c03b39b38dc35ba570e3dd9fc984a5f3eeabb3cc564ba2d7f935dbf6df829264cb32b2f
|
||||||
|
@ -187,6 +187,7 @@ src_configure() {
|
|||||||
--timeout 1200
|
--timeout 1200
|
||||||
|
|
||||||
-x test_gdb
|
-x test_gdb
|
||||||
|
-x test_dtrace
|
||||||
|
|
||||||
# All of these seem to occasionally hang for PGO inconsistently
|
# All of these seem to occasionally hang for PGO inconsistently
|
||||||
# They'll even hang here but be fine in src_test sometimes.
|
# They'll even hang here but be fine in src_test sometimes.
|
||||||
|
499
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.12.ebuild
vendored
Normal file
499
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.12.ebuild
vendored
Normal file
@ -0,0 +1,499 @@
|
|||||||
|
# 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 prefix python-utils-r1 toolchain-funcs verify-sig
|
||||||
|
|
||||||
|
MY_PV=${PV/_rc/rc}
|
||||||
|
MY_P="Python-${MY_PV%_p*}"
|
||||||
|
PYVER=$(ver_cut 1-2)
|
||||||
|
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||||
|
|
||||||
|
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://www.python.org/
|
||||||
|
https://github.com/python/cpython/
|
||||||
|
"
|
||||||
|
SRC_URI="
|
||||||
|
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
||||||
|
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||||
|
verify-sig? (
|
||||||
|
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
|
||||||
|
)
|
||||||
|
"
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
LICENSE="PSF-2"
|
||||||
|
SLOT="${PYVER}"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc ~x86"
|
||||||
|
IUSE="
|
||||||
|
bluetooth build debug +ensurepip examples gdbm hardened libedit lto
|
||||||
|
+ncurses pgo +readline +sqlite +ssl test tk valgrind +xml
|
||||||
|
"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||||
|
# If you need to apply a patch which requires python for bootstrapping, please
|
||||||
|
# run the bootstrap code on your dev box and include the results in the
|
||||||
|
# patchset. See bug 447752.
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
app-arch/bzip2:=
|
||||||
|
app-arch/xz-utils:=
|
||||||
|
dev-lang/python-exec[python_targets_python3_10(-)]
|
||||||
|
dev-libs/libffi:=
|
||||||
|
dev-python/gentoo-common
|
||||||
|
>=sys-libs/zlib-1.1.3:=
|
||||||
|
virtual/libcrypt:=
|
||||||
|
virtual/libintl
|
||||||
|
ensurepip? ( dev-python/ensurepip-wheels )
|
||||||
|
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||||
|
kernel_linux? ( sys-apps/util-linux:= )
|
||||||
|
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||||
|
readline? (
|
||||||
|
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||||
|
libedit? ( dev-libs/libedit:= )
|
||||||
|
)
|
||||||
|
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||||
|
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||||
|
tk? (
|
||||||
|
>=dev-lang/tcl-8.0:=
|
||||||
|
>=dev-lang/tk-8.0:=
|
||||||
|
dev-tcltk/blt:=
|
||||||
|
dev-tcltk/tix
|
||||||
|
)
|
||||||
|
xml? ( >=dev-libs/expat-2.1:= )
|
||||||
|
!!<sys-apps/sandbox-2.21
|
||||||
|
"
|
||||||
|
# bluetooth requires headers from bluez
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
bluetooth? ( net-wireless/bluez )
|
||||||
|
valgrind? ( dev-util/valgrind )
|
||||||
|
test? ( app-arch/xz-utils[extra-filters(+)] )
|
||||||
|
"
|
||||||
|
# autoconf-archive needed to eautoreconf
|
||||||
|
BDEPEND="
|
||||||
|
sys-devel/autoconf-archive
|
||||||
|
app-alternatives/awk
|
||||||
|
virtual/pkgconfig
|
||||||
|
verify-sig? ( sec-keys/openpgp-keys-python )
|
||||||
|
"
|
||||||
|
RDEPEND+="
|
||||||
|
!build? ( app-misc/mime-types )
|
||||||
|
"
|
||||||
|
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH=${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.
|
||||||
|
rm -r Modules/expat || die
|
||||||
|
rm -r Modules/_ctypes/libffi* || die
|
||||||
|
|
||||||
|
local PATCHES=(
|
||||||
|
"${WORKDIR}/${PATCHSET}"
|
||||||
|
)
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
# https://bugs.gentoo.org/850151
|
||||||
|
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
|
||||||
|
|
||||||
|
# force the correct number of jobs
|
||||||
|
# https://bugs.gentoo.org/737660
|
||||||
|
local jobs=$(makeopts_jobs)
|
||||||
|
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||||
|
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||||
|
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# disable automagic bluetooth headers detection
|
||||||
|
if ! use bluetooth; then
|
||||||
|
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||||
|
fi
|
||||||
|
local disable
|
||||||
|
use gdbm || disable+=" gdbm"
|
||||||
|
use ncurses || disable+=" _curses _curses_panel"
|
||||||
|
use readline || disable+=" readline"
|
||||||
|
use sqlite || disable+=" _sqlite3"
|
||||||
|
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||||
|
use tk || disable+=" _tkinter"
|
||||||
|
use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
|
||||||
|
export PYTHON_DISABLE_MODULES="${disable}"
|
||||||
|
|
||||||
|
if ! use xml; then
|
||||||
|
ewarn "You have configured Python without XML support."
|
||||||
|
ewarn "This is NOT a recommended configuration as you"
|
||||||
|
ewarn "may face problems parsing any XML documents."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||||
|
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||||
|
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-system-ffi
|
||||||
|
--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 and bug #864911.
|
||||||
|
local myeconfargs_cbuild=(
|
||||||
|
"${myeconfargs[@]}"
|
||||||
|
|
||||||
|
--libdir="${cbuild_libdir:2}"
|
||||||
|
|
||||||
|
# Avoid needing to load the right libpython.so.
|
||||||
|
--disable-shared
|
||||||
|
|
||||||
|
# As minimal as possible for the mini CBUILD Python
|
||||||
|
# we build just for cross.
|
||||||
|
--without-lto
|
||||||
|
--disable-optimizations
|
||||||
|
)
|
||||||
|
|
||||||
|
# Point the imminent CHOST build to the Python we just
|
||||||
|
# built for CBUILD.
|
||||||
|
export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
|
||||||
|
|
||||||
|
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||||
|
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||||
|
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
|
||||||
|
# libdir correctly for cross.
|
||||||
|
PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" \
|
||||||
|
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||||
|
|
||||||
|
# Avoid as many dependencies as possible for the cross build.
|
||||||
|
cat >> Makefile <<-EOF || die
|
||||||
|
MODULE_NIS=disabled
|
||||||
|
MODULE__DBM=disabled
|
||||||
|
MODULE__GDBM=disabled
|
||||||
|
MODULE__DBM=disabled
|
||||||
|
MODULE__SQLITE3=disabled
|
||||||
|
MODULE__HASHLIB=disabled
|
||||||
|
MODULE__SSL=disabled
|
||||||
|
MODULE__CURSES=disabled
|
||||||
|
MODULE__CURSES_PANEL=disabled
|
||||||
|
MODULE_READLINE=disabled
|
||||||
|
MODULE__TKINTER=disabled
|
||||||
|
MODULE_PYEXPAT=disabled
|
||||||
|
MODULE_ZLIB=disabled
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Unfortunately, we do have to build this immediately, and
|
||||||
|
# not in src_compile, because CHOST configure for Python
|
||||||
|
# will check the existence of the Python it was pointed to
|
||||||
|
# immediately.
|
||||||
|
PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" emake
|
||||||
|
popd &> /dev/null || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
local -x CFLAGS_NODIST=${CFLAGS}
|
||||||
|
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||||
|
if use ncurses; then
|
||||||
|
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||||
|
fi
|
||||||
|
|
||||||
|
hprefixify setup.py
|
||||||
|
econf "${myeconfargs[@]}"
|
||||||
|
|
||||||
|
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||||
|
eerror "configure has detected that the sem_open function is broken."
|
||||||
|
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||||
|
die "Broken sem_open function (bug 496328)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# install epython.py as part of stdlib
|
||||||
|
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
# Ensure sed works as expected
|
||||||
|
# https://bugs.gentoo.org/594768
|
||||||
|
local -x LC_ALL=C
|
||||||
|
# Prevent using distutils bundled by setuptools.
|
||||||
|
# https://bugs.gentoo.org/823728
|
||||||
|
export SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||||
|
|
||||||
|
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||||
|
# end up writing bytecode & violating sandbox.
|
||||||
|
# bug #831897
|
||||||
|
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||||
|
|
||||||
|
if use pgo ; then
|
||||||
|
# bug 660358
|
||||||
|
local -x COLUMNS=80
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=
|
||||||
|
|
||||||
|
addpredict "/usr/lib/python${PYVER}/site-packages"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# also need to clear the flags explicitly here or they end up
|
||||||
|
# in _sysconfigdata*
|
||||||
|
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Restore saved value from above.
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||||
|
|
||||||
|
# Work around bug 329499. See also bug 413751 and 457194.
|
||||||
|
if has_version dev-libs/libffi[pax-kernel]; then
|
||||||
|
pax-mark E python
|
||||||
|
else
|
||||||
|
pax-mark m python
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
# Tests will not work when cross compiling.
|
||||||
|
if tc-is-cross-compiler; then
|
||||||
|
elog "Disabling tests due to crosscompiling."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local test_opts=(
|
||||||
|
-u-network
|
||||||
|
-j "$(makeopts_jobs)"
|
||||||
|
|
||||||
|
# fails
|
||||||
|
-x test_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}
|
||||||
|
|
||||||
|
emake DESTDIR="${D}" altinstall
|
||||||
|
|
||||||
|
# Fix collisions between different slots of Python.
|
||||||
|
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||||
|
|
||||||
|
# Cheap hack to get version with ABIFLAGS
|
||||||
|
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||||
|
if [[ ${abiver} != python${PYVER} ]]; then
|
||||||
|
# Replace python3.X with a symlink to python3.Xm
|
||||||
|
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||||
|
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||||
|
# Create python3.X-config symlink
|
||||||
|
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||||
|
# Create python-3.5m.pc symlink
|
||||||
|
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# python seems to get rebuilt in src_install (bug 569908)
|
||||||
|
# Work around it for now.
|
||||||
|
if has_version dev-libs/libffi[pax-kernel]; then
|
||||||
|
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||||
|
else
|
||||||
|
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||||
|
if ! use ensurepip; then
|
||||||
|
rm -r "${libdir}"/ensurepip || die
|
||||||
|
fi
|
||||||
|
if ! use sqlite; then
|
||||||
|
rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||||
|
fi
|
||||||
|
if ! use tk; then
|
||||||
|
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||||
|
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
|
||||||
|
|
||||||
|
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||||
|
|
||||||
|
if use examples; then
|
||||||
|
docinto examples
|
||||||
|
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||||
|
dodoc -r Tools
|
||||||
|
fi
|
||||||
|
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||||
|
local libname=$(
|
||||||
|
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
|
||||||
|
emake --no-print-directory -s -f - 2>/dev/null
|
||||||
|
)
|
||||||
|
newins Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||||
|
|
||||||
|
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||||
|
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||||
|
sed \
|
||||||
|
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||||
|
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||||
|
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||||
|
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||||
|
|
||||||
|
# python-exec wrapping support
|
||||||
|
local pymajor=${PYVER%.*}
|
||||||
|
local EPYTHON=python${PYVER}
|
||||||
|
local scriptdir=${D}$(python_get_scriptdir)
|
||||||
|
mkdir -p "${scriptdir}" || die
|
||||||
|
# python and pythonX
|
||||||
|
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
|
||||||
|
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||||
|
# python-config and pythonX-config
|
||||||
|
# note: we need to create a wrapper rather than symlinking it due
|
||||||
|
# to some random dirname(argv[0]) magic performed by python-config
|
||||||
|
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||||
|
#!/bin/sh
|
||||||
|
exec "${abiver}-config" "\${@}"
|
||||||
|
EOF
|
||||||
|
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||||
|
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
|
||||||
|
# 2to3, pydoc
|
||||||
|
ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
|
||||||
|
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||||
|
# idle
|
||||||
|
if use tk; then
|
||||||
|
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||||
|
fi
|
||||||
|
}
|
@ -174,6 +174,7 @@ src_configure() {
|
|||||||
--timeout 1200
|
--timeout 1200
|
||||||
|
|
||||||
-x test_gdb
|
-x test_gdb
|
||||||
|
-x test_dtrace
|
||||||
|
|
||||||
# All of these seem to occasionally hang for PGO inconsistently
|
# All of these seem to occasionally hang for PGO inconsistently
|
||||||
# They'll even hang here but be fine in src_test sometimes.
|
# They'll even hang here but be fine in src_test sometimes.
|
||||||
|
528
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.4.ebuild
vendored
Normal file
528
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.4.ebuild
vendored
Normal file
@ -0,0 +1,528 @@
|
|||||||
|
# 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 prefix python-utils-r1 toolchain-funcs verify-sig
|
||||||
|
|
||||||
|
MY_PV=${PV/_rc/rc}
|
||||||
|
MY_P="Python-${MY_PV%_p*}"
|
||||||
|
PYVER=$(ver_cut 1-2)
|
||||||
|
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||||
|
|
||||||
|
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://www.python.org/
|
||||||
|
https://github.com/python/cpython/
|
||||||
|
"
|
||||||
|
SRC_URI="
|
||||||
|
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
||||||
|
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||||
|
verify-sig? (
|
||||||
|
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
|
||||||
|
)
|
||||||
|
"
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
LICENSE="PSF-2"
|
||||||
|
SLOT="${PYVER}"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm arm64 hppa ~ia64 ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||||
|
IUSE="
|
||||||
|
bluetooth build debug +ensurepip examples gdbm hardened 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-wheels )
|
||||||
|
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||||
|
kernel_linux? ( sys-apps/util-linux:= )
|
||||||
|
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||||
|
readline? (
|
||||||
|
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||||
|
libedit? ( dev-libs/libedit:= )
|
||||||
|
)
|
||||||
|
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||||
|
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||||
|
tk? (
|
||||||
|
>=dev-lang/tcl-8.0:=
|
||||||
|
>=dev-lang/tk-8.0:=
|
||||||
|
dev-tcltk/blt:=
|
||||||
|
dev-tcltk/tix
|
||||||
|
)
|
||||||
|
!!<sys-apps/sandbox-2.21
|
||||||
|
"
|
||||||
|
# bluetooth requires headers from bluez
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
bluetooth? ( net-wireless/bluez )
|
||||||
|
test? ( app-arch/xz-utils[extra-filters(+)] )
|
||||||
|
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 )
|
||||||
|
"
|
||||||
|
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.
|
||||||
|
rm -r Modules/expat || die
|
||||||
|
rm -r Modules/_ctypes/libffi* || die
|
||||||
|
|
||||||
|
local PATCHES=(
|
||||||
|
"${WORKDIR}/${PATCHSET}"
|
||||||
|
)
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
# https://bugs.gentoo.org/850151
|
||||||
|
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
|
||||||
|
|
||||||
|
# force the correct number of jobs
|
||||||
|
# https://bugs.gentoo.org/737660
|
||||||
|
local jobs=$(makeopts_jobs)
|
||||||
|
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||||
|
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||||
|
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
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-system-ffi
|
||||||
|
--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
|
||||||
|
|
||||||
|
hprefixify setup.py
|
||||||
|
econf "${myeconfargs[@]}"
|
||||||
|
|
||||||
|
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||||
|
eerror "configure has detected that the sem_open function is broken."
|
||||||
|
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||||
|
die "Broken sem_open function (bug 496328)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# force-disable modules we don't want built
|
||||||
|
local disable_modules=( NIS )
|
||||||
|
use gdbm || disable_modules+=( _GDBM _DBM )
|
||||||
|
use sqlite || disable_modules+=( _SQLITE3 )
|
||||||
|
use ssl || disable_modules+=( _HASHLIB _SSL )
|
||||||
|
use ncurses || disable_modules+=( _CURSES _CURSES_PANEL )
|
||||||
|
use readline || disable_modules+=( READLINE )
|
||||||
|
use tk || disable_modules+=( _TKINTER )
|
||||||
|
|
||||||
|
local mod
|
||||||
|
for mod in "${disable_modules[@]}"; do
|
||||||
|
echo "MODULE_${mod}_STATE=disabled"
|
||||||
|
done >> Makefile || die
|
||||||
|
|
||||||
|
# install epython.py as part of stdlib
|
||||||
|
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
# Ensure sed works as expected
|
||||||
|
# https://bugs.gentoo.org/594768
|
||||||
|
local -x LC_ALL=C
|
||||||
|
# Prevent using distutils bundled by setuptools.
|
||||||
|
# https://bugs.gentoo.org/823728
|
||||||
|
export SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||||
|
export PYTHONSTRICTEXTENSIONBUILD=1
|
||||||
|
|
||||||
|
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||||
|
# end up writing bytecode & violating sandbox.
|
||||||
|
# bug #831897
|
||||||
|
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||||
|
|
||||||
|
if use pgo ; then
|
||||||
|
# bug 660358
|
||||||
|
local -x COLUMNS=80
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=
|
||||||
|
|
||||||
|
addpredict "/usr/lib/python${PYVER}/site-packages"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# also need to clear the flags explicitly here or they end up
|
||||||
|
# in _sysconfigdata*
|
||||||
|
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Restore saved value from above.
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||||
|
|
||||||
|
# Work around bug 329499. See also bug 413751 and 457194.
|
||||||
|
if has_version dev-libs/libffi[pax-kernel]; then
|
||||||
|
pax-mark E python
|
||||||
|
else
|
||||||
|
pax-mark m python
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
# Tests will not work when cross compiling.
|
||||||
|
if tc-is-cross-compiler; then
|
||||||
|
elog "Disabling tests due to crosscompiling."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# this just happens to skip test_support.test_freeze that is broken
|
||||||
|
# without bundled expat
|
||||||
|
# TODO: get a proper skip for it upstream
|
||||||
|
local -x LOGNAME=buildbot
|
||||||
|
|
||||||
|
local test_opts=(
|
||||||
|
-u-network
|
||||||
|
-j "$(makeopts_jobs)"
|
||||||
|
|
||||||
|
# fails
|
||||||
|
-x test_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}
|
||||||
|
|
||||||
|
# -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
|
||||||
|
}
|
@ -169,6 +169,7 @@ src_configure() {
|
|||||||
--timeout 1200
|
--timeout 1200
|
||||||
|
|
||||||
-x test_gdb
|
-x test_gdb
|
||||||
|
-x test_dtrace
|
||||||
|
|
||||||
# All of these seem to occasionally hang for PGO inconsistently
|
# All of these seem to occasionally hang for PGO inconsistently
|
||||||
# They'll even hang here but be fine in src_test sometimes.
|
# They'll even hang here but be fine in src_test sometimes.
|
||||||
|
@ -169,6 +169,7 @@ src_configure() {
|
|||||||
--timeout 1200
|
--timeout 1200
|
||||||
|
|
||||||
-x test_gdb
|
-x test_gdb
|
||||||
|
-x test_dtrace
|
||||||
|
|
||||||
# All of these seem to occasionally hang for PGO inconsistently
|
# All of these seem to occasionally hang for PGO inconsistently
|
||||||
# They'll even hang here but be fine in src_test sometimes.
|
# They'll even hang here but be fine in src_test sometimes.
|
||||||
|
@ -169,6 +169,7 @@ src_configure() {
|
|||||||
--timeout 1200
|
--timeout 1200
|
||||||
|
|
||||||
-x test_gdb
|
-x test_gdb
|
||||||
|
-x test_dtrace
|
||||||
|
|
||||||
# All of these seem to occasionally hang for PGO inconsistently
|
# All of these seem to occasionally hang for PGO inconsistently
|
||||||
# They'll even hang here but be fine in src_test sometimes.
|
# They'll even hang here but be fine in src_test sometimes.
|
||||||
|
@ -169,6 +169,7 @@ src_configure() {
|
|||||||
--timeout 1200
|
--timeout 1200
|
||||||
|
|
||||||
-x test_gdb
|
-x test_gdb
|
||||||
|
-x test_dtrace
|
||||||
|
|
||||||
# All of these seem to occasionally hang for PGO inconsistently
|
# All of these seem to occasionally hang for PGO inconsistently
|
||||||
# They'll even hang here but be fine in src_test sometimes.
|
# They'll even hang here but be fine in src_test sometimes.
|
||||||
|
522
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.0_beta2.ebuild
vendored
Normal file
522
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.0_beta2.ebuild
vendored
Normal file
@ -0,0 +1,522 @@
|
|||||||
|
# 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 hardened 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-wheels )
|
||||||
|
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||||
|
kernel_linux? ( sys-apps/util-linux:= )
|
||||||
|
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||||
|
readline? (
|
||||||
|
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||||
|
libedit? ( dev-libs/libedit:= )
|
||||||
|
)
|
||||||
|
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||||
|
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||||
|
tk? (
|
||||||
|
>=dev-lang/tcl-8.0:=
|
||||||
|
>=dev-lang/tk-8.0:=
|
||||||
|
dev-tcltk/blt:=
|
||||||
|
dev-tcltk/tix
|
||||||
|
)
|
||||||
|
!!<sys-apps/sandbox-2.21
|
||||||
|
"
|
||||||
|
# bluetooth requires headers from bluez
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
bluetooth? ( net-wireless/bluez )
|
||||||
|
test? ( app-arch/xz-utils[extra-filters(+)] )
|
||||||
|
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
|
||||||
|
}
|
428
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.8.17.ebuild
vendored
Normal file
428
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.8.17.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="7"
|
||||||
|
WANT_LIBTOOL="none"
|
||||||
|
|
||||||
|
inherit autotools flag-o-matic multiprocessing pax-utils
|
||||||
|
inherit prefix python-utils-r1 toolchain-funcs verify-sig
|
||||||
|
|
||||||
|
MY_PV=${PV/_rc/rc}
|
||||||
|
MY_P="Python-${MY_PV%_p*}"
|
||||||
|
PYVER=$(ver_cut 1-2)
|
||||||
|
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||||
|
|
||||||
|
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://www.python.org/
|
||||||
|
https://github.com/python/cpython/
|
||||||
|
"
|
||||||
|
SRC_URI="
|
||||||
|
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
||||||
|
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||||
|
verify-sig? (
|
||||||
|
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
|
||||||
|
)
|
||||||
|
"
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
LICENSE="PSF-2"
|
||||||
|
SLOT="${PYVER}"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||||
|
IUSE="
|
||||||
|
bluetooth build debug +ensurepip examples gdbm hardened lto +ncurses pgo
|
||||||
|
+readline +sqlite +ssl test tk valgrind wininst +xml
|
||||||
|
"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||||
|
# If you need to apply a patch which requires python for bootstrapping, please
|
||||||
|
# run the bootstrap code on your dev box and include the results in the
|
||||||
|
# patchset. See bug 447752.
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
app-arch/bzip2:=
|
||||||
|
app-arch/xz-utils:=
|
||||||
|
dev-libs/libffi:=
|
||||||
|
>=sys-libs/zlib-1.1.3:=
|
||||||
|
virtual/libcrypt:=
|
||||||
|
virtual/libintl
|
||||||
|
ensurepip? ( dev-python/ensurepip-wheels )
|
||||||
|
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||||
|
kernel_linux? ( sys-apps/util-linux:= )
|
||||||
|
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||||
|
readline? ( >=sys-libs/readline-4.1:= )
|
||||||
|
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||||
|
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||||
|
tk? (
|
||||||
|
>=dev-lang/tcl-8.0:=
|
||||||
|
>=dev-lang/tk-8.0:=
|
||||||
|
dev-tcltk/blt:=
|
||||||
|
dev-tcltk/tix
|
||||||
|
)
|
||||||
|
xml? ( >=dev-libs/expat-2.1:= )
|
||||||
|
"
|
||||||
|
# bluetooth requires headers from bluez
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
bluetooth? ( net-wireless/bluez )
|
||||||
|
test? ( app-arch/xz-utils[extra-filters(+)] )
|
||||||
|
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 )
|
||||||
|
"
|
||||||
|
RDEPEND+="
|
||||||
|
!build? ( app-misc/mime-types )
|
||||||
|
"
|
||||||
|
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/python.org.asc
|
||||||
|
|
||||||
|
QA_PKGCONFIG_VERSION=${PYVER}
|
||||||
|
# false positives -- functions specific to *BSD
|
||||||
|
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if use verify-sig; then
|
||||||
|
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||||
|
fi
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# Ensure that internal copies of expat and libffi are not used.
|
||||||
|
rm -r Modules/expat || die
|
||||||
|
rm -r Modules/_ctypes/libffi* || die
|
||||||
|
|
||||||
|
local PATCHES=(
|
||||||
|
"${WORKDIR}/${PATCHSET}"
|
||||||
|
)
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
# https://bugs.gentoo.org/850151
|
||||||
|
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
|
||||||
|
|
||||||
|
# force the correct number of jobs
|
||||||
|
# https://bugs.gentoo.org/737660
|
||||||
|
local jobs=$(makeopts_jobs)
|
||||||
|
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||||
|
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||||
|
|
||||||
|
if ! use wininst; then
|
||||||
|
rm Lib/distutils/command/wininst*.exe || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# disable automagic bluetooth headers detection
|
||||||
|
if ! use bluetooth; then
|
||||||
|
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||||
|
fi
|
||||||
|
local disable
|
||||||
|
use gdbm || disable+=" gdbm"
|
||||||
|
use ncurses || disable+=" _curses _curses_panel"
|
||||||
|
use readline || disable+=" readline"
|
||||||
|
use sqlite || disable+=" _sqlite3"
|
||||||
|
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||||
|
use tk || disable+=" _tkinter"
|
||||||
|
use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
|
||||||
|
export PYTHON_DISABLE_MODULES="${disable}"
|
||||||
|
|
||||||
|
if ! use xml; then
|
||||||
|
ewarn "You have configured Python without XML support."
|
||||||
|
ewarn "This is NOT a recommended configuration as you"
|
||||||
|
ewarn "may face problems parsing any XML documents."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||||
|
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||||
|
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
|
||||||
|
|
||||||
|
local myeconfargs=(
|
||||||
|
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||||
|
# Python on glibc upgrade, remove it proactively to give
|
||||||
|
# a chance for users rebuilding python before glibc
|
||||||
|
ac_cv_header_stropts_h=no
|
||||||
|
|
||||||
|
--enable-shared
|
||||||
|
--enable-ipv6
|
||||||
|
--infodir='${prefix}/share/info'
|
||||||
|
--mandir='${prefix}/share/man'
|
||||||
|
--with-computed-gotos
|
||||||
|
--with-dbmliborder="${dbmliborder}"
|
||||||
|
--with-libc=
|
||||||
|
--enable-loadable-sqlite-extensions
|
||||||
|
--without-ensurepip
|
||||||
|
--with-system-expat
|
||||||
|
--with-system-ffi
|
||||||
|
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||||
|
|
||||||
|
$(use_with debug assertions)
|
||||||
|
$(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 and bug #864911.
|
||||||
|
local myeconfargs_cbuild=(
|
||||||
|
"${myeconfargs[@]}"
|
||||||
|
|
||||||
|
--libdir="${cbuild_libdir:2}"
|
||||||
|
|
||||||
|
# Avoid needing to load the right libpython.so.
|
||||||
|
--disable-shared
|
||||||
|
|
||||||
|
# As minimal as possible for the mini CBUILD Python
|
||||||
|
# we build just for cross.
|
||||||
|
--without-lto
|
||||||
|
--disable-optimizations
|
||||||
|
)
|
||||||
|
|
||||||
|
# Point the imminent CHOST build to the Python we just
|
||||||
|
# built for CBUILD.
|
||||||
|
export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
|
||||||
|
|
||||||
|
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||||
|
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||||
|
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
|
||||||
|
# libdir correctly for cross.
|
||||||
|
PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" \
|
||||||
|
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||||
|
|
||||||
|
# Avoid as many dependencies as possible for the cross build.
|
||||||
|
cat >> Makefile <<-EOF || die
|
||||||
|
MODULE_NIS=disabled
|
||||||
|
MODULE__DBM=disabled
|
||||||
|
MODULE__GDBM=disabled
|
||||||
|
MODULE__DBM=disabled
|
||||||
|
MODULE__SQLITE3=disabled
|
||||||
|
MODULE__HASHLIB=disabled
|
||||||
|
MODULE__SSL=disabled
|
||||||
|
MODULE__CURSES=disabled
|
||||||
|
MODULE__CURSES_PANEL=disabled
|
||||||
|
MODULE_READLINE=disabled
|
||||||
|
MODULE__TKINTER=disabled
|
||||||
|
MODULE_PYEXPAT=disabled
|
||||||
|
MODULE_ZLIB=disabled
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Unfortunately, we do have to build this immediately, and
|
||||||
|
# not in src_compile, because CHOST configure for Python
|
||||||
|
# will check the existence of the Python it was pointed to
|
||||||
|
# immediately.
|
||||||
|
PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" emake
|
||||||
|
popd &> /dev/null || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
local -x CFLAGS_NODIST=${CFLAGS}
|
||||||
|
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||||
|
if use ncurses; then
|
||||||
|
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||||
|
fi
|
||||||
|
|
||||||
|
hprefixify setup.py
|
||||||
|
econf "${myeconfargs[@]}"
|
||||||
|
|
||||||
|
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||||
|
eerror "configure has detected that the sem_open function is broken."
|
||||||
|
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||||
|
die "Broken sem_open function (bug 496328)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# install epython.py as part of stdlib
|
||||||
|
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
# Ensure sed works as expected
|
||||||
|
# https://bugs.gentoo.org/594768
|
||||||
|
local -x LC_ALL=C
|
||||||
|
# Prevent using distutils bundled by setuptools.
|
||||||
|
# https://bugs.gentoo.org/823728
|
||||||
|
export SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||||
|
|
||||||
|
# also need to clear the flags explicitly here or they end up
|
||||||
|
# in _sysconfigdata*
|
||||||
|
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Work around bug 329499. See also bug 413751 and 457194.
|
||||||
|
if has_version dev-libs/libffi[pax-kernel]; then
|
||||||
|
pax-mark E python
|
||||||
|
else
|
||||||
|
pax-mark m python
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
# Tests will not work when cross compiling.
|
||||||
|
if tc-is-cross-compiler; then
|
||||||
|
elog "Disabling tests due to crosscompiling."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local test_opts=(
|
||||||
|
-u-network
|
||||||
|
-j "$(makeopts_jobs)"
|
||||||
|
|
||||||
|
# fails
|
||||||
|
-x test_gdb
|
||||||
|
)
|
||||||
|
|
||||||
|
if use sparc ; then
|
||||||
|
# bug #788022
|
||||||
|
test_opts+=(
|
||||||
|
-x test_multiprocessing_fork
|
||||||
|
-x test_multiprocessing_forkserver
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# workaround docutils breaking tests
|
||||||
|
cat > Lib/docutils.py <<-EOF || die
|
||||||
|
raise ImportError("Thou shalt not import!")
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# bug 660358
|
||||||
|
local -x COLUMNS=80
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=
|
||||||
|
|
||||||
|
nonfatal emake test EXTRATESTOPTS="${test_opts[*]}" \
|
||||||
|
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||||
|
local ret=${?}
|
||||||
|
|
||||||
|
rm Lib/docutils.py || die
|
||||||
|
|
||||||
|
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local libdir=${ED}/usr/lib/python${PYVER}
|
||||||
|
|
||||||
|
emake DESTDIR="${D}" altinstall
|
||||||
|
|
||||||
|
# Remove static library
|
||||||
|
rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
|
||||||
|
|
||||||
|
# Fix collisions between different slots of Python.
|
||||||
|
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||||
|
|
||||||
|
# Cheap hack to get version with ABIFLAGS
|
||||||
|
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||||
|
if [[ ${abiver} != python${PYVER} ]]; then
|
||||||
|
# Replace python3.X with a symlink to python3.Xm
|
||||||
|
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||||
|
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||||
|
# Create python3.X-config symlink
|
||||||
|
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||||
|
# Create python-3.5m.pc symlink
|
||||||
|
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# python seems to get rebuilt in src_install (bug 569908)
|
||||||
|
# Work around it for now.
|
||||||
|
if has_version dev-libs/libffi[pax-kernel]; then
|
||||||
|
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||||
|
else
|
||||||
|
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||||
|
if ! use ensurepip; then
|
||||||
|
rm -r "${libdir}"/ensurepip || die
|
||||||
|
fi
|
||||||
|
if ! use sqlite; then
|
||||||
|
rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||||
|
fi
|
||||||
|
if ! use tk; then
|
||||||
|
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||||
|
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
@ -176,6 +176,7 @@ src_configure() {
|
|||||||
"-j$(makeopts_jobs)"
|
"-j$(makeopts_jobs)"
|
||||||
--pgo-extended
|
--pgo-extended
|
||||||
-x test_gdb
|
-x test_gdb
|
||||||
|
-x test_dtrace
|
||||||
-u-network
|
-u-network
|
||||||
|
|
||||||
# All of these seem to occasionally hang for PGO inconsistently
|
# All of these seem to occasionally hang for PGO inconsistently
|
||||||
|
488
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.17.ebuild
vendored
Normal file
488
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.17.ebuild
vendored
Normal file
@ -0,0 +1,488 @@
|
|||||||
|
# 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 prefix python-utils-r1 toolchain-funcs verify-sig
|
||||||
|
|
||||||
|
MY_PV=${PV/_rc/rc}
|
||||||
|
MY_P="Python-${MY_PV%_p*}"
|
||||||
|
PYVER=$(ver_cut 1-2)
|
||||||
|
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||||
|
|
||||||
|
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://www.python.org/
|
||||||
|
https://github.com/python/cpython/
|
||||||
|
"
|
||||||
|
SRC_URI="
|
||||||
|
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
||||||
|
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||||
|
verify-sig? (
|
||||||
|
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
|
||||||
|
)
|
||||||
|
"
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
LICENSE="PSF-2"
|
||||||
|
SLOT="${PYVER}"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||||
|
IUSE="
|
||||||
|
bluetooth build debug +ensurepip examples gdbm hardened lto +ncurses pgo
|
||||||
|
+readline +sqlite +ssl test tk valgrind +xml
|
||||||
|
"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||||
|
# If you need to apply a patch which requires python for bootstrapping, please
|
||||||
|
# run the bootstrap code on your dev box and include the results in the
|
||||||
|
# patchset. See bug 447752.
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
app-arch/bzip2:=
|
||||||
|
app-arch/xz-utils:=
|
||||||
|
dev-libs/libffi:=
|
||||||
|
dev-python/gentoo-common
|
||||||
|
>=sys-libs/zlib-1.1.3:=
|
||||||
|
virtual/libcrypt:=
|
||||||
|
virtual/libintl
|
||||||
|
ensurepip? ( dev-python/ensurepip-wheels )
|
||||||
|
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||||
|
kernel_linux? ( sys-apps/util-linux:= )
|
||||||
|
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||||
|
readline? ( >=sys-libs/readline-4.1:= )
|
||||||
|
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||||
|
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||||
|
tk? (
|
||||||
|
>=dev-lang/tcl-8.0:=
|
||||||
|
>=dev-lang/tk-8.0:=
|
||||||
|
dev-tcltk/blt:=
|
||||||
|
dev-tcltk/tix
|
||||||
|
)
|
||||||
|
xml? ( >=dev-libs/expat-2.1:= )
|
||||||
|
"
|
||||||
|
# bluetooth requires headers from bluez
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
bluetooth? ( net-wireless/bluez )
|
||||||
|
test? ( app-arch/xz-utils[extra-filters(+)] )
|
||||||
|
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 )
|
||||||
|
"
|
||||||
|
RDEPEND+="
|
||||||
|
!build? ( app-misc/mime-types )
|
||||||
|
"
|
||||||
|
|
||||||
|
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.
|
||||||
|
rm -r Modules/expat || die
|
||||||
|
rm -r Modules/_ctypes/libffi* || die
|
||||||
|
|
||||||
|
local PATCHES=(
|
||||||
|
"${WORKDIR}/${PATCHSET}"
|
||||||
|
)
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
# https://bugs.gentoo.org/850151
|
||||||
|
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
|
||||||
|
|
||||||
|
# force the correct number of jobs
|
||||||
|
# https://bugs.gentoo.org/737660
|
||||||
|
local jobs=$(makeopts_jobs)
|
||||||
|
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||||
|
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||||
|
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# disable automagic bluetooth headers detection
|
||||||
|
if ! use bluetooth; then
|
||||||
|
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||||
|
fi
|
||||||
|
local disable
|
||||||
|
use gdbm || disable+=" gdbm"
|
||||||
|
use ncurses || disable+=" _curses _curses_panel"
|
||||||
|
use readline || disable+=" readline"
|
||||||
|
use sqlite || disable+=" _sqlite3"
|
||||||
|
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||||
|
use tk || disable+=" _tkinter"
|
||||||
|
use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
|
||||||
|
export PYTHON_DISABLE_MODULES="${disable}"
|
||||||
|
|
||||||
|
if ! use xml; then
|
||||||
|
ewarn "You have configured Python without XML support."
|
||||||
|
ewarn "This is NOT a recommended configuration as you"
|
||||||
|
ewarn "may face problems parsing any XML documents."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||||
|
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||||
|
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
|
||||||
|
-x test_gdb
|
||||||
|
-x test_dtrace
|
||||||
|
-u-network
|
||||||
|
|
||||||
|
# All of these seem to occasionally hang for PGO inconsistently
|
||||||
|
# They'll even hang here but be fine in src_test sometimes.
|
||||||
|
# bug #828535 (and related: bug #788022)
|
||||||
|
-x test_asyncio
|
||||||
|
-x test_httpservers
|
||||||
|
-x test_logging
|
||||||
|
-x test_multiprocessing_fork
|
||||||
|
-x test_socket
|
||||||
|
-x test_xmlrpc
|
||||||
|
|
||||||
|
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
|
||||||
|
# bug #900429
|
||||||
|
-x test_tools
|
||||||
|
)
|
||||||
|
|
||||||
|
if has_version "app-arch/rpm" ; then
|
||||||
|
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||||
|
profile_task_flags+=(
|
||||||
|
-x test_distutils
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
local -x PROFILE_TASK="${profile_task_flags[*]}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local myeconfargs=(
|
||||||
|
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||||
|
# Python on glibc upgrade, remove it proactively to give
|
||||||
|
# a chance for users rebuilding python before glibc
|
||||||
|
ac_cv_header_stropts_h=no
|
||||||
|
|
||||||
|
--enable-shared
|
||||||
|
--enable-ipv6
|
||||||
|
--infodir='${prefix}/share/info'
|
||||||
|
--mandir='${prefix}/share/man'
|
||||||
|
--with-computed-gotos
|
||||||
|
--with-dbmliborder="${dbmliborder}"
|
||||||
|
--with-libc=
|
||||||
|
--enable-loadable-sqlite-extensions
|
||||||
|
--without-ensurepip
|
||||||
|
--with-system-expat
|
||||||
|
--with-system-ffi
|
||||||
|
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||||
|
|
||||||
|
$(use_with debug assertions)
|
||||||
|
$(use_with lto)
|
||||||
|
$(use_enable pgo optimizations)
|
||||||
|
$(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 and bug #864911.
|
||||||
|
local myeconfargs_cbuild=(
|
||||||
|
"${myeconfargs[@]}"
|
||||||
|
|
||||||
|
--libdir="${cbuild_libdir:2}"
|
||||||
|
|
||||||
|
# Avoid needing to load the right libpython.so.
|
||||||
|
--disable-shared
|
||||||
|
|
||||||
|
# As minimal as possible for the mini CBUILD Python
|
||||||
|
# we build just for cross.
|
||||||
|
--without-lto
|
||||||
|
--disable-optimizations
|
||||||
|
)
|
||||||
|
|
||||||
|
# Point the imminent CHOST build to the Python we just
|
||||||
|
# built for CBUILD.
|
||||||
|
export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
|
||||||
|
|
||||||
|
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||||
|
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||||
|
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
|
||||||
|
# libdir correctly for cross.
|
||||||
|
PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" \
|
||||||
|
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||||
|
|
||||||
|
# Avoid as many dependencies as possible for the cross build.
|
||||||
|
cat >> Makefile <<-EOF || die
|
||||||
|
MODULE_NIS=disabled
|
||||||
|
MODULE__DBM=disabled
|
||||||
|
MODULE__GDBM=disabled
|
||||||
|
MODULE__DBM=disabled
|
||||||
|
MODULE__SQLITE3=disabled
|
||||||
|
MODULE__HASHLIB=disabled
|
||||||
|
MODULE__SSL=disabled
|
||||||
|
MODULE__CURSES=disabled
|
||||||
|
MODULE__CURSES_PANEL=disabled
|
||||||
|
MODULE_READLINE=disabled
|
||||||
|
MODULE__TKINTER=disabled
|
||||||
|
MODULE_PYEXPAT=disabled
|
||||||
|
MODULE_ZLIB=disabled
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Unfortunately, we do have to build this immediately, and
|
||||||
|
# not in src_compile, because CHOST configure for Python
|
||||||
|
# will check the existence of the Python it was pointed to
|
||||||
|
# immediately.
|
||||||
|
PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" emake
|
||||||
|
popd &> /dev/null || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
local -x CFLAGS_NODIST=${CFLAGS}
|
||||||
|
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||||
|
if use ncurses; then
|
||||||
|
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||||
|
fi
|
||||||
|
|
||||||
|
hprefixify setup.py
|
||||||
|
econf "${myeconfargs[@]}"
|
||||||
|
|
||||||
|
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||||
|
eerror "configure has detected that the sem_open function is broken."
|
||||||
|
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||||
|
die "Broken sem_open function (bug 496328)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# install epython.py as part of stdlib
|
||||||
|
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
# Ensure sed works as expected
|
||||||
|
# https://bugs.gentoo.org/594768
|
||||||
|
local -x LC_ALL=C
|
||||||
|
# Prevent using distutils bundled by setuptools.
|
||||||
|
# https://bugs.gentoo.org/823728
|
||||||
|
export SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||||
|
|
||||||
|
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||||
|
# end up writing bytecode & violating sandbox.
|
||||||
|
# bug #831897
|
||||||
|
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||||
|
|
||||||
|
if use pgo ; then
|
||||||
|
# bug 660358
|
||||||
|
local -x COLUMNS=80
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=
|
||||||
|
|
||||||
|
addpredict "/usr/lib/python${PYVER}/site-packages"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# also need to clear the flags explicitly here or they end up
|
||||||
|
# in _sysconfigdata*
|
||||||
|
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Restore saved value from above.
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||||
|
|
||||||
|
# Work around bug 329499. See also bug 413751 and 457194.
|
||||||
|
if has_version dev-libs/libffi[pax-kernel]; then
|
||||||
|
pax-mark E python
|
||||||
|
else
|
||||||
|
pax-mark m python
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
# Tests will not work when cross compiling.
|
||||||
|
if tc-is-cross-compiler; then
|
||||||
|
elog "Disabling tests due to crosscompiling."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local test_opts=(
|
||||||
|
-u-network
|
||||||
|
-j "$(makeopts_jobs)"
|
||||||
|
|
||||||
|
# fails
|
||||||
|
-x test_gdb
|
||||||
|
)
|
||||||
|
|
||||||
|
if use sparc ; then
|
||||||
|
# bug #788022
|
||||||
|
test_opts+=(
|
||||||
|
-x test_multiprocessing_fork
|
||||||
|
-x test_multiprocessing_forkserver
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# workaround docutils breaking tests
|
||||||
|
cat > Lib/docutils.py <<-EOF || die
|
||||||
|
raise ImportError("Thou shalt not import!")
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# bug 660358
|
||||||
|
local -x COLUMNS=80
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=
|
||||||
|
|
||||||
|
nonfatal emake test EXTRATESTOPTS="${test_opts[*]}" \
|
||||||
|
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||||
|
local ret=${?}
|
||||||
|
|
||||||
|
rm Lib/docutils.py || die
|
||||||
|
|
||||||
|
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local libdir=${ED}/usr/lib/python${PYVER}
|
||||||
|
|
||||||
|
emake DESTDIR="${D}" altinstall
|
||||||
|
|
||||||
|
# Remove static library
|
||||||
|
rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
|
||||||
|
|
||||||
|
# Fix collisions between different slots of Python.
|
||||||
|
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||||
|
|
||||||
|
# Cheap hack to get version with ABIFLAGS
|
||||||
|
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||||
|
if [[ ${abiver} != python${PYVER} ]]; then
|
||||||
|
# Replace python3.X with a symlink to python3.Xm
|
||||||
|
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||||
|
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||||
|
# Create python3.X-config symlink
|
||||||
|
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||||
|
# Create python-3.5m.pc symlink
|
||||||
|
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# python seems to get rebuilt in src_install (bug 569908)
|
||||||
|
# Work around it for now.
|
||||||
|
if has_version dev-libs/libffi[pax-kernel]; then
|
||||||
|
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||||
|
else
|
||||||
|
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||||
|
if ! use ensurepip; then
|
||||||
|
rm -r "${libdir}"/ensurepip || die
|
||||||
|
fi
|
||||||
|
if ! use sqlite; then
|
||||||
|
rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||||
|
fi
|
||||||
|
if ! use tk; then
|
||||||
|
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||||
|
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
|
||||||
|
|
||||||
|
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||||
|
|
||||||
|
if use examples; then
|
||||||
|
docinto examples
|
||||||
|
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||||
|
dodoc -r Tools
|
||||||
|
fi
|
||||||
|
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||||
|
local libname=$(
|
||||||
|
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
|
||||||
|
emake --no-print-directory -s -f - 2>/dev/null
|
||||||
|
)
|
||||||
|
newins Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||||
|
|
||||||
|
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||||
|
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||||
|
sed \
|
||||||
|
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||||
|
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||||
|
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||||
|
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||||
|
|
||||||
|
# python-exec wrapping support
|
||||||
|
local pymajor=${PYVER%.*}
|
||||||
|
local EPYTHON=python${PYVER}
|
||||||
|
local scriptdir=${D}$(python_get_scriptdir)
|
||||||
|
mkdir -p "${scriptdir}" || die
|
||||||
|
# python and pythonX
|
||||||
|
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
|
||||||
|
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||||
|
# python-config and pythonX-config
|
||||||
|
# note: we need to create a wrapper rather than symlinking it due
|
||||||
|
# to some random dirname(argv[0]) magic performed by python-config
|
||||||
|
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||||
|
#!/bin/sh
|
||||||
|
exec "${abiver}-config" "\${@}"
|
||||||
|
EOF
|
||||||
|
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||||
|
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
|
||||||
|
# 2to3, pydoc
|
||||||
|
ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
|
||||||
|
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||||
|
# idle
|
||||||
|
if use tk; then
|
||||||
|
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||||
|
fi
|
||||||
|
}
|
@ -1,2 +1 @@
|
|||||||
DIST boost_1_81_0.tar.bz2 118797750 BLAKE2B ae57247fb80ee5a952881a99bdbe9a1d5622690879ef59053716647dc1121e70fdd322251837387b43357f1cd63c6d1ba285cf35c0c40e4f5ee28a929d7eacf7 SHA512 a04201e73da59f68fa02761b333c864a96ebaf268247b6b10cb19ed3d70ee9ad3da4c53123f2a7a4a9b9e1408793b51e1adbcc6fd09f60fecef3ca9522bb6b36
|
|
||||||
DIST boost_1_82_0.tar.bz2 121325129 BLAKE2B 16ee164ce7114d8134c861b3652c842750cec63ab0e79e4386d8cb9c56f7a454f9a9cfa75f25d9132a8d8d9e6f39d32a8e7535f83f52f355bbc40ef530163fa5 SHA512 6fddc452ca67f99f5c181e21c73d96feb7346e10886477c91b4abc2cdf447750599e0d42f935ef591222200ef6c033de078a7ad2bb577c81fa56a249b17420cb
|
DIST boost_1_82_0.tar.bz2 121325129 BLAKE2B 16ee164ce7114d8134c861b3652c842750cec63ab0e79e4386d8cb9c56f7a454f9a9cfa75f25d9132a8d8d9e6f39d32a8e7535f83f52f355bbc40ef530163fa5 SHA512 6fddc452ca67f99f5c181e21c73d96feb7346e10886477c91b4abc2cdf447750599e0d42f935ef591222200ef6c033de078a7ad2bb577c81fa56a249b17420cb
|
||||||
|
@ -1,341 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{9..11} )
|
|
||||||
|
|
||||||
inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
|
|
||||||
|
|
||||||
MY_PV="$(ver_rs 1- _)"
|
|
||||||
|
|
||||||
DESCRIPTION="Boost Libraries for C++"
|
|
||||||
HOMEPAGE="https://www.boost.org/"
|
|
||||||
SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2"
|
|
||||||
S="${WORKDIR}/${PN}_${MY_PV}"
|
|
||||||
|
|
||||||
LICENSE="Boost-1.0"
|
|
||||||
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 ~ppc-macos ~x64-macos ~x64-solaris"
|
|
||||||
IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python tools zlib zstd"
|
|
||||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
|
|
||||||
# the tests will never fail because these are not intended as sanity
|
|
||||||
# tests at all. They are more a way for upstream to check their own code
|
|
||||||
# on new compilers. Since they would either be completely unreliable
|
|
||||||
# (failing for no good reason) or completely useless (never failing)
|
|
||||||
# there is no point in having them in the ebuild to begin with.
|
|
||||||
RESTRICT="test"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
!<dev-libs/leatherman-1.12.0-r1
|
|
||||||
bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
|
|
||||||
icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
|
|
||||||
!icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
|
|
||||||
lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
|
|
||||||
mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
|
|
||||||
python? (
|
|
||||||
${PYTHON_DEPS}
|
|
||||||
numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
|
|
||||||
)
|
|
||||||
zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
|
|
||||||
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
|
|
||||||
DEPEND="${RDEPEND}"
|
|
||||||
BDEPEND=">=dev-util/b2-4.9.2"
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch
|
|
||||||
"${FILESDIR}"/${PN}-1.79.0-context-x32.patch
|
|
||||||
"${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
|
|
||||||
# Boost.MPI's __init__.py doesn't work on Py3
|
|
||||||
"${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch
|
|
||||||
"${FILESDIR}"/${PN}-1.80.0-fix-mips1-transition.patch
|
|
||||||
"${FILESDIR}"/${PN}-1.81.0-phoenix-multiple-definitions.patch
|
|
||||||
|
|
||||||
# (upstreamed)
|
|
||||||
)
|
|
||||||
|
|
||||||
python_bindings_needed() {
|
|
||||||
multilib_is_native_abi && use python
|
|
||||||
}
|
|
||||||
|
|
||||||
tools_needed() {
|
|
||||||
multilib_is_native_abi && use tools
|
|
||||||
}
|
|
||||||
|
|
||||||
create_user-config.jam() {
|
|
||||||
local user_config_jam="${BUILD_DIR}"/user-config.jam
|
|
||||||
if [[ -s ${user_config_jam} ]]; then
|
|
||||||
einfo "${user_config_jam} already exists, skipping configuration"
|
|
||||||
return
|
|
||||||
else
|
|
||||||
einfo "Creating configuration in ${user_config_jam}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
local compiler compiler_version compiler_executable="$(tc-getCXX)"
|
|
||||||
if [[ ${CHOST} == *-darwin* ]]; then
|
|
||||||
compiler="darwin"
|
|
||||||
compiler_version="$(gcc-fullversion)"
|
|
||||||
else
|
|
||||||
compiler="gcc"
|
|
||||||
compiler_version="$(gcc-version)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if use mpi; then
|
|
||||||
local mpi_configuration="using mpi ;"
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat > "${user_config_jam}" <<- __EOF__ || die
|
|
||||||
using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" <archiver>"$(tc-getAR)" <ranlib>"$(tc-getRANLIB)" ;
|
|
||||||
${mpi_configuration}
|
|
||||||
__EOF__
|
|
||||||
|
|
||||||
if python_bindings_needed; then
|
|
||||||
append_to_user_config() {
|
|
||||||
local py_config
|
|
||||||
if tc-is-cross-compiler; then
|
|
||||||
py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
|
|
||||||
else
|
|
||||||
py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
|
|
||||||
fi
|
|
||||||
echo "${py_config}" >> "${user_config_jam}" || die
|
|
||||||
}
|
|
||||||
python_foreach_impl append_to_user_config
|
|
||||||
fi
|
|
||||||
|
|
||||||
if python_bindings_needed && use numpy; then
|
|
||||||
einfo "Enabling support for NumPy extensions in Boost.Python"
|
|
||||||
else
|
|
||||||
einfo "Disabling support for NumPy extensions in Boost.Python"
|
|
||||||
|
|
||||||
# Boost.Build does not allow for disabling of numpy
|
|
||||||
# extensions, thereby leading to automagic numpy
|
|
||||||
# https://github.com/boostorg/python/issues/111#issuecomment-280447482
|
|
||||||
sed \
|
|
||||||
-e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
|
|
||||||
-i "${BUILD_DIR}"/libs/python/build/Jamfile || die
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
# Bail out on unsupported build configuration, bug #456792
|
|
||||||
if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
|
|
||||||
if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
|
|
||||||
eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
|
|
||||||
eerror "Boost can not be built in such configuration."
|
|
||||||
eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
|
|
||||||
die "Unsupported target in ${EROOT}/etc/site-config.jam"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
default
|
|
||||||
multilib_copy_sources
|
|
||||||
}
|
|
||||||
|
|
||||||
ejam() {
|
|
||||||
create_user-config.jam
|
|
||||||
|
|
||||||
local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
|
|
||||||
if python_bindings_needed; then
|
|
||||||
append_to_b2_opts() {
|
|
||||||
b2_opts+=( python="${EPYTHON#python}" )
|
|
||||||
}
|
|
||||||
python_foreach_impl append_to_b2_opts
|
|
||||||
else
|
|
||||||
b2_opts+=( --without-python )
|
|
||||||
fi
|
|
||||||
b2_opts+=( "$@" )
|
|
||||||
|
|
||||||
echo b2 "${b2_opts[@]}" >&2
|
|
||||||
b2 "${b2_opts[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
# Workaround for too many parallel processes requested, bug #506064
|
|
||||||
[[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
|
|
||||||
|
|
||||||
# We don't want to end up with -L/usr/lib on our linker lines
|
|
||||||
# which then gives us lots of
|
|
||||||
# skipping incompatible /usr/lib/libc.a when searching for -lc
|
|
||||||
# warnings
|
|
||||||
[[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr"
|
|
||||||
|
|
||||||
OPTIONS=(
|
|
||||||
$(usex debug gentoodebug gentoorelease)
|
|
||||||
"-j$(makeopts_jobs)"
|
|
||||||
-q
|
|
||||||
-d+2
|
|
||||||
pch=off
|
|
||||||
$(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off')
|
|
||||||
$(usev !mpi --without-mpi)
|
|
||||||
$(usev !nls --without-locale)
|
|
||||||
$(usev !context '--without-context --without-coroutine --without-fiber')
|
|
||||||
--without-stacktrace
|
|
||||||
--boost-build="${BROOT}"/usr/share/b2/src
|
|
||||||
--layout=system
|
|
||||||
# building with threading=single is currently not possible
|
|
||||||
# https://svn.boost.org/trac/boost/ticket/7105
|
|
||||||
threading=multi
|
|
||||||
link=shared
|
|
||||||
# this seems to be the only way to disable compression algorithms
|
|
||||||
# https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
|
|
||||||
-sNO_BZIP2=$(usex bzip2 0 1)
|
|
||||||
-sNO_LZMA=$(usex lzma 0 1)
|
|
||||||
-sNO_ZLIB=$(usex zlib 0 1)
|
|
||||||
-sNO_ZSTD=$(usex zstd 0 1)
|
|
||||||
)
|
|
||||||
|
|
||||||
if [[ ${CHOST} == *-darwin* ]]; then
|
|
||||||
# We need to add the prefix, and in two cases this exceeds, so prepare
|
|
||||||
# for the largest possible space allocation.
|
|
||||||
append-ldflags -Wl,-headerpad_max_install_names
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Use C++17 globally as of 1.80
|
|
||||||
append-cxxflags -std=c++17
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_compile() {
|
|
||||||
ejam \
|
|
||||||
--prefix="${EPREFIX}"/usr \
|
|
||||||
"${OPTIONS[@]}" || die
|
|
||||||
|
|
||||||
if tools_needed; then
|
|
||||||
pushd tools >/dev/null || die
|
|
||||||
ejam \
|
|
||||||
--prefix="${EPREFIX}"/usr \
|
|
||||||
"${OPTIONS[@]}" \
|
|
||||||
|| die "Building of Boost tools failed"
|
|
||||||
popd >/dev/null || die
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_install() {
|
|
||||||
ejam \
|
|
||||||
--prefix="${ED}"/usr \
|
|
||||||
--includedir="${ED}"/usr/include \
|
|
||||||
--libdir="${ED}"/usr/$(get_libdir) \
|
|
||||||
"${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
|
|
||||||
|
|
||||||
if tools_needed; then
|
|
||||||
dobin dist/bin/*
|
|
||||||
|
|
||||||
insinto /usr/share
|
|
||||||
doins -r dist/share/boostbook
|
|
||||||
fi
|
|
||||||
|
|
||||||
# boost's build system truely sucks for not having a destdir. Because for
|
|
||||||
# this reason we are forced to build with a prefix that includes the
|
|
||||||
# DESTROOT, dynamic libraries on Darwin end messed up, referencing the
|
|
||||||
# DESTROOT instread of the actual EPREFIX. There is no way out of here
|
|
||||||
# but to do it the dirty way of manually setting the right install_names.
|
|
||||||
if [[ ${CHOST} == *-darwin* ]]; then
|
|
||||||
einfo "Working around completely broken build-system(tm)"
|
|
||||||
local d
|
|
||||||
for d in "${ED}"/usr/lib/*.dylib; do
|
|
||||||
if [[ -f ${d} ]]; then
|
|
||||||
# fix the "soname"
|
|
||||||
ebegin " correcting install_name of ${d#${ED}}"
|
|
||||||
install_name_tool -id "/${d#${D}}" "${d}"
|
|
||||||
eend $?
|
|
||||||
# fix references to other libs
|
|
||||||
refs=$(otool -XL "${d}" | \
|
|
||||||
sed -e '1d' -e 's/^\t//' | \
|
|
||||||
grep "^libboost_" | \
|
|
||||||
cut -f1 -d' ')
|
|
||||||
local r
|
|
||||||
for r in ${refs}; do
|
|
||||||
ebegin " correcting reference to ${r}"
|
|
||||||
install_name_tool -change \
|
|
||||||
"${r}" \
|
|
||||||
"${EPREFIX}/usr/lib/${r}" \
|
|
||||||
"${d}"
|
|
||||||
eend $?
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_install_all() {
|
|
||||||
if ! use numpy; then
|
|
||||||
rm -r "${ED}"/usr/include/boost/python/numpy* || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if use python; then
|
|
||||||
if use mpi; then
|
|
||||||
move_mpi_py_into_sitedir() {
|
|
||||||
python_moduleinto boost
|
|
||||||
python_domodule "${S}"/libs/mpi/build/__init__.py
|
|
||||||
|
|
||||||
python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
|
|
||||||
rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die
|
|
||||||
|
|
||||||
python_optimize
|
|
||||||
}
|
|
||||||
python_foreach_impl move_mpi_py_into_sitedir
|
|
||||||
else
|
|
||||||
rm -r "${ED}"/usr/include/boost/mpi/python* || die
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! use nls; then
|
|
||||||
rm -r "${ED}"/usr/include/boost/locale || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! use context; then
|
|
||||||
rm -r "${ED}"/usr/include/boost/context || die
|
|
||||||
rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
|
|
||||||
rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if use doc; then
|
|
||||||
# find extraneous files that shouldn't be installed
|
|
||||||
# as part of the documentation and remove them.
|
|
||||||
find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
|
|
||||||
find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
|
|
||||||
find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
|
|
||||||
|
|
||||||
docinto html
|
|
||||||
dodoc *.{htm,html,png,css}
|
|
||||||
dodoc -r doc libs more tools
|
|
||||||
|
|
||||||
# To avoid broken links
|
|
||||||
dodoc LICENSE_1_0.txt
|
|
||||||
|
|
||||||
dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
# Yay for having symlinks that are nigh-impossible to remove without
|
|
||||||
# resorting to dirty hacks like these. Removes lingering symlinks
|
|
||||||
# from the slotted versions.
|
|
||||||
local symlink
|
|
||||||
for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
|
|
||||||
if [[ -L ${symlink} ]]; then
|
|
||||||
rm -f "${symlink}" || die
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# some ancient installs still have boost cruft lying around
|
|
||||||
# for unknown reasons, causing havoc for reverse dependencies
|
|
||||||
# Bug: 607734
|
|
||||||
rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
|
|
||||||
elog
|
|
||||||
elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
|
|
||||||
elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
|
|
||||||
elog
|
|
||||||
elog "Then you need to recompile Boost and all its reverse dependencies"
|
|
||||||
elog "using the same toolchain. In general, *every* change of the C++ toolchain"
|
|
||||||
elog "requires a complete rebuild of the Boost-dependent ecosystem."
|
|
||||||
elog
|
|
||||||
elog "See for instance https://bugs.gentoo.org/638138"
|
|
||||||
}
|
|
@ -16,7 +16,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 tools zlib zstd"
|
IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python 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
|
||||||
|
@ -11,7 +11,7 @@ HOMEPAGE="https://wiki.gnome.org/Projects/GObjectIntrospection"
|
|||||||
|
|
||||||
LICENSE="HPND"
|
LICENSE="HPND"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
|
||||||
RDEPEND="!<${CATEGORY}/${GNOME_ORG_MODULE}-${PV}"
|
RDEPEND="!<${CATEGORY}/${GNOME_ORG_MODULE}-${PV}"
|
||||||
# Use !<${PV} because mixing gobject-introspection with different version of -common can cause issues like:
|
# Use !<${PV} because mixing gobject-introspection with different version of -common can cause issues like:
|
||||||
|
@ -19,7 +19,7 @@ SRC_URI+=" verify-sig? ( mirror://gnupg/${PN}/${P}.tar.bz2.sig )"
|
|||||||
|
|
||||||
LICENSE="GPL-2 LGPL-2.1"
|
LICENSE="GPL-2 LGPL-2.1"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
IUSE="common-lisp nls static-libs test"
|
IUSE="common-lisp nls static-libs test"
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ EAPI=8
|
|||||||
# any subsequent ones linked within so you're covered for a while.)
|
# any subsequent ones linked within so you're covered for a while.)
|
||||||
|
|
||||||
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/gnupg.asc
|
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/gnupg.asc
|
||||||
inherit toolchain-funcs verify-sig
|
inherit toolchain-funcs verify-sig libtool
|
||||||
|
|
||||||
DESCRIPTION="X.509 and CMS (PKCS#7) library"
|
DESCRIPTION="X.509 and CMS (PKCS#7) library"
|
||||||
HOMEPAGE="https://www.gnupg.org/related_software/libksba"
|
HOMEPAGE="https://www.gnupg.org/related_software/libksba"
|
||||||
@ -33,6 +33,12 @@ PATCHES=(
|
|||||||
"${FILESDIR}"/${PN}-1.6.0-no-fgrep-ksba-config.patch
|
"${FILESDIR}"/${PN}-1.6.0-no-fgrep-ksba-config.patch
|
||||||
)
|
)
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
|
||||||
|
elibtoolize # necessary on Solaris for shared lib support
|
||||||
|
}
|
||||||
|
|
||||||
src_configure() {
|
src_configure() {
|
||||||
export CC_FOR_BUILD="$(tc-getBUILD_CC)"
|
export CC_FOR_BUILD="$(tc-getBUILD_CC)"
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ 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_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="
|
||||||
cpu_flags_arm_aes? ( cpu_flags_arm_sha1 cpu_flags_arm_sha2 )
|
cpu_flags_arm_aes? ( cpu_flags_arm_sha1 cpu_flags_arm_sha2 )
|
||||||
@ -63,13 +63,11 @@ multilib_src_configure() {
|
|||||||
$(use_enable cpu_flags_arm_neon arm-neon)
|
$(use_enable cpu_flags_arm_neon arm-neon)
|
||||||
$(use_enable cpu_flags_arm_aes arm64-crypto)
|
$(use_enable cpu_flags_arm_aes arm64-crypto)
|
||||||
$(use_enable cpu_flags_ppc_altivec power-altivec)
|
$(use_enable cpu_flags_ppc_altivec power-altivec)
|
||||||
|
$(use_enable cpu_flags_ppc_vsx2 power-crypto-ext)
|
||||||
|
$(use_enable cpu_flags_ppc_vsx3 power9)
|
||||||
$(use_enable cpu_flags_x86_aes x86-aesni)
|
$(use_enable cpu_flags_x86_aes x86-aesni)
|
||||||
$(use_enable cpu_flags_x86_sha x86-sha-ni)
|
$(use_enable cpu_flags_x86_sha x86-sha-ni)
|
||||||
$(use_enable cpu_flags_x86_pclmul x86-pclmul)
|
$(use_enable cpu_flags_x86_pclmul x86-pclmul)
|
||||||
# TODO: PPC crypto flag?
|
|
||||||
--disable-power-crypto-ext
|
|
||||||
# TODO: How do we detect this in ebuilds reliably?
|
|
||||||
--disable-power9
|
|
||||||
$([[ ${CHOST} == *-solaris* ]] && echo '--disable-symbol-versions')
|
$([[ ${CHOST} == *-solaris* ]] && echo '--disable-symbol-versions')
|
||||||
# TODO: cpu_flags_s390?
|
# TODO: cpu_flags_s390?
|
||||||
--disable-s390x-vf
|
--disable-s390x-vf
|
||||||
|
@ -21,7 +21,7 @@ fi
|
|||||||
|
|
||||||
LICENSE="BSD-2"
|
LICENSE="BSD-2"
|
||||||
SLOT="0/5"
|
SLOT="0/5"
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos"
|
||||||
IUSE="crnl-as-line-terminator static-libs"
|
IUSE="crnl-as-line-terminator static-libs"
|
||||||
|
|
||||||
BDEPEND=""
|
BDEPEND=""
|
||||||
|
@ -45,6 +45,9 @@ PATCHES=(
|
|||||||
"${FILESDIR}/${PN}-0.29.23-pythran-parallel-install.patch"
|
"${FILESDIR}/${PN}-0.29.23-pythran-parallel-install.patch"
|
||||||
# backport upstream fix e.g. for dev-python/pysimdjson on py3.12
|
# backport upstream fix e.g. for dev-python/pysimdjson on py3.12
|
||||||
"${FILESDIR}/${P}-py312-long.patch"
|
"${FILESDIR}/${P}-py312-long.patch"
|
||||||
|
# should fix dev-python/symengine
|
||||||
|
# https://github.com/cython/cython/pull/5483
|
||||||
|
"${FILESDIR}/${P}-const-iter.patch"
|
||||||
)
|
)
|
||||||
|
|
||||||
distutils_enable_sphinx docs \
|
distutils_enable_sphinx docs \
|
@ -0,0 +1,207 @@
|
|||||||
|
From 913b8fadc5fc45306764c0ede472e1bc3b606d10 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Isuru Fernando <isuruf@gmail.com>
|
||||||
|
Date: Mon, 12 Jun 2023 13:42:09 -0500
|
||||||
|
Subject: [PATCH 1/4] Don't remove const for reverse iteration
|
||||||
|
|
||||||
|
---
|
||||||
|
Cython/Compiler/ExprNodes.py | 27 ---------------------------
|
||||||
|
Cython/Includes/libcpp/map.pxd | 8 ++++++--
|
||||||
|
2 files changed, 6 insertions(+), 29 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Cython/Compiler/ExprNodes.py b/Cython/Compiler/ExprNodes.py
|
||||||
|
index ad4701b7bb6..275a6233da5 100644
|
||||||
|
--- a/Cython/Compiler/ExprNodes.py
|
||||||
|
+++ b/Cython/Compiler/ExprNodes.py
|
||||||
|
@@ -3268,32 +3268,6 @@ def free_temps(self, code):
|
||||||
|
ExprNode.free_temps(self, code)
|
||||||
|
|
||||||
|
|
||||||
|
-def remove_const(item_type):
|
||||||
|
- """
|
||||||
|
- Removes the constness of a given type and its underlying templates
|
||||||
|
- if any.
|
||||||
|
-
|
||||||
|
- This is to solve the compilation error when the temporary variable used to
|
||||||
|
- store the result of an iterator cannot be changed due to its constness.
|
||||||
|
- For example, the value_type of std::map, which will also be the type of
|
||||||
|
- the temporarry variable, is std::pair<const Key, T>. This means the first
|
||||||
|
- component of the variable cannot be reused to store the result of each
|
||||||
|
- iteration, which leads to a compilation error.
|
||||||
|
- """
|
||||||
|
- if item_type.is_const:
|
||||||
|
- item_type = item_type.cv_base_type
|
||||||
|
- if item_type.is_typedef:
|
||||||
|
- item_type = remove_const(item_type.typedef_base_type)
|
||||||
|
- if item_type.is_cpp_class and item_type.templates:
|
||||||
|
- templates = [remove_const(t) if t.is_const else t for t in item_type.templates]
|
||||||
|
- template_type = item_type.template_type
|
||||||
|
- item_type = PyrexTypes.CppClassType(
|
||||||
|
- template_type.name, template_type.scope,
|
||||||
|
- template_type.cname, template_type.base_classes,
|
||||||
|
- templates, template_type)
|
||||||
|
- return item_type
|
||||||
|
-
|
||||||
|
-
|
||||||
|
class NextNode(AtomicExprNode):
|
||||||
|
# Used as part of for statement implementation.
|
||||||
|
# Implements result = next(iterator)
|
||||||
|
@@ -3336,7 +3310,6 @@ def infer_type(self, env, iterator_type=None):
|
||||||
|
|
||||||
|
def analyse_types(self, env):
|
||||||
|
self.type = self.infer_type(env, self.iterator.type)
|
||||||
|
- self.type = remove_const(self.type)
|
||||||
|
self.is_temp = 1
|
||||||
|
return self
|
||||||
|
|
||||||
|
diff --git a/Cython/Includes/libcpp/map.pxd b/Cython/Includes/libcpp/map.pxd
|
||||||
|
index d81af66e09a..2c2c5c82adf 100644
|
||||||
|
--- a/Cython/Includes/libcpp/map.pxd
|
||||||
|
+++ b/Cython/Includes/libcpp/map.pxd
|
||||||
|
@@ -50,7 +50,9 @@ cdef extern from "<map>" namespace "std" nogil:
|
||||||
|
cppclass reverse_iterator:
|
||||||
|
reverse_iterator() except +
|
||||||
|
reverse_iterator(reverse_iterator&) except +
|
||||||
|
- value_type& operator*()
|
||||||
|
+ # correct would be value_type& but this does not work
|
||||||
|
+ # well with cython's code gen
|
||||||
|
+ pair[T, U]& operator*()
|
||||||
|
reverse_iterator operator++()
|
||||||
|
reverse_iterator operator--()
|
||||||
|
reverse_iterator operator++(int)
|
||||||
|
@@ -63,7 +65,9 @@ cdef extern from "<map>" namespace "std" nogil:
|
||||||
|
const_reverse_iterator() except +
|
||||||
|
const_reverse_iterator(reverse_iterator&) except +
|
||||||
|
operator=(reverse_iterator&) except +
|
||||||
|
- const value_type& operator*()
|
||||||
|
+ # correct would be const value_type& but this does not work
|
||||||
|
+ # well with cython's code gen
|
||||||
|
+ const pair[T, U]& operator*()
|
||||||
|
const_reverse_iterator operator++()
|
||||||
|
const_reverse_iterator operator--()
|
||||||
|
const_reverse_iterator operator++(int)
|
||||||
|
|
||||||
|
From cb804f989eaa9938e72d0336d82bb7aa0003455f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Isuru Fernando <isuruf@gmail.com>
|
||||||
|
Date: Mon, 12 Jun 2023 13:57:58 -0500
|
||||||
|
Subject: [PATCH 2/4] Add test from gh5478
|
||||||
|
|
||||||
|
---
|
||||||
|
tests/run/cpp_iterators.pyx | 22 ++++++++++++++++++++++
|
||||||
|
1 file changed, 22 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/tests/run/cpp_iterators.pyx b/tests/run/cpp_iterators.pyx
|
||||||
|
index 81048d0b36b..424168fa825 100644
|
||||||
|
--- a/tests/run/cpp_iterators.pyx
|
||||||
|
+++ b/tests/run/cpp_iterators.pyx
|
||||||
|
@@ -7,6 +7,7 @@ from libcpp.map cimport map as stdmap
|
||||||
|
from libcpp.set cimport set as stdset
|
||||||
|
from libcpp.string cimport string
|
||||||
|
from libcpp.vector cimport vector
|
||||||
|
+from libcpp.memory cimport shared_ptr, make_shared
|
||||||
|
from cython.operator cimport dereference as deref
|
||||||
|
|
||||||
|
cdef extern from "cpp_iterators_simple.h":
|
||||||
|
@@ -272,6 +273,27 @@ def test_iteration_over_attribute_of_call():
|
||||||
|
for i in get_object_with_iterable_attribute().vec:
|
||||||
|
print(i)
|
||||||
|
|
||||||
|
+cdef extern from *:
|
||||||
|
+ # TODO: support make_shared[const int]
|
||||||
|
+ shared_ptr[const int] make_shared_const_int "std::make_shared<const int>"(int)
|
||||||
|
+
|
||||||
|
+def test_iteration_over_shared_const_ptr_set(py_v):
|
||||||
|
+ """
|
||||||
|
+ >>> test_iteration_over_shared_const_ptr_set[2, 4, 6])
|
||||||
|
+ 6
|
||||||
|
+ 4
|
||||||
|
+ 2
|
||||||
|
+ """
|
||||||
|
+ cdef stdset[shared_ptr[const int]] s
|
||||||
|
+ cdef int i
|
||||||
|
+ for e in py_v:
|
||||||
|
+ i = e
|
||||||
|
+ s.insert(make_shared_const_int(i))
|
||||||
|
+
|
||||||
|
+ cdef shared_ptr[const int] a
|
||||||
|
+ for a in s:
|
||||||
|
+ print(deref(a))
|
||||||
|
+
|
||||||
|
def test_iteration_over_reversed_list(py_v):
|
||||||
|
"""
|
||||||
|
>>> test_iteration_over_reversed_list([2, 4, 6])
|
||||||
|
|
||||||
|
From a9bfacdcf5358e9d5a1d3c8ab0dd2eff6f18018a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Isuru Fernando <isuruf@gmail.com>
|
||||||
|
Date: Mon, 12 Jun 2023 14:07:37 -0500
|
||||||
|
Subject: [PATCH 3/4] Fix multimap too
|
||||||
|
|
||||||
|
---
|
||||||
|
Cython/Includes/libcpp/map.pxd | 8 ++++++--
|
||||||
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Cython/Includes/libcpp/map.pxd b/Cython/Includes/libcpp/map.pxd
|
||||||
|
index 2c2c5c82adf..eb739509ac1 100644
|
||||||
|
--- a/Cython/Includes/libcpp/map.pxd
|
||||||
|
+++ b/Cython/Includes/libcpp/map.pxd
|
||||||
|
@@ -177,7 +177,9 @@ cdef extern from "<map>" namespace "std" nogil:
|
||||||
|
cppclass reverse_iterator:
|
||||||
|
reverse_iterator() except +
|
||||||
|
reverse_iterator(reverse_iterator&) except +
|
||||||
|
- value_type& operator*()
|
||||||
|
+ # correct would be value_type& but this does not work
|
||||||
|
+ # well with cython's code gen
|
||||||
|
+ pair[T, U]& operator*()
|
||||||
|
reverse_iterator operator++()
|
||||||
|
reverse_iterator operator--()
|
||||||
|
reverse_iterator operator++(int)
|
||||||
|
@@ -190,7 +192,9 @@ cdef extern from "<map>" namespace "std" nogil:
|
||||||
|
const_reverse_iterator() except +
|
||||||
|
const_reverse_iterator(reverse_iterator&) except +
|
||||||
|
operator=(reverse_iterator&) except +
|
||||||
|
- const value_type& operator*()
|
||||||
|
+ # correct would be const value_type& but this does not work
|
||||||
|
+ # well with cython's code gen
|
||||||
|
+ const pair[T, U]& operator*()
|
||||||
|
const_reverse_iterator operator++()
|
||||||
|
const_reverse_iterator operator--()
|
||||||
|
const_reverse_iterator operator++(int)
|
||||||
|
|
||||||
|
From 0528cd937e6d4606eb0902ee8d8db672ee7f88fe Mon Sep 17 00:00:00 2001
|
||||||
|
From: Isuru Fernando <isuruf@gmail.com>
|
||||||
|
Date: Mon, 12 Jun 2023 17:50:41 -0500
|
||||||
|
Subject: [PATCH 4/4] Fix test
|
||||||
|
|
||||||
|
---
|
||||||
|
tests/run/cpp_iterators.pyx | 15 +++++++--------
|
||||||
|
1 file changed, 7 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tests/run/cpp_iterators.pyx b/tests/run/cpp_iterators.pyx
|
||||||
|
index 424168fa825..57d2716bea5 100644
|
||||||
|
--- a/tests/run/cpp_iterators.pyx
|
||||||
|
+++ b/tests/run/cpp_iterators.pyx
|
||||||
|
@@ -277,18 +277,17 @@ cdef extern from *:
|
||||||
|
# TODO: support make_shared[const int]
|
||||||
|
shared_ptr[const int] make_shared_const_int "std::make_shared<const int>"(int)
|
||||||
|
|
||||||
|
-def test_iteration_over_shared_const_ptr_set(py_v):
|
||||||
|
+def test_iteration_over_shared_const_ptr_vector(py_v):
|
||||||
|
"""
|
||||||
|
- >>> test_iteration_over_shared_const_ptr_set[2, 4, 6])
|
||||||
|
- 6
|
||||||
|
- 4
|
||||||
|
+ >>> test_iteration_over_shared_const_ptr_vector([2, 4, 6])
|
||||||
|
2
|
||||||
|
+ 4
|
||||||
|
+ 6
|
||||||
|
"""
|
||||||
|
- cdef stdset[shared_ptr[const int]] s
|
||||||
|
+ cdef vector[shared_ptr[const int]] s
|
||||||
|
cdef int i
|
||||||
|
- for e in py_v:
|
||||||
|
- i = e
|
||||||
|
- s.insert(make_shared_const_int(i))
|
||||||
|
+ for i in py_v:
|
||||||
|
+ s.push_back(make_shared_const_int(i))
|
||||||
|
|
||||||
|
cdef shared_ptr[const int] a
|
||||||
|
for a in s:
|
@ -16,7 +16,7 @@ HOMEPAGE="
|
|||||||
|
|
||||||
LICENSE="BSD-2 GPL-3 public-domain"
|
LICENSE="BSD-2 GPL-3 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 ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
|
||||||
RDEPEND="
|
RDEPEND="
|
||||||
dev-python/pygments[${PYTHON_USEDEP}]
|
dev-python/pygments[${PYTHON_USEDEP}]
|
||||||
|
@ -1,2 +1 @@
|
|||||||
DIST flit_core-3.8.0.tar.gz 41224 BLAKE2B 20d0b1e245280938b1edfa83531907775af9da30cc6e1446d578eafc7e14184d3c8fb80f446d265456ea5ea587c51edfdb706793a8894916525b3ebba322b3b0 SHA512 914804e3f2040762381afe039272d9d6fdbcd3f3cf8b9eea854f2f1d95edcb01718fd6685476bc1cdc251dfc46ef80b40f087df881d8b963dcc3f3332fd32a46
|
|
||||||
DIST flit_core-3.9.0.tar.gz 41917 BLAKE2B 2fb053655a494736f5f9ce2d2c193d5d98622e410c0c0f18c92eb62d32ff98cbe830a1728461ed7e7e087d2fcf5f6a0c912717c2d534be688d688c4714c6865b SHA512 1205589930d2c51d6aa6b2533a122a912e63b157e94adba2a0649a58d324fa98a5b84609d9b53e9d236f1cdb6a6984de2cefcf2f11abc2cd83956df21f269ad6
|
DIST flit_core-3.9.0.tar.gz 41917 BLAKE2B 2fb053655a494736f5f9ce2d2c193d5d98622e410c0c0f18c92eb62d32ff98cbe830a1728461ed7e7e087d2fcf5f6a0c912717c2d534be688d688c4714c6865b SHA512 1205589930d2c51d6aa6b2533a122a912e63b157e94adba2a0649a58d324fa98a5b84609d9b53e9d236f1cdb6a6984de2cefcf2f11abc2cd83956df21f269ad6
|
||||||
|
@ -1,35 +0,0 @@
|
|||||||
# Copyright 2019-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=standalone
|
|
||||||
PYTHON_COMPAT=( python3_{9..11} pypy3 )
|
|
||||||
|
|
||||||
inherit distutils-r1 pypi
|
|
||||||
|
|
||||||
DESCRIPTION="Simplified packaging of Python modules (core module)"
|
|
||||||
HOMEPAGE="
|
|
||||||
https://pypi.org/project/flit-core/
|
|
||||||
https://github.com/pypa/flit/
|
|
||||||
"
|
|
||||||
|
|
||||||
LICENSE="BSD"
|
|
||||||
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/tomli[${PYTHON_USEDEP}]
|
|
||||||
"
|
|
||||||
BDEPEND="
|
|
||||||
test? ( dev-python/testpath[${PYTHON_USEDEP}] )
|
|
||||||
"
|
|
||||||
|
|
||||||
distutils_enable_tests pytest
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
rm -r flit_core/vendor || die
|
|
||||||
sed -i -e 's:from \.vendor ::' flit_core/*.py || die
|
|
||||||
distutils-r1_src_prepare
|
|
||||||
}
|
|
@ -17,7 +17,7 @@ HOMEPAGE="
|
|||||||
|
|
||||||
LICENSE="BSD"
|
LICENSE="BSD"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
|
||||||
RDEPEND="
|
RDEPEND="
|
||||||
$(python_gen_cond_dep '
|
$(python_gen_cond_dep '
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
Upstream: https://github.com/lxml/lxml/commit/a1f2231dfdd31a37f2c55bc9ae4ac33e92221227
|
||||||
|
|
||||||
|
From a1f2231dfdd31a37f2c55bc9ae4ac33e92221227 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefan Behnel <stefan_ml@behnel.de>
|
||||||
|
Date: Fri, 12 May 2023 09:49:34 +0200
|
||||||
|
Subject: [PATCH] Adapt unicode parsing to Py3.12.
|
||||||
|
|
||||||
|
---
|
||||||
|
src/lxml/includes/etree_defs.h | 10 ++++++++++
|
||||||
|
1 file changed, 10 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/lxml/includes/etree_defs.h b/src/lxml/includes/etree_defs.h
|
||||||
|
index e671fa85d..d42f2158c 100644
|
||||||
|
--- a/src/lxml/includes/etree_defs.h
|
||||||
|
+++ b/src/lxml/includes/etree_defs.h
|
||||||
|
@@ -120,6 +120,16 @@ static PyObject* PyBytes_FromFormat(const char* format, ...) {
|
||||||
|
# define _lx_PySlice_GetIndicesEx(o, l, b, e, s, sl) PySlice_GetIndicesEx(((PySliceObject*)o), l, b, e, s, sl)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if PY_VERSION_HEX >= 0x030B00A1
|
||||||
|
+/* Python 3.12 doesn't have wstr Unicode strings any more. */
|
||||||
|
+#undef PyUnicode_GET_DATA_SIZE
|
||||||
|
+#define PyUnicode_GET_DATA_SIZE(ustr) (0)
|
||||||
|
+#undef PyUnicode_AS_DATA
|
||||||
|
+#define PyUnicode_AS_DATA(ustr) (NULL)
|
||||||
|
+#undef PyUnicode_IS_READY
|
||||||
|
+#define PyUnicode_IS_READY(ustr) (1)
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#ifdef WITHOUT_THREADING
|
||||||
|
# undef PyEval_SaveThread
|
||||||
|
# define PyEval_SaveThread() (NULL)
|
||||||
|
|
116
sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-4.9.2-r1.ebuild
vendored
Normal file
116
sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-4.9.2-r1.ebuild
vendored
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
# 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_{10..12} pypy3 )
|
||||||
|
|
||||||
|
inherit distutils-r1 optfeature toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://lxml.de/
|
||||||
|
https://pypi.org/project/lxml/
|
||||||
|
https://github.com/lxml/lxml/
|
||||||
|
"
|
||||||
|
SRC_URI="
|
||||||
|
https://github.com/lxml/lxml/archive/${P}.tar.gz
|
||||||
|
-> ${P}.gh.tar.gz
|
||||||
|
"
|
||||||
|
S=${WORKDIR}/lxml-${P}
|
||||||
|
|
||||||
|
LICENSE="BSD ElementTree GPL-2 PSF-2"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
IUSE="doc examples +threads test"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
# Note: lib{xml2,xslt} are used as C libraries, not Python modules.
|
||||||
|
DEPEND="
|
||||||
|
>=dev-libs/libxml2-2.9.12-r2
|
||||||
|
>=dev-libs/libxslt-1.1.28
|
||||||
|
"
|
||||||
|
RDEPEND="
|
||||||
|
${DEPEND}
|
||||||
|
"
|
||||||
|
BDEPEND="
|
||||||
|
virtual/pkgconfig
|
||||||
|
<dev-python/cython-3[${PYTHON_USEDEP}]
|
||||||
|
>=dev-python/cython-0.29.29[${PYTHON_USEDEP}]
|
||||||
|
doc? (
|
||||||
|
$(python_gen_any_dep '
|
||||||
|
dev-python/docutils[${PYTHON_USEDEP}]
|
||||||
|
dev-python/pygments[${PYTHON_USEDEP}]
|
||||||
|
dev-python/sphinx[${PYTHON_USEDEP}]
|
||||||
|
dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
|
||||||
|
')
|
||||||
|
)
|
||||||
|
test? (
|
||||||
|
dev-python/cssselect[${PYTHON_USEDEP}]
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${PN}-4.6.0-tests-pypy.patch
|
||||||
|
"${FILESDIR}"/${P}-py3.12-drop-deprecated-imp.patch
|
||||||
|
"${FILESDIR}"/${P}-py3.12-backport-unicode-fix.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
python_check_deps() {
|
||||||
|
use doc || return 0
|
||||||
|
python_has_version -b "dev-python/docutils[${PYTHON_USEDEP}]" &&
|
||||||
|
python_has_version -b "dev-python/pygments[${PYTHON_USEDEP}]" &&
|
||||||
|
python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" &&
|
||||||
|
python_has_version -b "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]"
|
||||||
|
}
|
||||||
|
|
||||||
|
python_prepare_all() {
|
||||||
|
# avoid replacing PYTHONPATH in tests.
|
||||||
|
sed -i -e '/sys\.path/d' test.py || die
|
||||||
|
|
||||||
|
# don't use some random SDK on Darwin
|
||||||
|
sed -i -e '/_ldflags =/s/=.*isysroot.*darwin.*None/= None/' \
|
||||||
|
setupinfo.py || die
|
||||||
|
|
||||||
|
distutils-r1_python_prepare_all
|
||||||
|
}
|
||||||
|
|
||||||
|
python_compile() {
|
||||||
|
tc-export PKG_CONFIG
|
||||||
|
distutils-r1_python_compile
|
||||||
|
}
|
||||||
|
|
||||||
|
python_compile_all() {
|
||||||
|
use doc && emake html
|
||||||
|
}
|
||||||
|
|
||||||
|
python_test() {
|
||||||
|
local dir=${BUILD_DIR}/test$(python_get_sitedir)/lxml
|
||||||
|
local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
|
||||||
|
|
||||||
|
cp -al "${BUILD_DIR}"/{install,test} || die
|
||||||
|
cp -al src/lxml/tests "${dir}/" || die
|
||||||
|
cp -al src/lxml/html/tests "${dir}/html/" || die
|
||||||
|
ln -rs "${S}"/doc "${dir}"/../../ || die
|
||||||
|
|
||||||
|
"${EPYTHON}" test.py -vv --all-levels -p || die "Test ${test} fails with ${EPYTHON}"
|
||||||
|
}
|
||||||
|
|
||||||
|
python_install_all() {
|
||||||
|
if use doc; then
|
||||||
|
local DOCS=( README.rst *.txt doc/*.txt )
|
||||||
|
local HTML_DOCS=( doc/html/. )
|
||||||
|
fi
|
||||||
|
if use examples; then
|
||||||
|
dodoc -r samples
|
||||||
|
fi
|
||||||
|
|
||||||
|
distutils-r1_python_install_all
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
optfeature "Support for BeautifulSoup as a parser backend" dev-python/beautifulsoup4
|
||||||
|
optfeature "Translates CSS selectors to XPath 1.0 expressions" dev-python/cssselect
|
||||||
|
}
|
@ -1 +1,4 @@
|
|||||||
DIST platformdirs-3.5.1.tar.gz 17164 BLAKE2B 7d9aeff02000b75a028e6f75dc4793e53bbe72b5fc069482d5790d9280a92b801dffca847fe64513b8ee3d24b5639681cb1cfcb1f97d85e8e996c7f6cbca2f71 SHA512 e3aa38bc943f9dc709dfaa3c6fe9e11f3b33d4263d1d41f7349d9926db2e41a36dd43c74ea2175ad89b107601f2dffded0f45e7703b9cb8ca9739945dee3c6fb
|
DIST platformdirs-3.5.1.tar.gz 17164 BLAKE2B 7d9aeff02000b75a028e6f75dc4793e53bbe72b5fc069482d5790d9280a92b801dffca847fe64513b8ee3d24b5639681cb1cfcb1f97d85e8e996c7f6cbca2f71 SHA512 e3aa38bc943f9dc709dfaa3c6fe9e11f3b33d4263d1d41f7349d9926db2e41a36dd43c74ea2175ad89b107601f2dffded0f45e7703b9cb8ca9739945dee3c6fb
|
||||||
|
DIST platformdirs-3.5.2.tar.gz 17775 BLAKE2B 2ec36d1efb77cdf5d247dd7e3a731389f4125d9fdb6b3edf8b3c4c1c87f9336ee38ef7923f284193b4105121e3e5ea5d87e07f153ec6eb395f1dca0573282e16 SHA512 68066aa85b44c37cbe602610371866dd5b7e9b6787b27d51379ecb347d27abdabf57da26ae622268df29fd3cfa9892f977060990a5235fb651a694d1a3fd7d99
|
||||||
|
DIST platformdirs-3.5.3.tar.gz 17780 BLAKE2B bffcc38623022f24175d1cb7097e65f73208b5aefedba2a22a584ea63fafeafe9ec7fd3701f903890282bca33dfd03d11c3070327f7efe474eb64ed548448ac6 SHA512 2510f7e5a260df6ac5d111e80a513979060f7a77c038b79d6db4b42d196ffb8bbacb2db6e986186926931bb28fec867404ed4e23eb3268b6abdbf318d79baa69
|
||||||
|
DIST platformdirs-3.6.0.tar.gz 18187 BLAKE2B 22e6da0d01e3862518052eba5a20efca4bb365619a6acdbd7722367b5acc4724a06f3baa8a57e8ba2d1957d9be35fd0074db89cc5732596e05bd44c2b5248a41 SHA512 f760e0fec11ca040e2138fc6c8423f9a39106fdf1f41811a19598892fbda31dc75cdeb4138e6355d87bbeeb879fd42ac2eee6e337e6093e59150ee26e73e4d41
|
||||||
|
49
sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-3.5.2.ebuild
vendored
Normal file
49
sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-3.5.2.ebuild
vendored
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Copyright 2021-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
DISTUTILS_USE_PEP517=flit
|
||||||
|
PYTHON_COMPAT=( python3_{10..12} pypy3 )
|
||||||
|
|
||||||
|
inherit distutils-r1 pypi
|
||||||
|
|
||||||
|
DESCRIPTION="A small Python module for determining appropriate platform-specific dirs"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://pypi.org/project/platformdirs/
|
||||||
|
https://github.com/platformdirs/platformdirs/
|
||||||
|
"
|
||||||
|
|
||||||
|
LICENSE="MIT"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
|
||||||
|
|
||||||
|
BDEPEND="
|
||||||
|
test? (
|
||||||
|
dev-python/appdirs[${PYTHON_USEDEP}]
|
||||||
|
dev-python/pytest-mock[${PYTHON_USEDEP}]
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
distutils_enable_tests pytest
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
grep -q 'build-backend = "hatchling' pyproject.toml ||
|
||||||
|
die "Upstream changed build-backend, recheck"
|
||||||
|
# write a custom pyproject.toml to ease setuptools bootstrap
|
||||||
|
cat > pyproject.toml <<-EOF || die
|
||||||
|
[build-system]
|
||||||
|
requires = ["flit_core >=3.2,<4"]
|
||||||
|
build-backend = "flit_core.buildapi"
|
||||||
|
|
||||||
|
[project]
|
||||||
|
name = "${PN}"
|
||||||
|
version = "${PV}"
|
||||||
|
description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".'
|
||||||
|
EOF
|
||||||
|
# sigh
|
||||||
|
cat > src/platformdirs/version.py <<-EOF || die
|
||||||
|
__version__ = version = '${PV}'
|
||||||
|
__version_tuple__ = version_tuple = (${PV//./, })
|
||||||
|
EOF
|
||||||
|
}
|
49
sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-3.5.3.ebuild
vendored
Normal file
49
sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-3.5.3.ebuild
vendored
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Copyright 2021-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
DISTUTILS_USE_PEP517=flit
|
||||||
|
PYTHON_COMPAT=( python3_{10..12} pypy3 )
|
||||||
|
|
||||||
|
inherit distutils-r1 pypi
|
||||||
|
|
||||||
|
DESCRIPTION="A small Python module for determining appropriate platform-specific dirs"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://pypi.org/project/platformdirs/
|
||||||
|
https://github.com/platformdirs/platformdirs/
|
||||||
|
"
|
||||||
|
|
||||||
|
LICENSE="MIT"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
|
||||||
|
|
||||||
|
BDEPEND="
|
||||||
|
test? (
|
||||||
|
dev-python/appdirs[${PYTHON_USEDEP}]
|
||||||
|
dev-python/pytest-mock[${PYTHON_USEDEP}]
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
distutils_enable_tests pytest
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
grep -q 'build-backend = "hatchling' pyproject.toml ||
|
||||||
|
die "Upstream changed build-backend, recheck"
|
||||||
|
# write a custom pyproject.toml to ease setuptools bootstrap
|
||||||
|
cat > pyproject.toml <<-EOF || die
|
||||||
|
[build-system]
|
||||||
|
requires = ["flit_core >=3.2,<4"]
|
||||||
|
build-backend = "flit_core.buildapi"
|
||||||
|
|
||||||
|
[project]
|
||||||
|
name = "${PN}"
|
||||||
|
version = "${PV}"
|
||||||
|
description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".'
|
||||||
|
EOF
|
||||||
|
# sigh
|
||||||
|
cat > src/platformdirs/version.py <<-EOF || die
|
||||||
|
__version__ = version = '${PV}'
|
||||||
|
__version_tuple__ = version_tuple = (${PV//./, })
|
||||||
|
EOF
|
||||||
|
}
|
49
sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-3.6.0.ebuild
vendored
Normal file
49
sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-3.6.0.ebuild
vendored
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Copyright 2021-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
DISTUTILS_USE_PEP517=flit
|
||||||
|
PYTHON_COMPAT=( python3_{10..12} pypy3 )
|
||||||
|
|
||||||
|
inherit distutils-r1 pypi
|
||||||
|
|
||||||
|
DESCRIPTION="A small Python module for determining appropriate platform-specific dirs"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://pypi.org/project/platformdirs/
|
||||||
|
https://github.com/platformdirs/platformdirs/
|
||||||
|
"
|
||||||
|
|
||||||
|
LICENSE="MIT"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
|
||||||
|
|
||||||
|
BDEPEND="
|
||||||
|
test? (
|
||||||
|
dev-python/appdirs[${PYTHON_USEDEP}]
|
||||||
|
dev-python/pytest-mock[${PYTHON_USEDEP}]
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
distutils_enable_tests pytest
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
grep -q 'build-backend = "hatchling' pyproject.toml ||
|
||||||
|
die "Upstream changed build-backend, recheck"
|
||||||
|
# write a custom pyproject.toml to ease setuptools bootstrap
|
||||||
|
cat > pyproject.toml <<-EOF || die
|
||||||
|
[build-system]
|
||||||
|
requires = ["flit_core >=3.2,<4"]
|
||||||
|
build-backend = "flit_core.buildapi"
|
||||||
|
|
||||||
|
[project]
|
||||||
|
name = "${PN}"
|
||||||
|
version = "${PV}"
|
||||||
|
description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".'
|
||||||
|
EOF
|
||||||
|
# sigh
|
||||||
|
cat > src/platformdirs/version.py <<-EOF || die
|
||||||
|
__version__ = version = '${PV}'
|
||||||
|
__version_tuple__ = version_tuple = (${PV//./, })
|
||||||
|
EOF
|
||||||
|
}
|
@ -1,3 +1,4 @@
|
|||||||
DIST pydantic-1.10.7.gh.tar.gz 903379 BLAKE2B b2dd75a640ca54024a2bf141117a1d738a30a4630bed8f4d0169fc5a6a55ded719727d88c7e78b9a2acc3aec68482e9be8c8bf4776fef668fe4acc3e1fd775df SHA512 948a7935b374719773df50243aed708b3c6789243b9aa0ba239cf1502ddd0e0cec4d701e108f1cc78090c088f3cb1c78b840c39f5e7ad0e61739776f552f284d
|
DIST pydantic-1.10.7.gh.tar.gz 903379 BLAKE2B b2dd75a640ca54024a2bf141117a1d738a30a4630bed8f4d0169fc5a6a55ded719727d88c7e78b9a2acc3aec68482e9be8c8bf4776fef668fe4acc3e1fd775df SHA512 948a7935b374719773df50243aed708b3c6789243b9aa0ba239cf1502ddd0e0cec4d701e108f1cc78090c088f3cb1c78b840c39f5e7ad0e61739776f552f284d
|
||||||
DIST pydantic-1.10.8.gh.tar.gz 765592 BLAKE2B 0b4cc273ce6fad20baa7c8bd87ef32199cb003f52b8e9aa19eda6359ca0e5c30152c7f25d2bb146ec23027011895cf44d9eb051c6ca609fb00e3d7b5f6089e4e SHA512 3ac41cdf0eb70fb71298131a043966b85387bc953ef2f463ece80728b46251d5d5f66c3f030afc3cdf4527918ae410fcd733a774cbe0c3b7ba9fc806a76378e4
|
DIST pydantic-1.10.8.gh.tar.gz 765592 BLAKE2B 0b4cc273ce6fad20baa7c8bd87ef32199cb003f52b8e9aa19eda6359ca0e5c30152c7f25d2bb146ec23027011895cf44d9eb051c6ca609fb00e3d7b5f6089e4e SHA512 3ac41cdf0eb70fb71298131a043966b85387bc953ef2f463ece80728b46251d5d5f66c3f030afc3cdf4527918ae410fcd733a774cbe0c3b7ba9fc806a76378e4
|
||||||
|
DIST pydantic-1.10.9.gh.tar.gz 765868 BLAKE2B 802c542d75b41ff2926215bf4f6bd68a906d581db7b08ed85577f9021d259717f3ef8dbacfe381723aa042aab8720ad182c57fee188f2436b33d21164e24ba23 SHA512 d376a302eac3427cdc8da0ed2fab01c0b5e7a059447777a53c394a60dac5fa0066488be8553022bb5aa89367d5a2e80e5d6e3cb39d9272843718dd07f6acd11e
|
||||||
DIST pydantic-2.0b2.tar.gz 527380 BLAKE2B 214c740ecaed3cf4e7ed1e06d75ce17b37028e41c6a7abc4174b201691e31725123f89430c430a514c59973dc327d2b8fcd21c5ef0a47aaa48fafaf7e322d7a1 SHA512 49cc058c91e48638f9809ca77d9c486e3bdfc05e1546b19ca7e419f41e152998f750cfb58927ad8189913859d27fff68de0e5848599baaf816404e0f58fd6646
|
DIST pydantic-2.0b2.tar.gz 527380 BLAKE2B 214c740ecaed3cf4e7ed1e06d75ce17b37028e41c6a7abc4174b201691e31725123f89430c430a514c59973dc327d2b8fcd21c5ef0a47aaa48fafaf7e322d7a1 SHA512 49cc058c91e48638f9809ca77d9c486e3bdfc05e1546b19ca7e419f41e152998f750cfb58927ad8189913859d27fff68de0e5848599baaf816404e0f58fd6646
|
||||||
|
91
sdk_container/src/third_party/portage-stable/dev-python/pydantic/pydantic-1.10.9.ebuild
vendored
Normal file
91
sdk_container/src/third_party/portage-stable/dev-python/pydantic/pydantic-1.10.9.ebuild
vendored
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
# 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=( pypy3 python3_{10..12} )
|
||||||
|
|
||||||
|
inherit distutils-r1
|
||||||
|
|
||||||
|
MY_P=${P/_beta/b}
|
||||||
|
DESCRIPTION="Data parsing and validation using Python type hints"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://github.com/pydantic/pydantic/
|
||||||
|
https://pypi.org/project/pydantic/
|
||||||
|
"
|
||||||
|
SRC_URI="
|
||||||
|
https://github.com/pydantic/pydantic/archive/v${PV/_beta/b}.tar.gz
|
||||||
|
-> ${MY_P}.gh.tar.gz
|
||||||
|
"
|
||||||
|
S=${WORKDIR}/${MY_P}
|
||||||
|
|
||||||
|
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"
|
||||||
|
IUSE="native-extensions"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
>=dev-python/typing-extensions-4.1.0[${PYTHON_USEDEP}]
|
||||||
|
"
|
||||||
|
BDEPEND="
|
||||||
|
native-extensions? (
|
||||||
|
<dev-python/cython-3[${PYTHON_USEDEP}]
|
||||||
|
)
|
||||||
|
test? (
|
||||||
|
>=dev-python/email-validator-1.2.1[${PYTHON_USEDEP}]
|
||||||
|
dev-python/hypothesis[${PYTHON_USEDEP}]
|
||||||
|
dev-python/pytest-mock[${PYTHON_USEDEP}]
|
||||||
|
dev-python/python-dotenv[${PYTHON_USEDEP}]
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
distutils_enable_tests pytest
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
sed -i -e '/CFLAGS/d' setup.py || die
|
||||||
|
distutils-r1_src_prepare
|
||||||
|
}
|
||||||
|
|
||||||
|
python_compile() {
|
||||||
|
if [[ ${EPYTHON} == pypy3 ]] || ! use native-extensions; then
|
||||||
|
# do not build extensions on PyPy to workaround
|
||||||
|
# https://github.com/cython/cython/issues/4763
|
||||||
|
local -x SKIP_CYTHON=1
|
||||||
|
fi
|
||||||
|
distutils-r1_python_compile
|
||||||
|
}
|
||||||
|
|
||||||
|
python_test() {
|
||||||
|
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
|
||||||
|
local -x PYTEST_PLUGINS=pytest_mock
|
||||||
|
|
||||||
|
local EPYTEST_DESELECT=(
|
||||||
|
# flaky test, known upstream
|
||||||
|
tests/test_hypothesis_plugin.py::test_can_construct_models_with_all_fields
|
||||||
|
# mypy linting causes regressions with new mypy versions
|
||||||
|
tests/mypy
|
||||||
|
)
|
||||||
|
case ${EPYTHON} in
|
||||||
|
pypy3)
|
||||||
|
EPYTEST_DESELECT+=(
|
||||||
|
tests/test_private_attributes.py::test_private_attribute
|
||||||
|
tests/test_private_attributes.py::test_private_attribute_annotation
|
||||||
|
tests/test_private_attributes.py::test_private_attribute_factory
|
||||||
|
tests/test_private_attributes.py::test_private_attribute_multiple_inheritance
|
||||||
|
tests/test_private_attributes.py::test_underscore_attrs_are_private
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
python3.12)
|
||||||
|
EPYTEST_DESELECT+=(
|
||||||
|
tests/test_abc.py::test_model_subclassing_abstract_base_classes_without_implementation_raises_exception
|
||||||
|
tests/test_generics.py::test_partial_specification_name
|
||||||
|
tests/test_generics.py::test_parse_generic_json
|
||||||
|
tests/test_types.py::test_secretfield
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
rm -rf pydantic || die
|
||||||
|
epytest
|
||||||
|
}
|
@ -19,7 +19,7 @@ HOMEPAGE="
|
|||||||
|
|
||||||
LICENSE="BSD-2"
|
LICENSE="BSD-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 ~arm64-macos ~x64-macos"
|
||||||
|
|
||||||
BDEPEND="
|
BDEPEND="
|
||||||
test? (
|
test? (
|
||||||
|
@ -1 +1,2 @@
|
|||||||
|
DIST pyparsing-3.1.0.tar.gz 882565 BLAKE2B 8ed2e15e2422ded9a558b866a5cbbdc0fb6c7ce42962710e42cfd751aae7b48bacd3d6201084189a940d262fb7b142ea37b897bae23f97a175f6152c19adb5c9 SHA512 0ad2e8fff93708426b3675e2d41da12b3f09531bf272799db4095ee618bbaa0f4b90e527ff09dda2acbdb923d59117678fbb28b82a7cfd2b395d686f47b61850
|
||||||
DIST pyparsing_3.0.9.gh.tar.gz 967771 BLAKE2B c13c74661b9e0d53b4886c9949b01951d220991f916362a13ce0c32c0ab05a6b1cab4d5e5a626acb7563c0ec1716348ede205cb67bf22c0710904f07404ad82a SHA512 1158f27e31f8eced540217b7234b09005eac416fad74faf59678fdae93fe2f76e0e3b5f4adfd3ceb42c8aef19150950293e989c9a5189741175073eb7a03cd6d
|
DIST pyparsing_3.0.9.gh.tar.gz 967771 BLAKE2B c13c74661b9e0d53b4886c9949b01951d220991f916362a13ce0c32c0ab05a6b1cab4d5e5a626acb7563c0ec1716348ede205cb67bf22c0710904f07404ad82a SHA512 1158f27e31f8eced540217b7234b09005eac416fad74faf59678fdae93fe2f76e0e3b5f4adfd3ceb42c8aef19150950293e989c9a5189741175073eb7a03cd6d
|
||||||
|
47
sdk_container/src/third_party/portage-stable/dev-python/pyparsing/pyparsing-3.1.0.ebuild
vendored
Normal file
47
sdk_container/src/third_party/portage-stable/dev-python/pyparsing/pyparsing-3.1.0.ebuild
vendored
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# Copyright 2004-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
DISTUTILS_USE_PEP517=flit
|
||||||
|
PYTHON_COMPAT=( python3_{10..12} pypy3 )
|
||||||
|
|
||||||
|
inherit distutils-r1 pypi
|
||||||
|
|
||||||
|
DESCRIPTION="Easy-to-use Python module for text parsing"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://github.com/pyparsing/pyparsing/
|
||||||
|
https://pypi.org/project/pyparsing/
|
||||||
|
"
|
||||||
|
|
||||||
|
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"
|
||||||
|
IUSE="examples"
|
||||||
|
|
||||||
|
distutils_enable_tests pytest
|
||||||
|
|
||||||
|
EPYTEST_IGNORE=(
|
||||||
|
# railroad-diagrams not packaged (and not suitable for packaging yet)
|
||||||
|
tests/test_diagram.py
|
||||||
|
)
|
||||||
|
|
||||||
|
EPYTEST_DESELECT=(
|
||||||
|
# also railroad-diagrams
|
||||||
|
tests/test_examples.py::TestExamples::test_range_check
|
||||||
|
tests/test_unit.py::Test02_WithoutPackrat::testEmptyExpressionsAreHandledProperly
|
||||||
|
tests/test_unit.py::Test04_WithPackrat::testEmptyExpressionsAreHandledProperly
|
||||||
|
tests/test_unit.py::Test06_WithBoundedPackrat::testEmptyExpressionsAreHandledProperly
|
||||||
|
tests/test_unit.py::Test08_WithUnboundedPackrat::testEmptyExpressionsAreHandledProperly
|
||||||
|
tests/test_unit.py::Test09_WithLeftRecursionParsing::testEmptyExpressionsAreHandledProperly
|
||||||
|
tests/test_unit.py::Test10_WithLeftRecursionParsingBoundedMemo::testEmptyExpressionsAreHandledProperly
|
||||||
|
)
|
||||||
|
|
||||||
|
python_install_all() {
|
||||||
|
if use examples; then
|
||||||
|
docompress -x /usr/share/doc/${PF}/examples
|
||||||
|
dodoc -r examples
|
||||||
|
fi
|
||||||
|
distutils-r1_python_install_all
|
||||||
|
}
|
@ -1,4 +1,2 @@
|
|||||||
DIST linux-6.2.tar.xz 136430892 BLAKE2B 05b63254734ea685db437cb1c00a6da63eee74d7e99f4ed2d074aaa01ac4487813ab297d337a6855cdbcbb33346b631c4256ee3b06191adfb1be3615a56bdd6d SHA512 a01bee0b968b95183934fe3504516be7ef5811944a061f5aed05ecebaa27b5eb64e33232fd0a8dd622b3c8743bfe462ef7e464d381734d111a0ad6a6d9f66ddd
|
|
||||||
DIST linux-6.3.tar.xz 136891752 BLAKE2B f1887c8924efa8d0cb14c4e604affd0b0168bcf20f56a37c027405c7bc11aba822a43fcb38ccb55a81a26f747d00e1ab5a6554818affbf1e1c7ef5220150fc69 SHA512 768979440f4907ba64d4481b383d6101faf208f27a0b897156123aa278c5743fe3c4f61945b2541429c532d45382aaee8899ea9d44a1d2895bfbb79bfd937f65
|
DIST linux-6.3.tar.xz 136891752 BLAKE2B f1887c8924efa8d0cb14c4e604affd0b0168bcf20f56a37c027405c7bc11aba822a43fcb38ccb55a81a26f747d00e1ab5a6554818affbf1e1c7ef5220150fc69 SHA512 768979440f4907ba64d4481b383d6101faf208f27a0b897156123aa278c5743fe3c4f61945b2541429c532d45382aaee8899ea9d44a1d2895bfbb79bfd937f65
|
||||||
DIST patch-6.2.1.xz 5688 BLAKE2B 383ad7820e2b581b35c7b33e272782c1ea9588e050b2e306b7a31e82984c49f6da55dd10908c6c2d5cf0b524a7cfacc08b3ce0279e4ccd96286463ae28cb5e90 SHA512 e5777e2cb124ba5899c330135b25aaa4d612fed4af2230214c2311fe6ca03825e9c3f9be7ed84ac3712db6a4aad4fed43e88cbbf3d7b33d8d98000cba78f9085
|
|
||||||
DIST patch-6.3.xz 8617176 BLAKE2B cab9b9b3e3a97c425e186e2390b7753e77740a8a7286ba8f8fd88527c1d2e6ee22b0d27510c5ea065e73161ac1f9a178251585ffa8d2648595c92e831cf1fee3 SHA512 4a7228e9d89633d3cb14af2dd7419eb625b765b70b95e4149ff1aff6367fb2490d5bd16d6399da33a0b85c32a8dafa2c2cb2e3695aec335f4d3a2813ca52c9f4
|
DIST patch-6.3.xz 8617176 BLAKE2B cab9b9b3e3a97c425e186e2390b7753e77740a8a7286ba8f8fd88527c1d2e6ee22b0d27510c5ea065e73161ac1f9a178251585ffa8d2648595c92e831cf1fee3 SHA512 4a7228e9d89633d3cb14af2dd7419eb625b765b70b95e4149ff1aff6367fb2490d5bd16d6399da33a0b85c32a8dafa2c2cb2e3695aec335f4d3a2813ca52c9f4
|
||||||
|
@ -1,123 +0,0 @@
|
|||||||
# Copyright 2021-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{9..11} )
|
|
||||||
inherit estack linux-info optfeature python-any-r1 bash-completion-r1 toolchain-funcs
|
|
||||||
|
|
||||||
MY_PV="${PV/_/-}"
|
|
||||||
MY_PV="${MY_PV/-pre/-git}"
|
|
||||||
|
|
||||||
DESCRIPTION="Tool for inspection and simple manipulation of eBPF programs and maps"
|
|
||||||
HOMEPAGE="https://kernel.org/"
|
|
||||||
|
|
||||||
LINUX_V="${PV:0:1}.x"
|
|
||||||
LINUX_VER=$(ver_cut 1-2)
|
|
||||||
LINUX_PATCH=patch-${PV}.xz
|
|
||||||
SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_PATCH}"
|
|
||||||
|
|
||||||
LINUX_SOURCES="linux-${LINUX_VER}.tar.xz"
|
|
||||||
SRC_URI+=" https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}"
|
|
||||||
|
|
||||||
S_K="${WORKDIR}/linux-${LINUX_VER}"
|
|
||||||
S="${S_K}/tools/bpf/bpftool"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="amd64 ~arm ~arm64 ~riscv ~x86"
|
|
||||||
IUSE="caps"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
sys-libs/binutils-libs:=
|
|
||||||
sys-libs/zlib:=
|
|
||||||
virtual/libelf:=
|
|
||||||
caps? ( sys-libs/libcap:= )
|
|
||||||
"
|
|
||||||
DEPEND="
|
|
||||||
${RDEPEND}
|
|
||||||
>=sys-kernel/linux-headers-5.8
|
|
||||||
"
|
|
||||||
BDEPEND="
|
|
||||||
${LINUX_PATCH+dev-util/patchutils}
|
|
||||||
${PYTHON_DEPS}
|
|
||||||
app-arch/tar
|
|
||||||
dev-python/docutils
|
|
||||||
"
|
|
||||||
|
|
||||||
CONFIG_CHECK="~DEBUG_INFO_BTF"
|
|
||||||
|
|
||||||
# src_unpack and src_prepare are copied from dev-util/perf since
|
|
||||||
# it's building from the same tarball, please keep it in sync with perf
|
|
||||||
src_unpack() {
|
|
||||||
local paths=(
|
|
||||||
tools/bpf kernel/bpf
|
|
||||||
tools/{arch,build,include,lib,perf,scripts} {scripts,include,lib} "arch/*/lib"
|
|
||||||
)
|
|
||||||
|
|
||||||
# We expect the tar implementation to support the -j and --wildcards option
|
|
||||||
echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}"
|
|
||||||
gtar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \
|
|
||||||
"${paths[@]/#/linux-${LINUX_VER}/}" || die
|
|
||||||
|
|
||||||
if [[ -n ${LINUX_PATCH} ]] ; then
|
|
||||||
eshopts_push -o noglob
|
|
||||||
ebegin "Filtering partial source patch"
|
|
||||||
filterdiff -p1 ${paths[@]/#/-i } -z "${DISTDIR}"/${LINUX_PATCH} \
|
|
||||||
> ${P}.patch
|
|
||||||
eend $? || die "filterdiff failed"
|
|
||||||
eshopts_pop
|
|
||||||
fi
|
|
||||||
|
|
||||||
local a
|
|
||||||
for a in ${A}; do
|
|
||||||
[[ ${a} == ${LINUX_SOURCES} ]] && continue
|
|
||||||
[[ ${a} == ${LINUX_PATCH} ]] && continue
|
|
||||||
unpack ${a}
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
default
|
|
||||||
|
|
||||||
if [[ -n ${LINUX_PATCH} ]] ; then
|
|
||||||
pushd "${S_K}" >/dev/null || die
|
|
||||||
eapply "${WORKDIR}"/${P}.patch
|
|
||||||
popd || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
pushd "${S_K}" >/dev/null || die
|
|
||||||
# bug #890638
|
|
||||||
eapply "${FILESDIR}"/5.19.12-no-stack-protector.patch
|
|
||||||
popd || die
|
|
||||||
|
|
||||||
# dev-python/docutils installs rst2man.py, not rst2man
|
|
||||||
sed -i -e 's/rst2man/rst2man.py/g' Documentation/Makefile || die
|
|
||||||
}
|
|
||||||
|
|
||||||
bpftool_make() {
|
|
||||||
local arch=$(tc-arch-kernel)
|
|
||||||
tc-export AR CC LD
|
|
||||||
|
|
||||||
emake V=1 VF=1 \
|
|
||||||
HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)" \
|
|
||||||
EXTRA_CFLAGS="${CFLAGS}" ARCH="${arch}" BPFTOOL_VERSION="${MY_PV}" \
|
|
||||||
prefix="${EPREFIX}"/usr \
|
|
||||||
bash_compdir="$(get_bashcompdir)" \
|
|
||||||
feature-libcap="$(usex caps 1 0)" \
|
|
||||||
"$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
bpftool_make
|
|
||||||
bpftool_make -C Documentation
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
bpftool_make DESTDIR="${D}" install
|
|
||||||
bpftool_make mandir="${ED}"/usr/share/man -C Documentation install
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
optfeature "clang-bpf-co-re support" sys-devel/clang[llvm_targets_BPF]
|
|
||||||
}
|
|
@ -25,7 +25,7 @@ S="${S_K}/tools/bpf/bpftool"
|
|||||||
|
|
||||||
LICENSE="GPL-2"
|
LICENSE="GPL-2"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
|
KEYWORDS="amd64 ~arm ~arm64 ~riscv ~x86"
|
||||||
IUSE="caps"
|
IUSE="caps"
|
||||||
|
|
||||||
RDEPEND="
|
RDEPEND="
|
||||||
|
@ -14,3 +14,7 @@ DIST cmake-3.26.4-SHA-256.txt 1646 BLAKE2B a92cecbe635cb7a01be338ca9554de5603124
|
|||||||
DIST cmake-3.26.4-SHA-256.txt.asc 833 BLAKE2B c33f4d8cc1ba271a06b427e4bb5cb39e38f768c497aec6df07ffe9f7be997c5df88024e0de09902e6169cbad9020b20f024ef277cefc45b5cd172ed7a819e1bb SHA512 d3ddbe0c31a1093dfd4bed26dae7959e5682d367695fd4f6f021e327b8335d33fcf7b0259149f449be82da224ee74c276b135ac2860917535fb5a19b4f0f6334
|
DIST cmake-3.26.4-SHA-256.txt.asc 833 BLAKE2B c33f4d8cc1ba271a06b427e4bb5cb39e38f768c497aec6df07ffe9f7be997c5df88024e0de09902e6169cbad9020b20f024ef277cefc45b5cd172ed7a819e1bb SHA512 d3ddbe0c31a1093dfd4bed26dae7959e5682d367695fd4f6f021e327b8335d33fcf7b0259149f449be82da224ee74c276b135ac2860917535fb5a19b4f0f6334
|
||||||
DIST cmake-3.26.4-docs.tar.xz 507352 BLAKE2B 9d7e4bb2292d22f93c5435e30317cb0701dc9c6ad6b397fc9108050217917f48ded84b2d6094782e2e8a502e693a8e45c5c659e65db3857dbcac261910890861 SHA512 95ef908381501bd8189113a7a520e70d81dbb4e1f416cfe38cbf7005e76f3571b964496d33980975835ff02634f85e1eb170a575e0ea30bfa749043cad84c605
|
DIST cmake-3.26.4-docs.tar.xz 507352 BLAKE2B 9d7e4bb2292d22f93c5435e30317cb0701dc9c6ad6b397fc9108050217917f48ded84b2d6094782e2e8a502e693a8e45c5c659e65db3857dbcac261910890861 SHA512 95ef908381501bd8189113a7a520e70d81dbb4e1f416cfe38cbf7005e76f3571b964496d33980975835ff02634f85e1eb170a575e0ea30bfa749043cad84c605
|
||||||
DIST cmake-3.26.4.tar.gz 10669686 BLAKE2B 34508c724e0d4967e010917f6fac6f426b0d835c38cd197b64e70a18febee1c3efff5f5edc5cd7c5080881bd5c1d77d03243b5dcf8b47f238fa4ac4e5996072f SHA512 fe817c8d5e247db3f0a9a58ee37c466a47220100d9e90711cd5d06c223cef87e41d1a756e75d1537e5f8cd010dcb8971cbeab4684b1ac12bcecf84bf7b720167
|
DIST cmake-3.26.4.tar.gz 10669686 BLAKE2B 34508c724e0d4967e010917f6fac6f426b0d835c38cd197b64e70a18febee1c3efff5f5edc5cd7c5080881bd5c1d77d03243b5dcf8b47f238fa4ac4e5996072f SHA512 fe817c8d5e247db3f0a9a58ee37c466a47220100d9e90711cd5d06c223cef87e41d1a756e75d1537e5f8cd010dcb8971cbeab4684b1ac12bcecf84bf7b720167
|
||||||
|
DIST cmake-3.27.0-rc1.tar.gz 10973927 BLAKE2B 30d17208a061d2bfbb4e9ef6cdeb526c0c0cf6d86c93821d380ff25e7ae430f80dfcc8992d0687882489e3453d543ba11a45fc47ac15ef8180f6dab6d85c20f8 SHA512 02ea3ed06ccc339980235371de0b3c823f92cdd46bc4de3b0bb5788cd1265c292e70dd824d2fd3740ec67fa63a5e2a903a32735f6073d8843465e300ccef5e6d
|
||||||
|
DIST cmake-3.27.0-rc2.tar.gz 10974624 BLAKE2B 2c5e1bdc23e249daccd71d4396dad3324be8de67b36203154a1c9d6172d72f552454644c0820f5324d50681a5890c4ff9d665a8d0236354f3c2ec0345d1881e2 SHA512 c354caac080510d779c112f5301a6158d42157e518176b63d1784fbbf3a19fe0f62028f1d5e4b4f227002e9c3b4309c31826024ea9b2d6e130d5db9bcec6e9d8
|
||||||
|
DIST cmake-3.27.0_rc1-docs.tar.xz 520664 BLAKE2B 332a6700af4a119c8859074d93d16a8a7109614abff6b8bcf90c9c3490f70a436f60ee627b8bb2b31a100916ea91c6d5fc63bc88c07acb1bed60c543e3fd3c7d SHA512 0c97f632bf69d079f2ce22fa5d283e5b6f031d238f2810c51dab311d6c41c63773ce9741744e3bcb1fbb2afede6b354b0fef12a55d1410248a48977cbfd0f15a
|
||||||
|
DIST cmake-3.27.0_rc2-docs.tar.xz 520656 BLAKE2B 8519d64d6d3ecd75f61b03982f7671f0cb9fcf9cb9e03b0fe8aebcefb2ffbddfc5e2ed07b94f0226af3a092e34d9a5fc51c8e55f85db8bcf92db159a78677c62 SHA512 3f079c2b7507b608bd6dca93f35de343707de18b4892fce7692182d9a7f2c90bde7a2fa27236d838b6307b3956e60130b86c2f782c342dd1a6ed72d323d7792d
|
||||||
|
@ -48,7 +48,7 @@ else
|
|||||||
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc
|
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc
|
||||||
)"
|
)"
|
||||||
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
|
||||||
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-bradking )"
|
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-bradking )"
|
||||||
fi
|
fi
|
||||||
|
288
sdk_container/src/third_party/portage-stable/dev-util/cmake/cmake-3.27.0_rc1.ebuild
vendored
Normal file
288
sdk_container/src/third_party/portage-stable/dev-util/cmake/cmake-3.27.0_rc1.ebuild
vendored
Normal file
@ -0,0 +1,288 @@
|
|||||||
|
# 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-cmake-docs
|
||||||
|
# Set to 1 if prebuilt, 0 if not
|
||||||
|
# (the construct below is to allow overriding from env for script)
|
||||||
|
: ${CMAKE_DOCS_PREBUILT:=1}
|
||||||
|
|
||||||
|
CMAKE_DOCS_PREBUILT_DEV=sam
|
||||||
|
#CMAKE_DOCS_VERSION=$(ver_cut 1-3)
|
||||||
|
CMAKE_DOCS_VERSION=${PV}
|
||||||
|
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
|
||||||
|
# See bug #784815
|
||||||
|
CMAKE_DOCS_USEFLAG="+doc"
|
||||||
|
|
||||||
|
# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja
|
||||||
|
# ... but seems fine as of 3.22.3?
|
||||||
|
# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759.
|
||||||
|
CMAKE_MAKEFILE_GENERATOR="emake"
|
||||||
|
CMAKE_REMOVE_MODULES_LIST=( none )
|
||||||
|
inherit bash-completion-r1 cmake elisp-common flag-o-matic multiprocessing \
|
||||||
|
toolchain-funcs virtualx xdg-utils
|
||||||
|
|
||||||
|
MY_P="${P/_/-}"
|
||||||
|
|
||||||
|
DESCRIPTION="Cross platform Make"
|
||||||
|
HOMEPAGE="https://cmake.org/"
|
||||||
|
if [[ ${PV} == 9999 ]] ; then
|
||||||
|
CMAKE_DOCS_PREBUILT=0
|
||||||
|
|
||||||
|
EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git"
|
||||||
|
inherit git-r3
|
||||||
|
else
|
||||||
|
SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz"
|
||||||
|
|
||||||
|
if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
|
||||||
|
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${PV} != *_rc* ]] ; then
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/bradking.asc
|
||||||
|
inherit verify-sig
|
||||||
|
|
||||||
|
SRC_URI+=" verify-sig? (
|
||||||
|
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt
|
||||||
|
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc
|
||||||
|
)"
|
||||||
|
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
|
||||||
|
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-bradking )"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc"
|
||||||
|
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
LICENSE="CMake"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="${CMAKE_DOCS_USEFLAG} dap emacs ncurses qt5 test"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
>=app-arch/libarchive-3.3.3:=
|
||||||
|
app-crypt/rhash
|
||||||
|
>=dev-libs/expat-2.0.1
|
||||||
|
>=dev-libs/jsoncpp-1.9.2-r2:0=
|
||||||
|
>=dev-libs/libuv-1.10.0:=
|
||||||
|
>=net-misc/curl-7.21.5[ssl]
|
||||||
|
sys-libs/zlib
|
||||||
|
virtual/pkgconfig
|
||||||
|
dap? ( dev-cpp/cppdap )
|
||||||
|
emacs? ( >=app-editors/emacs-23.1:* )
|
||||||
|
ncurses? ( sys-libs/ncurses:0= )
|
||||||
|
qt5? (
|
||||||
|
dev-qt/qtcore:5
|
||||||
|
dev-qt/qtgui:5
|
||||||
|
dev-qt/qtwidgets:5
|
||||||
|
)
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND+="
|
||||||
|
doc? (
|
||||||
|
dev-python/requests
|
||||||
|
dev-python/sphinx
|
||||||
|
)
|
||||||
|
test? ( app-arch/libarchive[zstd] )
|
||||||
|
"
|
||||||
|
|
||||||
|
SITEFILE="50${PN}-gentoo.el"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
# Prefix
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
|
||||||
|
# Misc
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0006-Filter-out-distcc-warnings-to-avoid-confusing-CMake.patch
|
||||||
|
|
||||||
|
# Upstream fixes (can usually be removed with a version bump)
|
||||||
|
)
|
||||||
|
|
||||||
|
cmake_src_bootstrap() {
|
||||||
|
# disable running of cmake in bootstrap command
|
||||||
|
sed -i \
|
||||||
|
-e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \
|
||||||
|
bootstrap || die "sed failed"
|
||||||
|
|
||||||
|
# execinfo.h on Solaris isn't quite what it is on Darwin
|
||||||
|
if [[ ${CHOST} == *-solaris* ]] ; then
|
||||||
|
sed -i -e 's/execinfo\.h/blablabla.h/' \
|
||||||
|
Source/kwsys/CMakeLists.txt || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# bootstrap script isn't exactly /bin/sh compatible
|
||||||
|
tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \
|
||||||
|
--prefix="${T}/cmakestrap/" \
|
||||||
|
--parallel=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") \
|
||||||
|
|| die "Bootstrap failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == 9999 ]] ; then
|
||||||
|
git-r3_src_unpack
|
||||||
|
elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then
|
||||||
|
default
|
||||||
|
else
|
||||||
|
cd "${DISTDIR}" || die
|
||||||
|
|
||||||
|
# See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature
|
||||||
|
verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc}
|
||||||
|
verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
|
||||||
|
default
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
cmake_src_prepare
|
||||||
|
|
||||||
|
if [[ ${CHOST} == *-darwin* ]] ; then
|
||||||
|
# Disable Xcode hooks, bug #652134
|
||||||
|
sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \
|
||||||
|
Source/CMakeLists.txt || die
|
||||||
|
sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
|
||||||
|
-e '/cmGlobalXCodeGenerator.h/d' \
|
||||||
|
Source/cmake.cxx || die
|
||||||
|
|
||||||
|
# Disable isysroot usage with GCC, we've properly instructed
|
||||||
|
# where things are via GCC configuration and ldwrapper
|
||||||
|
sed -i -e '/cmake_gnu_set_sysroot_flag/d' \
|
||||||
|
Modules/Platform/Apple-GNU-*.cmake || die
|
||||||
|
# Disable isysroot usage with clang as well
|
||||||
|
sed -i -e '/_SYSROOT_FLAG/d' \
|
||||||
|
Modules/Platform/Apple-Clang.cmake || die
|
||||||
|
# Don't set a POSIX standard, system headers don't like that, #757426
|
||||||
|
sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
|
||||||
|
Source/cmLoadCommandCommand.cxx \
|
||||||
|
Source/cmStandardLexer.h \
|
||||||
|
Source/cmSystemTools.cxx \
|
||||||
|
Source/cmTimestamp.cxx
|
||||||
|
sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
|
||||||
|
Source/cmStandardLexer.h
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Add gcc libs to the default link paths
|
||||||
|
sed -i \
|
||||||
|
-e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \
|
||||||
|
-e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \
|
||||||
|
-e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \
|
||||||
|
Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed"
|
||||||
|
|
||||||
|
if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then
|
||||||
|
CMAKE_BINARY="${S}/Bootstrap.cmk/cmake"
|
||||||
|
cmake_src_bootstrap
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# Fix linking on Solaris
|
||||||
|
[[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl
|
||||||
|
|
||||||
|
# ODR warnings, bug #858335
|
||||||
|
# https://gitlab.kitware.com/cmake/cmake/-/issues/20740
|
||||||
|
filter-lto
|
||||||
|
|
||||||
|
local mycmakeargs=(
|
||||||
|
-DCMAKE_USE_SYSTEM_LIBRARIES=ON
|
||||||
|
-DCMake_ENABLE_DEBUGGER=$(usex dap)
|
||||||
|
-DCMAKE_DOC_DIR=/share/doc/${PF}
|
||||||
|
-DCMAKE_MAN_DIR=/share/man
|
||||||
|
-DCMAKE_DATA_DIR=/share/${PN}
|
||||||
|
-DSPHINX_MAN=$(usex doc)
|
||||||
|
-DSPHINX_HTML=$(usex doc)
|
||||||
|
-DBUILD_CursesDialog="$(usex ncurses)"
|
||||||
|
-DBUILD_TESTING=$(usex test)
|
||||||
|
)
|
||||||
|
use qt5 && mycmakeargs+=( -DBUILD_QtDialog=ON )
|
||||||
|
|
||||||
|
cmake_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cmake_src_compile
|
||||||
|
use emacs && elisp-compile Auxiliary/cmake-mode.el
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
# Fix OutDir and SelectLibraryConfigurations tests
|
||||||
|
# these are altered thanks to our eclass
|
||||||
|
sed -i -e 's:^#_cmake_modify_IGNORE ::g' \
|
||||||
|
"${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \
|
||||||
|
|| die
|
||||||
|
|
||||||
|
pushd "${BUILD_DIR}" > /dev/null || die
|
||||||
|
|
||||||
|
# Excluded tests:
|
||||||
|
# BootstrapTest: we actualy bootstrap it every time so why test it.
|
||||||
|
# BundleUtilities: bundle creation broken
|
||||||
|
# CMakeOnly.AllFindModules: pthread issues
|
||||||
|
# CTest.updatecvs: which fails to commit as root
|
||||||
|
# Fortran: requires fortran
|
||||||
|
# RunCMake.CompilerLauncher: also requires fortran
|
||||||
|
# RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because
|
||||||
|
# debugedit binary is not in the expected location
|
||||||
|
# RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because
|
||||||
|
# it can't find a deb package that owns libc
|
||||||
|
# TestUpload, which requires network access
|
||||||
|
# RunCMake.CMP0125, known failure reported upstream (bug #829414)
|
||||||
|
local myctestargs=(
|
||||||
|
--output-on-failure
|
||||||
|
-E "(BootstrapTest|BundleUtilities|CMakeOnly.AllFindModules|CompileOptions|CTest.UpdateCVS|Fortran|RunCMake.CompilerLauncher|RunCMake.CPack_(DEB|RPM)|TestUpload|RunCMake.CMP0125)" \
|
||||||
|
)
|
||||||
|
|
||||||
|
virtx cmake_src_test
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
cmake_src_install
|
||||||
|
|
||||||
|
# If USE=doc, there'll be newly generated docs which we install instead.
|
||||||
|
if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
|
||||||
|
doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8]
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use emacs; then
|
||||||
|
elisp-install ${PN} Auxiliary/cmake-mode.el Auxiliary/cmake-mode.elc
|
||||||
|
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto /usr/share/vim/vimfiles/syntax
|
||||||
|
doins Auxiliary/vim/syntax/cmake.vim
|
||||||
|
|
||||||
|
insinto /usr/share/vim/vimfiles/indent
|
||||||
|
doins Auxiliary/vim/indent/cmake.vim
|
||||||
|
|
||||||
|
insinto /usr/share/vim/vimfiles/ftdetect
|
||||||
|
doins "${FILESDIR}/${PN}.vim"
|
||||||
|
|
||||||
|
dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack}
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
use emacs && elisp-site-regen
|
||||||
|
|
||||||
|
if use qt5; then
|
||||||
|
xdg_icon_cache_update
|
||||||
|
xdg_desktop_database_update
|
||||||
|
xdg_mimeinfo_database_update
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
use emacs && elisp-site-regen
|
||||||
|
|
||||||
|
if use qt5; then
|
||||||
|
xdg_icon_cache_update
|
||||||
|
xdg_desktop_database_update
|
||||||
|
xdg_mimeinfo_database_update
|
||||||
|
fi
|
||||||
|
}
|
288
sdk_container/src/third_party/portage-stable/dev-util/cmake/cmake-3.27.0_rc2.ebuild
vendored
Normal file
288
sdk_container/src/third_party/portage-stable/dev-util/cmake/cmake-3.27.0_rc2.ebuild
vendored
Normal file
@ -0,0 +1,288 @@
|
|||||||
|
# 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-cmake-docs
|
||||||
|
# Set to 1 if prebuilt, 0 if not
|
||||||
|
# (the construct below is to allow overriding from env for script)
|
||||||
|
: ${CMAKE_DOCS_PREBUILT:=1}
|
||||||
|
|
||||||
|
CMAKE_DOCS_PREBUILT_DEV=sam
|
||||||
|
#CMAKE_DOCS_VERSION=$(ver_cut 1-3)
|
||||||
|
CMAKE_DOCS_VERSION=${PV}
|
||||||
|
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
|
||||||
|
# See bug #784815
|
||||||
|
CMAKE_DOCS_USEFLAG="+doc"
|
||||||
|
|
||||||
|
# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja
|
||||||
|
# ... but seems fine as of 3.22.3?
|
||||||
|
# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759.
|
||||||
|
CMAKE_MAKEFILE_GENERATOR="emake"
|
||||||
|
CMAKE_REMOVE_MODULES_LIST=( none )
|
||||||
|
inherit bash-completion-r1 cmake elisp-common flag-o-matic multiprocessing \
|
||||||
|
toolchain-funcs virtualx xdg-utils
|
||||||
|
|
||||||
|
MY_P="${P/_/-}"
|
||||||
|
|
||||||
|
DESCRIPTION="Cross platform Make"
|
||||||
|
HOMEPAGE="https://cmake.org/"
|
||||||
|
if [[ ${PV} == 9999 ]] ; then
|
||||||
|
CMAKE_DOCS_PREBUILT=0
|
||||||
|
|
||||||
|
EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git"
|
||||||
|
inherit git-r3
|
||||||
|
else
|
||||||
|
SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz"
|
||||||
|
|
||||||
|
if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
|
||||||
|
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${PV} != *_rc* ]] ; then
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/bradking.asc
|
||||||
|
inherit verify-sig
|
||||||
|
|
||||||
|
SRC_URI+=" verify-sig? (
|
||||||
|
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt
|
||||||
|
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc
|
||||||
|
)"
|
||||||
|
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
|
||||||
|
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-bradking )"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc"
|
||||||
|
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
LICENSE="CMake"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="${CMAKE_DOCS_USEFLAG} dap emacs ncurses qt5 test"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
>=app-arch/libarchive-3.3.3:=
|
||||||
|
app-crypt/rhash
|
||||||
|
>=dev-libs/expat-2.0.1
|
||||||
|
>=dev-libs/jsoncpp-1.9.2-r2:0=
|
||||||
|
>=dev-libs/libuv-1.10.0:=
|
||||||
|
>=net-misc/curl-7.21.5[ssl]
|
||||||
|
sys-libs/zlib
|
||||||
|
virtual/pkgconfig
|
||||||
|
dap? ( dev-cpp/cppdap )
|
||||||
|
emacs? ( >=app-editors/emacs-23.1:* )
|
||||||
|
ncurses? ( sys-libs/ncurses:0= )
|
||||||
|
qt5? (
|
||||||
|
dev-qt/qtcore:5
|
||||||
|
dev-qt/qtgui:5
|
||||||
|
dev-qt/qtwidgets:5
|
||||||
|
)
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND+="
|
||||||
|
doc? (
|
||||||
|
dev-python/requests
|
||||||
|
dev-python/sphinx
|
||||||
|
)
|
||||||
|
test? ( app-arch/libarchive[zstd] )
|
||||||
|
"
|
||||||
|
|
||||||
|
SITEFILE="50${PN}-gentoo.el"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
# Prefix
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
|
||||||
|
# Misc
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0006-Filter-out-distcc-warnings-to-avoid-confusing-CMake.patch
|
||||||
|
|
||||||
|
# Upstream fixes (can usually be removed with a version bump)
|
||||||
|
)
|
||||||
|
|
||||||
|
cmake_src_bootstrap() {
|
||||||
|
# disable running of cmake in bootstrap command
|
||||||
|
sed -i \
|
||||||
|
-e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \
|
||||||
|
bootstrap || die "sed failed"
|
||||||
|
|
||||||
|
# execinfo.h on Solaris isn't quite what it is on Darwin
|
||||||
|
if [[ ${CHOST} == *-solaris* ]] ; then
|
||||||
|
sed -i -e 's/execinfo\.h/blablabla.h/' \
|
||||||
|
Source/kwsys/CMakeLists.txt || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# bootstrap script isn't exactly /bin/sh compatible
|
||||||
|
tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \
|
||||||
|
--prefix="${T}/cmakestrap/" \
|
||||||
|
--parallel=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") \
|
||||||
|
|| die "Bootstrap failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == 9999 ]] ; then
|
||||||
|
git-r3_src_unpack
|
||||||
|
elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then
|
||||||
|
default
|
||||||
|
else
|
||||||
|
cd "${DISTDIR}" || die
|
||||||
|
|
||||||
|
# See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature
|
||||||
|
verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc}
|
||||||
|
verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
|
||||||
|
default
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
cmake_src_prepare
|
||||||
|
|
||||||
|
if [[ ${CHOST} == *-darwin* ]] ; then
|
||||||
|
# Disable Xcode hooks, bug #652134
|
||||||
|
sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \
|
||||||
|
Source/CMakeLists.txt || die
|
||||||
|
sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
|
||||||
|
-e '/cmGlobalXCodeGenerator.h/d' \
|
||||||
|
Source/cmake.cxx || die
|
||||||
|
|
||||||
|
# Disable isysroot usage with GCC, we've properly instructed
|
||||||
|
# where things are via GCC configuration and ldwrapper
|
||||||
|
sed -i -e '/cmake_gnu_set_sysroot_flag/d' \
|
||||||
|
Modules/Platform/Apple-GNU-*.cmake || die
|
||||||
|
# Disable isysroot usage with clang as well
|
||||||
|
sed -i -e '/_SYSROOT_FLAG/d' \
|
||||||
|
Modules/Platform/Apple-Clang.cmake || die
|
||||||
|
# Don't set a POSIX standard, system headers don't like that, #757426
|
||||||
|
sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
|
||||||
|
Source/cmLoadCommandCommand.cxx \
|
||||||
|
Source/cmStandardLexer.h \
|
||||||
|
Source/cmSystemTools.cxx \
|
||||||
|
Source/cmTimestamp.cxx
|
||||||
|
sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
|
||||||
|
Source/cmStandardLexer.h
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Add gcc libs to the default link paths
|
||||||
|
sed -i \
|
||||||
|
-e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \
|
||||||
|
-e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \
|
||||||
|
-e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \
|
||||||
|
Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed"
|
||||||
|
|
||||||
|
if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then
|
||||||
|
CMAKE_BINARY="${S}/Bootstrap.cmk/cmake"
|
||||||
|
cmake_src_bootstrap
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# Fix linking on Solaris
|
||||||
|
[[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl
|
||||||
|
|
||||||
|
# ODR warnings, bug #858335
|
||||||
|
# https://gitlab.kitware.com/cmake/cmake/-/issues/20740
|
||||||
|
filter-lto
|
||||||
|
|
||||||
|
local mycmakeargs=(
|
||||||
|
-DCMAKE_USE_SYSTEM_LIBRARIES=ON
|
||||||
|
-DCMake_ENABLE_DEBUGGER=$(usex dap)
|
||||||
|
-DCMAKE_DOC_DIR=/share/doc/${PF}
|
||||||
|
-DCMAKE_MAN_DIR=/share/man
|
||||||
|
-DCMAKE_DATA_DIR=/share/${PN}
|
||||||
|
-DSPHINX_MAN=$(usex doc)
|
||||||
|
-DSPHINX_HTML=$(usex doc)
|
||||||
|
-DBUILD_CursesDialog="$(usex ncurses)"
|
||||||
|
-DBUILD_TESTING=$(usex test)
|
||||||
|
)
|
||||||
|
use qt5 && mycmakeargs+=( -DBUILD_QtDialog=ON )
|
||||||
|
|
||||||
|
cmake_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cmake_src_compile
|
||||||
|
use emacs && elisp-compile Auxiliary/cmake-mode.el
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
# Fix OutDir and SelectLibraryConfigurations tests
|
||||||
|
# these are altered thanks to our eclass
|
||||||
|
sed -i -e 's:^#_cmake_modify_IGNORE ::g' \
|
||||||
|
"${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \
|
||||||
|
|| die
|
||||||
|
|
||||||
|
pushd "${BUILD_DIR}" > /dev/null || die
|
||||||
|
|
||||||
|
# Excluded tests:
|
||||||
|
# BootstrapTest: we actualy bootstrap it every time so why test it.
|
||||||
|
# BundleUtilities: bundle creation broken
|
||||||
|
# CMakeOnly.AllFindModules: pthread issues
|
||||||
|
# CTest.updatecvs: which fails to commit as root
|
||||||
|
# Fortran: requires fortran
|
||||||
|
# RunCMake.CompilerLauncher: also requires fortran
|
||||||
|
# RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because
|
||||||
|
# debugedit binary is not in the expected location
|
||||||
|
# RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because
|
||||||
|
# it can't find a deb package that owns libc
|
||||||
|
# TestUpload, which requires network access
|
||||||
|
# RunCMake.CMP0125, known failure reported upstream (bug #829414)
|
||||||
|
local myctestargs=(
|
||||||
|
--output-on-failure
|
||||||
|
-E "(BootstrapTest|BundleUtilities|CMakeOnly.AllFindModules|CompileOptions|CTest.UpdateCVS|Fortran|RunCMake.CompilerLauncher|RunCMake.CPack_(DEB|RPM)|TestUpload|RunCMake.CMP0125)" \
|
||||||
|
)
|
||||||
|
|
||||||
|
virtx cmake_src_test
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
cmake_src_install
|
||||||
|
|
||||||
|
# If USE=doc, there'll be newly generated docs which we install instead.
|
||||||
|
if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
|
||||||
|
doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8]
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use emacs; then
|
||||||
|
elisp-install ${PN} Auxiliary/cmake-mode.el Auxiliary/cmake-mode.elc
|
||||||
|
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto /usr/share/vim/vimfiles/syntax
|
||||||
|
doins Auxiliary/vim/syntax/cmake.vim
|
||||||
|
|
||||||
|
insinto /usr/share/vim/vimfiles/indent
|
||||||
|
doins Auxiliary/vim/indent/cmake.vim
|
||||||
|
|
||||||
|
insinto /usr/share/vim/vimfiles/ftdetect
|
||||||
|
doins "${FILESDIR}/${PN}.vim"
|
||||||
|
|
||||||
|
dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack}
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
use emacs && elisp-site-regen
|
||||||
|
|
||||||
|
if use qt5; then
|
||||||
|
xdg_icon_cache_update
|
||||||
|
xdg_desktop_database_update
|
||||||
|
xdg_mimeinfo_database_update
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
use emacs && elisp-site-regen
|
||||||
|
|
||||||
|
if use qt5; then
|
||||||
|
xdg_icon_cache_update
|
||||||
|
xdg_desktop_database_update
|
||||||
|
xdg_mimeinfo_database_update
|
||||||
|
fi
|
||||||
|
}
|
@ -48,7 +48,7 @@ else
|
|||||||
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc
|
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc
|
||||||
)"
|
)"
|
||||||
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
|
||||||
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-bradking )"
|
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-bradking )"
|
||||||
fi
|
fi
|
||||||
@ -60,7 +60,7 @@ S="${WORKDIR}/${MY_P}"
|
|||||||
|
|
||||||
LICENSE="CMake"
|
LICENSE="CMake"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
IUSE="${CMAKE_DOCS_USEFLAG} emacs ncurses qt5 test"
|
IUSE="${CMAKE_DOCS_USEFLAG} dap emacs ncurses qt5 test"
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
RDEPEND="
|
RDEPEND="
|
||||||
@ -72,6 +72,7 @@ RDEPEND="
|
|||||||
>=net-misc/curl-7.21.5[ssl]
|
>=net-misc/curl-7.21.5[ssl]
|
||||||
sys-libs/zlib
|
sys-libs/zlib
|
||||||
virtual/pkgconfig
|
virtual/pkgconfig
|
||||||
|
dap? ( dev-cpp/cppdap )
|
||||||
emacs? ( >=app-editors/emacs-23.1:* )
|
emacs? ( >=app-editors/emacs-23.1:* )
|
||||||
ncurses? ( sys-libs/ncurses:0= )
|
ncurses? ( sys-libs/ncurses:0= )
|
||||||
qt5? (
|
qt5? (
|
||||||
@ -93,23 +94,15 @@ SITEFILE="50${PN}-gentoo.el"
|
|||||||
|
|
||||||
PATCHES=(
|
PATCHES=(
|
||||||
# Prefix
|
# Prefix
|
||||||
"${FILESDIR}"/${PN}-3.16.0_rc4-darwin-bundle.patch
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
|
||||||
"${FILESDIR}"/${PN}-3.14.0_rc3-prefix-dirs.patch
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
|
||||||
"${FILESDIR}"/${PN}-3.19.1-darwin-gcc.patch
|
# Misc
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0006-Filter-out-distcc-warnings-to-avoid-confusing-CMake.patch
|
||||||
|
|
||||||
# Handle gentoo packaging in find modules
|
# Upstream fixes (can usually be removed with a version bump)
|
||||||
"${FILESDIR}"/${PN}-3.17.0_rc1-FindBLAS.patch
|
|
||||||
# Next patch needs to be reworked
|
|
||||||
#"${FILESDIR}"/${PN}-3.17.0_rc1-FindLAPACK.patch
|
|
||||||
"${FILESDIR}"/${PN}-3.5.2-FindQt4.patch
|
|
||||||
|
|
||||||
# Respect python eclasses
|
|
||||||
"${FILESDIR}"/${PN}-2.8.10.2-FindPythonLibs.patch
|
|
||||||
"${FILESDIR}"/${PN}-3.9.0_rc2-FindPythonInterp.patch
|
|
||||||
|
|
||||||
"${FILESDIR}"/${PN}-3.18.0-filter_distcc_warning.patch # bug 691544
|
|
||||||
|
|
||||||
# upstream fixes (can usually be removed with a version bump)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
cmake_src_bootstrap() {
|
cmake_src_bootstrap() {
|
||||||
@ -200,6 +193,7 @@ src_configure() {
|
|||||||
|
|
||||||
local mycmakeargs=(
|
local mycmakeargs=(
|
||||||
-DCMAKE_USE_SYSTEM_LIBRARIES=ON
|
-DCMAKE_USE_SYSTEM_LIBRARIES=ON
|
||||||
|
-DCMake_ENABLE_DEBUGGER=$(usex dap)
|
||||||
-DCMAKE_DOC_DIR=/share/doc/${PF}
|
-DCMAKE_DOC_DIR=/share/doc/${PF}
|
||||||
-DCMAKE_MAN_DIR=/share/man
|
-DCMAKE_MAN_DIR=/share/man
|
||||||
-DCMAKE_DATA_DIR=/share/${PN}
|
-DCMAKE_DATA_DIR=/share/${PN}
|
||||||
|
@ -0,0 +1,35 @@
|
|||||||
|
From 2d155220920c8fd7ad5b4df2d5be923808ee841a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lars Wendler <polynomial-c@gentoo.org>
|
||||||
|
Date: Tue, 19 Nov 2019 12:28:53 +0100
|
||||||
|
Subject: [PATCH 1/6] Don't use .so for modules on darwin/macos. Use .bundle
|
||||||
|
instead.
|
||||||
|
|
||||||
|
Patch by Heiko Przybyl
|
||||||
|
|
||||||
|
Forward-ported from 2.8.10 to 3.4.0-rc1
|
||||||
|
Forward-ported from 3.4.0-rc1 to 3.16.0-rc4
|
||||||
|
|
||||||
|
Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
|
||||||
|
--- a/Modules/Platform/Darwin.cmake
|
||||||
|
+++ b/Modules/Platform/Darwin.cmake
|
||||||
|
@@ -42,7 +42,7 @@ set(CMAKE_SHARED_LIBRARY_PREFIX "lib")
|
||||||
|
set(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib")
|
||||||
|
set(CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES ".tbd" ".so")
|
||||||
|
set(CMAKE_SHARED_MODULE_PREFIX "lib")
|
||||||
|
-set(CMAKE_SHARED_MODULE_SUFFIX ".so")
|
||||||
|
+set(CMAKE_SHARED_MODULE_SUFFIX ".bundle")
|
||||||
|
set(CMAKE_APPLE_IMPORT_FILE_PREFIX "lib")
|
||||||
|
set(CMAKE_APPLE_IMPORT_FILE_SUFFIX ".tbd")
|
||||||
|
set(CMAKE_MODULE_EXISTS 1)
|
||||||
|
@@ -66,7 +66,7 @@ foreach(lang C CXX OBJC OBJCXX)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
set(CMAKE_PLATFORM_HAS_INSTALLNAME 1)
|
||||||
|
-set(CMAKE_FIND_LIBRARY_SUFFIXES ".tbd" ".dylib" ".so" ".a")
|
||||||
|
+set(CMAKE_FIND_LIBRARY_SUFFIXES ".tbd" ".dylib" ".bundle" ".a")
|
||||||
|
|
||||||
|
# hack: if a new cmake (which uses CMAKE_INSTALL_NAME_TOOL) runs on an old build tree
|
||||||
|
# (where install_name_tool was hardcoded) and where CMAKE_INSTALL_NAME_TOOL isn't in the cache
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -0,0 +1,133 @@
|
|||||||
|
From aa8c0176389436e698e2f7e84097b4151b6477bf Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lars Wendler <polynomial-c@gentoo.org>
|
||||||
|
Date: Fri, 1 Mar 2019 23:11:41 +0100
|
||||||
|
Subject: [PATCH 2/6] Set some proper paths to make cmake find our tools.
|
||||||
|
|
||||||
|
The ebuild now adds an extra / at the end of $EPREFIX so that it is
|
||||||
|
never the empty string (so that CMAKE_SYSTEM_PREFIX_PATH remains
|
||||||
|
correct)
|
||||||
|
|
||||||
|
Original patch by Heiko Przybyl.
|
||||||
|
Updated by Chris Reffett (cmake-2.8.8)
|
||||||
|
Updated by Johannes Huber (cmake-2.8.9)
|
||||||
|
Updated by Michael Palimaka (cmake-2.8.10)
|
||||||
|
Updated by Chris Reffett (cmake-2.8.11)
|
||||||
|
Updated by Michael Palimaka (cmake-3.0.0)
|
||||||
|
Updated by Lars Wendler (cmake-3.9.0_rc2)
|
||||||
|
Updated by Benda Xu (cmake-3.13.4)
|
||||||
|
Updated by Lars Wendler (cmake-3.14.0_rc1)
|
||||||
|
Updated by Lars Wendler (cmake-3.14.0_rc2)
|
||||||
|
Updated by Lars Wendler (cmake-3.14.0_rc3)
|
||||||
|
Updated by Jacob Floyd (cmake-3.19.2)
|
||||||
|
--- a/Modules/Platform/Darwin.cmake
|
||||||
|
+++ b/Modules/Platform/Darwin.cmake
|
||||||
|
@@ -138,9 +138,9 @@ set(CMAKE_LINK_LIBRARY_USING_WEAK_LIBRARY_SUPPORTED TRUE)
|
||||||
|
set(CMAKE_LINK_LIBRARY_USING_WHOLE_ARCHIVE "LINKER:-force_load <LIB_ITEM>")
|
||||||
|
set(CMAKE_LINK_LIBRARY_USING_WHOLE_ARCHIVE_SUPPORTED TRUE)
|
||||||
|
|
||||||
|
-# default to searching for frameworks first
|
||||||
|
+# default to searching for frameworks last
|
||||||
|
if(NOT DEFINED CMAKE_FIND_FRAMEWORK)
|
||||||
|
- set(CMAKE_FIND_FRAMEWORK FIRST)
|
||||||
|
+ set(CMAKE_FIND_FRAMEWORK LAST)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Older OS X linkers do not report their framework search path
|
||||||
|
@@ -162,6 +162,9 @@ endif()
|
||||||
|
|
||||||
|
# set up the default search directories for frameworks
|
||||||
|
set(CMAKE_SYSTEM_FRAMEWORK_PATH
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@MacOSX.sdk/System/Library/Frameworks
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@Frameworks
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@usr/lib
|
||||||
|
~/Library/Frameworks
|
||||||
|
)
|
||||||
|
if(_CMAKE_OSX_SYSROOT_PATH)
|
||||||
|
@@ -219,13 +222,15 @@ if(CMAKE_OSX_SYSROOT)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
-# default to searching for application bundles first
|
||||||
|
+# default to searching for application bundles last
|
||||||
|
if(NOT DEFINED CMAKE_FIND_APPBUNDLE)
|
||||||
|
- set(CMAKE_FIND_APPBUNDLE FIRST)
|
||||||
|
+ set(CMAKE_FIND_APPBUNDLE LAST)
|
||||||
|
endif()
|
||||||
|
# set up the default search directories for application bundles
|
||||||
|
set(_apps_paths)
|
||||||
|
foreach(_path
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@Applications
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@usr/bin
|
||||||
|
"~/Applications"
|
||||||
|
"/Applications"
|
||||||
|
"${OSX_DEVELOPER_ROOT}/../Applications" # Xcode 4.3+
|
||||||
|
--- a/Modules/Platform/UnixPaths.cmake
|
||||||
|
+++ b/Modules/Platform/UnixPaths.cmake
|
||||||
|
@@ -30,7 +30,8 @@ get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH)
|
||||||
|
# synchronized
|
||||||
|
list(APPEND CMAKE_SYSTEM_PREFIX_PATH
|
||||||
|
# Standard
|
||||||
|
- /usr/local /usr /
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@usr/local @GENTOO_PORTAGE_EPREFIX@usr @GENTOO_PORTAGE_EPREFIX@
|
||||||
|
+ @GENTOO_HOST@/usr/local /usr /
|
||||||
|
|
||||||
|
# CMake install location
|
||||||
|
"${_CMAKE_INSTALL_DIR}"
|
||||||
|
@@ -58,17 +59,33 @@ list(APPEND CMAKE_SYSTEM_PREFIX_PATH
|
||||||
|
|
||||||
|
# List common include file locations not under the common prefixes.
|
||||||
|
list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
|
||||||
|
- # X11
|
||||||
|
- /usr/include/X11
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@usr/include
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
|
||||||
|
- # X11
|
||||||
|
- /usr/lib/X11
|
||||||
|
+ @GENTOO_PORTAGE_GCCLIBDIR@/gcc
|
||||||
|
+ @GENTOO_PORTAGE_GCCLIBDIR@
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@usr/lib64
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@usr/libx32
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@usr/lib32
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@usr/lib
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@lib
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
+list(APPEND CMAKE_SYSTEM_PROGRAM_PATH
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@usr/bin
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@bin
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
|
||||||
|
- /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64
|
||||||
|
+ @GENTOO_PORTAGE_GCCLIBDIR@/gcc
|
||||||
|
+ @GENTOO_PORTAGE_GCCLIBDIR@
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@usr/lib64
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@usr/libx32
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@usr/lib32
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@usr/lib
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@lib
|
||||||
|
+ @GENTOO_HOST@/lib /usr/lib /usr/lib32 /usr/lib64 /usr/libx32
|
||||||
|
)
|
||||||
|
|
||||||
|
if(CMAKE_SYSROOT_COMPILE)
|
||||||
|
@@ -81,11 +98,13 @@ endif()
|
||||||
|
# parsing the implicit directory information from compiler output.
|
||||||
|
set(_CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES_INIT
|
||||||
|
${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES}
|
||||||
|
- "${_cmake_sysroot_compile}/usr/include"
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@usr/include
|
||||||
|
+ @GENTOO_HOST@/usr/include
|
||||||
|
)
|
||||||
|
set(_CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES_INIT
|
||||||
|
${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}
|
||||||
|
- "${_cmake_sysroot_compile}/usr/include"
|
||||||
|
+ @GENTOO_PORTAGE_EPREFIX@usr/include
|
||||||
|
+ @GENTOO_HOST@/usr/include
|
||||||
|
)
|
||||||
|
set(_CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES_INIT
|
||||||
|
${CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES}
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -0,0 +1,31 @@
|
|||||||
|
From 9bc75325cc38962ecdd4a3ebd67ce34ea8162a45 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lars Wendler <polynomial-c@gentoo.org>
|
||||||
|
Date: Thu, 13 Feb 2020 13:12:45 +0100
|
||||||
|
Subject: [PATCH 3/6] Prefer pkgconfig in FindBLAS
|
||||||
|
|
||||||
|
--- a/Modules/FindBLAS.cmake
|
||||||
|
+++ b/Modules/FindBLAS.cmake
|
||||||
|
@@ -7,6 +7,10 @@ FindBLAS
|
||||||
|
|
||||||
|
Find Basic Linear Algebra Subprograms (BLAS) library
|
||||||
|
|
||||||
|
+Version modified for Gentoo Linux.
|
||||||
|
+If a valid PkgConfig configuration is found, this overrides and cancels
|
||||||
|
+all further checks.
|
||||||
|
+
|
||||||
|
This module finds an installed Fortran library that implements the
|
||||||
|
`BLAS linear-algebra interface`_.
|
||||||
|
|
||||||
|
@@ -276,6 +280,9 @@ function(_add_blas_target)
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
+# first, try PkgConfig
|
||||||
|
+set(BLA_PREFER_PKGCONFIG ON)
|
||||||
|
+
|
||||||
|
if(CMAKE_Fortran_COMPILER_LOADED)
|
||||||
|
include(${CMAKE_CURRENT_LIST_DIR}/CheckFortranFunctionExists.cmake)
|
||||||
|
else()
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -0,0 +1,54 @@
|
|||||||
|
From 30cf2aa7830a09b2bc4132eb3a3920fc0853b827 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sam James <sam@gentoo.org>
|
||||||
|
Date: Fri, 9 Jun 2023 09:57:18 +0100
|
||||||
|
Subject: [PATCH 4/6] Ensure that the correct version of Qt is always used.
|
||||||
|
|
||||||
|
With the introduction qt-4.8.6, Qt binaries were moved from /usr/bin to
|
||||||
|
/usr/$(get_libdir)/qt4/bin, leaving behind in their place symlinks to qtchooser.
|
||||||
|
|
||||||
|
There is no guarantee to which version of Qt these symlinks might point, so it
|
||||||
|
is necessary to find the correct version explicitly.
|
||||||
|
|
||||||
|
Once qmake is found, it is queried for the correct location of all other items.
|
||||||
|
|
||||||
|
Bug: https://bugs.gentoo.org/547222
|
||||||
|
|
||||||
|
[imported from cmake-3.5.2-FindQt4.patch.]
|
||||||
|
|
||||||
|
Signed-off-by: Sam James <sam@gentoo.org>
|
||||||
|
--- a/Modules/FindQt4.cmake
|
||||||
|
+++ b/Modules/FindQt4.cmake
|
||||||
|
@@ -478,13 +478,23 @@ function(_QT4_FIND_QMAKE QMAKE_NAMES QMAKE_RESULT VERSION_RESULT)
|
||||||
|
|
||||||
|
get_filename_component(qt_install_version "[HKEY_CURRENT_USER\\Software\\trolltech\\Versions;DefaultQtVersion]" NAME)
|
||||||
|
|
||||||
|
- find_program(QT_QMAKE_EXECUTABLE NAMES ${QMAKE_NAME}
|
||||||
|
- PATHS
|
||||||
|
- ENV QTDIR
|
||||||
|
- "[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\${qt_install_version};InstallDir]"
|
||||||
|
- PATH_SUFFIXES bin
|
||||||
|
- DOC "The qmake executable for the Qt installation to use"
|
||||||
|
- )
|
||||||
|
+ if(CMAKE_GENTOO_BUILD OR CMAKE_BUILD_TYPE STREQUAL Gentoo)
|
||||||
|
+ find_program(QT_QMAKE_EXECUTABLE NAMES ${QMAKE_NAME}
|
||||||
|
+ PATHS
|
||||||
|
+ $ENV{EPREFIX}/usr/${CMAKE_INSTALL_LIBDIR}/qt4/bin
|
||||||
|
+ $ENV{EPREFIX}/usr/bin
|
||||||
|
+ NO_DEFAULT_PATH
|
||||||
|
+ DOC "The qmake executable for the Qt installation to use"
|
||||||
|
+ )
|
||||||
|
+ else()
|
||||||
|
+ find_program(QT_QMAKE_EXECUTABLE NAMES ${QMAKE_NAME}
|
||||||
|
+ PATHS
|
||||||
|
+ ENV QTDIR
|
||||||
|
+ "[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\${qt_install_version};InstallDir]"
|
||||||
|
+ PATH_SUFFIXES bin
|
||||||
|
+ DOC "The qmake executable for the Qt installation to use"
|
||||||
|
+ )
|
||||||
|
+ endif()
|
||||||
|
|
||||||
|
set(major 0)
|
||||||
|
if (QT_QMAKE_EXECUTABLE)
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -0,0 +1,63 @@
|
|||||||
|
From 91acf58e953fd6e609788e955d84eab9822d5aa4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sam James <sam@gentoo.org>
|
||||||
|
Date: Fri, 9 Jun 2023 09:58:11 +0100
|
||||||
|
Subject: [PATCH 5/6] Respect Gentoo's Python eclasses
|
||||||
|
|
||||||
|
[imported from 2.8.10.2-FindPythonLibs.patch]
|
||||||
|
[imported from 3.9.0_rc2-FindPythonInterp.patch]
|
||||||
|
|
||||||
|
Signed-off-by: Sam James <sam@gentoo.org>
|
||||||
|
--- a/Modules/FindPythonInterp.cmake
|
||||||
|
+++ b/Modules/FindPythonInterp.cmake
|
||||||
|
@@ -91,6 +91,11 @@ if(PythonInterp_FIND_VERSION)
|
||||||
|
else()
|
||||||
|
set(_PYTHON_FIND_OTHER_VERSIONS ${_PYTHON3_VERSIONS} ${_PYTHON2_VERSIONS} ${_PYTHON1_VERSIONS})
|
||||||
|
endif()
|
||||||
|
+
|
||||||
|
+if (CMAKE_GENTOO_BUILD OR CMAKE_BUILD_TYPE STREQUAL Gentoo)
|
||||||
|
+ set(_Python_NAMES python)
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
find_program(PYTHON_EXECUTABLE NAMES ${_Python_NAMES})
|
||||||
|
|
||||||
|
# Set up the versions we know about, in the order we will search. Always add
|
||||||
|
@@ -115,12 +120,13 @@ unset(_PYTHON2_VERSIONS)
|
||||||
|
unset(_PYTHON3_VERSIONS)
|
||||||
|
|
||||||
|
# Search for newest python version if python executable isn't found
|
||||||
|
-if(NOT PYTHON_EXECUTABLE)
|
||||||
|
+if(NOT PYTHON_EXECUTABLE AND NOT (CMAKE_GENTOO_BUILD OR CMAKE_BUILD_TYPE STREQUAL Gentoo))
|
||||||
|
foreach(_CURRENT_VERSION IN LISTS _Python_VERSIONS)
|
||||||
|
set(_Python_NAMES python${_CURRENT_VERSION})
|
||||||
|
if(CMAKE_HOST_WIN32)
|
||||||
|
list(APPEND _Python_NAMES python)
|
||||||
|
endif()
|
||||||
|
+
|
||||||
|
find_program(PYTHON_EXECUTABLE
|
||||||
|
NAMES ${_Python_NAMES}
|
||||||
|
PATHS
|
||||||
|
--- a/Modules/FindPythonLibs.cmake
|
||||||
|
+++ b/Modules/FindPythonLibs.cmake
|
||||||
|
@@ -130,6 +130,19 @@ if(DEFINED PYTHON_VERSION_MAJOR AND DEFINED PYTHON_VERSION_MINOR)
|
||||||
|
endif()
|
||||||
|
list(APPEND _Python_VERSIONS ${_PYTHON_FIND_OTHER_VERSIONS})
|
||||||
|
|
||||||
|
+# Gentoo portage requires that you use exactly the given python version
|
||||||
|
+if (CMAKE_GENTOO_BUILD OR CMAKE_BUILD_TYPE STREQUAL Gentoo)
|
||||||
|
+ execute_process(COMMAND python -c "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:2]]))"
|
||||||
|
+ OUTPUT_VARIABLE _Gentoo_Python_VERSION)
|
||||||
|
+ list(FIND _Python_VERSIONS "${_Gentoo_Python_VERSION}" _Gentoo_Python_INDEX)
|
||||||
|
+ if (_Gentoo_Python_INDEX EQUAL -1)
|
||||||
|
+ # the current Gentoo python version is not compatible with what is requested
|
||||||
|
+ set(_Python_VERSIONS)
|
||||||
|
+ else ()
|
||||||
|
+ set(_Python_VERSIONS "${_Gentoo_Python_VERSION}")
|
||||||
|
+ endif ()
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
unset(_PYTHON_FIND_OTHER_VERSIONS)
|
||||||
|
unset(_PYTHON1_VERSIONS)
|
||||||
|
unset(_PYTHON2_VERSIONS)
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -0,0 +1,26 @@
|
|||||||
|
From f7ad7429b0b17c70b0309a5a8ee04d1afc434df0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Felix W <felix.wischke@gmail.com>
|
||||||
|
Date: Fri, 9 Jun 2023 09:59:41 +0100
|
||||||
|
Subject: [PATCH 6/6] Filter out distcc warnings to avoid confusing CMake
|
||||||
|
|
||||||
|
Forward-ported from 3.16.5 to 3.18.0
|
||||||
|
|
||||||
|
Bug: https://bugs.gentoo.org/691544
|
||||||
|
Bug: https://gitlab.kitware.com/cmake/cmake/-/issues/22573
|
||||||
|
[imported from cmake 3.18.0-filter_distcc_warning.patch]
|
||||||
|
|
||||||
|
Signed-off-by: Sam James <sam@gentoo.org>
|
||||||
|
--- a/Source/Checks/cm_cxx_features.cmake
|
||||||
|
+++ b/Source/Checks/cm_cxx_features.cmake
|
||||||
|
@@ -55,6 +55,8 @@ function(cm_check_cxx_feature name)
|
||||||
|
string(REGEX REPLACE "[^\n]*icpc: command line warning #10121: overriding [^\n]*" "" check_output "${check_output}")
|
||||||
|
# Filter out ld warnings.
|
||||||
|
string(REGEX REPLACE "[^\n]*ld: warning: [^\n]*" "" check_output "${check_output}")
|
||||||
|
+ # Filter out distcc.
|
||||||
|
+ string(REGEX REPLACE "[^\n]*distcc\\[[0-9]+\\][^\n]*[Ww]arning:[^\n]*" "" check_output "${check_output}")
|
||||||
|
# If using the feature causes warnings, treat it as broken/unavailable.
|
||||||
|
if(check_output MATCHES "(^|[ :])[Ww][Aa][Rr][Nn][Ii][Nn][Gg]")
|
||||||
|
set(CMake_HAVE_CXX_${FEATURE} OFF CACHE INTERNAL "TRY_COMPILE" FORCE)
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
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