Sync with portage [Thu Jun 8 13:58:35 MSK 2023].

master 2436
root 11 months ago
parent a0cc440545
commit 1a2c771ee6

Binary file not shown.

Binary file not shown.

@ -1,2 +1,3 @@
DIST ansible-lint-6.14.6.tar.gz 475624 BLAKE2B 99ac5214d7404c2cdaaf43678950b2031fd40396e45a27823feb708bc343b69181e624254b77bfe9f704a9037c60340f3a14d4a2651948b371ea91a28b1a1424 SHA512 dac9a089db2d2fe7b25f273b746571175d3ec974dbdf14d65cc10be83464f1ae88361d9e445d8687c011f817597fc4ca8d7501d192c6c529d9ec48997af8df7c
DIST ansible-lint-6.16.2.tar.gz 487093 BLAKE2B 0342bcc33e974f23cbc33d972959f04142374a79d9a750691e9898e9f237c049f635680a837531bf6a4d859d03aa3a4580ba01638935fe08ad1f874bef7f7f0a SHA512 b2e79b6941d702e4281a08874bb0b90f1450275c1cc0f6bdce6065231545bec202e1e0d7a4d836abd5250d292f5b31319914f258e7296cdd3fcb2e341f81d96d
DIST ansible-lint-6.17.0.tar.gz 478382 BLAKE2B 64d00381a36270d5b9163ad6a6a3f71fbdec7a0554151bef7aa92b4df6f76c58d618fa91755183f49a32f6ab5ad512400e7582711780294dc39d524449aebb28 SHA512 7bb38843bbb378ff6636d337e05d95be73ce740fbfd78076e859809956489ad5f08c47f810311ad5ed7401c184e625901aaed1c444f887a874150c937b6bf125

@ -0,0 +1,55 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYPI_NO_NORMALIZE=1
PYTHON_COMPAT=( python3_{10..11} )
inherit distutils-r1 pypi
DESCRIPTION="Checks ansible playbooks for practices and behaviour that can be improved"
HOMEPAGE="https://github.com/ansible/ansible-lint"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~riscv"
# Upstream has stated explicitly that all tests require Internet access
PROPERTIES="test_network"
RESTRICT="test"
RDEPEND="
>=app-admin/ansible-core-2.12.0[${PYTHON_USEDEP}]
>=dev-python/ansible-compat-2.2.7[${PYTHON_USEDEP}]
>=dev-python/black-22.8.0[${PYTHON_USEDEP}]
>=dev-python/filelock-3.8.0[${PYTHON_USEDEP}]
>=dev-python/jsonschema-4.17.0[${PYTHON_USEDEP}]
>=dev-python/packaging-21.3[${PYTHON_USEDEP}]
>=dev-python/pyyaml-5.4.1[${PYTHON_USEDEP}]
>=dev-python/rich-12.0.0[${PYTHON_USEDEP}]
>=dev-python/ruamel-yaml-0.17.0[${PYTHON_USEDEP}]
>=dev-python/wcmatch-8.3.2[${PYTHON_USEDEP}]
>=dev-util/yamllint-1.30.0[${PYTHON_USEDEP}]
dev-vcs/git"
BDEPEND="
>=dev-python/setuptools-scm-7.0.5[${PYTHON_USEDEP}]
test? (
dev-python/pytest-mock[${PYTHON_USEDEP}]
>=dev-python/pytest-plus-0.2[${PYTHON_USEDEP}]
>=dev-python/pytest-xdist-2.5.0[${PYTHON_USEDEP}]
)"
# test_call_from_outside_venv doesn't play nicely with the sandbox
# irrespective of whether Internet access is allowed or not
EPYTEST_DESELECT=(
test/test_main.py::test_call_from_outside_venv
)
distutils_enable_tests pytest
# Test suite fails to start without this
python_test() {
epytest test
}

@ -1,3 +1,6 @@
DIST aws-cli-1.27.137.gh.tar.gz 2423020 BLAKE2B 9cdc1cab324eaa2b2bc17418180bf8bec6e34903b427afbd2bceb0c35eb0923b5e7d98e42954f239bf13576b5d10b80c29d15af17e0f230ff79c244b1532a671 SHA512 9d3220b392839334bc077e0ae417b73ae2aaec363a5a3684690eabe790c062f9b428851b02cb2f27b65193c712fc149eb602a33b8f500afc81daed5cd2d3e8db
DIST aws-cli-1.27.142.gh.tar.gz 2426758 BLAKE2B 587791e0102d51b9681718a71c1225c673f1545f98d2cbd679d266c559ae4252e92ec2c41a640584b5ce1e4aced885489723edb90e0700846e3fd74968be42bd SHA512 cb2ba71dc955ddd5a738f6e703a16216effdbd1232fa4e14c5974bf59c6f871ba80a4a61614dccb0fc110c689ce24f466c4142967be83f48c5de41699450d092
DIST aws-cli-1.27.146.gh.tar.gz 2430455 BLAKE2B 5e59ad0a5e97b4f218c694a6c9df3fb85dd7682fc1c3e549e9bb38ef3f89f63ef4976f539134d744ef3acbf9a506ddbb2b1cb93c44e11460e96db05f0fc02bd5 SHA512 e942c2ba2abba21eae87ba2f88f727c7cf77681232e2aac9c975c07ba4bee41a10ef9044f3828ce61271a569e71469420d6b4ee7ec272fc8ea7132a597450d23
DIST aws-cli-1.27.147.gh.tar.gz 2430890 BLAKE2B 773e7f0809b568e02cec70763e6463d1e9a5ff71cef4828df33a72be929fa64ecdec852a30155c77c30bd185d467e12d433a6479fe870726662410db374c2442 SHA512 ea33bdc6670f8e5b2434c73c023c99a02e66c3f3e570bc79bbeac294722a6aa1f41a2930c466070da67b650ac9d5823d7de52fc6c93546cfa8d46baeae4be5c5
DIST aws-cli-1.27.148.gh.tar.gz 2432201 BLAKE2B 528f600158d6c7242a9c4aa205973019b00233e998710672af8f5c65e74e9eebbb3a0408a918d160d2cde62092d73557f9cfd29703bf838bea8afcf1d40ede0c SHA512 4ed5835a4f7b0787abfe9817c83c545e399bc38ba25838a63dfab2b5c374bdbc11128ff43e3fdaca836eccfb26f026bb1697c94cb40adbe98e080b094b8e33e0
DIST aws-cli-1.27.149.gh.tar.gz 2432755 BLAKE2B 26c3dc5221f808d4604cf2f54955f6b7f3a315772594d3fe4bb7d07f8d1c129d3cad7427deada7eca04be330a23f0dee7f7d6168e4ac47d888016ed23bbbe329 SHA512 824829a70f989c1f1c75228692067c3f922c947c9eb7478312efd9b3a4d6257986f62aaade571bb871c740b27abf9d70b18c126458458ea793f798f7d2e3a5ca

@ -0,0 +1,80 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..11} )
inherit bash-completion-r1 distutils-r1 multiprocessing
MY_P=aws-cli-${PV}
DESCRIPTION="Universal Command Line Environment for AWS"
HOMEPAGE="
https://github.com/aws/aws-cli/
https://pypi.org/project/awscli/
"
SRC_URI="
https://github.com/aws/aws-cli/archive/${PV}.tar.gz
-> ${MY_P}.gh.tar.gz
"
S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
# botocore is x.(y+2).z
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 2)).$(ver_cut 3-)"
RDEPEND="
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
dev-python/colorama[${PYTHON_USEDEP}]
dev-python/docutils[${PYTHON_USEDEP}]
dev-python/rsa[${PYTHON_USEDEP}]
>=dev-python/s3transfer-0.6.0[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
!app-admin/awscli-bin
"
BDEPEND="
test? (
dev-python/pytest-forked[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
)
"
distutils_enable_tests pytest
src_prepare() {
# do not rely on bundled deps in botocore (sic!)
find -name '*.py' -exec sed -i \
-e 's:from botocore[.]vendored import:import:' \
-e 's:from botocore[.]vendored[.]:from :' \
{} + || die
# strip overzealous upper bounds on requirements
sed -i -e 's:,<[0-9.]*::' -e 's:==:>=:' setup.py || die
distutils-r1_src_prepare
}
python_test() {
local EPYTEST_DESELECT=(
# TODO
tests/functional/eks/test_kubeconfig.py::TestKubeconfigLoader::test_load_simple
tests/unit/customizations/eks/test_update_kubeconfig.py::TestKubeconfigSelector::test_choose_env_only
tests/unit/customizations/eks/test_update_kubeconfig.py::TestKubeconfigSelector::test_choose_existing
tests/unit/customizations/eks/test_kubeconfig.py::TestKubeconfigValidator::test_valid
)
# integration tests require AWS credentials and Internet access
epytest tests/{functional,unit} -n "$(makeopts_jobs)" --forked
}
python_install_all() {
newbashcomp bin/aws_bash_completer aws
insinto /usr/share/zsh/site-functions
newins bin/aws_zsh_completer.sh _aws
distutils-r1_python_install_all
rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
}

@ -0,0 +1,80 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..11} )
inherit bash-completion-r1 distutils-r1 multiprocessing
MY_P=aws-cli-${PV}
DESCRIPTION="Universal Command Line Environment for AWS"
HOMEPAGE="
https://github.com/aws/aws-cli/
https://pypi.org/project/awscli/
"
SRC_URI="
https://github.com/aws/aws-cli/archive/${PV}.tar.gz
-> ${MY_P}.gh.tar.gz
"
S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
# botocore is x.(y+2).z
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 2)).$(ver_cut 3-)"
RDEPEND="
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
dev-python/colorama[${PYTHON_USEDEP}]
dev-python/docutils[${PYTHON_USEDEP}]
dev-python/rsa[${PYTHON_USEDEP}]
>=dev-python/s3transfer-0.6.0[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
!app-admin/awscli-bin
"
BDEPEND="
test? (
dev-python/pytest-forked[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
)
"
distutils_enable_tests pytest
src_prepare() {
# do not rely on bundled deps in botocore (sic!)
find -name '*.py' -exec sed -i \
-e 's:from botocore[.]vendored import:import:' \
-e 's:from botocore[.]vendored[.]:from :' \
{} + || die
# strip overzealous upper bounds on requirements
sed -i -e 's:,<[0-9.]*::' -e 's:==:>=:' setup.py || die
distutils-r1_src_prepare
}
python_test() {
local EPYTEST_DESELECT=(
# TODO
tests/functional/eks/test_kubeconfig.py::TestKubeconfigLoader::test_load_simple
tests/unit/customizations/eks/test_update_kubeconfig.py::TestKubeconfigSelector::test_choose_env_only
tests/unit/customizations/eks/test_update_kubeconfig.py::TestKubeconfigSelector::test_choose_existing
tests/unit/customizations/eks/test_kubeconfig.py::TestKubeconfigValidator::test_valid
)
# integration tests require AWS credentials and Internet access
epytest tests/{functional,unit} -n "$(makeopts_jobs)" --forked
}
python_install_all() {
newbashcomp bin/aws_bash_completer aws
insinto /usr/share/zsh/site-functions
newins bin/aws_zsh_completer.sh _aws
distutils-r1_python_install_all
rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
}

@ -0,0 +1,80 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..11} )
inherit bash-completion-r1 distutils-r1 multiprocessing
MY_P=aws-cli-${PV}
DESCRIPTION="Universal Command Line Environment for AWS"
HOMEPAGE="
https://github.com/aws/aws-cli/
https://pypi.org/project/awscli/
"
SRC_URI="
https://github.com/aws/aws-cli/archive/${PV}.tar.gz
-> ${MY_P}.gh.tar.gz
"
S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
# botocore is x.(y+2).z
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 2)).$(ver_cut 3-)"
RDEPEND="
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
dev-python/colorama[${PYTHON_USEDEP}]
dev-python/docutils[${PYTHON_USEDEP}]
dev-python/rsa[${PYTHON_USEDEP}]
>=dev-python/s3transfer-0.6.0[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
!app-admin/awscli-bin
"
BDEPEND="
test? (
dev-python/pytest-forked[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
)
"
distutils_enable_tests pytest
src_prepare() {
# do not rely on bundled deps in botocore (sic!)
find -name '*.py' -exec sed -i \
-e 's:from botocore[.]vendored import:import:' \
-e 's:from botocore[.]vendored[.]:from :' \
{} + || die
# strip overzealous upper bounds on requirements
sed -i -e 's:,<[0-9.]*::' -e 's:==:>=:' setup.py || die
distutils-r1_src_prepare
}
python_test() {
local EPYTEST_DESELECT=(
# TODO
tests/functional/eks/test_kubeconfig.py::TestKubeconfigLoader::test_load_simple
tests/unit/customizations/eks/test_update_kubeconfig.py::TestKubeconfigSelector::test_choose_env_only
tests/unit/customizations/eks/test_update_kubeconfig.py::TestKubeconfigSelector::test_choose_existing
tests/unit/customizations/eks/test_kubeconfig.py::TestKubeconfigValidator::test_valid
)
# integration tests require AWS credentials and Internet access
epytest tests/{functional,unit} -n "$(makeopts_jobs)" --forked
}
python_install_all() {
newbashcomp bin/aws_bash_completer aws
insinto /usr/share/zsh/site-functions
newins bin/aws_zsh_completer.sh _aws
distutils-r1_python_install_all
rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
}

@ -1 +1,2 @@
DIST consul-1.15.2-vendor.tar.gz 43070821 BLAKE2B 39e375cf6fcb17e9a633aa7048588560f8efc93aacad7a332210d509d0b50a74e525be5e56ad9e0aa642b43f68362b8e28beb264c4365a96dd98eab6f4d296d7 SHA512 b00cd569dee83c7850fc13e5591c55dd2903242349ec747cc7ac8f18ebd207858148521c62a1da914610988f95cd543fcc5f5771a1c072c09521a8af0a474ba6
DIST consul-1.15.3-vendor.tar.gz 43434721 BLAKE2B 7595c98cdecf67e9fb412d8fea1d790dc6b1c29f7bc427e1d0872045a05f8873dc6107f196cea04fe0a2f2553d4fbb1f8d501e5e107b2bea3ae841e5d94eda64 SHA512 b69e3a7c1ebb01c7a64f2c6167e63e8a530b81be9aad8b591d0a71f512f5157ba9a564b46f9effe52a5abd3ae61732e7af10c5ba002110f745eb3d94ebcec256

@ -0,0 +1,57 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module systemd
DESCRIPTION="A tool for service discovery, monitoring and configuration"
HOMEPAGE="https://www.consul.io"
GIT_COMMIT="7ce982ce1846ca14e567a91fa7f088084e736155"
SRC_URI="https://github.com/zmedico/consul/archive/v${PV}-vendor.tar.gz -> ${P}-vendor.tar.gz"
LICENSE="MPL-2.0 Apache-2.0 BSD BSD-2 CC0-1.0 ISC MIT"
RESTRICT="test"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
BDEPEND="dev-go/gox"
COMMON_DEPEND="
acct-group/consul
acct-user/consul"
DEPEND="${COMMON_DEPEND}"
RDEPEND="${COMMON_DEPEND}"
S=${WORKDIR}/${P}-vendor
src_prepare() {
default
sed -e 's|^GIT_DATE=.*|GIT_DATE=2023-03-30T17:51:19Z|' -i GNUmakefile || die
}
src_compile() {
# The dev target sets causes build.sh to set appropriate XC_OS
# and XC_ARCH, and skips generation of an unused zip file,
# avoiding a dependency on app-arch/zip.
GIT_DESCRIBE="v${PV}" \
GIT_DIRTY="" \
GIT_COMMIT="${GIT_COMMIT}" \
emake dev-build
}
src_install() {
dobin bin/consul
keepdir /etc/consul.d
insinto /etc/consul.d
doins "${FILESDIR}/"*.json.example
keepdir /var/log/consul
fowners consul:consul /var/log/consul
newinitd "${FILESDIR}/consul.initd" "${PN}"
newconfd "${FILESDIR}/consul.confd" "${PN}"
insinto /etc/logrotate.d
newins "${FILESDIR}/${PN}.logrotated" "${PN}"
systemd_dounit "${FILESDIR}/consul.service"
}

@ -1,2 +1,3 @@
DIST eselect-1.4.20.tar.xz 180272 BLAKE2B 424653d00eda45335c3aaae50f6fbf2e89486da4529f657596516352f3b7fcb9859ceb2dc5b9762a34c44fb64e645fa27c46b86453bf50be6e8ae820664a4289 SHA512 9589ed89c4d5d31f71d535886eb50da67b84dec8a13a5df081e7569efee861dede4eaa43a0bfb9930c5b95d4f334e19245cb8820a73f7361527da262da1d1fb2
DIST eselect-1.4.22.tar.xz 183480 BLAKE2B 8f86bdddaf98bc075694bdf7283cbd366e0ef93635472b3bbac11fdd9765984cd82e493b16836bae66e4b2c42a9cb33ad0d2aacaaf8529b59e4898e11f172d26 SHA512 73a10278d604f462aefa099df398eec2b08aee33da69419351ff2faf1cf4c0f3de0f301d92015e52da63046fe7e2c1c388e11ac84b7deb3def505a59fa291dac
DIST eselect-1.4.24.tar.xz 183584 BLAKE2B d1cb62516ccf9262a9dba285dc04c8c7592c691c3419be2e2da170a9d195e2209cd81bed52ef75d8cb6bbf1cb3f89679e54982714f1bbfda341373271fec9059 SHA512 be01e633fb4ab4f721424460915119161cdc8104d506144322fac9e64e59d317b1f67e32c4d25cb3e08ba8ea470d483deffdf10328df45f2460f6bdc0b00c7e7

@ -0,0 +1,58 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit bash-completion-r1
DESCRIPTION="Gentoo's multi-purpose configuration and management tool"
HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Eselect"
SRC_URI="https://dev.gentoo.org/~ulm/eselect/${P}.tar.xz"
LICENSE="GPL-2+ || ( GPL-2+ CC-BY-SA-4.0 )"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="doc emacs vim-syntax"
DEPEND="sys-apps/sed
|| (
sys-apps/coreutils
app-misc/realpath
)"
RDEPEND="${DEPEND}
sys-apps/file
sys-libs/ncurses:0"
BDEPEND="doc? ( dev-python/docutils )"
PDEPEND="emacs? ( app-emacs/eselect-mode )
vim-syntax? ( app-vim/eselect-syntax )"
src_compile() {
emake
use doc && emake html
}
src_install() {
emake DESTDIR="${D}" install
newbashcomp misc/${PN}.bashcomp ${PN}
dodoc AUTHORS ChangeLog NEWS README TODO doc/*.txt
if use doc; then
docinto html
dodoc *.html doc/*.html doc/*.css
fi
# needed by news module
keepdir /var/lib/gentoo/news
if ! use prefix; then
fowners root:portage /var/lib/gentoo/news
fperms g+w /var/lib/gentoo/news
fi
}
pkg_postinst() {
# fowners in src_install doesn't work for the portage group:
# merging changes the group back to root
if ! use prefix; then
chgrp portage "${EROOT}/var/lib/gentoo/news" \
&& chmod g+w "${EROOT}/var/lib/gentoo/news"
fi
}

@ -1,2 +1,3 @@
DIST openrc-settingsd-v1.2.0.tar.bz2 41713 BLAKE2B e4630e934fc55549b3d81cc448adb35cb22cb99b898363a1113909a24acc0709d5693841a9c651b4ecf52044c3a45cc4b8207f9c9a3d0e1e8a4f85edefb23d65 SHA512 b1862e80454d3ca22d083f283f4ef3215dfad4da6d2aa495211fa31014c66fb6891ae87a3a1c6932944ed4c1e7100d247e80abc659f37868adcf5fce3b90385b
DIST openrc-settingsd-v1.3.0.tar.bz2 41865 BLAKE2B 48dbb75bfd33a0e2b6cc99ccbea4cd22db7a0dca13c665c59c73dac9eb4b65554741fc3b45028fbbe81cc014059e896a1dac8b18bf166a8fa15e4df375927a31 SHA512 5ef93acd1f78aa6aa6af4b0702096a30fe2fdb0ff5a20e17d680bf48c8d995a09db390fda7e16a3098e9cb3e3ce1ff13d76471cf1f0c3ccf67d3f3929a5567bb
DIST openrc-settingsd-v1.4.0.tar.bz2 41420 BLAKE2B 3890c65e22f1cc55aa8f067ae7d8a46de25618c7ab98acb8e01f38662da4d73f3d0d16583a0526ded3331c4fb4d80bf0b6852917ed875adfa0035d19e19219e6 SHA512 aa5bd4d2afb1b959c4c2d532b30d369ee0bd637010ea75adc8ca7444cdb13bf651ae4c6946141d326c8460f23ba4482c1a3f639a0b48190009a88298a17c22e3

@ -0,0 +1,62 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit meson
DESCRIPTION="System settings D-Bus service for OpenRC"
HOMEPAGE="https://gitlab.com/postmarketOS/openrc-settingsd/"
SRC_URI="https://gitlab.com/postmarketOS/${PN}/-/archive/v${PV}/${PN}-v${PV}.tar.bz2"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="systemd"
DEPEND="
>=dev-libs/glib-2.30:2
sys-apps/dbus
sys-auth/polkit
dev-libs/libdaemon:0=
sys-apps/openrc
"
RDEPEND="
${DEPEND}
systemd? ( >=sys-apps/systemd-197 )
!systemd? ( sys-auth/nss-myhostname !sys-apps/systemd )
"
BDEPEND="
dev-util/gdbus-codegen
virtual/pkgconfig
"
S="${WORKDIR}/${PN}-v${PV}"
src_configure() {
local emesonargs=(
-Dopenrc=enabled
-Denv-update=/usr/bin/env-update
-Dhostname-style=gentoo
-Dlocale-style=gentoo
)
meson_src_configure
}
src_install() {
meson_src_install
if use systemd; then
# Avoid file collision with systemd
rm -vr "${ED}"/usr/share/{dbus-1,polkit-1} "${ED}"/etc/dbus-1 || die "rm failed"
fi
}
pkg_postinst() {
if use systemd; then
elog "You installed ${PN} with USE=systemd. In this mode,"
elog "${PN} will not start via simple dbus activation, so you"
elog "will have to manually enable it as an rc service:"
elog " # /etc/init.d/openrc-settingsd start"
elog " # rc-update add openrc-settingsd default"
fi
}

Binary file not shown.

@ -0,0 +1,96 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit readme.gentoo-r1
MY_P="${PN}-$(ver_rs 2 b)"
DESCRIPTION="Dump/restore ext2fs backup utilities"
HOMEPAGE="https://dump.sourceforge.io/"
SRC_URI="mirror://sourceforge/dump/${MY_P}.tar.gz"
S="${WORKDIR}/${MY_P}"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
# We keep uuid USE flag default dsiabled for this version. Don't forget
# to default enable it for later versions as this is the upstream default.
IUSE="bzip2 debug ermt lzo readline selinux sqlite ssl static test uuid zlib"
RESTRICT="!test? ( test )"
REQUIRED_USE="
ermt? ( ssl )
ssl? ( zlib )
test? ( sqlite? ( uuid ) )"
RDEPEND="
>=sys-fs/e2fsprogs-1.27:=
sys-apps/util-linux
bzip2? (
app-arch/bzip2:=
static? ( app-arch/bzip2[static-libs] )
)
zlib? ( >=sys-libs/zlib-1.1.4:= )
lzo? (
dev-libs/lzo:2=
static? ( dev-libs/lzo:2[static-libs] )
)
sqlite? ( dev-db/sqlite:3= )
ermt? ( dev-libs/openssl:0= )
ssl? ( dev-libs/openssl:0= )
readline? (
sys-libs/readline:0=
sys-libs/ncurses:=
static? ( sys-libs/ncurses:=[static-libs] )
)"
DEPEND="${RDEPEND}
virtual/os-headers"
BDEPEND="virtual/pkgconfig"
src_configure() {
local myeconfargs=(
--with-dumpdatespath=/etc/dumpdates
--with-rmtpath='$(sbindir)/rmt'
--enable-blkid
$(use_enable bzip2)
$(use_enable debug)
$(use_enable ermt)
$(use_enable lzo)
$(use_enable readline)
$(use_enable selinux)
$(use_enable sqlite)
$(use_enable ssl)
$(use_enable static static-progs)
$(use_enable uuid)
$(use_enable zlib)
)
econf "${myeconfargs[@]}"
}
src_install() {
default
mv "${ED}"/usr/sbin/{,dump-}rmt || die
mv "${ED}"/usr/share/man/man8/{,dump-}rmt.8 || die
use ermt && newsbin rmt/ermt dump-ermt
dodoc KNOWNBUGS MAINTAINERS REPORTING-BUGS
dodoc -r examples
# Don't install pre-compressed files
gunzip "${ED}"/usr/share/doc/${PF}/examples/cron_dump_to_disk/backupskel.tar.gz \
|| die
local DOC_CONTENTS="dump has serious bugs
(see https://sourceforge.net/p/dump/bugs/162/ and
https://sourceforge.net/p/dump/bugs/174/). This tool should only
be used for restoring old backups, not for creating new ones.
\n\n${CATEGORY}/${PN} installs 'rmt' as 'dump-rmt'.
This is to avoid conflicts with app-arch/tar 'rmt'."
readme.gentoo_create_doc
}
pkg_postinst() {
readme.gentoo_print_elog
}

@ -1 +1,2 @@
DIST StormLib-9.24.tar.gz 625374 BLAKE2B 3647580b1b048e284ade2fb23aed53cac76a89a0180908f48fc99d571e702d876de37e42a47b3d351c72e6fa905fc02f4b8fa691a6840013637e1560e9acafcb SHA512 38694685edfc9c53ff1e303109831b6a791200b9db275043bca8b3bbe7cc928cf0ce9cf554c6758f693da453b85e6385d277ae9add7af867c13488d77432cde5
DIST StormLib-9.25.tar.gz 603875 BLAKE2B c7da242d039f5a49e8abd295b42e639fc540c77ee4bf8f210610d56940d1d35f19ea267dccde89e50f744218527f4c521e1d320f24e8fe3a0e0739ee899aa023 SHA512 0da78bda4bb89637da892fc73a0673b8a5f852ede4fdceba1029431d24dd1e59db9bfceafab1c5fb642e4b5d0d15d9865f7a138bfb190ce0c2d3601b22dd3023

@ -0,0 +1,44 @@
# Copyright 2020-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake
MY_P=StormLib-${PV}
DESCRIPTION="Library to read and write MPQ archives (Diablo, StarCraft)"
HOMEPAGE="
http://www.zezula.net/en/mpq/stormlib.html
https://github.com/ladislav-zezula/StormLib/
"
SRC_URI="
https://github.com/ladislav-zezula/StormLib/archive/v${PV}.tar.gz
-> ${MY_P}.tar.gz
"
S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86"
RDEPEND="
app-arch/bzip2:=
dev-libs/libtomcrypt:=[libtommath]
sys-libs/zlib:=
"
DEPEND=${RDEPEND}
PATCHES=(
"${FILESDIR}"/stormlib-9.24-gnuinstalldirs.patch
)
src_configure() {
local mycmakeargs=(
-DBUILD_SHARED_LIBS=ON
# interactive test app
-DSTORM_BUILD_TESTS=OFF
-DWITH_LIBTOMCRYPT=ON
)
cmake_src_configure
}

Binary file not shown.

@ -1,3 +1,4 @@
DIST borgmatic-1.7.11.tar.gz 365247 BLAKE2B a06737c48722fdf24efca76d40f6b413f39635b4137685d6279bf7a7dd002fadef28dab35a503fabf872c732a0f32fbff8c791fa9b4602299937aeae568d6137 SHA512 cedca889cd409e92484c15240fd8da91c655f81e38c6672d25e44feedc4adf6594281d92f7072fd11edc5c9f8589098226a3520e71e3441ee7a7acf97e1b2daa
DIST borgmatic-1.7.13.tar.gz 378163 BLAKE2B c20b384853c0ddf52a095250a05d9ebe813a23ee6ef00bd5748dacf05adcff9e4d324eb2e785ebbf139d34cadab3e58d3b8305d50ec5ff20681630040433e5ae SHA512 5109c093ad3096269e27abe761e6e87ebc31b78a56bfe16e540c686ea1cd935249d063aa7c350b60a3c509990065f3a50f9e4516d40d4a1bde68c43617de18b4
DIST borgmatic-1.7.14.tar.gz 380875 BLAKE2B c30939392df03ce03feed4c5132ef99eaf9c676f51f7ad6b8bd536f45a7e76eff1871fc5bf0d7fd0025835b51325e961f538a661f2f6a78e0ce026550a9ecd84 SHA512 15f774b994d13ab224bcbcb0335145b5cf9a2fca04b098c15bf790c20fc5033073fe341a76d4e9dc8ad85e5fb898a0447c73fc5bc74d0ac9ec6900c333e6660b
DIST borgmatic-1.7.8.tar.gz 350233 BLAKE2B 3fcd392983f73ec5e97f0dc6b96e211d7f1e1d1a4ce95c635c675cf043e796925df53c30c1e4f8eb1a095d9ec5ff81e90edee5ff2576f4683053d3108004afd9 SHA512 bcc65fdb7ea1171fb61deda9b1f69a00596e1e10a99508d336977b694bd8f93d74837aad9211bf1065b785220aaf1460a3ea403bf23fa4873d1bf4c6b4016525

@ -0,0 +1,73 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{9..11} )
DISTUTILS_SINGLE_IMPL=1
DISTUTILS_USE_PEP517=setuptools
inherit distutils-r1 systemd pypi
DESCRIPTION="Automatically create, prune and verify backups with borgbackup"
HOMEPAGE="https://torsion.org/borgmatic/"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~riscv"
# borg is called as an external tool, hence no pythonic stuff
RDEPEND="app-backup/borgbackup
$(python_gen_cond_dep '
<dev-python/colorama-0.5[${PYTHON_USEDEP}]
dev-python/jsonschema[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
<dev-python/ruamel-yaml-0.18.0[${PYTHON_USEDEP}]
dev-python/setuptools[${PYTHON_USEDEP}]
')"
BDEPEND="
test? (
$(python_gen_cond_dep '
>=dev-python/flexmock-0.10.10[${PYTHON_USEDEP}]
')
)"
PATCHES=(
"${FILESDIR}"/${PN}-1.7.13-no_test_coverage.patch
"${FILESDIR}"/${PN}-1.7.14-systemd_service_bin_path.patch
)
# A fragile test whose only purpose is to make sure the NEWS file
# has been updated for the current version.
EPYTEST_DESELECT=(
tests/integration/commands/test_borgmatic.py::test_borgmatic_version_matches_news_version
)
distutils_enable_tests pytest
src_install() {
distutils-r1_src_install
systemd_dounit sample/systemd/borgmatic.{service,timer}
keepdir /etc/borgmatic
}
pkg_postinst() {
if [[ -z "${REPLACING_VERSIONS}" ]]; then
elog "To generate a sample configuration file, run:"
elog " generate-borgmatic-config"
else
local oldver
for oldver in ${REPLACING_VERSIONS}; do
if ver_test "${oldver}" -lt 1.7.11; then
ewarn "Since version 1.7.11 ${PN} defaults to a different way of selecting archives for multi-archive actions."
ewarn "For details, please see"
ewarn
ewarn " https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#archive-naming"
ewarn
break
fi
done
fi
elog
elog "Systemd users wishing to periodically run borgmatic can use the provided timer and service units."
}

@ -0,0 +1,8 @@
--- a/sample/systemd/borgmatic.service
+++ b/sample/systemd/borgmatic.service
@@ -61,4 +61,4 @@
# Delay start to prevent backups running during boot. Note that systemd-inhibit requires dbus and
# dbus-user-session to be installed.
ExecStartPre=sleep 1m
-ExecStart=systemd-inhibit --who="borgmatic" --what="sleep:shutdown" --why="Prevent interrupting scheduled backup" /root/.local/bin/borgmatic --verbosity -2 --syslog-verbosity 1
+ExecStart=systemd-inhibit --who="borgmatic" --what="sleep:shutdown" --why="Prevent interrupting scheduled backup" /usr/bin/borgmatic --verbosity -2 --syslog-verbosity 1

Binary file not shown.

@ -1 +1,2 @@
DIST krb5-1.20.1.tar.gz 8661660 BLAKE2B ead16f8b1aec8bba3776628b74257c9aec891770c1fa6d5c5e66275db5f078ca59c9944cd2b017453b777ce080f8e5a322f735fab77691479cfad7b881b92830 SHA512 6f57479f13f107cd84f30de5c758eb6b9fc59171329c13e5da6073b806755f8d163eb7bd84767ea861ad6458ea0c9eeb00ee044d3bcad01ef136e9888564b6a2
DIST krb5-1.21.tar.gz 8622539 BLAKE2B 0f3a899dc1758ea013ebad3aae80605c14f0f6713919d005e799162a0c50a162f33d924c74a6f87ce225e1ab3847df2c0effb25b772fe259e7401531964b696f SHA512 8ee2366888f6d553a44fc642a89c69a57dbc1ec4c89a36b9ba8b00584a9a32c73a2b0566ba5f21852ad9617046666c276dac402393bf8eb19fbe0c07a838071a

@ -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
}

Binary file not shown.

@ -1,7 +1,11 @@
DIST python-2.7.18-docs-html.tar.bz2 4634932 BLAKE2B c48e2dede15d8186231acf65709641e0844c42e924262d6ee21a55e515aaf4d023bf394681bab780ab83998de9f409685e2d5870506810432145acc6422eff9d SHA512 db39390577ec86f13c9b6b57c01cba36fe9fd89092a773dc94f1a6a19d912759d097c4d80e765d3657b572abc731c1da9e7b4cd4c38065cd444606b906744abe
DIST python-3.10.10-docs-html.tar.bz2 7387634 BLAKE2B 27b340b02412fc8a6f2911c2faf1da64511955432046a8580472b0445adb8272584f99c7fe41469932c948485ccdb799aea76cc9596f5a122342afccff2f7c83 SHA512 4678fc3a33e0bd53419894e98a3132f18635693dcf91846c6911a163ebd693b9af42d78ffc27fd5e522eca7376097555271b6bd85a21d1231d6b7523f4620534
DIST python-3.10.11-docs-html.tar.bz2 7390187 BLAKE2B 02f1cea9a25fbf764d07a909575b1bd5ab4a79c493e149a1c4e747dc20ea59cf6a4db0d9dee4f38527f6c829965bc07d45abb91c0f5cd39069ae83bc7458b426 SHA512 65941e05977391a729effaaaace979447ec4db6638b16bcf508b19ba997caa8fedaa5ab9fc7888e565d5982bdf305e4c8525074c925a60394910e3678f9eead0
DIST python-3.10.12-docs-html.tar.bz2 7433462 BLAKE2B 8078af52a2ee8c2f308a30a2ceed2241080fa790c9e581809c85a5abb399522ae90b1126612b4cc1ce46d049e91b8d79d05e29337d55473c491dad1a2b80be5c SHA512 e6b02bdce8c96fa168f0faa2435773496ddf761072c93c2944870bafc0ddb49afea5fad73cf6000119bc01435fa558a19f70e5abebe1a51e7c9547911aa336fb
DIST python-3.11.2-docs-html.tar.bz2 7779519 BLAKE2B d9e1faa1414b18923c08686097d4d65613768c404f712a8ca104f546938016afe5e47bdec25296db1792f1ec49a11ed9899b062b9fdb24e93b2f60d6f49ae82c SHA512 0a6b54b0e3579f640a78e9255ff60b6b18f36752b8949f0f19e5c2fb84c33775c761bed907fb45dc606e5bc894068086cac4935574e89421bee55e8b2127d7d8
DIST python-3.11.3-docs-html.tar.bz2 7779259 BLAKE2B 4d8530d77df2c93f29f7c6d45c519830806c13a2df0daa651b92157ea0343cc4124e06b88c436fa4ca53c45020bee5395b166438d8ad0a757b6722e609c53792 SHA512 23cf287d2bdcfe03bb36b4f63443dbd9895ff645c418a2bd73e5145d4656b0b16ae432be2bc52a70d71f1912c5da85ebc738c07cf6b209ea7e0d0bb781e4e48f
DIST python-3.11.4-docs-html.tar.bz2 7831799 BLAKE2B 81245e6f47f9179ac8fcf8c1e8a2d6f28c2f7924984d541af71684b4a00896ab38280150a04b8ed051a62ee957cd7613fe28ba79c23624b9bf00d1e7587d7e6c SHA512 b00fa45da239d804e12dcfd5f248b0feb060c2c6e7003913ba6b29a5d198e439dd59ac779c0e4417ccfa90f3654dd3233804974f47efda4fb5891fbe1c6a9f6f
DIST python-3.8.16-docs-html.tar.bz2 6697934 BLAKE2B 99fb1b8e95c3719b1146e845051fa6b9fbf61fabfdd1fe6d93a44e6a46f4b4e44c9ce0adef89cfdeafc8b67d290adda21d295f492a8f54c069ad86fba4952c0b SHA512 aaffc1f4d56be0ff7fbd35c7ca690d9089f9686d957669852aff1406efad2bee52b2b965ffd652780da6048ff9d89e6bbc421e92588841b89d73af43ad4970fb
DIST python-3.8.17-docs-html.tar.bz2 6737444 BLAKE2B f6f9a4da13837ecede50eb4d2074b1c6d2be616449f81712e3c551d61d56ac0e314aca84dbcae7d07e89d6f316bec5a6d0797fa0b0f8bf98632ff3c0b6ffad06 SHA512 ab29fc066df0edcaf40dab079cf8fcaa68b895da053ce9cf3d8d776510d804ccfb17ba04e5464ed5edaeb938aaac8aa51bba67c7c3dff80f65cc67bd2d902a1a
DIST python-3.9.16-docs-html.tar.bz2 6965048 BLAKE2B 14d30cf5c444b993409751d17959bc46668d2b6e5be76e10d36adb0b8704a2a3908d829e8aa12d384efab31f8b60b462f711f2fa6adf8bc84fbdfe25e4cbc703 SHA512 38828ca880e3ed84a705dba465430f1b9623fec830662805008847c5d44ce04225ea7c2173d3eb138fd98e134fa2bb9ed84788e2b1d045bf9cf20e78e12d4472
DIST python-3.9.17-docs-html.tar.bz2 7021842 BLAKE2B 7a5e3426ea47929289078f9fd2c4fc6b833ba172701ebe9d85f6f821d28bc0bbde1cf88fc99807cc9f7031039c10f451280baf3892040b28ad4733c1e53995fb SHA512 900b82f558b08058390d52b18aa2bcee4a8e74fa9555e36fc924c822506c80f002e90d51b1e6263c0dde612937b6d419e76952288ad923ffcca8562c927a8e76

@ -0,0 +1,23 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="HTML documentation for Python"
HOMEPAGE="https://www.python.org/doc/"
SRC_URI="https://www.python.org/ftp/python/doc/${PV}/python-${PV}-docs-html.tar.bz2"
S="${WORKDIR}/python-${PV}-docs-html"
LICENSE="PSF-2"
SLOT="$(ver_cut 1-2)"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
src_install() {
rm -r _sources || die
docinto html
dodoc -r .
newenvd - 60python-docs-${SLOT} <<-EOF
PYTHONDOCS_${SLOT//./_}="${EPREFIX}/usr/share/doc/${PF}/html/library"
EOF
}

@ -0,0 +1,23 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="HTML documentation for Python"
HOMEPAGE="https://www.python.org/doc/"
SRC_URI="https://www.python.org/ftp/python/doc/${PV}/python-${PV}-docs-html.tar.bz2"
S="${WORKDIR}/python-${PV}-docs-html"
LICENSE="PSF-2"
SLOT="$(ver_cut 1-2)"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
src_install() {
rm -r _sources || die
docinto html
dodoc -r .
newenvd - 60python-docs-${SLOT} <<-EOF
PYTHONDOCS_${SLOT//./_}="${EPREFIX}/usr/share/doc/${PF}/html/library"
EOF
}

@ -0,0 +1,23 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="HTML documentation for Python"
HOMEPAGE="https://www.python.org/doc/"
SRC_URI="https://www.python.org/ftp/python/doc/${PV}/python-${PV}-docs-html.tar.bz2"
S="${WORKDIR}/python-${PV}-docs-html"
LICENSE="PSF-2"
SLOT="$(ver_cut 1-2)"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
src_install() {
rm -r _sources || die
docinto html
dodoc -r .
newenvd - 60python-docs-${SLOT} <<-EOF
PYTHONDOCS_${SLOT//./_}="${EPREFIX}/usr/share/doc/${PF}/html/library"
EOF
}

@ -0,0 +1,23 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="HTML documentation for Python"
HOMEPAGE="https://www.python.org/doc/"
SRC_URI="https://www.python.org/ftp/python/doc/${PV}/python-${PV}-docs-html.tar.bz2"
S="${WORKDIR}/python-${PV}-docs-html"
LICENSE="PSF-2"
SLOT="$(ver_cut 1-2)"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
src_install() {
rm -r _sources || die
docinto html
dodoc -r .
newenvd - 60python-docs-${SLOT} <<-EOF
PYTHONDOCS_${SLOT//./_}="${EPREFIX}/usr/share/doc/${PF}/html/library"
EOF
}

Binary file not shown.

@ -1 +1,2 @@
DIST okteta-0.26.10.tar.xz 1066052 BLAKE2B 938dfbfb40bc603c64d80085386873868bd1aa16040016f72e77c63a1c6eab5d46363b227974a10e34ab514bbcca25fef39a193ea635439ad97a42178326240e SHA512 746a838cf2fce769fd3660189f070c2a2105f2b2eab7c231dd6be42f2e71518afaef2c77a9d9906847ef1febb46fce66079d485459f6c22545e72feca7f747ea
DIST okteta-0.26.11.tar.xz 1076208 BLAKE2B 83ab466fa2efb044c8398f905e65d74a5e106d60389bfdaaebd44eaa58f8a54a703c27c0283d6add8aebb932a82cc6efef13f3883069ba944a8d520f7184793a SHA512 8f93091ebcc96feb6638219b375f0669edf65720f63cfc4f12d0aaff717b07dccb842ad82ab0b2b5c4f0fe6043a02dcd02e6973f294204cc9b18e68bc067fac0

@ -0,0 +1,69 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
ECM_DESIGNERPLUGIN="true"
ECM_HANDBOOK="forceoptional"
ECM_TEST="true"
KFMIN=5.92.0
QTMIN=5.15.5
VIRTUALX_REQUIRED="test"
inherit ecm kde.org
DESCRIPTION="Hex editor by KDE"
HOMEPAGE="https://apps.kde.org/okteta/"
if [[ ${KDE_BUILD_TYPE} = release ]]; then
SRC_URI="mirror://kde/stable/${PN}/${PV}/src/${P}.tar.xz"
KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="GPL-2 handbook? ( FDL-1.2 )"
SLOT="5"
IUSE="crypt"
DEPEND="
>=dev-qt/qtdeclarative-${QTMIN}:5
>=dev-qt/qtgui-${QTMIN}:5
>=dev-qt/qtnetwork-${QTMIN}:5
>=dev-qt/qtprintsupport-${QTMIN}:5
>=dev-qt/qtscript-${QTMIN}:5[scripttools]
>=dev-qt/qtwidgets-${QTMIN}:5
>=dev-qt/qtxml-${QTMIN}:5
>=kde-frameworks/kbookmarks-${KFMIN}:5
>=kde-frameworks/kcmutils-${KFMIN}:5
>=kde-frameworks/kcodecs-${KFMIN}:5
>=kde-frameworks/kcompletion-${KFMIN}:5
>=kde-frameworks/kconfig-${KFMIN}:5
>=kde-frameworks/kconfigwidgets-${KFMIN}:5
>=kde-frameworks/kcoreaddons-${KFMIN}:5
>=kde-frameworks/kcrash-${KFMIN}:5
>=kde-frameworks/kdbusaddons-${KFMIN}:5
>=kde-frameworks/ki18n-${KFMIN}:5
>=kde-frameworks/kiconthemes-${KFMIN}:5
>=kde-frameworks/kio-${KFMIN}:5
>=kde-frameworks/kjobwidgets-${KFMIN}:5
>=kde-frameworks/knewstuff-${KFMIN}:5
>=kde-frameworks/kparts-${KFMIN}:5
>=kde-frameworks/kservice-${KFMIN}:5
>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
>=kde-frameworks/kxmlgui-${KFMIN}:5
crypt? ( >=app-crypt/qca-2.3.0:2[qt5(+)] )
"
RDEPEND="${DEPEND}"
src_configure() {
local mycmakeargs=(
-DOMIT_EXAMPLES=ON
$(cmake_use_find_package crypt Qca-qt5)
)
ecm_src_configure
}
src_test() {
local myctestargs=( -j1 )
ecm_src_test
}

Binary file not shown.

@ -11,7 +11,7 @@ SRC_URI="https://github.com/editorconfig/${PN}/archive/v${PV}.tar.gz -> ${P}.tar
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 x86"
RESTRICT="test" # make test requires a git repo
SITEFILE="50${PN}-gentoo.el"

@ -1,2 +1,3 @@
DIST eldev-1.3.1.tar.gz 259101 BLAKE2B 838c000865c04079c0ca6d03fff0bf3b9a45d1494a9b1d471303769ff21f2bdd99914e188c9fbf450ded8434bab6a5cb40b7c3b8e445f379f32519dda05d94aa SHA512 255f9a8bc68fb625e5ba5cc8f26720f5736ee70f2e08bec1e088e37705576d8d07607f1c365eb4891aa9b8fa422ea034c88e580b7024e3d4548e0fd250c28fa7
DIST eldev-1.4.1.tar.gz 268814 BLAKE2B d31ef7842888f523dab25d279064ceda2f427f70f3353d015485bc78346f368e2a56f1a5dfc0243efae36752576be32b869726e391b040eda9c3ea4418002d67 SHA512 485ccbdbcb40c3e2a19de5bad7b35bc439a4fe7c228c28ca0c75ca8292ff6216bbf78bb2d26678b94b9fcc5526aea12e1e9c6aa0368e343a08c9081ef1058e81
DIST eldev-1.4.tar.gz 267097 BLAKE2B bd84241834c69d071f8d5ef89434c52f6a063a20c0d5aee4f5e40e5c1259a1b21648416149286ae197a94274c4d219395ef900cc101afe919540eff88bcc29f7 SHA512 ac5639db96ba157902381024a1442f292e97f85c4c9f005702f897c3755d174663b76972e5d10247cb799dcf27357a4a4e1d870513954b7a9892fbeb8ff8e5ec

@ -0,0 +1,43 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit elisp
DESCRIPTION="Emacs Lisp Development Tool"
HOMEPAGE="https://github.com/doublep/eldev/"
SRC_URI="https://github.com/doublep/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-3+"
KEYWORDS="~amd64 ~x86"
SLOT="0"
DOCS=( README.adoc )
SITEFILE="50${PN}-gentoo.el"
src_test() {
ELDEV_LOCAL="${S}" ./bin/${PN} test
}
src_install() {
elisp_src_install
dobin bin/${PN}
# NOTICE: If ELDEV_LOCAL is defined Eldev will use it
# to load up it's components,
# if it is not it will bootstrap itself from network
# always check if it uses installed Emacs Lisp files.
# Also, do not forget to run `env-update` & reopen your shell.
# https://github.com/doublep/eldev#influential-environment-variables
echo "ELDEV_LOCAL=${SITELISP}/${PN}" >> "${T}"/99${PN} || die
doenvd "${T}"/99${PN}
}
pkg_postinst() {
elisp_pkg_postinst
ewarn "Remember to run \`env-update && source /etc/profile\` if you plan"
ewarn "to use Eldev in a shell before logging out (or restarting"
ewarn "your login manager)."
}

@ -1,2 +1,3 @@
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.24.tar.xz 183584 BLAKE2B d1cb62516ccf9262a9dba285dc04c8c7592c691c3419be2e2da170a9d195e2209cd81bed52ef75d8cb6bbf1cb3f89679e54982714f1bbfda341373271fec9059 SHA512 be01e633fb4ab4f721424460915119161cdc8104d506144322fac9e64e59d317b1f67e32c4d25cb3e08ba8ea470d483deffdf10328df45f2460f6bdc0b00c7e7

@ -0,0 +1,18 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit elisp
MY_P="eselect-${PV}"
DESCRIPTION="Emacs major mode for editing eselect files"
HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Eselect"
SRC_URI="https://dev.gentoo.org/~ulm/eselect/${MY_P}.tar.xz"
S="${WORKDIR}/${MY_P}/misc"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
SITEFILE="50${PN}-gentoo.el"

@ -12,7 +12,7 @@ SRC_URI="https://github.com/Yevgnen/${PN}/archive/${PV}.tar.gz
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 ~x86"
RDEPEND="app-emacs/ivy"
BDEPEND="${RDEPEND}"

@ -13,7 +13,7 @@ S="${WORKDIR}"/${MY_P}
LICENSE="GPL-3+ FDL-1.3+ CC-BY-SA-3.0 odt-schema? ( OASIS-Open )"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~x86"
KEYWORDS="amd64 ppc x86"
IUSE="doc odt-schema"
RESTRICT="test"

@ -14,7 +14,7 @@ SRC_URI="https://github.com/minad/osm/archive/${PV}.tar.gz
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 ~x86"
BDEPEND="
>=app-editors/emacs-${NEED_EMACS}:*[jpeg,json,libxml2,png,svg]

@ -16,7 +16,7 @@ S="${WORKDIR}"/${PN}-${COMMIT}
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 ~x86"
RDEPEND="dev-scheme/racket:=[-minimal]"
BDEPEND="${RDEPEND}"

Binary file not shown.

@ -21,7 +21,7 @@ if [[ ${PV} = *9999* ]]; then
else
SRC_URI="https://libvirt.org/sources/${P}.tar.xz
verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )"
KEYWORDS="amd64 ~arm ~arm64 ~ppc64 x86"
KEYWORDS="amd64 ~arm arm64 ~ppc64 x86"
fi
DESCRIPTION="C toolkit to manipulate virtual machines"

@ -138,7 +138,7 @@ REQUIRED_USE="
plugins? ( !static-user )
"
for smname in ${IUSE_SOFTMMU_TARGETS} ; do
REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( seccomp ) "
REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
done
# 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, ...)
# softmmu targets (qemu-system-*).
SOFTMMU_TOOLS_DEPEND="
sys-libs/libcap-ng[static-libs(+)]
>=x11-libs/pixman-0.28.0[static-libs(+)]
accessibility? (
app-accessibility/brltty[api]
@ -191,6 +190,7 @@ SOFTMMU_TOOLS_DEPEND="
jack? ( virtual/jack )
jemalloc? ( dev-libs/jemalloc )
jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] )
lzo? ( dev-libs/lzo:2[static-libs(+)] )
multipath? ( sys-fs/multipath-tools )
ncurses? (

@ -138,7 +138,7 @@ REQUIRED_USE="
plugins? ( !static-user )
"
for smname in ${IUSE_SOFTMMU_TARGETS} ; do
REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( seccomp ) "
REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
done
# 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, ...)
# softmmu targets (qemu-system-*).
SOFTMMU_TOOLS_DEPEND="
sys-libs/libcap-ng[static-libs(+)]
>=x11-libs/pixman-0.28.0[static-libs(+)]
accessibility? (
app-accessibility/brltty[api]
@ -188,6 +187,7 @@ SOFTMMU_TOOLS_DEPEND="
jack? ( virtual/jack )
jemalloc? ( dev-libs/jemalloc )
jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] )
lzo? ( dev-libs/lzo:2[static-libs(+)] )
multipath? ( sys-fs/multipath-tools )
ncurses? (

@ -17,7 +17,7 @@ elif [[ ${PV} == *_p20230501 ]] ; then
SRC_URI="https://git.sr.ht/~rabbits/uxn/archive/${COMMIT}.tar.gz
-> ${P}.tar.gz"
S="${WORKDIR}"/${PN}-${COMMIT}
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 ~x86"
else
die "wrong package version (PV), given: ${PV}"
fi

Binary file not shown.

@ -0,0 +1,60 @@
DIST aho-corasick-0.7.18.crate 112923 BLAKE2B 4f6947d1aacf89ccfab0592cdc55fa61ef09cea38231d3f758765dbce328a810c0b588be4ba96e81d64955379ee005722d22a7aec39caea6e72342245d7ca34f SHA512 7a23b16231a90d23ee60ad4c81bc225410599a4560d33d3a203138fc540c39cf1000100fed3aed40dcc371c3635656a3792545dca5dd1aefbde00d8774eebd00
DIST ansi_term-0.12.1.crate 24838 BLAKE2B f636772c34e2d68cda7b8d3b2b86abda074585a62bd2654812ce92384244655a9197fa66e6939e19a674c0148ca605313d83de262bb18c2339a8a4eb4438a791 SHA512 b840e28b3e7700689a69a39659b1e066560078dd4a58326b91a028915819e7af883399ee53e920db68fd974c58d35bb1ddf8d427af5937d5f696f57c4376b671
DIST anyhow-1.0.56.crate 44780 BLAKE2B 142a2c02e51dc6fa2709d349881aea404b14dbdfa379ddd6a99672df4977dcca0658897c9e9881e291fb56f5b522cf2a0e2da12afb7038d0929d05f436ff68a9 SHA512 9dc8233b87f8229676ad08903cc1507370588d63702c10bff3426d00ce10754744477d5ba3396c94e7128eeef12c647f8f042de8cc6d1943c2882785ac7ebab5
DIST assert_cmd-2.0.4.crate 22581 BLAKE2B 7fc9fe4577e486f26d07b2b4419c331022ca61923d0664f4e8a25abbe6d6305600b47c739f9f065ef778bdeb59b6309ab73df2be11e5f8387cac2e7e8c70a4a2 SHA512 c389e0210153e9a6ccbba4dbc6a6c7a23533e5fe76e717dbc36415be2adbabfbc0de33a2e6d05e3d70779b7a278580edba400c688c9a6b446403b59a78d93720
DIST atty-0.2.14.crate 5470 BLAKE2B 2db856a9e898a430258f059aeaf7c844a153293e8856d90ac81f7d91a888c89198768ad5cb09303c23241fe85c560a55148fa56a303651a82b0edb895616bfab SHA512 d7b6c4b9a0f898d91ddbc41a5ee45bbf45d1d269508c8cc87ee3e3990500e41e0ec387afb1f3bc7db55bedac396dd86c6509f4bf9e5148d809c3802edcc5e1d9
DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62
DIST bstr-0.2.17.crate 330350 BLAKE2B 90c3a48d78b73d7e36a3da9fda0beae6e91ce534d17198ea8ceee0b613d03297f9dd8bca30e1ec5da01d1da359a1da72b2c2771b77c82bebab5006cafd665192 SHA512 883eac8210d14f89517b4dd5e25d02c97cf31602ec74498b5e186112ba0f154d47de8d1c41a8f4e5503f3b53c064e2c976b60bbfd63fc28b186bc006e00f20c2
DIST cc-1.0.73.crate 57880 BLAKE2B be8d7a25a54afdd759844e76aec61526fc2bd5ca09480e6cdd3bdcf27e5f9d3a88dc16cbcbf54cd021470a7cc521e1ad468116c112bbd30752bac0d5486939ac SHA512 980f012b90c6410144f6de4995048337e09214f19603076db6d4edb88e9ef9ac9e8c6e25569f66c2be3a47e99298f5886dafc102e1a9122316179aa26bc1c985
DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
DIST clap-2.34.0.crate 202210 BLAKE2B f383adf1d757ac4b68995132b33837686ce451f85a02a8d05d2c746da398510d05d46330f3efade063c3952aacb1754cdac73dd0afcae0df5340a89f9353aa1c SHA512 c648a761b9996a7e7464a538bb53621bae22090b846a42c3b729beca3363958ae67e3da9f93f58b10a10e043cadf7ff930388680d168646178c2824177832db8
DIST crossbeam-channel-0.5.4.crate 88237 BLAKE2B ffcab003305b80586a9b61c6309dcf6f4ced483856c4501753cddd23fb0fa9a71b7870b676ccba78119cc29f03974ff4731cef9a92840c0b38ae944f0b3825b5 SHA512 39b17dbaefc15d7faafca4ae6b060665471d384956aca7439fc407ed2632bd458e473efb62b74629b42a5f3d237e13503d2084cac6f6b3f42b9e03aa1fde0982
DIST crossbeam-utils-0.8.8.crate 39681 BLAKE2B 2b3e64bfcaa044a9351c1cc8e9ea53fd68fd0bb9875ae523e0cd309a85ad23b340267bdb742d363b5d99fc065ed74f6cbb3ad1e33dec7d14d99ec458875e7e10 SHA512 ab960afdb82863160a3fa1c21c64b35b3112725bd72fc8e0724175937f4b23d0628253032229501938cd86a8e406a59c06cb44e8bdf34619de781a84ebb46ea0
DIST difflib-0.4.0.crate 7638 BLAKE2B 57c703de0d467c997bcbedc4d6577569b3d72c612d3ccd929025a98f4bf8f72f2a0d43f3cd3bc616676c2569aed176b3c1362cfa868a4bb1197e05fe4dbce32f SHA512 fcb57859424fea6958a4407061c421599fbca111357b1fe72faa65d8fb0b74425c993a24484e8414f475fa146cd8368c4f82e1ceb4e8dd9f95741149345b37a9
DIST doc-comment-0.3.3.crate 4123 BLAKE2B a82d1c1a7a90af6e111b5e684a1298d7eac5fd8e4bf7d5baf6c7403d26b609958716d57e51122fe7ad7626fe00a2d824dcfef3cc2fd7679fdb7b5099603de1cd SHA512 e98ff9646a3612bd41bb6f278e7b6e9a0c58747f8b82524da814cf51b7f06c76ad4d65b502ac5740e818744abb295f78f15f8262d0b50ced1523f6d1a26939ba
DIST either-1.6.1.crate 13641 BLAKE2B e5f40c40a5edb6dcb07a10bf79183cbe42438f1f70f3932dce72f6f6e91f75f24d17d82bc447507def4dad4345ffc9dd9162dde778afb253bdb1218e91887949 SHA512 4bfe56920e30cbc8eb4f90162db618f7dca653b42db35ab6a7045d3fd9a24ceb1778b1f79613850bdb1a87ad3794fa0d73015e46c48d513f368d8c3776fc9ddf
DIST emlop-0.5.0.crate 778515 BLAKE2B 03064c8d27b2bcadb667fc4952dcb857ceb7b906ef36d47fafd73de2982b749bd69e3a25c136d757b48cc9a6d0054f05192c4ef4f0e51d5f09824f0f914f32d4 SHA512 be1e0142e59d89b5662805a2df7b167efed9a962d83f05cd6ab056cd92a9c607a1946d560e2ce6f7b3d2acaee6dcef419bf2e6634c9a29ad49ed2144c2a8c720
DIST env_logger-0.9.0.crate 33573 BLAKE2B b9c22205ee60ba97da0d338e1d40dda989f0d766d9ebc60e610b53db882a803769fb3c093348c031183856e16a5a948342e09551953f0b98cd73437bec658bee SHA512 d7db85d2f7d16f7f97b6714e01e342ab6b784c799ef26ee322ec85fcee28a549b6e49a49200ff78eceacd0c682e941f8538a497e2a2a196040769c2365feb566
DIST errno-0.2.8.crate 9276 BLAKE2B b73738deb47d1f76ec91ffd15558126d32312647b82677290725669edb01b8f34a503172fad6518ebf0ffb1633ef0afaf0750982b9384a9fb87833d31721c9a8 SHA512 1f513743224cd9a9b7e4caaf33dab075a4a79efa90c9f46c9edfb0c8600daccd3ad2677ba2116621e19fcf8be456954da5d611cbcea4b6f1410f7731828b50d1
DIST errno-dragonfly-0.1.2.crate 1810 BLAKE2B 781fc26dce5c33d83b9a1fd9be2b2ce9ac2559aaa858957ba6777e143b1e44cdfee48e1b47e3c91a95075a51921d1a421d0b45eb3d8de827cf4dd0ad744a7d8c SHA512 f853f1e1b8dd0f359a8f9a0399b3384c1103cd090d96e2b2204f91a40d40a9eb99383d4aa6a11e5470c51557afacf452d4be2049600d4235d27f59870fa3b916
DIST escargot-0.5.7.crate 20971 BLAKE2B 5b3328db0494d2a9c6db51202370c63c1e2386d2eb6f09df9b3a33a6396097b95e8d6e79f20fb0d6ef1815c790cb83b41c06abdcd446afb4a2221285613e8284 SHA512 5257f18dc36390c000d15a083f349d23edf693032e40a8f1e45f3db224bb29a08e69c4d7e74f1a99aa7be44eee40a78379fa0cf3e50b79a874ddc46d7191afcf
DIST hermit-abi-0.1.19.crate 9979 BLAKE2B 801e8052b85341cca388ada9db4b06bb1bd7b64474185b2ad06c0256b9e597639bd3dd4ba0053ea010f922e53969a4ab47b90d451fd9b94c8f2324055d151ea1 SHA512 1c877fcd562b15d2de9c151fd6c5f3ea4bf48abcb799e6139a180ffad5d64b632f0000d5707bbd92ff23a0e5f349157b9e0f5be8b50f03680b0fa47315dbb78a
DIST itertools-0.10.3.crate 118661 BLAKE2B 0095d6e7f14ddda69605d09f74e8cc881eec1a1d234f705e667d7f9e738ef157b7ddee066855cbcad7f134bf79b99a4a4c77bff3371397a567cd34d98b68bf97 SHA512 9d17357eb68159edf4f4ccd2eb9895672c7fb633803166d5e24ee12350639eaf66f1c822910518185cd1f1ca5d9c3e228dd37525e6c337ba3fc7ce967f9bfc85
DIST itoa-1.0.1.crate 11059 BLAKE2B 5a2e22ab891ec883a90f652c88f924113252765579c03c783e43210fb2604e9e3ccbd4c1571087791be07bb99c4e85c7f85253be831b3ea883bc0ac18a927980 SHA512 8e7bc1e9bf4fc06871b9fe20caad4e0af965477d724f4c8d0e2a3a4d87aedf99f92e4e583a6440ce574d0fb43fc9d6a2e80add52a2f64210c6aa3b402e424295
DIST kernel32-sys-0.2.2.crate 24537 BLAKE2B dfc4a1e31d3ec9e2ac62b890839919fb7fed1444070c1dcd75bb75acfb53556d6cf2eddf5a6639e7852a3df2a0cc715c5ce1d3fc898ef16a1687020d98f715bc SHA512 682bc7c629aefd035966a2873518fd60719121cca7d63d89d6c97ff5306f24d8b5055a3c91b4eedaec22b1d5dd3fb8b48ff7341a05bbd72d86e06c422dab473b
DIST lazy_static-1.4.0.crate 10443 BLAKE2B 25b2e61bbac48f0dcbc79c81d7bf01f2403d8269ecb6be3ea6147bd00f7a588df15a91f44dfc18ada19b21faa71de4637c7d493a8628cbecd0e547d74e616a23 SHA512 e124c0521ec7c950f3c4a066821918da7a9c6e711115d98009ae7c351928fdddead852e7596fea5937a9c30e4e4ce8eee7099b20248b5d6e3b2494b6a6d88cb8
DIST libc-0.2.123.crate 577487 BLAKE2B 57ee1f6ec9e35cb3c48e54a90dc0d9ac0cfccb1e18e0360b5d2a54bfdd9f47f70bead04b02a1419cb1d1ca72ddbaf5cc008f21ddf0d5bd9063dc1c394fc62a58 SHA512 527c89b84d9839a240653fd2e66941f8fdd82f01ed70aa5451073d3480a56e6daf53e3ddc077a9884bfbbbc69510cea672c74c9c818e914d4414cbc7ec0e3f9c
DIST log-0.4.16.crate 37758 BLAKE2B b9a88c3d75232ba57de8c30d97e6ba056bb1ec128c2c154c52cc8fa47e0617902526fbf1cd526152d79db9236b00c51afca1eef7d9ceaa205177993849d55d4f SHA512 b12dfcd8bec2f44864b8174776d3151ddf1fa1d82bc8a54fb155d5af3b2af959aab4899d72835a3c25cf58d6c41cd7f1b16c2accbdc20a0eba7e8be3d1883ee1
DIST memchr-2.4.1.crate 64977 BLAKE2B 31479718c118093b684bed946eae0706d77d9d275bd49f5aeff4de490f479abd60c7dc462150eafffc6d6fc1da0853123b78be038826b775d2a41a4c39d93ab5 SHA512 d8912e3902a2126f86159bdc998532a2890b882cbb7d59b5a470fffcad4c32281e045f2fff48a235aa4189f1928866bf3d33b699d50866ad6b6c272bba7adb11
DIST num_threads-0.1.5.crate 7109 BLAKE2B b5a1055937a87c3f3b758ad527fce0a14c812b40c3bbda530bfc0e03f43dd3155c17e1eaa210c512a98919da802d9d48fec4e3c8464072fe4d309b9a402d9b61 SHA512 3ad2234945ea20f47efdd8381de2f0f05790163bb1e4b28d9e630a2da4d86c99e596558ed231e2e9d62d84ae85f8f5422dc11c323ba899e37ad1e654e3c4fdd1
DIST once_cell-1.10.0.crate 30414 BLAKE2B 4161622dc9dab4748a1b96777da263523f23329808506faea7938160f0d5ca07b5edd31f385b14b88dd2fc34c58063df4d40a34a479573750a369512dc956992 SHA512 f6b5ce5e68923296d2041f83ac037f10ad7b9e94fc607c71332e8ee942a02c29534c2073cecdb132c7e1d91428e9d9687fbf05393ca0abbf7e15db50bb3b74ab
DIST predicates-2.1.1.crate 23150 BLAKE2B fa8b250752f8a5d6ec30ab3aec3aca2b48e903fd8d182817180633f9f2a55e4632b1e1912c9edac453ebcded9f6624c42b38dda70ef36fd710e1dce1f1ce6346 SHA512 c850fa2541265aeb23d5c19dac6c7654dc434f1239ecc8b1cfaea89bd120112e2c45f127b491fbfba1c053db8413e8b561896729a56b6588142dd9ba9a33988b
DIST predicates-core-1.0.3.crate 7757 BLAKE2B 91b3d1596ddfce6e58c33970ecbca94acabca660109f888f32aa73352e157d78afcf879afcb7eec61694f89445c42d355eac46a3ce3cd6163f8e53265e0554b6 SHA512 76d056f0acdb2d9c5cd44828b8da8722899438fe7e11ce6c96d3ce2bc8c267508e1010e2ac2c7bedd3281fb29856a3cf29f93de51b0ee349a5ef51466ace799a
DIST predicates-tree-1.0.5.crate 8126 BLAKE2B d63d2fe2bf9c61e703f11b8d3f8a8434179b8de1f45a52dc6266e79972e0abbefbefb0d57359005bb0daf06ff17276c858481be8382a7383058ff25e72dbb3dd SHA512 950f9191f44da894feb209110488de3da0e36cc86ef366ad2749a66bba0053e23c39fadb67fc5a4f5db3adccecd414619f9f805c2913733df96254913c360bfa
DIST proc-macro2-1.0.37.crate 41378 BLAKE2B 330ba71c59bb7a6718fe650fc10a37bc690fb0ba4871c198bded83d13a12cdd7b1334a2e2c8fa7a48104b26625c1b07d65b0ecf91f9c2f13b8e898e80baae286 SHA512 cedb3433c6dfff39b404f8939c67e98303bb89a47e2cfb9659eeda1ca3e3d167800dca482374501632ab6d2283105dbd7560a157b48a351b2d3da059f946be55
DIST quote-1.0.18.crate 28911 BLAKE2B 623872402cb185a57e2ffb1bfe4105c49c152c33c44c8054af59df7bb193d14416ea2caa7b28b3f9b9ae6985bec7fc7825bc946e2e41915d2744c887a51559b6 SHA512 3fa537aa96a8970104411471b0e4b7b9339583d552c1d9297737a59ef5301af41da105b92aeace87376e1395e379153f6551bfcfe9c740e6945064426f5f6f84
DIST regex-1.5.5.crate 238119 BLAKE2B 175cec668da4321930a070993feb1671e14348b78e8b432f9fa25afd764863ff233b0d1d8931951ff99a3b5bc2e18774f68a6c0a4e31125ffcdb990b5b1b009c SHA512 a5873edc75a64f03be77151c318bc90c7dff565f838d811f5973ebca2e86247efd58830b0a8ba41e372f5a72f5402d93873f8d34c36481fa4359874b2fa5d571
DIST regex-automata-0.1.10.crate 114533 BLAKE2B 0e357229f6825f14339b1d7c40730b83e62bba12115d01ed20313320766e769a653a2fcd2c9d19af51a82c38e9e42c1a31d005e1f44f5b6fbb3ead7c9c74027f SHA512 56d64da361afce82c6cb49e70b99ce1fca3e1969c54bba5f9971db135f8544c65f49feb8827789947b3d1dcefc9c49a7a434a7ffe0d09c5900345a1733723c5f
DIST regex-syntax-0.6.25.crate 293293 BLAKE2B d5ca0dbc26b03c6a1818026f9a69cd226ec934e7c64094d0ebe843052b648617ffae7aa3a074f8da46d03c46996d8b547d8916576342000bd9711089b3e57d73 SHA512 a3d31f82aadc6be1796f76c03152ff24f37fe42d6ce27fb98e2f55ab102f86502bc37ccd563f6e0eba61aab20d002184c618517b678b3b93cb8f0497cc046ca5
DIST ryu-1.0.9.crate 48391 BLAKE2B d5c1035ffd6340d846009953cb4303fb8c250a3a6ac60b51a2fec77a6cb3648524420064b7380fe31af33c57011f950f6f739a1f0114196675b3b5de4b54efc6 SHA512 4e7c2c7ec73da1ddb32e18d36b8159cb4047b9f4feeb975361e7ba68135e671e11419bb7786df789f5d08e5895231d2c98e36035b515f2c64ac40474d08905cb
DIST serde-1.0.136.crate 76158 BLAKE2B 44603c8eede428dce4211350497a443385ff0ddb0b43799170411110fd8908a56e9df801c72695723f4fcff5eb33384bcf92ef58eecb9c4924d5d9cc30e2f6c9 SHA512 d043ccfd6a1dc9a114a1a95530a63ed9342688d31d3aadeec600a9a9d47aad328be35b6f80080400ea4bb3f820ddd18cc5ce1e6ea1db28e02752962061e71019
DIST serde_derive-1.0.136.crate 54776 BLAKE2B 687524001bf61c42266d91a7263661ab80aa9556e570975a39bdf56a5cb1a2ec3ad1baf22dff586c7ad4ff66d035555d0a9d4a431c49402dcad6d79d0ef40cee SHA512 92c99455a5a9ac0fe45eb6ff1ad3ea55db860031fb912ace3755d1d2aad0dd880b2d83add4d41872823bd60557ebe1cb36e898bf0ac975b1093caa9819f7c289
DIST serde_json-1.0.79.crate 144451 BLAKE2B d04f8788d3ef0d4854d73232a4f441c1f3a42934442679a91853c311262ac9a4f554240d0c44c69f2e22cdd225a3e4d4751dc928ee5092b4371c198325fca0b3 SHA512 83987c1a7eddc6adf8ae359c30e2db1fea98edabd6dc49bde840c37a56258fa845612e8ae270a7dca4cfbe9a3532dc55028091e14cdf1dd3b1ceea4bb86a2dd7
DIST strsim-0.8.0.crate 9309 BLAKE2B 40a8be506c43ee1ffe006ddc7dee98c3d418bdd205d57b78f5d1e4c9312feb57e1eaf952e02d92d4e0932db240c6fba45beb06ea8c4fc6de1cf1faa8b6a3a939 SHA512 1d55a8d946cd55f5f37d06aea536549ded95739fa58c0f2da285a0041154c181f663682bdcac643aa198b3e762d694a04f058db985c62ebe22b5c16327ba6d34
DIST syn-1.0.91.crate 235996 BLAKE2B b7b555b2dbfc837417ed69c358338819500f1e8ba11c2183a4d216efe2c2d7eddd165415516d50ffb5413b97452f186263e13299b01bccd6ad6e405f6d2a3f4f SHA512 28fe28a9d4e9ab3610850c1704be6f384e9fff191b1a5e11f9766bdada81a3e7426cbc776bbd63ea6710320c7416a622506d4a8d607d978af506d381658d4bff
DIST sysconf-0.3.4.crate 14066 BLAKE2B d15543ad506bb2fffc9f1212531ff995426d224a6a6c19342dcce29b5680df4e5817fe47434cc645330286877bfdc819c70991ac4bd6a79d7e939730d349782c SHA512 4a0ce4071c34d6f22c7e31de327a97d9465e3c56409c0c38b980529053efe8f269a30e526ffa8d4baa04cfd4b88d7ad0a18a5e4be490a60539134207a36c870c
DIST termcolor-1.1.3.crate 17242 BLAKE2B 5aef69c0004081bd3cc4d531d13d63627cc02313868c0faab62358d13abfa7b4ba82f142c2801d25a6ae46ecbc8b7bdbeaa21c9105ea3b8950ab6a38cdb88513 SHA512 5838fcbfd70f300cb4b62aab50565db52074c56b152ccc8ac1173e4676c0d5a636271bf5a645a77da6e1d4edbf0091af2cd4dd6d73b85c3d198c760898c06f3a
DIST termtree-0.2.4.crate 4416 BLAKE2B 994134f7af962123b19984aa32b30c19c6f77202067a90ddb3aa4414ec8dc541f5d8be9282244cdbb1eb16686c11750393325fc7f7005de0bec38d6a9219e015 SHA512 afe4e94bd57c9917ba48be4b3a22ff2b9b8a6c764c86871a3be9087ae0c65326fadb466e285a129082e4243ba6bca933d89ea01aa9188222c055f0c2b308cdf3
DIST textwrap-0.11.0.crate 17322 BLAKE2B 257428908342774593bbd3528fcdae710712ff54e8a711393a24356d8ba0e16e466a4b20c05f942c48ca76b3b5b5aaa90ec202f782cad892caa8b71ccf124da6 SHA512 f5c0fe4f28ff1a3a0931e8e235b5157a45f67967985bcc752418c5ec3481fca44a8ae4800088889b37e8cd0533f53d3c456d5ffd19b767b3f83a87b49a2e209a
DIST time-0.3.9.crate 81412 BLAKE2B 018cd6ee08fc16cb91b894f15e20c41dfcea51691551e54b4252af27b6368e42c6c3c86734dcff2f9742d93829b1e0b5186aad77b96bf5aab01796f480385497 SHA512 2dd8c57d2fc232d8a05109f0d41f964fc587345eff0a68c42c2b1690d6da1a4868188df7f03bece12148e7434b973c472fb0c85fa1f840053da3b30cf6c47e80
DIST time-macros-0.2.4.crate 18421 BLAKE2B 6806e235cc7258a76877f705a8637c39bc30316603c7eedd4795a3a597d8d1e78a79c213af84cc184fe3b67c5c3f6f9efeb95c70f6f4239af1882916afdca834 SHA512 f3887ce839db40d13c143a9f11bea804fe4760ab2655df68cbba9029cfff7d0476135608fbfdba6cdec1f9b0753b2de0e3ce0161b40c5d2b9596980d9deaae59
DIST unicode-width-0.1.9.crate 16745 BLAKE2B 38d4b92e47a284d6881a8073089be59a73d82b91efe5522f55be977f95f479890b6c02cd519544729f1b1e62eb21bcfff8c5f5382917f953603b760e39cf1ea7 SHA512 0f5ec46c57e3b5e50cb8430c89db8d9c129e80ca11a9c398b5312bfe95001e19ca3efbfeb01c3ac09c4ce7e26c6ee1f352f7e114ecef78cefd68c54d2d50f5f4
DIST unicode-xid-0.2.2.crate 14955 BLAKE2B 6c6da49ac08dbd8b3248272224d6bff96b9cd1f36029b1937a58a0b929c3a48326053305ed49e73edd70f572f5abbc4817cedc899c69e3457805ad056669f6af SHA512 92ffd0dd34e3ca235ecf110b38c447d3ec1faa23d76c112457f28d432f92fa6b5f428bc5e1bfd278f361f55426dd96e19ecb0d3eff6cf250892f069c52bd89a8
DIST vec_map-0.8.2.crate 14466 BLAKE2B 8f109fbff19604b82ea2aa61c952e2ce9b5597ccc8e1ef4e847648e2de08dece8c4debe92889edeccb8d393645fd0b62436b49d236ded7ad181c4a51239a9539 SHA512 4f1ef59bc2c437e79f1f84fe021bce5aa8ccd581f500f3d5776913d5f17d45b03ccee64f5bd03d47656318cfc9344a1f4311079d471fa409a8e4e94c143973f9
DIST wait-timeout-0.2.0.crate 12441 BLAKE2B a99d3f57bc6e784ac06167f98b2dc2841f730dfab4fb9772b15e67707f756d6ba7daeb3e992d32291bed3daa85eaa8a8ddde64db5e1acf1cc4031fc9bdc82212 SHA512 db3b7aa2acfd44e64451042b8ba98eecab77a82aa5c58ed08dadb119ab36dee4e26d62baad7978ed56d5ad03019c96be5021455362290f56043981137bac8066
DIST winapi-0.2.8.crate 455145 BLAKE2B 50f3c2a0cf4eeedd6891b11392e520c1cca139a71f8f736eabaf43aa7e4b1b5d57697918978220459572d373940edf971eb8302f292cbff832283e905076319a SHA512 115e6f027cdd4a56f77ca24f4ab249d2a6cac1e1f955c826a9b6ee05db4861790a533f5e674aebbb540370fff52ed41618c2cd7c906e73200e92df213109cebe
DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
DIST winapi-build-0.1.1.crate 669 BLAKE2B 6c8d8e0f81574c086f06fb3f234b0e6759d293d1d254857c3d491e4d43279e5c2f57f2fcfdc9d5d7b083280f4cc2a75a6ee9bc1541ec6ce8f8d904ded0567faf SHA512 8b0a239e205a5368892f41c870a8a7ea16e3468c364b03382bef7fa3a2e7159b09c07661e95b1227578f6d72c14879daa4444b28c51ae20ef15d985d59ca5a77
DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
DIST winapi-util-0.1.5.crate 10164 BLAKE2B fc800aceae5249a858c806c3e969ef2545766099872d856ebee51c883d9acf1122278db9607d50ca53eac351502b700fd2463900932d342240f97f683d517963 SHA512 7baeb661f397c4693dfa001fdc774b323c51a7c55caad40f2de5112a1cefd1d6151e3df41fa4ee193460a5905917c83d2b1de5fa10b4bd014ad96690af95c0fd
DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513

@ -0,0 +1,106 @@
# Copyright 2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Auto-Generated by cargo-ebuild 0.5.4
EAPI=8
CRATES="
aho-corasick-0.7.18
ansi_term-0.12.1
anyhow-1.0.56
assert_cmd-2.0.4
atty-0.2.14
bitflags-1.3.2
bstr-0.2.17
cc-1.0.73
cfg-if-1.0.0
clap-2.34.0
crossbeam-channel-0.5.4
crossbeam-utils-0.8.8
difflib-0.4.0
doc-comment-0.3.3
either-1.6.1
env_logger-0.9.0
emlop-0.5.0
errno-0.2.8
errno-dragonfly-0.1.2
escargot-0.5.7
hermit-abi-0.1.19
itertools-0.10.3
itoa-1.0.1
kernel32-sys-0.2.2
lazy_static-1.4.0
libc-0.2.123
log-0.4.16
memchr-2.4.1
num_threads-0.1.5
once_cell-1.10.0
predicates-2.1.1
predicates-core-1.0.3
predicates-tree-1.0.5
proc-macro2-1.0.37
quote-1.0.18
regex-1.5.5
regex-automata-0.1.10
regex-syntax-0.6.25
ryu-1.0.9
serde-1.0.136
serde_derive-1.0.136
serde_json-1.0.79
strsim-0.8.0
syn-1.0.91
sysconf-0.3.4
termcolor-1.1.3
termtree-0.2.4
textwrap-0.11.0
time-0.3.9
time-macros-0.2.4
unicode-width-0.1.9
unicode-xid-0.2.2
vec_map-0.8.2
wait-timeout-0.2.0
winapi-0.2.8
winapi-0.3.9
winapi-build-0.1.1
winapi-i686-pc-windows-gnu-0.4.0
winapi-util-0.1.5
winapi-x86_64-pc-windows-gnu-0.4.0
"
inherit cargo bash-completion-r1
DESCRIPTION="A fast, accurate, ergonomic emerge.log parser"
HOMEPAGE="https://github.com/vincentdephily/emlop"
SRC_URI="$(cargo_crate_uris)"
LICENSE="GPL-3"
# Dependent crate licenses
LICENSE+="
MIT Unicode-DFS-2016
|| ( Apache-2.0 Boost-1.0 )
"
SLOT="0"
KEYWORDS="~amd64"
DEPEND=">=virtual/rust-1.58.1"
# rust does not use *FLAGS from make.conf, silence portage warning
QA_FLAGS_IGNORED="usr/bin/${PN}"
src_install() {
cargo_src_install
dodoc README.md CHANGELOG.md
# bash
./target/$(usex debug debug release)/emlop complete bash > emlop || die
dobashcomp emlop
# zsh
./target/$(usex debug debug release)/emlop complete zsh > _emlop || die
insinto /usr/share/zsh/site-functions
doins _emlop
# fish
./target/$(usex debug debug release)/emlop complete fish > emlop.fish || die
insinto /usr/share/fish/vendor_completions.d
doins emlop.fish
}

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>moltonel@gmail.com</email>
<description>Upstream author</description>
</maintainer>
<maintainer type="project">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
<upstream>
<remote-id type="github">vincentdephily/emlop</remote-id>
</upstream>
</pkgmetadata>

Binary file not shown.

@ -1,6 +1,4 @@
DIST pandoc-3.0.1-linux-amd64.tar.gz 26480576 BLAKE2B f74983b0665b015541e53e1f56666110c6587d7b80761a31bdb9b0da7450d934df93571c3e03ecf9561de5d3f0c4800e5b8fb6ef82f7eb5043c39348b11963a4 SHA512 9424af2647211894370a5f268a42add0c1437568e56b2cfd7f2c9b722216201afd2cbce39ab480652d4bc0b54ec8b0efafc5b0726c8ce68ac3d8a2f73e801dde
DIST pandoc-3.0.1-linux-arm64.tar.gz 28536489 BLAKE2B 38cfd1c6fda336f445ee58ff1b7d63c6edc72d0c87b9e01d724c2db75bb0bb429eb0b076e999b31149bc76921fc58dca47441233dd5c2cf010283c910107a75f SHA512 beb59675be8b6176c577c4a34e0c3a2dc5789d47dfdac51d22470f2e7ab8238ce12b996f5d8b021bc13d8cb4e4aecff428a5c1ed3703a483d06cd97f09705004
DIST pandoc-3.1.1-linux-amd64.tar.gz 26510765 BLAKE2B 5d95137a9d5dabbead7a0a56b67d7f876491e6bb71812958163dae600e6826544d89d5f036c3c6e19b022462014a5c317d73ed59a6955d02c4a5ae70088e2a31 SHA512 f6b99770a173e8ef0136b009a3d646fe60c80133827f6a09c40d1a5a2c59cf757d89fbc1314555c0883fcfc2b8f8b05502e0efdfe57f17b892d13ef49d4e5725
DIST pandoc-3.1.1-linux-arm64.tar.gz 28579848 BLAKE2B 8933d6d062f51b172bb142a96dd5fcd5057b1c070b90272b8b4f192780e5107b1ef8f143e662a68ac4472b23982dd5def753db0880f15785a40b8a87e116182a SHA512 b420f33114dcf6fa1e9512fdde64d85e00c837eb98c3f3e35b21c49dc8a38dfda3c90ef21aa99108da3349ae1abe27b108c57e969a703e8919105c1918c70aa0
DIST pandoc-3.1.2-linux-amd64.tar.gz 26813708 BLAKE2B 0ded2b73204d5a9447442a2b0bc7c67ee7b2256583caaf71dbe2d0e2bad66977272a9b7089828ea96b3e88d18532338b224ea752299bdb9a4654cf7b4b02ce6f SHA512 8d16e9d852ab10744d885973f788232f8f0cc768d293873fa253d415a286d73a33b27653ed12e871cbe35908130388d039086712c20baac1dde0b0993e740b8e
DIST pandoc-3.1.2-linux-arm64.tar.gz 28909714 BLAKE2B 2ef53ccdf30df08d2f6819dfeb3cc542ca535b4ff73574681123a1d045dfbd04219adfdcf98becd0796749abaec309ce882714fba3afa5f8543942982f80a03b SHA512 4d36e2afb7c0e7561fa4a9cc6e56706c40435ff175224604cb544cb4c924aafd4ebb09419eebb9d7e30d899828928579ef1ac254eafa387da8e12fce9844e0ce
DIST pandoc-3.1.3-linux-amd64.tar.gz 28685814 BLAKE2B ecbc685d45ced12f69223ceff4914a876fa631866eb304ea58ab1623a9569de708cc8b85c403881e1f53dfc559885409329dd13cbadc88afb52c490d9c61fb0e SHA512 f97e62154ceeaf47c6bc2b8c28008ff4a30392b9162b387e4181097c359d0244b8c6435c88fcd587eb210612fb274d639bb2058bc565a8400c2fb6cdeda45b8a
DIST pandoc-3.1.3-linux-arm64.tar.gz 30811766 BLAKE2B 5d5807ea6de49fe87b31f51754d70f781fbd27111980bb14eaafd985a53f7e4fa1c7c0dd66d041184194d5b6a74a429e78b8a0913532645d29b47dbc82e154fb SHA512 6bb8b658e2ea3c96e5781754618104086268dbad45bd95ed7474842993c57cbd18ef1bb909556a1aef118589624d431b17454cd76e8b44dbe441e463e6332a1b

@ -1,56 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MY_PN=${PN//-bin/}
MY_P=${MY_PN}-${PV}
DESCRIPTION="Conversion between markup formats (binary package)"
HOMEPAGE="https://pandoc.org/
https://github.com/jgm/pandoc/"
BASE_URI="https://github.com/jgm/${MY_PN}/releases/download/${PV}/${MY_P}"
SRC_URI="
amd64? ( ${BASE_URI}-linux-amd64.tar.gz )
arm64? ( ${BASE_URI}-linux-arm64.tar.gz )
"
S="${WORKDIR}"/${MY_P}
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="-* amd64 arm64"
IUSE="+pandoc-symlink"
RDEPEND="pandoc-symlink? ( !${CATEGORY}/${MY_PN} )"
QA_FLAGS_IGNORED="usr/bin/${PN}"
QA_PRESTRIPPED="${QA_FLAGS_IGNORED}"
src_unpack() {
default
# Manpages are gzipped.
unpack "${S}"/share/man/man1/*.1.gz
}
src_install() {
exeinto /usr/bin
newexe bin/${MY_PN} ${PN}
dosym ${PN} /usr/bin/pandoc-lua-bin
dosym ${PN} /usr/bin/pandoc-server-bin
newman "${WORKDIR}"/${MY_PN}-lua.1 pandoc-lua-bin.1
newman "${WORKDIR}"/${MY_PN}-server.1 pandoc-server-bin.1
newman "${WORKDIR}"/${MY_PN}.1 ${PN}.1
if use pandoc-symlink ; then
dosym ${PN} /usr/bin/${MY_PN}
dosym pandoc-lua-bin /usr/bin/${MY_PN}-lua
dosym pandoc-server-bin /usr/bin/${MY_PN}-server
dosym ${PN}.1 /usr/share/man/man1/${MY_PN}.1
dosym pandoc-lua-bin.1 /usr/share/man/man1/${MY_PN}-lua.1
dosym pandoc-server-bin.1 /usr/share/man/man1/${MY_PN}-server.1
fi
}

@ -19,7 +19,7 @@ S="${WORKDIR}"/${MY_P}
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="-* amd64 arm64"
KEYWORDS="-* ~amd64 ~arm64"
IUSE="+pandoc-symlink"
RDEPEND="pandoc-symlink? ( !${CATEGORY}/${MY_PN} )"

@ -55,6 +55,7 @@ RDEPEND="${COMMON_DEPEND}
"
DEPEND="${COMMON_DEPEND}
boost? ( >=dev-libs/boost-1.71 )
test? ( qt5? ( dev-qt/qttest:5 ) )
"
BDEPEND="
>=dev-util/glib-utils-2.64

@ -17,7 +17,7 @@ else
SRC_URI="https://poppler.freedesktop.org/${P}.tar.xz"
SRC_URI+=" test? ( https://gitlab.freedesktop.org/poppler/test/-/archive/${TEST_COMMIT}/test-${TEST_COMMIT}.tar.bz2 -> ${PN}-test-${TEST_COMMIT}.tar.bz2 )"
SRC_URI+=" verify-sig? ( https://poppler.freedesktop.org/${P}.tar.xz.sig )"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~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 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
SLOT="0/128" # CHECK THIS WHEN BUMPING!!! SUBSLOT IS libpoppler.so SOVERSION
fi
@ -55,6 +55,7 @@ RDEPEND="${COMMON_DEPEND}
"
DEPEND="${COMMON_DEPEND}
boost? ( >=dev-libs/boost-1.71 )
test? ( qt5? ( dev-qt/qttest:5 ) )
"
BDEPEND="
>=dev-util/glib-utils-2.64

@ -1,3 +1 @@
DIST rarian-0.8.1-r4-patches.tar.xz 33868 BLAKE2B e272598fce4119ad4995b665b988080dc4aee23ba6d03e462e4c76186a418601cbc5c4f403beb64aad05c9e7003d58c2070122ddcaf7188335ec4b8370eb7afb SHA512 766223faedb743c350de4f5c4dc3081f95a2c617d52ddedd4e78f64b3cbbacc20293cc4e98bbe38b41f795cefbf83d624d4434c2b94129ce224ad66da9e5760c
DIST rarian-0.8.1.tar.gz 459461 BLAKE2B 7589633a3abc188a7e83adede964b4d293984ad9c896e5c8116775905dfc3acc3b0cfbbee574b26d1c3966501f8b42e61df9910c840c58bfcd0b41d065a30c26 SHA512 ddc640e1ac210e9dc3fcdde6bbff6e21dabe97b160b531cac68d47d1b831dec71b7c4aced9819cfafd8f89f290920c4e33550b8e29d9872a1c1a202d6fe8e3eb
DIST rarian-0.8.4.tar.bz2 402769 BLAKE2B bc077a6584f7ad0967cdaf298769d1da5ea4b9545191bcf7a8d4f07178666c416b8471a79447e6e3ff52bb2bfd8c55afc7d1638211d245abd9d4efe82c30a7a2 SHA512 5daf8c70438db566f8c4fc6a9b553898e078882307951e7060873fb4c32c12a6482f560f14dab9376917996a3a2f84a36bdf2721fa94c3e63379e3ea0ed131d4

@ -1,61 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools
DESCRIPTION="A documentation metadata library"
HOMEPAGE="https://rarian.freedesktop.org/"
SRC_URI="
https://${PN}.freedesktop.org/Releases/${P}.tar.gz
https://dev.gentoo.org/~soap/distfiles/${P}-r4-patches.tar.xz"
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-solaris"
RDEPEND="
dev-libs/libxslt
dev-libs/tinyxml
|| (
sys-apps/util-linux
app-misc/getopt
)"
DEPEND="${RDEPEND}"
PATCHES=(
"${WORKDIR}"/0001-Fix-uri-of-omf-files-produced-by-rarian-sk-preinstal.patch
"${WORKDIR}"/0002-Allow-building-against-system-copy-of-tinyxml.patch
"${WORKDIR}"/0003-Allow-to-specify-only-the-prefix-of-an-info-page-e.g.patch
"${WORKDIR}"/0004-Fix-a-crash-when-opening-files-without-dots-in-their.patch
"${WORKDIR}"/0005-Make-librarian-obey-to-LC_MESSAGES.patch
"${WORKDIR}"/0006-Fix-m4-syntax-so-that-autoreconf-doesn-t-break.patch
"${WORKDIR}"/0007-Remove-the-nonexistent-dist-gzip-Automake-option.patch
"${WORKDIR}"/0008-Fix-OMF-category-parsing.patch
"${WORKDIR}"/0009-Allow-the-getopt-command-to-be-customized-at-configu.patch
"${WORKDIR}"/0010-Wimplicit-int.patch
)
src_prepare() {
default
eautoreconf
}
src_configure() {
local myconf=()
# https://bugs.gentoo.org/show_bug.cgi?id=409811
# https://bugs.freedesktop.org/show_bug.cgi?id=53264
if ! has_version sys-apps/util-linux; then
myconf=( --with-getopt=getopt-long )
fi
econf \
--localstatedir="${EPREFIX}"/var \
"${myconf[@]}"
}
src_install() {
default
find "${ED}" -name '*.la' -delete || die
}

@ -9,7 +9,7 @@ SRC_URI="https://gitlab.freedesktop.org/rarian/rarian/-/releases/${PV}/downloads
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
IUSE="test"
RESTRICT="!test? ( test )"

@ -79,7 +79,7 @@ for i in ${TL_CORE_EXTRA_SRC_MODULES}; do
done
SRC_URI="${SRC_URI} )"
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
KEYWORDS="~alpha amd64 ~arm ~arm64 hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
IUSE="cjk X doc source tk +luajittex xetex xindy"
TEXMF_PATH=/usr/share/texmf-dist

Binary file not shown.

@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://github.com/sqlmapproject/sqlmap"
else
SRC_URI="https://github.com/sqlmapproject/sqlmap/archive/refs/tags/${PV}.tar.gz -> ${P}.gh.tar.gz"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 x86"
fi
# sqlmap (GPL-2+)

Binary file not shown.

@ -1,4 +1,6 @@
DIST go1.19.10.src.tar.gz 26563069 BLAKE2B 2aec01a67ba3e61f83b635bdf830bf6407342bd877b84367f268560cbb691291825622c4035db99f86ca7ae2153fd11f3f800ab7a90089da7624a531e189f374 SHA512 e8e7d1118d0c409d692ebb406f0e6807781dfd8f7dbe8b03be145e3fc287cde967fde387a216eb9996366508f4e61954cd131cd33f85b652bfd223e37bf41a67
DIST go1.19.8.src.tar.gz 26553006 BLAKE2B db085e575f1bc978502cc5d9e45206542cdf9c6edd6769b1918f07a6be7afb4a387cb18ffb7cb37f5de936bb970c703504cbb6bf88c597dc30aab4d80eeb8820 SHA512 d7ecbae3034211d7c64df4c0fce6894bae3e7e8de20bd2aa9f24b39cc040fa64d8a3bea311582cf4455a981dc3c8f319141f7f357db4eebd27d4451fee05727a
DIST go1.19.9.src.tar.gz 26556330 BLAKE2B 2eb6bfd4456b4f4c7f3bcd794bc40015e1d7dc4f443082b559d81621f428828cba03c63bf24e51e57f258dae8e7c9d4b2c85e2b6acaafce3c3b80a131b0b6d90 SHA512 548525fc33b0d0c6e5e175190b3235a3bfe2046607a87e3b890735bae4f6279f77a15122cfd432c7971c829a631883a1ed2e39399e23c9b8fa96f86502a8c02e
DIST go1.20.3.src.tar.gz 26184364 BLAKE2B faa9cf8c141d013955d3582d5cf1a43ac0d89c2a7ceb7ab00e10aeacedc3bf1c324d62cd17dc6299057cc9acd347ec7672c7f9acafc1b926855d953ef2bac8d6 SHA512 47ebb3925956a3facef9e5e6f4efec3058e55632020ea247844c55b160d23e2be3880ea24dec2f73382a7c7858259896cbb7de1bb764c481c176bed479676029
DIST go1.20.4.src.tar.gz 26185429 BLAKE2B 74ddecc43d53ae9ba9429ec7797061d96b114e24c7cd3bd60546c1161362ad449dadfa3ab53a0783737a4cb36e6724b66977ed554e7f724c8bfe2f3a083b02c7 SHA512 43898325bab48c24e533f360a2c7de356a8a56946602e727b5bcd4a62ff4f64fd750e2650032f7e0525b0699e40e506d79446e16838f097e6bdc2a16f10d81be
DIST go1.20.5.src.tar.gz 26192951 BLAKE2B 13ab06a45a7b13eb5cf8886594343bc169df3c4ff0062ac89c0997283686563edccb7d39423457947f945782bef418ab1a1f3b8712aa8817a8f4c61b54e8574c SHA512 94cecb366cd9d9722b53e52ea3b0a5715a9e9dc21da0273dd3db9354557f71b9501b018125ef073dacc2e59125335f436cea1151cd8df0d60e2ad513f841905c

@ -0,0 +1,208 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
export CBUILD=${CBUILD:-${CHOST}}
export CTARGET=${CTARGET:-${CHOST}}
MY_PV=${PV/_/}
inherit toolchain-funcs
case ${PV} in
*9999*)
EGIT_REPO_URI="https://github.com/golang/go.git"
inherit git-r3
;;
*)
SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz "
S="${WORKDIR}"/go
case ${PV} in
*_beta*|*_rc*) ;;
*)
KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
;;
esac
esac
DESCRIPTION="A concurrent garbage collected and typesafe programming language"
HOMEPAGE="https://go.dev"
LICENSE="BSD"
SLOT="0/${PV}"
IUSE="abi_mips_o32 abi_mips_n64 cpu_flags_x86_sse2"
RDEPEND="
arm? ( sys-devel/binutils[gold] )
arm64? ( sys-devel/binutils[gold] )"
BDEPEND="|| (
dev-lang/go
dev-lang/go-bootstrap )"
# the *.syso files have writable/executable stacks
QA_EXECSTACK='*.syso'
# Do not complain about CFLAGS, etc, since Go doesn't use them.
QA_FLAGS_IGNORED='.*'
# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
# This package triggers "unrecognized elf file(s)" notices on riscv.
# https://bugs.gentoo.org/794046
QA_PREBUILT='.*'
# Do not strip this package. Stripping is unsupported upstream and may
# fail.
RESTRICT+=" strip"
DOCS=(
CONTRIBUTING.md
PATENTS
README.md
SECURITY.md
)
go_arch() {
# By chance most portage arch names match Go
local tc_arch=$(tc-arch $@)
case "${tc_arch}" in
x86) echo 386;;
x64-*) echo amd64;;
loong) echo loong64;;
mips) if use abi_mips_o32; then
[[ $(tc-endian $@) = big ]] && echo mips || echo mipsle
elif use abi_mips_n64; then
[[ $(tc-endian $@) = big ]] && echo mips64 || echo mips64le
fi ;;
ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
riscv) echo riscv64 ;;
s390) echo s390x ;;
*) echo "${tc_arch}";;
esac
}
go_arm() {
case "${1:-${CHOST}}" in
armv5*) echo 5;;
armv6*) echo 6;;
armv7*) echo 7;;
*)
die "unknown GOARM for ${1:-${CHOST}}"
;;
esac
}
go_os() {
case "${1:-${CHOST}}" in
*-linux*) echo linux;;
*-darwin*) echo darwin;;
*-freebsd*) echo freebsd;;
*-netbsd*) echo netbsd;;
*-openbsd*) echo openbsd;;
*-solaris*) echo solaris;;
*-cygwin*|*-interix*|*-winnt*)
echo windows
;;
*)
die "unknown GOOS for ${1:-${CHOST}}"
;;
esac
}
go_tuple() {
echo "$(go_os $@)_$(go_arch $@)"
}
go_cross_compile() {
[[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
}
src_compile() {
if has_version -b dev-lang/go; then
export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
elif has_version -b dev-lang/go-bootstrap; then
export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
else
eerror "Go cannot be built without go or go-bootstrap installed"
die "Should not be here, please report a bug"
fi
export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
export GOROOT="${PWD}"
export GOBIN="${GOROOT}/bin"
# Go's build script does not use BUILD/HOST/TARGET consistently. :(
export GOHOSTARCH=$(go_arch ${CBUILD})
export GOHOSTOS=$(go_os ${CBUILD})
export CC=$(tc-getBUILD_CC)
export GOARCH=$(go_arch)
export GOOS=$(go_os)
export CC_FOR_TARGET=$(tc-getCC)
export CXX_FOR_TARGET=$(tc-getCXX)
use arm && export GOARM=$(go_arm)
use x86 && export GO386=$(usex cpu_flags_x86_sse2 '' 'softfloat')
cd src
bash -x ./make.bash || die "build failed"
}
src_test() {
go_cross_compile && return 0
cd src
# https://github.com/golang/go/issues/42005
rm cmd/link/internal/ld/fallocate_test.go || true
PATH="${GOBIN}:${PATH}" \
./run.bash -no-rebuild || die "tests failed"
cd ..
rm -fr pkg/*_race || die
rm -fr pkg/obj/go-build || die
}
src_install() {
# There is a known issue which requires the source tree to be installed [1].
# Once this is fixed, we can consider using the doc use flag to control
# installing the doc and src directories.
# The use of cp is deliberate in order to retain permissions
# [1] https://golang.org/issue/2775
dodir /usr/lib/go
cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
einstalldocs
# testdata directories are not needed on the installed system
rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print)
local bin_path
if go_cross_compile; then
bin_path="bin/$(go_tuple)"
else
bin_path=bin
fi
local f x
for x in ${bin_path}/*; do
f=${x##*/}
dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
done
# install the @golang-rebuild set for Portage
insinto /usr/share/portage/config/sets
newins "${FILESDIR}"/go-sets.conf go.conf
}
pkg_postinst() {
[[ -z ${REPLACING_VERSIONS} ]] && return
elog "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
elog "all packages compiled with previous versions of ${CATEGORY}/${PN}"
elog "due to the static linking nature of go."
elog "If this is not done, the packages compiled with the older"
elog "version of the compiler will not be updated until they are"
elog "updated individually, which could mean they will have"
elog "vulnerabilities."
elog "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
elog "See https://bugs.gentoo.org/752153 for more info"
}

@ -0,0 +1,208 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
export CBUILD=${CBUILD:-${CHOST}}
export CTARGET=${CTARGET:-${CHOST}}
MY_PV=${PV/_/}
inherit toolchain-funcs
case ${PV} in
*9999*)
EGIT_REPO_URI="https://github.com/golang/go.git"
inherit git-r3
;;
*)
SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz "
S="${WORKDIR}"/go
case ${PV} in
*_beta*|*_rc*) ;;
*)
KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
;;
esac
esac
DESCRIPTION="A concurrent garbage collected and typesafe programming language"
HOMEPAGE="https://go.dev"
LICENSE="BSD"
SLOT="0/${PV}"
IUSE="abi_mips_o32 abi_mips_n64 cpu_flags_x86_sse2"
RDEPEND="
arm? ( sys-devel/binutils[gold] )
arm64? ( sys-devel/binutils[gold] )"
BDEPEND="|| (
dev-lang/go
dev-lang/go-bootstrap )"
# the *.syso files have writable/executable stacks
QA_EXECSTACK='*.syso'
# Do not complain about CFLAGS, etc, since Go doesn't use them.
QA_FLAGS_IGNORED='.*'
# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
# This package triggers "unrecognized elf file(s)" notices on riscv.
# https://bugs.gentoo.org/794046
QA_PREBUILT='.*'
# Do not strip this package. Stripping is unsupported upstream and may
# fail.
RESTRICT+=" strip"
DOCS=(
CONTRIBUTING.md
PATENTS
README.md
SECURITY.md
)
go_arch() {
# By chance most portage arch names match Go
local tc_arch=$(tc-arch $@)
case "${tc_arch}" in
x86) echo 386;;
x64-*) echo amd64;;
loong) echo loong64;;
mips) if use abi_mips_o32; then
[[ $(tc-endian $@) = big ]] && echo mips || echo mipsle
elif use abi_mips_n64; then
[[ $(tc-endian $@) = big ]] && echo mips64 || echo mips64le
fi ;;
ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
riscv) echo riscv64 ;;
s390) echo s390x ;;
*) echo "${tc_arch}";;
esac
}
go_arm() {
case "${1:-${CHOST}}" in
armv5*) echo 5;;
armv6*) echo 6;;
armv7*) echo 7;;
*)
die "unknown GOARM for ${1:-${CHOST}}"
;;
esac
}
go_os() {
case "${1:-${CHOST}}" in
*-linux*) echo linux;;
*-darwin*) echo darwin;;
*-freebsd*) echo freebsd;;
*-netbsd*) echo netbsd;;
*-openbsd*) echo openbsd;;
*-solaris*) echo solaris;;
*-cygwin*|*-interix*|*-winnt*)
echo windows
;;
*)
die "unknown GOOS for ${1:-${CHOST}}"
;;
esac
}
go_tuple() {
echo "$(go_os $@)_$(go_arch $@)"
}
go_cross_compile() {
[[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
}
src_compile() {
if has_version -b dev-lang/go; then
export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
elif has_version -b dev-lang/go-bootstrap; then
export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
else
eerror "Go cannot be built without go or go-bootstrap installed"
die "Should not be here, please report a bug"
fi
export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
export GOROOT="${PWD}"
export GOBIN="${GOROOT}/bin"
# Go's build script does not use BUILD/HOST/TARGET consistently. :(
export GOHOSTARCH=$(go_arch ${CBUILD})
export GOHOSTOS=$(go_os ${CBUILD})
export CC=$(tc-getBUILD_CC)
export GOARCH=$(go_arch)
export GOOS=$(go_os)
export CC_FOR_TARGET=$(tc-getCC)
export CXX_FOR_TARGET=$(tc-getCXX)
use arm && export GOARM=$(go_arm)
use x86 && export GO386=$(usex cpu_flags_x86_sse2 '' 'softfloat')
cd src
bash -x ./make.bash || die "build failed"
}
src_test() {
go_cross_compile && return 0
cd src
# https://github.com/golang/go/issues/42005
rm cmd/link/internal/ld/fallocate_test.go || true
PATH="${GOBIN}:${PATH}" \
./run.bash -no-rebuild || die "tests failed"
cd ..
rm -fr pkg/*_race || die
rm -fr pkg/obj/go-build || die
}
src_install() {
# There is a known issue which requires the source tree to be installed [1].
# Once this is fixed, we can consider using the doc use flag to control
# installing the doc and src directories.
# The use of cp is deliberate in order to retain permissions
# [1] https://golang.org/issue/2775
dodir /usr/lib/go
cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
einstalldocs
# testdata directories are not needed on the installed system
rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print)
local bin_path
if go_cross_compile; then
bin_path="bin/$(go_tuple)"
else
bin_path=bin
fi
local f x
for x in ${bin_path}/*; do
f=${x##*/}
dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
done
# install the @golang-rebuild set for Portage
insinto /usr/share/portage/config/sets
newins "${FILESDIR}"/go-sets.conf go.conf
}
pkg_postinst() {
[[ -z ${REPLACING_VERSIONS} ]] && return
elog "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
elog "all packages compiled with previous versions of ${CATEGORY}/${PN}"
elog "due to the static linking nature of go."
elog "If this is not done, the packages compiled with the older"
elog "version of the compiler will not be updated until they are"
elog "updated individually, which could mean they will have"
elog "vulnerabilities."
elog "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
elog "See https://bugs.gentoo.org/752153 for more info"
}

@ -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
EAPI=7
@ -87,7 +87,7 @@ multilib_src_configure() {
--without-ikvm-native
--disable-dtrace
--enable-system-aot
$(use_with doc mcs-docs)
$(multilib_native_use_with doc mcs-docs)
$(use_enable nls)
)

@ -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-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.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.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.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.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.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-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.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_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_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.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.17.tar.xz 25048 BLAKE2B da19105dfa2fda7b422ac368f85c97d7541be74a6f9b9170a19ceac901e026ab39baef83c610172ecba1f70cce6e2832e956c2e4c87387b0e21c79c2c633b116 SHA512 ce9d3c62c675bceccaac21fd467c54322a55a1c8af9be3a6dcfd7a892c03b39b38dc35ba570e3dd9fc984a5f3eeabb3cc564ba2d7f935dbf6df829264cb32b2f

@ -0,0 +1,498 @@
# 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
# 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
}

@ -0,0 +1,527 @@
# 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
# 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
}

@ -0,0 +1,521 @@
# 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
# 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
}

@ -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
}

@ -0,0 +1,487 @@
# 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
-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
}

@ -96,38 +96,6 @@ DIST rust-1.67.1-x86_64-unknown-linux-gnu.tar.xz 186714164 BLAKE2B 648efbb302333
DIST rust-1.67.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 669b7c4b0d5382a7d1d0fe49405f2798f67a9e745711dc2c8e7548ea6fdc8f0fefdab37d0594aec14b2745ce45e7c469e79c0cb1d86077ad9c7b6aafc2656827 SHA512 067681cb4140a29adfa5f4b141e2f3450dad34b95a1e549a6bc8d759e57da5d2ae69cc165efcdef9d83e2eee06edb6acd587d38c9b2f3d000d7a3f79daccc671
DIST rust-1.67.1-x86_64-unknown-linux-musl.tar.xz 269831452 BLAKE2B a36498528454f1bf0e1812eba005f27e3e281e4e2c117477785f5e48468c3fe316947b7e4360f573f0f4cd6f117e4102db8aeaa616be5bef09fb7518fd230b23 SHA512 9a3eb67239a88b875fe55846a2fffbbb1f2a4cc8eed18b5558f0f989d544a8ddfe0861d5b2b860a779833a1660ee622b30320ec9ef83e841724f7a32f08fda06
DIST rust-1.67.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B b12d0ce1136e355ee027780dfe185ee443de402e531ecc743600aecf081990d4e998fa4a6e6f0f46a886cd806918e23c5e4ccb7cecb0324cb67189984192283f SHA512 37428f0d1d8e2ddb7ce52bce3a297a7f666789d00e7e240180c3e1f7fb5b30bf5e17593cbedebdef95c50406ee82d40ef1f75a576a1a0e02387e1a12ed977c77
DIST rust-1.68.1-aarch64-unknown-linux-gnu.tar.xz 257003480 BLAKE2B 850c59e54fda0f1e1b2d012e849cdf6b11103b0354035ca153d80e3bda1edce5640c098d9846127608af7836758dce11da1ef7efa406bfbdf4fa632bf62211a7 SHA512 4126b389c846d0b94ab1d1800e46ef680d10b26699c9d296d78cc916a00f3b023962c0bb1f2dec55cc22335e7cd47f74baaadb7cd7b3a606aac53d3e2d7dfdb0
DIST rust-1.68.1-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 914459984ab2e102b129c03149ddd23fc604e35b1136bc2f951ece6a46f8f9e2b6a88ae4e5aa57b2fa0eed7803c4537646c7c8253526a33cad8644f780776372 SHA512 9ae6008e57bf25997d2e44a3161e5943739a7be4e4e9e95e221dd7385f3440ecb3ca8e7fa94f943aa50684c5502a7493c5295ad8b9f1c5c3b4c48a6646a8843b
DIST rust-1.68.1-aarch64-unknown-linux-musl.tar.xz 234957108 BLAKE2B 62ff5f5c01829cc6c19a8f20923a832c9e4e719a9b83242420ee894b11a5af7c2447aba27ce6cfcdb3c0f9722c131da16efe1d1b1f7b0304f4993660a115db5d SHA512 1a43c1d76d09cd97688e2c7b10a436c39574133c9d91d642e01cfa19a60f2037df7cb6a7dbceeab991ad673671453db8ebe2cba499dfa9e0bfdb226e506e3b07
DIST rust-1.68.1-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 632ef4c61afc9a32e5297c056e77e9ae3e84b5faabcb13892fa703bae8b3e8cd0730b160f6acb8846d9112e0a5e32031cd6ba68bccba1c7113ce7eee953615d2 SHA512 0fc556a797871bc11dd1a52190ed1d35f09297e00822270b9bab421fafd8a47899c779593b9f37bf510af6057b7cf6a118144be92b11fcf833e4ca1d111840e3
DIST rust-1.68.1-arm-unknown-linux-gnueabi.tar.xz 216213308 BLAKE2B 234b5507b23a0fd295b34d637e7a42bcf1a376cdeacdc448d0782847742d93b4b088ab7eb60b3d10aab2e7d516e77d9cd1f42bf9144ae49a860f9f2635b9d545 SHA512 ae9c05a404183d749e7a237d3843ddb538899181b0966f1e22fd4bfc00ab4728473f51d243afc8b9ab5749bb12c3a55f4db679f4ccab704d2fc0adcc5edb3a5b
DIST rust-1.68.1-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 8cfc3fabc67366877fc94663c09de62e57e8d77ff5b412bec0a7225477dfcc856390aafb527ccc2c2595026cffb315b0fc9ceb371d85d42689d2171344e0c56d SHA512 0d808c1a68e747137fd2ffd55b7b146cfd6f490b24eade9942183ad8b7a25499a2e18630adcfdfa5ddbbce6975777f5bd3ff469d77227f840ae6970019c9f81d
DIST rust-1.68.1-arm-unknown-linux-gnueabihf.tar.xz 214982076 BLAKE2B 8e69117487b32b89513bdf0492c5633630ba743ab68f1087a786c7e7148ed2c443ddf95e69f6d226fd96d399aa6802adc8480b78e7352876b121ee7fc459b605 SHA512 496d93691b4332a23edc91f2bdcc149c91e647cf9ee60177e64e88f76ed7cd1ea89884770cab38ac809e419e1dca4736bca2be811307efcadc8f9391fcf36821
DIST rust-1.68.1-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 575946a62a16ef956c1d418891ede2103fcd9940fad555fed73e78e13c64243e8dbeeb5c52f4ada515af31c542e4a577c9d000a1eb8b2f6ebd14ec232a36da6f SHA512 5e528fb34566d8a7cc7e49f1c09819afd5aef79bed65e798c4d1244ad44028be6affc9c35e35a30943cb7b84e0e247ec5e0673bfce52836e1331cd2b63c9da82
DIST rust-1.68.1-armv7-unknown-linux-gnueabihf.tar.xz 219027476 BLAKE2B 0a56dddd975cf0c519b33dfdfa9c1bb1e6d9a91cb582b5293dbcc19935ba35364f49fa3bd86bccb74a075f3759596a47685a2024a0efd10ed4b5f9b60580a762 SHA512 478cfc492e758eef7c5654bf60547b9d60799cb1bec56805d82666c54f982fcf2e57f578ce3d3f0f6a38b64602f4e3c2e94759b8298764b7fbc2fc88b41c778a
DIST rust-1.68.1-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B a20966763dfa905cef723a86c6295317138d81d9208d272ba791ddd3f9db267acf93240987fde84c22354f566f0c867cf8052f161f1835dcb58ec8a1fa7299fe SHA512 56f3dee773cd90aa7524896dce942cd5cd7247105788ed68e885e1ec18e10d6aa9eed3eca43d4f9bd76b99ed3f8c78e8a2fe7ea2690e3e3eaf5626de2bcd38e6
DIST rust-1.68.1-i686-unknown-linux-gnu.tar.xz 234183120 BLAKE2B 66b490b9040c37eabb05a9c5005bb5338ee91c39e21de3cd6a9b470ddbc0f47b08e9208f82efc5762f69078eaeff2145f983358913f31fac397baee64363ef71 SHA512 88a1e46085a5b7832204159ace89ccaf8c4c1290320eaf4d76e620d3f3288e754695c7bc5fc336a9dc21a6acff15d97b5c9c7632221ebe4c0822e52b126edd2d
DIST rust-1.68.1-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 4b0db8db93180266ed1013d807a654cc0ba2952a23b4c106d7de77dd7e87b752a5779b22bc956eb690c0f41dcd5bb9dfb270effd1a875a6ffb58cd87069a72e9 SHA512 8f5fcbcef3785be8359efddf0e27f4a9a21fe9b07f32d2ab555e67efde069a6ffcd5a295d1c4768104372dfff0065f9c845b4e3336e46b332e4c925076159fda
DIST rust-1.68.1-mips-unknown-linux-gnu.tar.xz 195473632 BLAKE2B 179996202a7d73004c1783e63c952d8b9cd002f468f97d5488edfe1cb38dca7bf80d182c762668ddfac8595698164fba5bfcc086471675fef249321c353cd802 SHA512 e2c67771d7b15d123b557856790f80f4e9e6b16c1baf3ecc77d9a6ffb0326b1c9bc05091039eb65bc81939ebd19373531286054a0d59c457694e4e16ed4cc84d
DIST rust-1.68.1-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 183a1d12fefbad2d7cccc35b09529e8b0c34018069ecd2ae117a1025d4cc08eeed9927a4de8376896be68654abf73b1df446bc6f4d7a787fe1a4a370f03aea1f SHA512 7ef9944ac194352c3aa8a55fe20745763de1f069502e446fc7dea0a25dfb57010411e29ab558a6ad42d0d01c8ad1baed743e9b53d721884479003e6f681fde2b
DIST rust-1.68.1-mips64-unknown-linux-gnuabi64.tar.xz 194332688 BLAKE2B 9440d3ecfaa1c6ff0e93ab91ea24d5b33cf1d130f95f895cbe75c04c588b404eb9889ab508bda099cec891c2c7d06e340355ce6d5cc04d7554f517b0f7f6d617 SHA512 8969b9be26e75255982c10e868d1d1aaf672fd0bffbfcc929ba7dab49f8c5371f3c606e4b260f0eb50dea9d7f2491fc14e471db29ac63571ec624f999a9f8050
DIST rust-1.68.1-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 1e1c99b6d629ec50ccd45ce310e7ca6f2f6e30f1566b007b277d607f187772d7de06a4fe8efaf61fa8cd8ee4193461dac65cd8229e0f61bbc42df2f99922d014 SHA512 1894ab2fd5bdb5e2671798ee7f9109f8924955dbed837d486f94e0141df8ab2fa1a7cfdee5d8e41ca5edc6c85215433c2db0c32a055a8c64ab63de0bb4f56642
DIST rust-1.68.1-mipsel-unknown-linux-gnu.tar.xz 199263224 BLAKE2B 39e453b1a802087efc0af3fd7676fae0ba633fc35ac7edd330f97df27c478129c1758d291cc713f65d27f68d854fb9e3d3d87b74d09a06474048fc94fd6a4284 SHA512 1d2f64ed9164153a556862fdc4f9cc74ee327d65dfa9d5d02b6d42d8790faff1e8b61e0d0f70b44606792d08bebe4755976036be4feff5bf72130641c0df99d7
DIST rust-1.68.1-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B dc8c302cb471be27283dc4e85fe2468c75c5c558e2ca0265899dfc1b11dbbacc3c20f333fac1c300546033af1c15c003225c1afcbb77fd0766858c27229c6874 SHA512 f1b7e5141a17e9c2e83e0b0aa65ed90080cfb9b257661afa0376ce818b2ca876dafb7e72b1ebb86a30479d14d746f8102b6293c16cfb9cd09a75d89bc406c0d6
DIST rust-1.68.1-powerpc-unknown-linux-gnu.tar.xz 221151404 BLAKE2B 751f2c0e70810eb6dc678d8fd00906867cd92974a6a9d853631e0605ca97d16e2008b86bac8d86b2c88527fa1f77f249a1a06a115c085c5e90a2b45311b4539f SHA512 65b2347d259b72d752cabe71bc376dcb19af7b529859d72370bd531165ad504973a9983c0bbec5a836d8dae8763a32e4d6ab21f53c5d3fa65d3156229d7b8d71
DIST rust-1.68.1-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c490dbda7467cc27cd88838e2500a765b8e893b6b49488089ac60506096dcb4d1b5dc5876b3ddbd89b53b6612b14725f128e1b77b718ac41f2db9c010b563496 SHA512 1320a207501c1c73ee9f1cb38aac2e12d08b88f764d6d60b2bc7c92a1203e60cbfc1634be72e52c48d91a0bbd9656a3a657b90ff41936358748cc930676c1cb9
DIST rust-1.68.1-powerpc64-unknown-linux-gnu.tar.xz 217881640 BLAKE2B 209692f164f2a27c9fd61259e94435488c3ff8919f16f0f5df4f97b0a266339e9e1dddd770ea07674e31cb39ece860de92ff0699996941a522c582b52d6a97df SHA512 e6dfd97b4d00b17ce05c4a0096f103951236a3653d3c9e07e2415da938cbcb2bfc7c520154fe064a16829c954ced98ea537b7412309ed597be98ecc371437801
DIST rust-1.68.1-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a6f7705feb9ec39f134dbc604225d7ff93107a6bfe50e573f5a8134d19f5b8bb7a8096f3ed2eded62c0d71b2b929c107fc3ee941d6557eaf34f5d50634c735aa SHA512 371128c68d00b8961a8d84d79147cac1fccdfc24058a441190722e1541baf484b06e1f3e1aec925ea8e081ac8395f20ae27790c7664d77a5d36bd840082c6146
DIST rust-1.68.1-powerpc64le-unknown-linux-gnu.tar.xz 231456980 BLAKE2B 3af660b564fd436f640d8f0420a72196330444a9cdcf8ef788844da0a84b074da134f98c4f3b59007dcf32ef42930163ae1491fa91c32e7ea5b5f370ef00349e SHA512 e79fa17d6407e108e21a1a3c868d8fef6506366ac0bb2699c9269b8a44c44a59d37e860ec6e8b009a539ae41a11a94c003b26c60e414c4f53e08a6302d196fef
DIST rust-1.68.1-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 01f6caed2b643931877dd9d601d2bc90d61c88e8dcdf93109e74dc945fc25e52395ef81b6eb0beaf867a9e5318daefe1a69a6ea146c92b943bb1d987eca74bf7 SHA512 7f93cdae421f127bf3801f1d42920e40558da39e32e9f0f6f8ab2b4803b2bd75bdb6ae9f77d3ce907e67239641d2aec7d8b86ea47cea6abc9e5a6046f91af24d
DIST rust-1.68.1-riscv64gc-unknown-linux-gnu.tar.xz 207979328 BLAKE2B b1faf40c7634a103aa3df2e4c76f78a208ba060d4fe3cfddf1f048b6559cc5c788f5a1f65341edbf80776d91603bd4f4f0e43839491af152057ba91675979af5 SHA512 f90f47e6ba446a844b85ddbb319fe171a2e253ff8782c3948de057cfd256823f269a94136604d74777b5b39ff2b0147061e6274610efb87f1b0320be6bb9617c
DIST rust-1.68.1-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d86cbc2b7893f6131c7888ca519f11a543f6f0a6e13bc46a2ae3f1199edfa87acbe2c8dbffc8c9b0e721bc9afafa377d455bb71b074bd5533d38e34caef51177 SHA512 ea60d7675e4becbfb701429eb761d82151294becc211b9b761c1572115a515edf6c1ab21758f5148682b39b4e36051d32b985b22af522166bb5c2d7e8c6ac05e
DIST rust-1.68.1-s390x-unknown-linux-gnu.tar.xz 234626596 BLAKE2B 35a4203d593ffc4a2037ee18ccc10cbc26a316ea682ad62de8f8c51e2569264919f448a841158323d62db016fdfa29631158a122d281168b447ed3a9c84e851a SHA512 cda2b3ff78a4783eb238d360949153a80cb8a076f13eb35dcb0db4e40e5c161f691dd87ae4e3ec358e7371b8836e2fcd93ecd017443ca9e5d8ab9ed8f0e36718
DIST rust-1.68.1-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1d38bee16c5c89332ffd65d2ea92dc8a95c5ed1ccd63a4e678ecb35da1d84338a15d68ebcd3e82a5a92cccf1bc9e9203978f5185dd1e6ef116fce51f8e62d77e SHA512 22c162efb2b98e912a2147369e439c4d478e8ec4213fa443823efbd0b2231fe50e7770a19244adcef9f713cd1457e6570fb2a65b8e454a46d7dc0bc1351397a8
DIST rust-1.68.1-x86_64-unknown-linux-gnu.tar.xz 185646128 BLAKE2B 52d8c59bcd8c1b716f8c834a681fe3d9876adf623c4ea9d05f348c1ec29b0efe8b5d60742f5b50200a7c3e2831fc5361172a361faccd4d8cf4261a714cd7d11a SHA512 8b48544577faec04ceaff63769020060d8ccb6f9283a246ba9f43ab19c1f23b480ce17441dfe74c1e1769d7314fb5da277600c6fa1784d5feb290c9041d15850
DIST rust-1.68.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5c2309f58a2d7a667211067d37428c88684790625321836bf06a676741c238908cdb0df31280b94730be9dc17de0a6f631f46bdd8d811b45688ea5b92ca3e2c6 SHA512 ee700dba9c6a9c29933039ea13c01b5ca2a01b4869b480e3c1352adaed108ed25435b94b12d8b9117dc379657738149a4f2a8f9adcbf74b108b70314f1429043
DIST rust-1.68.1-x86_64-unknown-linux-musl.tar.xz 270163680 BLAKE2B d094a08ffd1e9aa2a36a6d4c731c8468cbe9e61ada3d1caafb5266fde01abf8c40d2996f4f7579f6aa5513de3d6f9384a7ca9631c5ba2f6a0d6c3eefc9244ffe SHA512 b5cdab93ab5fc0757643259cdd3b69e37aafa304f1d84bf6e9c99553599bfad4616e318e2198542314cedeb0419a0b86e0d7e4699df040c6b8014392edc617c9
DIST rust-1.68.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B aac3764bcde2121733e177a7968e16b0f727837753d101889a2008f12158c076450e84f416f25e4b77ea42acc8e33e6efbefb67c87cdc2812059f9e1ec9b05cd SHA512 65a28cc79b6be8f8e0f2ec529d1d9e08323ccf50a437611af45c83931187bd730bb3cd29335b28a73aaecd12df397b43dd81cc08b6f710f5c59386977a8a363b
DIST rust-1.68.2-aarch64-unknown-linux-gnu.tar.xz 257441012 BLAKE2B 621615e68cfffb46552577a9e30e863518fa37f53bb8e00bc639f048d7f05910fd31473ca00242a83b3dafd96db73a19648e0b11641f26ccfaaca5ed17abb2b8 SHA512 77fabd0ff2a4e7df8142663932ca146c7f5b463cc7f1d4c2b3ca1c862c29f746a0ca77eff6d37fe582aa4c2cb2c007a1e5d0a1c0214caf1b0792b14934f693aa
DIST rust-1.68.2-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B eeba8414c9bf414f9a6de46045f9e49ab1a6436c30fcce989aedd2c0658557336f9e919b0372f33fcf11ff3fe64ab9ede54fb9d6e6f4ae8504a6b9401a6f7933 SHA512 f2edefb84d75653d3f107349f3962983ff56cc6538c75b8b00e25e790a51e19be10848906ccb90b80bf7742fca2dfa3bfdc4ce974aae6130c7dd71905c9bbbad
DIST rust-1.68.2-aarch64-unknown-linux-musl.tar.xz 235749524 BLAKE2B fc90040069f265d781d73f46bccff8df773830d2d178205126f7a1e67b5c22ca0d87dfeb47f46370522c758804e26fe29cdad29706045bd07404685afc2f77c3 SHA512 fceddcdb17f618c576b74590067f9cd476133e86b9c22079400de98489247aba07e12987f29c043067daf1f86e240d8990f0c02b7d58e647d75d8fe82d3229f5
@ -227,7 +195,6 @@ DIST rust-1.70.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 7c5be81109607f
DIST rust-src-1.65.0.tar.xz 2488012 BLAKE2B d48f5591e72e14084f2fb0d66c1365f1648060d514af23c0498e02adfd7223b1a79bd1f512859b058f9cabc4b88b9230d15960df7c30762a5263d1785b877a68 SHA512 247f822a9c2f16d1de29d1cf6fa7ff393b7c7fe01da66a7c0b4add6259d72403922b8b1bd1b511ed8a9cc0b2c12ff574945aa7fc76c731fba620b466bcdc2eac
DIST rust-src-1.66.1.tar.xz 2512096 BLAKE2B 514b8f9170d8a0e9b9deeeda27c5b83c18b7f038cb27a867fc4df1a0375b5c492793e67d0f0a2c26354ed1b58c699e1ff3e19f536dec10fc8b8211325dd4999a SHA512 3b77e29bf0803278d46aa5a484a2d74f242bf7f1ce6f5a6d1e84107630aa238620c91459f385f1b9f1bfb67c593ea5a274950a4db2975307cabc3a009b89f157
DIST rust-src-1.67.1.tar.xz 2522656 BLAKE2B 28f67cbac3d09af16f572c102890b49ffb4c610ebf379cf48ff4d0107afbb39587d2bcb7c5a4f811542f84dc3157557c762b006a6e89c54cd121d22bb677a770 SHA512 839266d2046b12954fd46f258a975a37c81cb61b6d2d9a5905fd6c83961d97c197f1b467c881d5078f3725293eb73ca402b002af3f47b6f7d431828f01d49a15
DIST rust-src-1.68.1.tar.xz 2536020 BLAKE2B a12e2037546f7139d2e5446e2652c6aca9c5709eba756673188910799e6e3f8c444fb2969ec446b7b8e904f0828b7f85fe57a1c3027693da7ef8180415709a54 SHA512 e9a77ed30f65dfcabd630d5546de22d831031bb27ba72f27ed952df30c76827a5cc363f521d99b6fa3d204965a29e10ab1b0b79d36114c5d7bf887bb849fc21e
DIST rust-src-1.68.2.tar.xz 2535692 BLAKE2B e56c0e48546479be30e3a22c36ccc620a69fc97486bab7fd3a45b942c6fadd160f126a805f4213cabc5d2fcf92d9fda1daa9b320d428958351ead861f617785f SHA512 0ec51c6ab2720dca0790eda81460a73857a68ca5517e959fe66b4b106a5158791493e729c0aa23e64a970102d071bca0684fb748340ac90a727035c4ef74814a
DIST rust-src-1.69.0.tar.xz 2405440 BLAKE2B 685ae443aab2a1ccf3c4024be9a96f476ba56b635d4e3377670c7293d16e56fc6a21f8054155c9408a71a34ba37aea61071c50f75baa9ff0193b3199d7ca431c SHA512 87866577ac94636749c17c30b50866ab047ed35817d20e5b9e1356de573e01d6dee24518c4f85c0b1d0f4dd9ce9a87873fd2a635937fd202f4baeeaa82bb99cd
DIST rust-src-1.70.0.tar.xz 2422004 BLAKE2B 2f6b22d767ca93ed5d02d432deb743e10d73fa3f767facaf958b43281cdf6786d399f83a00a7154e3935e4ec65137c15162009d20b0b97a00f9c14ff90cae007 SHA512 0ec5ecacbf46f503aa6492d518fb747496cb09f37ae377e12849c2c9f8e5c3fb5a09385a2e5912f492f4fe4b76d7e74872ca9ced18ad46d8e11671721ec03b5d

@ -1,229 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
MY_P="rust-${PV}"
# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2023-03-23/rust-src-${PV}.tar.xz"
GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash
DESCRIPTION="Systems programming language from Mozilla"
HOMEPAGE="https://www.rust-lang.org/"
SRC_URI="$(rust_all_arch_uris ${MY_P})
rust-src? ( ${MY_SRC_URI} )
"
# Keep this separate to allow easy commenting out if not yet built
#SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
SLOT="stable"
KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~x86"
IUSE="clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
DEPEND=""
RDEPEND="
>=app-eselect/eselect-rust-20190311
|| (
dev-libs/openssl-compat:1.1.1
<dev-libs/openssl-3
)
sys-apps/lsb-release
sys-devel/gcc:*
"
BDEPEND="
prefix? ( dev-util/patchelf )
verify-sig? ( sec-keys/openpgp-keys-rust )
"
REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
QA_PREBUILT="
opt/${P}/bin/.*
opt/${P}/lib/.*.so
opt/${P}/libexec/.*
opt/${P}/lib/rustlib/.*/bin/.*
opt/${P}/lib/rustlib/.*/lib/.*
"
# An rmeta file is custom binary format that contains the metadata for the crate.
# rmeta files do not support linking, since they do not contain compiled object files.
# so we can safely silence the warning for this QA check.
QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta"
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}/usr/share/openpgp-keys/rust.asc"
pkg_pretend() {
if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then
die "${CHOST} is not supported by upstream Rust. You must use a hard float version."
fi
}
src_unpack() {
# sadly rust-src tarball does not have corresponding .asc file
# so do partial verification
if use verify-sig; then
for f in ${A}; do
if [[ -f ${DISTDIR}/${f}.asc ]]; then
verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc"
fi
done
fi
default_src_unpack
mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
}
patchelf_for_bin() {
local filetype=$(file -b ${1})
if [[ ${filetype} == *ELF*interpreter* ]]; then
einfo "${1}'s interpreter changed"
patchelf ${1} --set-interpreter ${2} || die
elif [[ ${filetype} == *script* ]]; then
hprefixify ${1}
fi
}
multilib_src_install() {
if multilib_is_native_abi; then
# start native abi install
pushd "${S}" >/dev/null || die
local analysis std
analysis="$(grep 'analysis' ./components)"
std="$(grep 'std' ./components)"
local components="rustc,cargo,${std}"
use doc && components="${components},rust-docs"
use clippy && components="${components},clippy-preview"
use rustfmt && components="${components},rustfmt-preview"
use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
# Rust component 'rust-src' is extracted from separate archive
if use rust-src; then
einfo "Combining rust and rust-src installers"
mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die
echo rust-src >> ./components || die
components="${components},rust-src"
fi
./install.sh \
--components="${components}" \
--disable-verify \
--prefix="${ED}/opt/${P}" \
--mandir="${ED}/opt/${P}/man" \
--disable-ldconfig \
|| die
if use prefix; then
local interpreter=$(patchelf --print-interpreter ${EPREFIX}/bin/bash)
ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin"
find "${ED}/opt/${P}/bin" -type f -print0 | \
while IFS= read -r -d '' filename; do
patchelf_for_bin ${filename} ${interpreter} \; || die
done
eend $?
fi
local symlinks=(
cargo
rustc
rustdoc
rust-gdb
rust-gdbgui
rust-lldb
)
use clippy && symlinks+=( clippy-driver cargo-clippy )
use rustfmt && symlinks+=( rustfmt cargo-fmt )
use rust-analyzer && symlinks+=( rust-analyzer )
einfo "installing eselect-rust symlinks and paths"
local i
for i in "${symlinks[@]}"; do
# we need realpath on /usr/bin/* symlink return version-appended binary path.
# so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver>
local ver_i="${i}-bin-${PV}"
ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die
dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}"
done
# symlinks to switch components to active rust in eselect
dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}"
dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}"
dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}"
dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}"
# make all capital underscored variable
local CARGO_TRIPLET="$(rust_abi)"
CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
CARGO_TRIPLET="${CARGO_TRIPLET^^}"
cat <<-_EOF_ > "${T}/50${P}"
LDPATH="${EPREFIX}/usr/lib/rust/lib"
MANPATH="${EPREFIX}/usr/lib/rust/man"
$(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
_EOF_
doenvd "${T}/50${P}"
# note: eselect-rust adds EROOT to all paths below
cat <<-_EOF_ > "${T}/provider-${P}"
/usr/bin/cargo
/usr/bin/rustdoc
/usr/bin/rust-gdb
/usr/bin/rust-gdbgui
/usr/bin/rust-lldb
/usr/lib/rustlib
/usr/lib/rust/lib
/usr/lib/rust/man
/usr/share/doc/rust
_EOF_
if use clippy; then
echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
fi
if use rustfmt; then
echo /usr/bin/rustfmt >> "${T}/provider-${P}"
echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
fi
if use rust-analyzer; then
echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
fi
insinto /etc/env.d/rust
doins "${T}/provider-${P}"
popd >/dev/null || die
#end native abi install
else
local rust_target
rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
dodir "/opt/${P}/lib/rustlib"
cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\
"${ED}/opt/${P}/lib/rustlib" || die
fi
# BUG: installs x86_64 binary on other arches
rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die
}
pkg_postinst() {
eselect rust update
elog "Rust installs a helper script for calling GDB now,"
elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
if has_version app-editors/emacs; then
elog "install app-emacs/rust-mode to get emacs support for rust."
fi
if has_version app-editors/gvim || has_version app-editors/vim; then
elog "install app-vim/rust-vim to get vim support for rust."
fi
}
pkg_postrm() {
eselect rust cleanup
}

@ -20,7 +20,7 @@ SRC_URI="$(rust_all_arch_uris ${MY_P})
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
SLOT="stable"
KEYWORDS="amd64 arm arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 x86"
KEYWORDS="amd64 arm arm64 ~mips ~ppc ppc64 ~riscv ~s390 x86"
IUSE="clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
DEPEND=""

@ -20,7 +20,7 @@ SRC_URI="$(rust_all_arch_uris ${MY_P})
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
SLOT="stable"
#KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~x86"
# KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~x86"
IUSE="clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
DEPEND=""
@ -204,6 +204,11 @@ multilib_src_install() {
# BUG: installs x86_64 binary on other arches
rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die
# libLLVM must NOT be stripped
# it's not present on all arches, but if present and stripped rustc will segfault.
# https://github.com/rust-lang/rust/issues/112286
dostrip -x *libLLVM-*
}
pkg_postinst() {

@ -196,8 +196,6 @@ DIST rustc-1.66.1-src.tar.xz 141692940 BLAKE2B 3fae45345998386fda1b11ec896fac461
DIST rustc-1.66.1-src.tar.xz.asc 801 BLAKE2B 18e27c88b39eed29147854733c5533b7fffc417ff0b3bd5982174ffa2c5f6d217e2e28ced4da75863a4557800e7ad7a124a4bbb0def4c20da7ed543602185941 SHA512 4511f41ad3d098a339ea3173e3ffa692d1d3cd3ec9dd45af68e4491471f9a72a2e866f6924090eb366bdf6f856650d981eabe1cd851843a17f4a6e4f1dfbc8a9
DIST rustc-1.67.1-src.tar.xz 142758844 BLAKE2B 55b2a98592b1a2e465b7fb224607cbcb23cb13d5053b51abbd2e45428794f457b6925955c5c562f577830353e5287929b3588ee78a30036bf0ca13a3610316d9 SHA512 42d77ee93b168ae139b026138fb48d925624ff436a836aa97ee235f870e61ea11643b0cf7ad20bcafda774c6cd3855a4bc10a2e2ed1c4d82c6f15158963b304d
DIST rustc-1.67.1-src.tar.xz.asc 801 BLAKE2B eb507c6f53c592921eb31cccb17c9d6027c67fb1311726f2d25fe7d1f8a1aa051efb99d7207a5e4477df0b75898783437e653fa041ed7daa27e7a7c4263ec230 SHA512 6c962f680d74251b55f77a43d6e383be53bacff8428e0d003bda207de1fea7f716b88f16686d22a88d99518a4834bf299731855fb030477a995d5e1f3d0024f4
DIST rustc-1.68.1-src.tar.xz 147834548 BLAKE2B 98e02c1ff3ed37cd52d1f348331ffe007583f078fbd1bc581eb32a098eee816f301cd833ecf9f806b8e0c673aa963b34d2e357c089bdb59a8a7464ab46b18307 SHA512 cf3921bc260db54b0f3afc0e6bc9fe8d560ddb81de5d2d4496746307d42a8010291f119d0cfc463996efce6ef829a0494b4eb6145e21c94fd113ff51ee010e21
DIST rustc-1.68.1-src.tar.xz.asc 801 BLAKE2B 5e0a2d95360fb5d8bed9e759111db225315b93d3042af19bb9fc9f239cabf9f32b85f2e616913ff3ce5fc8111deeb972bc184584ca473216b7a5320a255304a6 SHA512 5330405c09077070a63c04fc1c7059219d046fbaa24997861365199e48da98be4fe2a04fdc5c54a03166097bde58b4e51bdc8296ca89974d2dcec1da279bdab2
DIST rustc-1.68.2-src.tar.xz 147835648 BLAKE2B 4b6deab818d915afe67a96f4d32a758c15a832041a77d9da5d065a903ea2718e0e7ebbc0cd1baaa436b655bdb93a62e0fb76f9e37aed595c064e0857201bb091 SHA512 8b085d0351e19100e9abc24b10c44a0939a1d35ba23421da4ece345d7373f7dbad1dc6a2ae153c1259404dd96b41e2682e711cf2b0b63fd03a196760cddbcdd3
DIST rustc-1.68.2-src.tar.xz.asc 801 BLAKE2B 6ac2444950e5f919d09823ea3eef50364ad7b295126b090178872970f03c43ca9747779e0873138ca3a0b753eff79d2ef36d8b70c6a6050039ba9f9018571016 SHA512 86ccbb8ea89f820ba92ad9cbfb8f4bda3393e2c24d699355fd559a2339ff39bcce2a027ebd1b043f11de24b00cdac8c42d252915b36e711eb1d80f49a8007d47
DIST rustc-1.69.0-src.tar.xz 127242864 BLAKE2B 03f7f3784cb137bede0593dfc008347bb0bb25c982c058175ac2b0442c2593a5a7e2c4539c848ad4375d994c1b7900019120790f0fe12385b413eecc1647d70a SHA512 724398fc208ec18adbd8ba81a445e23d1001b746990f36b869126be8a45f1cdfa75f5b9cbdd0abbab506f91a56d3736ab247677699ebd69525245558cfc01a60

@ -126,7 +126,7 @@ RDEPEND="${DEPEND}
REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
miri? ( nightly )
parallel-compiler? ( nightly )
rust-analyzer? ( !wasm )
rust-analyzer? ( !wasm rust-src )
test? ( ${ALL_LLVM_TARGETS[*]} )
wasm? ( llvm_targets_WebAssembly )
x86? ( cpu_flags_x86_sse2 )

@ -124,6 +124,7 @@ RDEPEND="${DEPEND}
REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
miri? ( nightly )
parallel-compiler? ( nightly )
rust-analyzer? ( rust-src )
test? ( ${ALL_LLVM_TARGETS[*]} )
wasm? ( llvm_targets_WebAssembly )
x86? ( cpu_flags_x86_sse2 )

@ -124,6 +124,7 @@ RDEPEND="${DEPEND}
REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
miri? ( nightly )
parallel-compiler? ( nightly )
rust-analyzer? ( rust-src )
test? ( ${ALL_LLVM_TARGETS[*]} )
wasm? ( llvm_targets_WebAssembly )
x86? ( cpu_flags_x86_sse2 )

@ -1,741 +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 bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
if [[ ${PV} = *beta* ]]; then
betaver=${PV//*beta}
BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
MY_P="rustc-beta"
SLOT="beta/${PV}"
SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
else
ABI_VER="$(ver_cut 1-2)"
SLOT="stable/${ABI_VER}"
MY_P="rustc-${PV}"
SRC="${MY_P}-src.tar.xz"
KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
fi
RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).1"
DESCRIPTION="Systems programming language from Mozilla"
HOMEPAGE="https://www.rust-lang.org/"
SRC_URI="
https://static.rust-lang.org/dist/${SRC}
verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
!system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
"
# keep in sync with llvm ebuild of the same version as bundled one.
ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430
NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore )
ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
IUSE="clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind miri nightly parallel-compiler profiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
# Please keep the LLVM dependency block separate. Since LLVM is slotted,
# we need to *really* make sure we're not pulling more than one slot
# simultaneously.
# How to use it:
# List all the working slots in LLVM_VALID_SLOTS, newest first.
LLVM_VALID_SLOTS=( 15 )
LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
# (-) usedep needed because we may build with older llvm without that target
LLVM_DEPEND="|| ( "
for _s in ${LLVM_VALID_SLOTS[@]}; do
LLVM_DEPEND+=" ( "
for _x in ${ALL_LLVM_TARGETS[@]}; do
LLVM_DEPEND+="
${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )
wasm? ( sys-devel/lld:${_s} )"
done
LLVM_DEPEND+=" )"
done
unset _s _x
LLVM_DEPEND+=" )
<sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
"
# to bootstrap we need at least exactly previous version, or same.
# most of the time previous versions fail to bootstrap with newer
# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
# but it fails to bootstrap with 1.48.x
# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
BOOTSTRAP_DEPEND="||
(
=dev-lang/rust-"${RUST_DEP_PREV}"
=dev-lang/rust-bin-"${RUST_DEP_PREV}"
=dev-lang/rust-"${RUST_DEP_CURR}"
=dev-lang/rust-bin-"${RUST_DEP_CURR}"
)
"
BDEPEND="${PYTHON_DEPS}
app-eselect/eselect-rust
|| (
>=sys-devel/gcc-4.7
>=sys-devel/clang-3.5
)
system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
!system-llvm? (
>=dev-util/cmake-3.13.4
dev-util/ninja
)
test? ( sys-devel/gdb )
verify-sig? ( sec-keys/openpgp-keys-rust )
"
DEPEND="
>=app-arch/xz-utils-5.2
net-misc/curl:=[http2,ssl]
sys-libs/zlib:=
dev-libs/openssl:0=
system-llvm? (
${LLVM_DEPEND}
llvm-libunwind? ( sys-libs/llvm-libunwind:= )
)
!system-llvm? (
!llvm-libunwind? (
elibc_musl? ( sys-libs/libunwind:= )
)
)
"
RDEPEND="${DEPEND}
app-eselect/eselect-rust
sys-apps/lsb-release
"
REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
miri? ( nightly )
parallel-compiler? ( nightly )
test? ( ${ALL_LLVM_TARGETS[*]} )
wasm? ( llvm_targets_WebAssembly )
x86? ( cpu_flags_x86_sse2 )
"
# we don't use cmake.eclass, but can get a warning
CMAKE_WARN_UNUSED_CLI=no
QA_FLAGS_IGNORED="
usr/lib/${PN}/${PV}/bin/.*
usr/lib/${PN}/${PV}/libexec/.*
usr/lib/${PN}/${PV}/lib/lib.*.so
usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
"
QA_SONAME="
usr/lib/${PN}/${PV}/lib/lib.*.so.*
usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
"
QA_PRESTRIPPED="
usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
"
# An rmeta file is custom binary format that contains the metadata for the crate.
# rmeta files do not support linking, since they do not contain compiled object files.
# so we can safely silence the warning for this QA check.
QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
# causes double bootstrap
RESTRICT="test"
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/rust.asc
PATCHES=(
"${FILESDIR}"/1.68.0-ignore-broken-and-non-applicable-tests.patch
"${FILESDIR}"/1.62.1-musl-dynamic-linking.patch
"${FILESDIR}"/1.67.0-doc-wasm.patch
)
S="${WORKDIR}/${MY_P}-src"
toml_usex() {
usex "${1}" true false
}
bootstrap_rust_version_check() {
# never call from pkg_pretend. eselect-rust may be not installed yet.
[[ ${MERGE_TYPE} == binary ]] && return
local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
rustc_version=${rustc_version[0]#rust-bin-}
rustc_version=${rustc_version#rust-}
[[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
eerror "Rust >=${rustc_wanted} is required"
eerror "please run 'eselect rust' and set correct rust version"
die "selected rust version is too old"
elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
eerror "Rust <${rustc_toonew} is required"
eerror "please run 'eselect rust' and set correct rust version"
die "selected rust version is too new"
else
einfo "Using rust ${rustc_version} to build"
fi
}
pre_build_checks() {
local M=8192
# multiply requirements by 1.3 if we are doing x86-multilib
if use amd64; then
M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
fi
M=$(( $(usex clippy 128 0) + ${M} ))
M=$(( $(usex miri 128 0) + ${M} ))
M=$(( $(usex rustfmt 256 0) + ${M} ))
# add 2G if we compile llvm and 256M per llvm_target
if ! use system-llvm; then
M=$(( 2048 + ${M} ))
local ltarget
for ltarget in ${ALL_LLVM_TARGETS[@]}; do
M=$(( $(usex ${ltarget} 256 0) + ${M} ))
done
fi
M=$(( $(usex wasm 256 0) + ${M} ))
M=$(( $(usex debug 2 1) * ${M} ))
eshopts_push -s extglob
if is-flagq '-g?(gdb)?([1-9])'; then
M=$(( 15 * ${M} / 10 ))
fi
eshopts_pop
M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
M=$(( $(usex doc 256 0) + ${M} ))
CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
}
llvm_check_deps() {
has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
}
# Is LLVM being linked against libc++?
is_libcxx_linked() {
local code='#include <ciso646>
#if defined(_LIBCPP_VERSION)
HAVE_LIBCXX
#endif
'
local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
[[ ${out} == *HAVE_LIBCXX* ]]
}
pkg_pretend() {
pre_build_checks
}
pkg_setup() {
pre_build_checks
python-any-r1_pkg_setup
export LIBGIT2_NO_PKG_CONFIG=1 #749381
use system-bootstrap && bootstrap_rust_version_check
if use system-llvm; then
llvm_pkg_setup
local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
export LLVM_LINK_SHARED=1
export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
fi
}
esetup_unwind_hack() {
# https://bugs.gentoo.org/870280
# this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
# it should trigger for internal bootstrap or system-bootstrap with rust-bin.
# the whole idea is for stage0 to bootstrap with fake libgcc_s.
# final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
local fakelib="${T}/fakelib"
mkdir -p "${fakelib}" || die
# we need both symlinks, one for cargo runtime, other for linker.
ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
export LD_LIBRARY_PATH="${fakelib}"
export RUSTFLAGS+=" -L${fakelib}"
# this is a literally magic variable that gets through cargo cache, without it some
# crates ignore RUSTFLAGS.
# this variable can not contain leading space.
export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
}
src_prepare() {
if ! use system-bootstrap; then
has_version sys-devel/gcc || esetup_unwind_hack
local rust_stage0_root="${WORKDIR}"/rust-stage0
local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
"${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
--without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
fi
default
}
src_configure() {
filter-flags '-flto*' # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
local rust_target="" rust_targets="" arch_cflags
# Collect rust target names to compile standard libs for all ABIs.
for v in $(multilib_get_enabled_abi_pairs); do
rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
done
if use wasm; then
rust_targets+=",\"wasm32-unknown-unknown\""
if use system-llvm; then
# un-hardcode rust-lld linker for this target
# https://bugs.gentoo.org/715348
sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm_base.rs || die
fi
fi
rust_targets="${rust_targets#,}"
local tools='"cargo"'
use clippy && tools+=',"clippy"'
use miri && tools+=',"miri"'
use profiler && tools+=',"rust-demangler"'
use rustfmt && tools+=',"rustfmt"'
use rust-analyzer && tools+=',"rust-analyzer","analysis"'
use rust-src && tools+=',"src"'
local rust_stage0_root
if use system-bootstrap; then
local printsysroot
printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
rust_stage0_root="${printsysroot}"
else
rust_stage0_root="${WORKDIR}"/rust-stage0
fi
# in case of prefix it will be already prefixed, as --print sysroot returns full path
[[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
rust_target="$(rust_abi)"
local cm_btype="$(usex debug DEBUG RELEASE)"
cat <<- _EOF_ > "${S}"/config.toml
changelog-seen = 2
[llvm]
download-ci-llvm = false
optimize = $(toml_usex !debug)
release-debuginfo = $(toml_usex debug)
assertions = $(toml_usex debug)
ninja = true
targets = "${LLVM_TARGETS// /;}"
experimental-targets = ""
link-shared = $(toml_usex system-llvm)
$(if is_libcxx_linked; then
# https://bugs.gentoo.org/732632
echo "use-libcxx = true"
echo "static-libstdcpp = false"
fi)
$(case "${rust_target}" in
i586-*-linux-*)
# https://github.com/rust-lang/rust/issues/93059
echo 'cflags = "-fcf-protection=none"'
echo 'cxxflags = "-fcf-protection=none"'
echo 'ldflags = "-fcf-protection=none"'
;;
*)
;;
esac)
[llvm.build-config]
CMAKE_VERBOSE_MAKEFILE = "ON"
CMAKE_C_FLAGS_${cm_btype} = "${CFLAGS}"
CMAKE_CXX_FLAGS_${cm_btype} = "${CXXFLAGS}"
CMAKE_EXE_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}"
CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}"
CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}"
CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = "${ARFLAGS}"
[build]
build-stage = 2
test-stage = 2
build = "${rust_target}"
host = ["${rust_target}"]
target = [${rust_targets}]
cargo = "${rust_stage0_root}/bin/cargo"
rustc = "${rust_stage0_root}/bin/rustc"
rustfmt = "${rust_stage0_root}/bin/rustfmt"
docs = $(toml_usex doc)
compiler-docs = false
submodules = false
python = "${EPYTHON}"
locked-deps = true
vendor = true
extended = true
tools = [${tools}]
verbose = 2
sanitizers = false
profiler = $(toml_usex profiler)
cargo-native-static = false
[install]
prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
sysconfdir = "etc"
docdir = "share/doc/rust"
bindir = "bin"
libdir = "lib"
mandir = "share/man"
[rust]
# https://github.com/rust-lang/rust/issues/54872
codegen-units-std = 1
optimize = true
debug = $(toml_usex debug)
debug-assertions = $(toml_usex debug)
debug-assertions-std = $(toml_usex debug)
debuginfo-level = $(usex debug 2 0)
debuginfo-level-rustc = $(usex debug 2 0)
debuginfo-level-std = $(usex debug 2 0)
debuginfo-level-tools = $(usex debug 2 0)
debuginfo-level-tests = 0
backtrace = true
incremental = false
default-linker = "$(tc-getCC)"
parallel-compiler = $(toml_usex parallel-compiler)
channel = "$(usex nightly nightly stable)"
description = "gentoo"
rpath = false
verbose-tests = true
optimize-tests = $(toml_usex !debug)
codegen-tests = true
dist-src = false
remap-debuginfo = true
lld = $(usex system-llvm false $(toml_usex wasm))
# only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
# https://github.com/rust-lang/rust/issues/74976
# https://github.com/rust-lang/rust/issues/76526
deny-warnings = $(usex wasm $(usex doc false true) true)
backtrace-on-ice = true
jemalloc = false
[dist]
src-tarball = false
compression-formats = ["xz"]
_EOF_
for v in $(multilib_get_enabled_abi_pairs); do
rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
arch_cflags="$(get_abi_CFLAGS ${v##*.})"
export CFLAGS_${rust_target//-/_}="${arch_cflags}"
cat <<- _EOF_ >> "${S}"/config.toml
[target.${rust_target}]
ar = "$(tc-getAR)"
cc = "$(tc-getCC)"
cxx = "$(tc-getCXX)"
linker = "$(tc-getCC)"
ranlib = "$(tc-getRANLIB)"
llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
_EOF_
if use system-llvm; then
cat <<- _EOF_ >> "${S}"/config.toml
llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
_EOF_
fi
# by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
# but we patch it and set to false here as well
if use elibc_musl; then
cat <<- _EOF_ >> "${S}"/config.toml
crt-static = false
_EOF_
fi
done
if use wasm; then
cat <<- _EOF_ >> "${S}"/config.toml
[target.wasm32-unknown-unknown]
linker = "$(usex system-llvm lld rust-lld)"
# wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
profiler = false
_EOF_
fi
if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
# experimental cross support
# discussion: https://bugs.gentoo.org/679878
# TODO: c*flags, clang, system-llvm, cargo.eclass target support
# it would be much better if we could split out stdlib
# complilation to separate ebuild and abuse CATEGORY to
# just install to /usr/lib/rustlib/<target>
# extra targets defined as a bash array
# spec format: <LLVM target>:<rust-target>:<CTARGET>
# best place would be /etc/portage/env/dev-lang/rust
# Example:
# RUST_CROSS_TARGETS=(
# "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
# )
# no extra hand holding is done, no target transformations, all
# values are passed as-is with just basic checks, so it's up to user to supply correct values
# valid rust targets can be obtained with
# rustc --print target-list
# matching cross toolchain has to be installed
# matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
# only gcc toolchains installed with crossdev are checked for now.
# BUG: we can't pass host flags to cross compiler, so just filter for now
# BUG: this should be more fine-grained.
filter-flags '-mcpu=*' '-march=*' '-mtune=*'
local cross_target_spec
for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
# extracts first element form <LLVM target>:<rust-target>:<CTARGET>
local cross_llvm_target="${cross_target_spec%%:*}"
# extracts toolchain triples, <rust-target>:<CTARGET>
local cross_triples="${cross_target_spec#*:}"
# extracts first element after before : separator
local cross_rust_target="${cross_triples%%:*}"
# extracts last element after : separator
local cross_toolchain="${cross_triples##*:}"
use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
cat <<- _EOF_ >> "${S}"/config.toml
[target.${cross_rust_target}]
ar = "${cross_toolchain}-ar"
cc = "${cross_toolchain}-gcc"
cxx = "${cross_toolchain}-g++"
linker = "${cross_toolchain}-gcc"
ranlib = "${cross_toolchain}-ranlib"
_EOF_
if use system-llvm; then
cat <<- _EOF_ >> "${S}"/config.toml
llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
_EOF_
fi
if [[ "${cross_toolchain}" == *-musl* ]]; then
cat <<- _EOF_ >> "${S}"/config.toml
musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
_EOF_
fi
# append cross target to "normal" target list
# example 'target = ["powerpc64le-unknown-linux-gnu"]'
# becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
rust_targets="${rust_targets},\"${cross_rust_target}\""
sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
ewarn
ewarn "Enabled ${cross_rust_target} rust target"
ewarn "Using ${cross_toolchain} cross toolchain"
ewarn
if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
ewarn "'sys-devel/binutils[multitarget]' is not installed"
ewarn "'strip' will be unable to strip cross libraries"
ewarn "cross targets will be installed with full debug information"
ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
ewarn
ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
ewarn
fi
done
fi # I_KNOW_WHAT_I_AM_DOING_CROSS
einfo "Rust configured with the following flags:"
echo
echo RUSTFLAGS="\"${RUSTFLAGS}\""
echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
env | grep "CARGO_TARGET_.*_RUSTFLAGS="
env | grep "CFLAGS_.*"
echo
einfo "config.toml contents:"
cat "${S}"/config.toml || die
echo
}
src_compile() {
RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
}
src_test() {
# https://rustc-dev-guide.rust-lang.org/tests/intro.html
# those are basic and codegen tests.
local tests=(
codegen
codegen-units
compile-fail
incremental
mir-opt
pretty
run-make
)
# fails if llvm is not built with ALL targets.
# and known to fail with system llvm sometimes.
use system-llvm || tests+=( assembly )
# fragile/expensive/less important tests
# or tests that require extra builds
# TODO: instead of skipping, just make some nonfatal.
if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
tests+=(
rustdoc
rustdoc-js
rustdoc-js-std
rustdoc-ui
run-make-fulldeps
ui
ui-fulldeps
)
fi
local i failed=()
einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
for i in "${tests[@]}"; do
local t="src/test/${i}"
einfo "rust_src_test: running ${t}"
if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
-j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
then
failed+=( "${t}" )
eerror "rust_src_test: ${t} failed"
fi
done
if [[ ${#failed[@]} -ne 0 ]]; then
eerror "rust_src_test: failure summary: ${failed[@]}"
die "aborting due to test failures"
fi
}
src_install() {
DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
# bug #689562, #689160
rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
local symlinks=(
cargo
rustc
rustdoc
rust-gdb
rust-gdbgui
rust-lldb
)
use clippy && symlinks+=( clippy-driver cargo-clippy )
use miri && symlinks+=( miri cargo-miri )
use profiler && symlinks+=( rust-demangler )
use rustfmt && symlinks+=( rustfmt cargo-fmt )
use rust-analyzer && symlinks+=( rust-analyzer )
einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
local i
for i in "${symlinks[@]}"; do
# we need realpath on /usr/bin/* symlink return version-appended binary path.
# so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
# need to fix eselect-rust to remove this hack.
local ver_i="${i}-${PV}"
if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
einfo "Installing ${i} symlink"
ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
else
ewarn "${i} symlink requested, but source file not found"
ewarn "please report this"
fi
dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
done
# symlinks to switch components to active rust in eselect
dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
newenvd - "50${P}" <<-_EOF_
LDPATH="${EPREFIX}/usr/lib/rust/lib"
MANPATH="${EPREFIX}/usr/lib/rust/man"
_EOF_
rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
# note: eselect-rust adds EROOT to all paths below
cat <<-_EOF_ > "${T}/provider-${P}"
/usr/bin/cargo
/usr/bin/rustdoc
/usr/bin/rust-gdb
/usr/bin/rust-gdbgui
/usr/bin/rust-lldb
/usr/lib/rustlib
/usr/lib/rust/lib
/usr/lib/rust/libexec
/usr/lib/rust/man
/usr/share/doc/rust
_EOF_
if use clippy; then
echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
fi
if use miri; then
echo /usr/bin/miri >> "${T}/provider-${P}"
echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
fi
if use profiler; then
echo /usr/bin/rust-demangler >> "${T}/provider-${P}"
fi
if use rustfmt; then
echo /usr/bin/rustfmt >> "${T}/provider-${P}"
echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
fi
if use rust-analyzer; then
echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
fi
insinto /etc/env.d/rust
doins "${T}/provider-${P}"
if use dist; then
insinto "/usr/lib/${PN}/${PV}/dist"
doins -r "${S}/build/dist/."
fi
}
pkg_postinst() {
eselect rust update
if has_version sys-devel/gdb || has_version dev-util/lldb; then
elog "Rust installs a helper script for calling GDB and LLDB,"
elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
fi
if has_version app-editors/emacs; then
elog "install app-emacs/rust-mode to get emacs support for rust."
fi
if has_version app-editors/gvim || has_version app-editors/vim; then
elog "install app-vim/rust-vim to get vim support for rust."
fi
}
pkg_postrm() {
eselect rust cleanup
}

@ -124,6 +124,7 @@ RDEPEND="${DEPEND}
REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
miri? ( nightly )
parallel-compiler? ( nightly )
rust-analyzer? ( rust-src )
test? ( ${ALL_LLVM_TARGETS[*]} )
wasm? ( llvm_targets_WebAssembly )
x86? ( cpu_flags_x86_sse2 )

@ -19,7 +19,7 @@ else
SLOT="stable/${ABI_VER}"
MY_P="rustc-${PV}"
SRC="${MY_P}-src.tar.xz"
KEYWORDS="amd64 arm arm64 ~mips ~ppc ~ppc64 ~riscv ~sparc x86"
KEYWORDS="amd64 arm arm64 ~mips ~ppc ppc64 ~riscv ~sparc x86"
fi
RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).2"
@ -124,6 +124,7 @@ RDEPEND="${DEPEND}
REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
miri? ( nightly )
parallel-compiler? ( nightly )
rust-analyzer? ( rust-src )
test? ( ${ALL_LLVM_TARGETS[*]} )
wasm? ( llvm_targets_WebAssembly )
x86? ( cpu_flags_x86_sse2 )

@ -19,7 +19,7 @@ else
SLOT="stable/${ABI_VER}"
MY_P="rustc-${PV}"
SRC="${MY_P}-src.tar.xz"
#KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
# KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
fi
RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
@ -124,6 +124,7 @@ RDEPEND="${DEPEND}
REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
miri? ( nightly )
parallel-compiler? ( nightly )
rust-analyzer? ( rust-src )
test? ( ${ALL_LLVM_TARGETS[*]} )
wasm? ( llvm_targets_WebAssembly )
x86? ( cpu_flags_x86_sse2 )

Binary file not shown.

@ -0,0 +1,43 @@
From ace9871f65d11b5d73f0b9ee8cf5d2807439442d Mon Sep 17 00:00:00 2001
From: Antonio <antoniolrt@gmail.com>
Date: Fri, 2 Jun 2023 15:03:10 -0300
Subject: [PATCH] Handle null return from iniparser_getstring
Fix handling of NULL returns from iniparser_getstring in
iniparser_getboolean, iniparser_getlongint and iniparser_getdouble,
avoiding a crash.
---
src/iniparser.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/iniparser.c b/src/iniparser.c
index f1d1658..dbceb20 100644
--- a/src/iniparser.c
+++ b/src/iniparser.c
@@ -456,7 +456,7 @@ long int iniparser_getlongint(const dictionary * d, const char * key, long int n
const char * str ;
str = iniparser_getstring(d, key, INI_INVALID_KEY);
- if (str==INI_INVALID_KEY) return notfound ;
+ if (str==NULL || str==INI_INVALID_KEY) return notfound ;
return strtol(str, NULL, 0);
}
@@ -511,7 +511,7 @@ double iniparser_getdouble(const dictionary * d, const char * key, double notfou
const char * str ;
str = iniparser_getstring(d, key, INI_INVALID_KEY);
- if (str==INI_INVALID_KEY) return notfound ;
+ if (str==NULL || str==INI_INVALID_KEY) return notfound ;
return atof(str);
}
@@ -553,7 +553,7 @@ int iniparser_getboolean(const dictionary * d, const char * key, int notfound)
const char * c ;
c = iniparser_getstring(d, key, INI_INVALID_KEY);
- if (c==INI_INVALID_KEY) return notfound ;
+ if (c==NULL || c==INI_INVALID_KEY) return notfound ;
if (c[0]=='y' || c[0]=='Y' || c[0]=='1' || c[0]=='t' || c[0]=='T') {
ret = 1 ;
} else if (c[0]=='n' || c[0]=='N' || c[0]=='0' || c[0]=='f' || c[0]=='F') {

@ -0,0 +1,75 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit toolchain-funcs flag-o-matic
DESCRIPTION="A free stand-alone ini file parsing library"
HOMEPAGE="https://github.com/ndevilla/iniparser"
SRC_URI="https://github.com/ndevilla/iniparser/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="4"
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"
BDEPEND="doc? ( app-doc/doxygen )"
PATCHES=(
${FILESDIR}/${P}-CVE-null-getstring.patch # upstream, bug #907928
)
_newlib_so_with_symlinks() {
local source="${1}" base="${2}" current="${3}" revision="${4}" age="${5}"
newlib.so ${source} ${base}.so.${current}.${revision}.${age}
local i
for i in ".${current}" '' ; do
dosym ${base}.so.${current}.${revision}.${age} /usr/$(get_libdir)/${base}.so${i}
done
}
src_prepare() {
default
rm -r html || die
}
src_configure() {
append-lfs-flags
}
_emake() {
emake CC="$(tc-getCC)" AR="$(tc-getAR)" V=1 \
SO_TARGET=lib${PN}${SLOT}.so.1 \
ADDITIONAL_CFLAGS= \
"$@"
}
src_compile() {
_emake
}
src_test() {
_emake -C test
}
src_install() {
_newlib_so_with_symlinks lib${PN}${SLOT}.so.1 lib${PN}${SLOT} 1 0 0
insinto /usr/include/${PN}${SLOT}
doins src/*.h
if use doc; then
emake -C doc
HTML_DOCS=( html/. )
fi
if use examples; then
docinto examples
dodoc -r example/.
docompress -x /usr/share/doc/${PF}/examples
fi
einstalldocs
}

@ -5,10 +5,6 @@
<email>samba@gentoo.org</email>
<name>Samba Team</name>
</maintainer>
<maintainer type="person">
<email>grobian@gentoo.org</email>
<name>Fabian Groffen</name>
</maintainer>
<upstream>
<remote-id type="github">ndevilla/iniparser</remote-id>
</upstream>

@ -10,7 +10,7 @@ EAPI=8
# any subsequent ones linked within so you're covered for a while.)
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"
HOMEPAGE="https://www.gnupg.org/related_software/libksba"
@ -33,6 +33,12 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.6.0-no-fgrep-ksba-config.patch
)
src_prepare() {
default
elibtoolize # necessary on Solaris for shared lib support
}
src_configure() {
export CC_FOR_BUILD="$(tc-getBUILD_CC)"

@ -34,7 +34,7 @@ src_prepare() {
multilib_src_configure() {
local myeconfargs=(
$(use_with doc docs)
$(multilib_native_use_with doc docs)
$(use_enable test tests)
)
ECONF_SOURCE=${S} econf "${myeconfargs[@]}"

@ -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
EAPI=8
@ -34,7 +34,7 @@ src_prepare() {
multilib_src_configure() {
local myeconfargs=(
$(use_with doc docs)
$(multilib_native_use_with doc docs)
$(use_enable test tests)
)
ECONF_SOURCE=${S} econf "${myeconfargs[@]}"

@ -15,7 +15,7 @@ LICENSE="|| ( LGPL-3 LGPL-2.1 )"
# Subslot = libnettle - libhogweed soname version
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"
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.
REQUIRED_USE="
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_aes arm64-crypto)
$(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_sha x86-sha-ni)
$(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')
# TODO: cpu_flags_s390?
--disable-s390x-vf

@ -0,0 +1,27 @@
https://bugs.gentoo.org/907901
https://bugzilla.mozilla.org/show_bug.cgi?id=1836781
https://github.com/nss-dev/nss/commit/c07c4e073d95a25343cbf56b4a830a71e432869e
From c07c4e073d95a25343cbf56b4a830a71e432869e Mon Sep 17 00:00:00 2001
From: Natalia Kulatova <nkulatova@mozilla.com>
Date: Mon, 5 Jun 2023 16:09:58 +0000
Subject: [PATCH] Bug 1836781 - Disabling ASM C25519 for A but X86_64
r=bbeurdouche,nss-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D179969
--HG--
extra : moz-landing-system : lando
--- a/lib/freebl/Makefile
+++ b/lib/freebl/Makefile
@@ -568,7 +568,9 @@ ifneq ($(shell $(CC) -? 2>&1 >/dev/null </dev/null | sed -e 's/:.*//;1q'),lcc)
HAVE_INT128_SUPPORT = 1
DEFINES += -DHAVE_INT128_SUPPORT
else ifeq (1,$(CC_IS_GCC))
- SUPPORTS_VALE_CURVE25519 = 1
+ ifeq ($(CPU_ARCH),x86_64)
+ SUPPORTS_VALE_CURVE25519 = 1
+ endif
ifneq (,$(filter 4.6 4.7 4.8 4.9,$(word 1,$(GCC_VERSION)).$(word 2,$(GCC_VERSION))))
HAVE_INT128_SUPPORT = 1
DEFINES += -DHAVE_INT128_SUPPORT

@ -39,6 +39,7 @@ PATCHES=(
"${FILESDIR}/${PN}-3.21-gentoo-fixup-warnings.patch"
"${FILESDIR}/${PN}-3.23-hppa-byte_order.patch"
"${FILESDIR}"/nss-3.87-use-clang-as-bgo892686.patch
"${FILESDIR}"/nss-3.90-arm64-simd.patch
)
src_prepare() {

@ -11,7 +11,7 @@ SRC_URI="https://www.shoup.net/ntl/${P}.tar.gz"
LICENSE="LGPL-2.1+"
SLOT="0/44"
KEYWORDS="~amd64 ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
KEYWORDS="amd64 ~arm64 ~loong ppc ~ppc64 ~riscv x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="doc threads cpu_flags_x86_avx2"
BDEPEND="dev-lang/perl"

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save