parent
a8d431acdb
commit
e7a0ad1407
@ -1,23 +1,23 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA512
|
||||
|
||||
MANIFEST Manifest.files.gz 29286 BLAKE2B 9f294ed8a7c988988c446154b30eaaaa24fa1a7691eae8c31dac749b90f3d6fdf881c37c9a6cc3e534d32174a2632385830850681360e3d12785f6d8be8c535f SHA512 7cf2f32011b81525d2ec72705aa085af708b03935cd27671ec5fbaef1dce0c1ad40a9ade52766ecf3f26f4715fbb66d32be23bdaf8114e53dd409f77052681bf
|
||||
TIMESTAMP 2023-06-05T19:40:03Z
|
||||
MANIFEST Manifest.files.gz 29278 BLAKE2B d58365ee80f50680f5f2fcb78c3982c8c3659aef3fe8ac268712431a51b0f975653f8cfb6ab5e40bd215952dcc5458e439b2f84ef84c3e9891d1afa4a0d1ba91 SHA512 1d7c08e5ba03ebf76c72b488bd597a53ae74999c61fff2e39dcc264ed0736908c1c56f039464f0d083e6e9db3736b0c617cf3a8f85bf3920cafa0aaa0d8355e8
|
||||
TIMESTAMP 2023-06-08T10:10:03Z
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAmR+OhNfFIAAAAAALgAo
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAmSBqPtfFIAAAAAALgAo
|
||||
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEUx
|
||||
RDZBQkI2M0JGQ0ZCNEJBMDJGREYxQ0VDNTkwRUVBQzkxODkyNTAACgkQ7FkO6skY
|
||||
klD73Q/7B4zpDSiXSFkbEtIdzYldb76rSwAsBNkbyG5xcrjJFlybCsopjVJJ/DJK
|
||||
Zfn2w3MTlx2zoN0EX/SY2md/3nmCRr967Ql64HZZGUMvEA1KitM+JKP2rFm6soiK
|
||||
yHpx9XGna8mWbvMZqcf/BbvA7g8JeZC9OdSas42fLsn/8Jxj8hwwHFqsupa4KNxq
|
||||
p0/QgMu4Cc/lBt822CfRcGXfqsES7vFmWGwexawIrMS+BT1ex2u+OE1fbspZQ3Zp
|
||||
YHsZChGIk4iTqIpswUsOqq8wlW4wlvvYcuN3hBOmN2P7WNp2cm0Ii8knMdHBac++
|
||||
CO8MLk5Z5dqwX3HzVgneCKXs6aC8ofyRMn58UXNr+U16rCmsmfQWPIRyIoD9pDiU
|
||||
q/Xsbvvnwrz2Q4POqoAYbcJlZwaVEr6qEY55n3Snmf97a5hoh5/EQyI5ex+KebFE
|
||||
tTnqRZuueOAcRhlxPM9C+hbVXEXH2MMcIy7Z/f9tWcZFAfVNIXTKp5qf3nuflKeB
|
||||
3K86YbMopGT15jliRxH6FdEqimYB+8/isX1gwczD9sp0T7dIm0WYz3Nibmlut6ay
|
||||
79KKd3QqAlqZUgaVXIJE0lA2Qyv6ZXZaB+m0XlBfTkFUMd5f41R5k9TR6q3KvzGL
|
||||
AAZTDzxVqN33E17Bttyo4hK5/gPKQN8CuTgrCklcLugUKPCQf9Q=
|
||||
=3/Zc
|
||||
klCiPw/+K4aSPVBXdD23Vjppp85k9T/wVL+qs9RNpHEF9O3pxh0ro2/Mm1udtA4e
|
||||
e3x8tYLjxQMznC7q2WkxPGJSZ0CMycE1+NbXwoXFohIZksjS7DjMoGjarydifgg4
|
||||
KFc9gCQqMzE9+TQ24pqjJjeGdrk8mdEEAWkXK7voR3J4/y2g8ls0Zp++LzISEC7W
|
||||
wJayLTv6aQWEhSlfTRL/8QN/LTON63yz87cAvkhEiJ1Iq7/rBiDWtmtDkMNkJK3V
|
||||
BbOY3UtrHryqj+NITdTzCpmmthKQK0/P9x+y1+/4BZVpf0+MpGbKTjd5v4BoJ4OL
|
||||
z1NYwqULSOZyeE73z5YDdDkb/sva5vcMw0wLb8h2tOMOFaaG8De2YUT52RETMCGE
|
||||
gbE1d6dh1L6+CaPpRlv1u32JDWEzJ8OFgbLoK3+wcBvbRrJbOgpeNnUO8X6dTgUC
|
||||
GGIjjgqBNlKVl0EmXlPQHbdBOTYHKJeq7fu7iQFsTIxnxnooEsBzpoacckss59B8
|
||||
xzkzkw6/X0DMeWcM5Ee2uu2mSre6JgEP5PkeyYSmpDLGsXaSN+h5SzVZV6JPtBHy
|
||||
BFf8s4+99nq1Jl7CngLD49m0GMBLQpHVSPrkAS54lpoM8ISU9Vo6WKKhmoA6Saj7
|
||||
u+9kndNa67pt6Ji2MKUGgUZO3G4RuM6ovu3JU3FFRf/m4ZCBN5o=
|
||||
=UExl
|
||||
-----END PGP SIGNATURE-----
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1,5 +1,7 @@
|
||||
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
|
||||
EBUILD ansible-lint-6.14.6.ebuild 1603 BLAKE2B e49bd3990f0ab7ac3f154b12126c9eab496a5a04fba4ec3feb8dc64e650c7bb92ee58b452b47f5d4f033c0c79fecf2802c7f4f849e34894d3ddcc807ff17b3f3 SHA512 ff499074bbc1a1c39a5662abadd64bdd718e63d0527843ffbc2fdf33efad8ba999d07803e42325857c5b26d552f950fbc8737ceab40ed1522178456b9dfcd320
|
||||
EBUILD ansible-lint-6.16.2.ebuild 1603 BLAKE2B 3a5ca64c5b48e3648db6329b152e6bbd20782481e94c13410dae262bb550f47a6b5eefc0b984b513011bf8db1f879b4b403674447be1635a6b1fdfd7d74967c8 SHA512 6454cc7df387777279c87d07335c4ea32c86af8ca9da211981b419d8f6f993f17751f3ce1ffb32143bdcfc25e5f47096ca03c08b99a17ca40b5bca0d873960b7
|
||||
EBUILD ansible-lint-6.17.0.ebuild 1603 BLAKE2B 3a5ca64c5b48e3648db6329b152e6bbd20782481e94c13410dae262bb550f47a6b5eefc0b984b513011bf8db1f879b4b403674447be1635a6b1fdfd7d74967c8 SHA512 6454cc7df387777279c87d07335c4ea32c86af8ca9da211981b419d8f6f993f17751f3ce1ffb32143bdcfc25e5f47096ca03c08b99a17ca40b5bca0d873960b7
|
||||
MISC metadata.xml 561 BLAKE2B 0f55fc4da270c495c445e5afff0a8f7aaedd01abf3640f848cd9dc21e01fa7324c78846ee4bf917e4869b6c377fef61254a2288fa3d572c1bb77279571fb6631 SHA512 bd6bf6b916a0b736a0bfdd633f6569ce3124458169d77ef1cd86d6dda4099774088871560ce0106e11f139a2b48f13445e7a844e03a8669160c7e3fa44be5f36
|
||||
|
@ -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,7 +1,13 @@
|
||||
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
|
||||
EBUILD awscli-1.27.137.ebuild 2278 BLAKE2B a074ad11e996c7c4e5c0366e5e5d3856cb1bdd7984b8eaf9ac959108e0c5737b064be5d7a579f46669403efb0c3111e8814570f041106e920102cf2a6ddf3687 SHA512 060c06ae5d2295b74940bc86eabf279eeb7a81f7cafa4a9d89e9af8076feff5a23cc3f9bad5a631e75155af64b948abe4c0de7283883a53d4b1ee5791765176b
|
||||
EBUILD awscli-1.27.142.ebuild 2285 BLAKE2B ab176af730bcb3713594ac424ab29325c2cb24b8136e12ac6e18cf1648c8fa81e256eab0c708077e2c5423d1592594bb842383614e9114e728703e8cc8964252 SHA512 423fc2ef82036643a93eebded5fde267beb70f6278f06faa7e4c5ea221351aefe5bdf7c6469e57c49caab603ae1aa58fb514339c65891995cef614e698e9d997
|
||||
EBUILD awscli-1.27.146.ebuild 2285 BLAKE2B ab176af730bcb3713594ac424ab29325c2cb24b8136e12ac6e18cf1648c8fa81e256eab0c708077e2c5423d1592594bb842383614e9114e728703e8cc8964252 SHA512 423fc2ef82036643a93eebded5fde267beb70f6278f06faa7e4c5ea221351aefe5bdf7c6469e57c49caab603ae1aa58fb514339c65891995cef614e698e9d997
|
||||
EBUILD awscli-1.27.147.ebuild 2285 BLAKE2B ab176af730bcb3713594ac424ab29325c2cb24b8136e12ac6e18cf1648c8fa81e256eab0c708077e2c5423d1592594bb842383614e9114e728703e8cc8964252 SHA512 423fc2ef82036643a93eebded5fde267beb70f6278f06faa7e4c5ea221351aefe5bdf7c6469e57c49caab603ae1aa58fb514339c65891995cef614e698e9d997
|
||||
EBUILD awscli-1.27.148.ebuild 2285 BLAKE2B ab176af730bcb3713594ac424ab29325c2cb24b8136e12ac6e18cf1648c8fa81e256eab0c708077e2c5423d1592594bb842383614e9114e728703e8cc8964252 SHA512 423fc2ef82036643a93eebded5fde267beb70f6278f06faa7e4c5ea221351aefe5bdf7c6469e57c49caab603ae1aa58fb514339c65891995cef614e698e9d997
|
||||
EBUILD awscli-1.27.149.ebuild 2285 BLAKE2B ab176af730bcb3713594ac424ab29325c2cb24b8136e12ac6e18cf1648c8fa81e256eab0c708077e2c5423d1592594bb842383614e9114e728703e8cc8964252 SHA512 423fc2ef82036643a93eebded5fde267beb70f6278f06faa7e4c5ea221351aefe5bdf7c6469e57c49caab603ae1aa58fb514339c65891995cef614e698e9d997
|
||||
MISC metadata.xml 385 BLAKE2B 5accfb180a91179cc6df539d42d1de06be3ebfec73f3edb719f5d59576103b9a8cb0c7c524c1042630e0cf99f068939a19f04c7b1b4a2acf9e072369df80d913 SHA512 ccb3d516326c5dbdf53068372ce25baecc137d21a04516374362212b969cc928dacbf743b4953da33f28482905798f069d09d19c88d9913f2b32648db25115ab
|
||||
|
@ -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
|
||||
}
|
@ -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,6 +1,8 @@
|
||||
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
|
||||
EBUILD eselect-1.4.20.ebuild 1498 BLAKE2B 1e533f63c16c699a8fe2fbcd165a5e8851c4645c7d3b52cc95688ef379dfb96aea85a3be65f4160145b05fc5f79219915013773d0dd5da63909baf4816b4ebab SHA512 b5e841d3d5978fffa890bdf591b7522d82119af9a639caf445c5260d5c0d996ef617e66a5233cdaa724659f918ce2cb992c8be65fd4377d91255bef2b2fb332b
|
||||
EBUILD eselect-1.4.22.ebuild 1498 BLAKE2B 1e533f63c16c699a8fe2fbcd165a5e8851c4645c7d3b52cc95688ef379dfb96aea85a3be65f4160145b05fc5f79219915013773d0dd5da63909baf4816b4ebab SHA512 b5e841d3d5978fffa890bdf591b7522d82119af9a639caf445c5260d5c0d996ef617e66a5233cdaa724659f918ce2cb992c8be65fd4377d91255bef2b2fb332b
|
||||
EBUILD eselect-1.4.24.ebuild 1506 BLAKE2B 3097f0dd910a500fd9c79124cf7fb15dee65a5429857fc065965ef3fbc1d68e4d6322c5a57f548d8104256e4e7273ea815f1541b0a4c7f479ac977468aac81ab SHA512 63cb50d1dede7f17063371ff79bb649ca9f7d499ae6dc2b518c2c59ff428558ed7fd1c518ed32d567d494c3b9526dead422d8da7bba9f6f9cb450160e637b2a1
|
||||
EBUILD eselect-9999.ebuild 1394 BLAKE2B fb62991371b697680959344974f4d7d4cdedba39337b12d004588d118632be5cd26c2026024fd6a2cc1e448f196c3367b82ba3fe347617149602c4730f8083d1 SHA512 78c75a30e9a8bfb370620b25cd200be9c6a8724858548cd1ab76926194f9d96a25c7441463d1dcb7a2aa3a6c947b1a656d6a0b455eb95e9ad9a1535f8cb349ce
|
||||
MISC metadata.xml 347 BLAKE2B 58c9ec8100f46cbb91dfcc6fc6f223e4d45553f401fe7312e36c0260c433a5842b07f894cef7dfd6c518ee5b664d86e3a4d434892ad3ea9c78c26c6f621e3063 SHA512 1963bcefd43ff52163c81a03bac522ca792688ff5317691ac30ec4375c6da4ebbf07f96da7bc1ecaa9554cee18c9f51f8b867e7e15bb652bdc7eee542f4a8d2b
|
||||
|
@ -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,5 +1,7 @@
|
||||
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
|
||||
EBUILD openrc-settingsd-1.2.0.ebuild 1411 BLAKE2B 637c6b4f227778dfc953d1929fb10757e27bf836ef5a6774e7b0da81d25472dc7571c6ee0fa05ad9141077b9829f5b30864ca96a027185f0ea7aa947b91f9bd8 SHA512 afd3b64ba50379a5de82d387ef50ca7202591eee22b9169c5a4fdc0508b4aa517271aeb32504d4d22c8376a093a77236819cc82810af0fb0f2b97219c0166279
|
||||
EBUILD openrc-settingsd-1.3.0.ebuild 1438 BLAKE2B 2441a167acd1ad49785c0a8219fc6a4e9a39023dba743071eed0942cca85e049294b8e0b5581526e0a484b489c3ef41b73f9953b445206d0364691e7517ee326 SHA512 4ac0050c321ec8bbbf91d8cf69d8900f65b2a54f4e7a4ce861229a2484603ed20916dc51054626881ec374094fe234b87f72b3f7b3fabb2cd2ff045c93b76df0
|
||||
EBUILD openrc-settingsd-1.4.0.ebuild 1438 BLAKE2B 2441a167acd1ad49785c0a8219fc6a4e9a39023dba743071eed0942cca85e049294b8e0b5581526e0a484b489c3ef41b73f9953b445206d0364691e7517ee326 SHA512 4ac0050c321ec8bbbf91d8cf69d8900f65b2a54f4e7a4ce861229a2484603ed20916dc51054626881ec374094fe234b87f72b3f7b3fabb2cd2ff045c93b76df0
|
||||
MISC metadata.xml 489 BLAKE2B 9da8f8d72d161ece48f9f2bd5ac900836bf5be45de25e604b3742b3aa38820f2fb6b4039062a8701a1aa0e9b6f5893f389b99e178dd31f70ec008928587f661c SHA512 aeab0c7da85043d609af29f344fdefb7d8fcf62b7bdd113dd56131c99d82e738a2ea7d261b4de365443d9dd1747bce4069ec3e0fdcfe2de91fe117726024e127
|
||||
|
@ -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.
@ -1,3 +1,4 @@
|
||||
DIST dump-0.4b47.tar.gz 583380 BLAKE2B a5a6c507fc67451e6ce5117b28b9e97e45783059358c357e1f6d4b268437c8340f13e0d77e97631112824eca8205c49d206a8a7904bc3e00b1f0d5abb31418f7 SHA512 e9c567fe2ffad196b9657c551d83f7607758f3704cad6cb407514bbe2bc765c16968997dc3a5bc92b9eb5900fa5bd6e7cebc92c81afff53339fca92891a5259d
|
||||
EBUILD dump-0.4.47-r1.ebuild 2171 BLAKE2B 45518c50773251da809311f41f4c0245660e023ffbf54b0a985d47e5668a57bfe66b73362e7244e2ba4a139034aa32aa754a0cd6a18d1c661b74ee459c69086d SHA512 e9e0a48ac2e2b30b243cc134543be272975dc8309ba8f2389ba6897b1c76a03801e22af11db2c064aa14b6c5d90869624f28549374d5659568d840dd894fa802
|
||||
EBUILD dump-0.4.47-r2.ebuild 2423 BLAKE2B 6ecac7f91fb600be878c96242936fb151142fde140043e1c36aaadd1fd5db087ba2f3359e6f5ae21068ca6d388af88c483dddc49d8dcbb63a38e0a8524cba627 SHA512 bd16f6f9224a6b4b801775e1f6c0f6e4d126ef50f69989b2526c62f4833ea3c3890ad1a0342853a75102291c7e67f3254e4c44073846a7b2e21cf72fd4b9d91c
|
||||
MISC metadata.xml 443 BLAKE2B a993a4c9e17125bd2da2e0002c55443402e0873613f37f0c97ea62ea12ae3b97c6364546e8a06b539cd98df9edcc750daa2f99c2696fc78c06870e21df5b6e0f SHA512 5aca723c5ae7925c19f8f2c4839d560b4859691b25b646bec1fba0a9e98fe5aef88ee718f16c7095d046d3667052d09a40bbbb6c35bda8d7c73fea8af8ea8439
|
||||
|
@ -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,4 +1,6 @@
|
||||
AUX stormlib-9.24-gnuinstalldirs.patch 1921 BLAKE2B 15948e171de29e1623706fb0c7681e3ff7823a0fb64a1df6a7721d1a887a7da5e6c5ad6ba9c7c7aaf26bead7e706d64f234f02da9ee2d8c49fade799606d3ebc SHA512 07db327e04b2d5540c9c625e9821acf7b77c6b36eebffcf7a36661d55cea944701c83c3e4ffcd2b41686661fe26ccf7ba52e825cd228f497b46ec917a1c6632f
|
||||
DIST StormLib-9.24.tar.gz 625374 BLAKE2B 3647580b1b048e284ade2fb23aed53cac76a89a0180908f48fc99d571e702d876de37e42a47b3d351c72e6fa905fc02f4b8fa691a6840013637e1560e9acafcb SHA512 38694685edfc9c53ff1e303109831b6a791200b9db275043bca8b3bbe7cc928cf0ce9cf554c6758f693da453b85e6385d277ae9add7af867c13488d77432cde5
|
||||
DIST StormLib-9.25.tar.gz 603875 BLAKE2B c7da242d039f5a49e8abd295b42e639fc540c77ee4bf8f210610d56940d1d35f19ea267dccde89e50f744218527f4c521e1d320f24e8fe3a0e0739ee899aa023 SHA512 0da78bda4bb89637da892fc73a0673b8a5f852ede4fdceba1029431d24dd1e59db9bfceafab1c5fb642e4b5d0d15d9865f7a138bfb190ce0c2d3601b22dd3023
|
||||
EBUILD stormlib-9.24.ebuild 823 BLAKE2B 03b14e0d081e786e8ee168cf248d6eee795a601880aff9fa7d4a6525a7a21c48c5250101fd921ef23c01bb8fb0bc16f21824ff0e1aa3907010bfa462e0b07a41 SHA512 60267568b0f258c2931125fec901332f3271e594a8d5a05c9e32b5c0f40bfcf7f334f0debbad6f73ed2cd759fac598d81b1737219dbdda59f64396e1344001f9
|
||||
EBUILD stormlib-9.25.ebuild 823 BLAKE2B 9dacf9b5f3877a0ed53a4e86150380217da043651afd95d3d7e9771c439e8855e3db4565286d992c8883cd1d5dd40b407bd7db51589bab164433de88e3194ad1 SHA512 1aa700a528c19c87411052049584d6d93c01ce58eabc24ad519a4c47d018a707aa7e37bbc150b58ad8d315bae0bc3561feb4ce293c0126b407c3a0c3d317a43b
|
||||
MISC metadata.xml 337 BLAKE2B f130035745eb53970f69fb6a68adc0ce2db207651fa175937e0f36bf7631318ae601ccdb20330fad0b0c78ae89b7854e148151d0dde1eb22f1b02d0d33273c49 SHA512 faec140194ce8770c2eb0adb57f19452850ac5ed598f1bcce0c3c93a843b0aedc5f0590509582f6724d9d70a1747d2b50859b25db908702a03f224381a5afe64
|
||||
|
@ -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,10 +1,13 @@
|
||||
AUX borgmatic-1.5.1-no_test_coverage.patch 284 BLAKE2B 91e041cb2d3d15b65c47075b0524e6e2a60631702eb10243da79b8051504e33476e6f8d61a3d9a172302b9859a01afb0d640a502cc95f69e45024a8fdb5ebc53 SHA512 1604d425f4c3267a41449f5d05675634f365d0be0630b49812e87d13ebc4ee78e01259f2371afbf2150b5b1203676e20c50c1613be24e0fa39df635d229f80bc
|
||||
AUX borgmatic-1.7.13-no_test_coverage.patch 248 BLAKE2B 624e21cc8971d9374b34dee002635d9090576ba785cf3b6da7c10a91f439fd8e11b335bb33dc9c3b7421b4a5a8982e2a5f67b723b06051969651d626f09bf972 SHA512 fc549c0a63a6182b1848d89a1c9aacd3057f07988d1e8ec3b6ae1defb0675e7b934b0c65c9b09edc431172bc550521058ab73cb64ae6e577072331d4d5269e78
|
||||
AUX borgmatic-1.7.14-systemd_service_bin_path.patch 604 BLAKE2B 534a545b5a8d65c6e46102a5e558c25444d82dd3679b81c0ba50c72dfec8ce8f935fdcb558ff61fec7bf30409b4b9809d76e7488554f4461c4b5eac035a60c07 SHA512 9b4c65b249a033f17b68c5209c0132bd94e310d46193a9a85090cb8520220705aacd91c19d713e11e6955c1e0b1e09823abcaf8164ab0f162ff9a62652bb7e56
|
||||
AUX borgmatic-1.7.3-systemd_service_bin_path.patch 604 BLAKE2B 9b1c613ce2667d2b8846e1bdf7e7bd838529fb9029af2ca572dcbafc5a8c9b64c79cab820be3b750c5fcb060da72cdf1c449cbe50efefe63ef1eb6a884e26e14 SHA512 6ca6c351697db1ae26de2b00ad543fc8f1cea1b0f4ef84f82f9578d9e56da58b4437ed48839c5aaf7d5ea66fcb79620d0cc12b8a2b30862b488fae07ad182638
|
||||
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
|
||||
EBUILD borgmatic-1.7.11.ebuild 2046 BLAKE2B c7f49967f3783c437566bfc3819ee42c953ede06df4996efb565d1f39b133f8f0e388f95c91d9637a17f00344b10a151aaeeaeab7b3e31cb953c9542b23f20d4 SHA512 bc18e9feaa4aa68ac4cee4e99e576f79f5b7b2c520810ecd798ed416739fa254c59c7e4fd40adb44d04421088dfab9776acba9c653d8b42d0ce91b9e765465c0
|
||||
EBUILD borgmatic-1.7.13.ebuild 2047 BLAKE2B ac75a7aa37070e15819b02da978ecb319a18277733880b355b397b3f9196501f3c4d9cd54f556422d334e45378908a6a1e32ec1153a6422764af66b84fde32c0 SHA512 9f05bb948ea55cd006bb67d6ebf9286adc027096e9fca4b6fd00e5b84b2c8bf7760d846d5fed5336adc2b85bb11dcb575790d12819ad977c4e36561e46c2942c
|
||||
EBUILD borgmatic-1.7.14.ebuild 2048 BLAKE2B 8b06498b565462070010efca152439b4de2f0be91c87569679c4a243c0a3f8e03249c382b2defd5e81e75138b43dc656c6fbbf81a1d119f4f569080052408a68 SHA512 227adf4c2f02cf6b9bdf8a491a758d5f4c1f34cfed677b3f58ca920cf9e477de7fe1978df03c14f4ea1a544787c06f051fc6dec79e533000b9109b1960c0cde9
|
||||
EBUILD borgmatic-1.7.8.ebuild 1643 BLAKE2B 9e05c2bfc9894d3e3636d17254cbd6d386d44fdb3305d16278be5a42d6bd56f3d1e0b81c53245b264d91118b10c03fc9515573146ad47b15b5b8148f77c849e5 SHA512 0c3788e897ab3a838548f456a6b3ccbc644d877f7ce83bbbbea59f9f586c3e69af44222016cfb0fe803e639baeebe61d7e77b5160b4ed7ea223add48c3dbca6b
|
||||
MISC metadata.xml 380 BLAKE2B bd4f6eb451caa6b36d51dff099c7885ad2c30f2f9f5397e12049a28214601d67853f0dc604e6e42a566b8bf57acf0d9e39c685af8743cce72ec3b5b07adea72e SHA512 1d2c0a22d3b844b58ed35f3fae261a1d6906e5e1b0e69bbe364e0409f335b44f04089ea1d0e6144e2ddfcf066cc8ad85d14c0b22a28ddd22d235c48e1401569f
|
||||
|
@ -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.
@ -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,15 +1,23 @@
|
||||
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
|
||||
EBUILD python-docs-2.7.18.ebuild 627 BLAKE2B 5e44a7966eb23113adf482d53f128930255316f9e9ae7d9e9e6fad37cdcbab6fdc105a98cc3f6eb82647e8022fd0a074f9b207823d3616c9e08602f1cc524692 SHA512 6af9153b2d6a7a1573a114c9ce2e8fc2afd801405a38d60cb70312f0adfe50684c5e05c1382ab4215ae99ae94c21ababcd6d40e16e0fb1e6819282100d1fb0da
|
||||
EBUILD python-docs-3.10.10.ebuild 627 BLAKE2B 5e44a7966eb23113adf482d53f128930255316f9e9ae7d9e9e6fad37cdcbab6fdc105a98cc3f6eb82647e8022fd0a074f9b207823d3616c9e08602f1cc524692 SHA512 6af9153b2d6a7a1573a114c9ce2e8fc2afd801405a38d60cb70312f0adfe50684c5e05c1382ab4215ae99ae94c21ababcd6d40e16e0fb1e6819282100d1fb0da
|
||||
EBUILD python-docs-3.10.11.ebuild 627 BLAKE2B 5e44a7966eb23113adf482d53f128930255316f9e9ae7d9e9e6fad37cdcbab6fdc105a98cc3f6eb82647e8022fd0a074f9b207823d3616c9e08602f1cc524692 SHA512 6af9153b2d6a7a1573a114c9ce2e8fc2afd801405a38d60cb70312f0adfe50684c5e05c1382ab4215ae99ae94c21ababcd6d40e16e0fb1e6819282100d1fb0da
|
||||
EBUILD python-docs-3.10.12.ebuild 635 BLAKE2B 1fc0f16e350547451331c1e6c22c98b14d844191e6f673f3e5f76201b5ab2bb4969201b0903459e5af2fba6ddf81f6e9b63d19d98a7d1a801bb29db6e988994e SHA512 a00c6816470eaa17405cbfec2fc0582490c4945d14753ec99fcfafc152e96a04f6b7955201630cedc8f9221ae0bbcf938ec79c63c015ae152da04ed015a3d670
|
||||
EBUILD python-docs-3.11.2.ebuild 627 BLAKE2B 5e44a7966eb23113adf482d53f128930255316f9e9ae7d9e9e6fad37cdcbab6fdc105a98cc3f6eb82647e8022fd0a074f9b207823d3616c9e08602f1cc524692 SHA512 6af9153b2d6a7a1573a114c9ce2e8fc2afd801405a38d60cb70312f0adfe50684c5e05c1382ab4215ae99ae94c21ababcd6d40e16e0fb1e6819282100d1fb0da
|
||||
EBUILD python-docs-3.11.3.ebuild 627 BLAKE2B 5e44a7966eb23113adf482d53f128930255316f9e9ae7d9e9e6fad37cdcbab6fdc105a98cc3f6eb82647e8022fd0a074f9b207823d3616c9e08602f1cc524692 SHA512 6af9153b2d6a7a1573a114c9ce2e8fc2afd801405a38d60cb70312f0adfe50684c5e05c1382ab4215ae99ae94c21ababcd6d40e16e0fb1e6819282100d1fb0da
|
||||
EBUILD python-docs-3.11.4.ebuild 635 BLAKE2B 1fc0f16e350547451331c1e6c22c98b14d844191e6f673f3e5f76201b5ab2bb4969201b0903459e5af2fba6ddf81f6e9b63d19d98a7d1a801bb29db6e988994e SHA512 a00c6816470eaa17405cbfec2fc0582490c4945d14753ec99fcfafc152e96a04f6b7955201630cedc8f9221ae0bbcf938ec79c63c015ae152da04ed015a3d670
|
||||
EBUILD python-docs-3.8.16.ebuild 627 BLAKE2B 5e44a7966eb23113adf482d53f128930255316f9e9ae7d9e9e6fad37cdcbab6fdc105a98cc3f6eb82647e8022fd0a074f9b207823d3616c9e08602f1cc524692 SHA512 6af9153b2d6a7a1573a114c9ce2e8fc2afd801405a38d60cb70312f0adfe50684c5e05c1382ab4215ae99ae94c21ababcd6d40e16e0fb1e6819282100d1fb0da
|
||||
EBUILD python-docs-3.8.17.ebuild 635 BLAKE2B 1fc0f16e350547451331c1e6c22c98b14d844191e6f673f3e5f76201b5ab2bb4969201b0903459e5af2fba6ddf81f6e9b63d19d98a7d1a801bb29db6e988994e SHA512 a00c6816470eaa17405cbfec2fc0582490c4945d14753ec99fcfafc152e96a04f6b7955201630cedc8f9221ae0bbcf938ec79c63c015ae152da04ed015a3d670
|
||||
EBUILD python-docs-3.9.16.ebuild 627 BLAKE2B 5e44a7966eb23113adf482d53f128930255316f9e9ae7d9e9e6fad37cdcbab6fdc105a98cc3f6eb82647e8022fd0a074f9b207823d3616c9e08602f1cc524692 SHA512 6af9153b2d6a7a1573a114c9ce2e8fc2afd801405a38d60cb70312f0adfe50684c5e05c1382ab4215ae99ae94c21ababcd6d40e16e0fb1e6819282100d1fb0da
|
||||
EBUILD python-docs-3.9.17.ebuild 635 BLAKE2B 1fc0f16e350547451331c1e6c22c98b14d844191e6f673f3e5f76201b5ab2bb4969201b0903459e5af2fba6ddf81f6e9b63d19d98a7d1a801bb29db6e988994e SHA512 a00c6816470eaa17405cbfec2fc0582490c4945d14753ec99fcfafc152e96a04f6b7955201630cedc8f9221ae0bbcf938ec79c63c015ae152da04ed015a3d670
|
||||
MISC metadata.xml 265 BLAKE2B 369a57fab1283b596588a82815bfe567fe7617b5c0cb17e97f6694beefdd1e932b0d9ffc1fcb23c6ef05b33d97b3c1d1bb3960618ffdf4924c4ebad262794282 SHA512 a682dac348f2d95b986749f4d33e5702c1e8f66cf2ff7a32a5c2a8d388ddbfde2919d97345028c2007415368d395c7cf657184be89f7def27c949f1af5c30170
|
||||
|
@ -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,3 +1,5 @@
|
||||
DIST okteta-0.26.10.tar.xz 1066052 BLAKE2B 938dfbfb40bc603c64d80085386873868bd1aa16040016f72e77c63a1c6eab5d46363b227974a10e34ab514bbcca25fef39a193ea635439ad97a42178326240e SHA512 746a838cf2fce769fd3660189f070c2a2105f2b2eab7c231dd6be42f2e71518afaef2c77a9d9906847ef1febb46fce66079d485459f6c22545e72feca7f747ea
|
||||
DIST okteta-0.26.11.tar.xz 1076208 BLAKE2B 83ab466fa2efb044c8398f905e65d74a5e106d60389bfdaaebd44eaa58f8a54a703c27c0283d6add8aebb932a82cc6efef13f3883069ba944a8d520f7184793a SHA512 8f93091ebcc96feb6638219b375f0669edf65720f63cfc4f12d0aaff717b07dccb842ad82ab0b2b5c4f0fe6043a02dcd02e6973f294204cc9b18e68bc067fac0
|
||||
EBUILD okteta-0.26.10.ebuild 1728 BLAKE2B b3415e0cd3e05e27a6ded4206840470bb04a4e5152f1194110537e6d99054a6b1eddb0caa8f31cac40da350321231c51b883984ab948b0485cacb9a6b96b7c20 SHA512 92f5db88b8776b79292be1812f2696d61ef8cdc24bbbde24298425a58e6f540b2c23e25bda08e68df186952285de1578b75ddb2e69541ff07cea652211565c50
|
||||
EBUILD okteta-0.26.11.ebuild 1731 BLAKE2B 0434d5026b361b348e253d9bac30d90cce1b703e3b003657b7f459db86a8a2dd829fb44ee4ca459681529a7339058eda2ba79d16d09e28f425455ad0f0e87932 SHA512 ded3016452025a92857b7812bb45c925df97cd61f0dadf9aeecf5257f8b814f960bdf2426cca4f6f5ea026080fd71062be0da276c0a9cde7e6c9e6a6967bb2e9
|
||||
MISC metadata.xml 409 BLAKE2B efa27a2a8769a56200077d2d606e930a14fe7b8dad531386da39675c501ea7298939b6c197b668379430840b002c0a5ff34da592fcb2af18734649cb5d527f6c SHA512 0966b96a06e7315574724c75c6c3c680b6ea7da71278885ae65d214ca6a18a4b2d11b101221caa89ef5682d91f7a4cc7c2108f9741072cb12f97e95af0bcb09b
|
||||
|
@ -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.
@ -1,6 +1,8 @@
|
||||
AUX 50eldev-gentoo.el 38 BLAKE2B e96c6cf48d1522d89450e11d339c76210c672377208b56951791b83c6ef22b2c872d313084e199dd5d7b533a99106a87dbc7f15b5ee6126f71bf5f2e84165ffa SHA512 5c00bcabe2d7cc03013dc7a54b2c653940c08098ca5646d7c73624cb1ca04376ae9dcf88a7166b1925c69f0c5d192d90f6bd790fdef8ed8c3b0f9d163c987da5
|
||||
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
|
||||
EBUILD eldev-1.3.1.ebuild 1131 BLAKE2B b59778bf1f626f658fe428926d13cb5996a19541d3b023b18e303dd008e311c3be1e4f967f96ad0109b0174d3e726254108584ad5c0af3f6de3d063c42aa9dc2 SHA512 0b77f3a1fadfea1f554fdff3bbea5e77d6ecbefcba9ced960f5a7591decccad7c5694c137bc6874d64ac497a239c3bc937a72418b3503b118f86700ade46c343
|
||||
EBUILD eldev-1.4.1.ebuild 1132 BLAKE2B 263bda2f3c385cc92465770b4921f826d767df9b75402f850c6143d2957744fe4d4630c27af77d632793b77db9481521e63249e866b8173576ead80c066e703e SHA512 8d3a0c5ba7eea1980335deaf5a68a7d2f9fb3e361ff5c6ef83574c4cd158c616cf57bd23a30dc35f6a854288a2e9164ba359cc39675b5a186a74e74540edd6df
|
||||
EBUILD eldev-1.4.ebuild 1132 BLAKE2B 263bda2f3c385cc92465770b4921f826d767df9b75402f850c6143d2957744fe4d4630c27af77d632793b77db9481521e63249e866b8173576ead80c066e703e SHA512 8d3a0c5ba7eea1980335deaf5a68a7d2f9fb3e361ff5c6ef83574c4cd158c616cf57bd23a30dc35f6a854288a2e9164ba359cc39675b5a186a74e74540edd6df
|
||||
MISC metadata.xml 982 BLAKE2B db2324ced8f4bc4ba579130677175a9de7a8dc7b8d937cd902edd69a20bc897bf4ee034acb6a9400b88de82c58c2b144e62ec4ac7b75d8dc63cdf56670cacc9e SHA512 3e4d2d7ea4fbada45b4d933d7711266bcd9ffd217ee3c3e3351e9f66145785dc11449b4f09f5ffa4853d2b475db45e501848d259f80fb5aa26429acadcb6da7d
|
||||
|
@ -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,7 +1,9 @@
|
||||
AUX 50eselect-mode-gentoo.el 178 BLAKE2B 50fea27e7add6d31f37801593430154636bb58ac6e3f7cc44c68a16d49c9156cf37285778a38bf97a1f4805a22d6d5cf9d597acdcdedfd77c62a5825a0d1d88f SHA512 200da398adf72241112bcda74b432a8a313cf29018c9f6fbdf6021674b23a201ada6ba884d4c9c3a4ee4c042d6c8fc7c3ba59702c8ddb6ea20b652f9ded9d32f
|
||||
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
|
||||
EBUILD eselect-mode-1.4.17.ebuild 539 BLAKE2B d3577d550f337336c34081ef54af222083dc5e8975faaa1c7a22c6df3e76f14b97944095200d43944514d2b24585b4f26d7ba31a61fc25f013a7bba76b3cd301 SHA512 bb7c63b048dd1b78e2d9340e6c3a05cdc817ebcdf5d7bc9a49f877054f00f16a2254ea84b0c5db69a13c58dfe918f1973adc5af44189237b96896beaa62d97e7
|
||||
EBUILD eselect-mode-1.4.22.ebuild 546 BLAKE2B 2abc02fb49e85f4d82b900e880b6463543760b3a70bdd1bb1928f1d3d311818896ecddc8df5b9f0955944d48dc63d80fb4c4fa6485cd499492f9ee3a32f0a4c3 SHA512 e10f13c368a9225c6ccb0fbb0b47ff3d80faf8bb0d7f37cffee019ba9a7f39cacaae75ce471a2083e7dcae584aad2dffe6d1c7ad2f7f3d186b50814755180908
|
||||
EBUILD eselect-mode-1.4.24.ebuild 546 BLAKE2B 2abc02fb49e85f4d82b900e880b6463543760b3a70bdd1bb1928f1d3d311818896ecddc8df5b9f0955944d48dc63d80fb4c4fa6485cd499492f9ee3a32f0a4c3 SHA512 e10f13c368a9225c6ccb0fbb0b47ff3d80faf8bb0d7f37cffee019ba9a7f39cacaae75ce471a2083e7dcae584aad2dffe6d1c7ad2f7f3d186b50814755180908
|
||||
EBUILD eselect-mode-9999.ebuild 455 BLAKE2B 0b2a475c460420afdc6562a94fcef5d57b19d66d0fde52d2cb799f466a71d7948b6349832e58db1dddd3ee0e41b7a413a5f5f1ded177dc2a270a4d46f6970222 SHA512 1040b39298989935448478ffcf8b85d34e9998e40be7f1208650d14aebaa13ec9ac4f0e732a2077b5f928fa6f26c6d29b599ec1759d7fcf030465f32a6fa5348
|
||||
MISC metadata.xml 450 BLAKE2B 18abd40eece633f3e8973ace3935ce484a8cbe75ba047963ee0beb3e4dca3f4c7d94b07423de65a0a847d73efb6849dfa1ecc8502424e98a8a6b5321f09be836 SHA512 bb496b4931b553dcf322e71a5f475db8acc8ed445b439f25d3aa7a1e08662d747f386eb043adcb159bf73c9a746c1ddc00d58eee1e7dbfcf7321d41f13e7ac7e
|
||||
|
@ -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"
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,62 @@
|
||||
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
|
||||
EBUILD emlop-0.5.0.ebuild 2112 BLAKE2B 59e549258c9707cf4ffdf1ad25091fbbc5ffa982ed4dcd0d2fcbd31d68ac1615ee97fbb03b683094e474a2365fc399e358eca6a4fc3c4eb820798b0c2c09a05f SHA512 651aa3a729684a089a28f39c697287b50edfca5d479201e4b93e8cf1bc8acd2ccbdaae12a977701119b3a7e11280480d93e44c6bba44bd435df2a09c05e4c006
|
||||
MISC metadata.xml 463 BLAKE2B ed15612b956314b0fbebe4a0805b1dbb6ffb01ac3ea668fd90e373c5d613b1ac1875be121f3ab07b27da1bc8f531810c5f3e27c8eb64b8844cb64629050072ff SHA512 154d9a2553dfcd59ed15469b7513a0ae12a7f0054d759c1ef9fd2bd708c7fe1eca3535fbc8124af13bcc5225ffd230397cc464d72eef492ddda0bd5fb54f32af
|
@ -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,10 +1,7 @@
|
||||
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
|
||||
EBUILD pandoc-bin-3.0.1.ebuild 1399 BLAKE2B a6716e82b27390fb9a81b0116aa39330c11812ba180679e38bd1ff34003b2332f79a888f9828c610a2e29e95e67ca6f3592fab9cc743ae8f7e43294d4adc135d SHA512 ec789ef8addcbbb01777b2e49b4ada887ca614dc437e173e165fe1dbc7542c215597b784aa10687dd6c088441c990c264e9be189e3b479aecb642bd5e190a631
|
||||
EBUILD pandoc-bin-3.1.1.ebuild 1399 BLAKE2B a6716e82b27390fb9a81b0116aa39330c11812ba180679e38bd1ff34003b2332f79a888f9828c610a2e29e95e67ca6f3592fab9cc743ae8f7e43294d4adc135d SHA512 ec789ef8addcbbb01777b2e49b4ada887ca614dc437e173e165fe1dbc7542c215597b784aa10687dd6c088441c990c264e9be189e3b479aecb642bd5e190a631
|
||||
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
|
||||
EBUILD pandoc-bin-3.1.2.ebuild 1399 BLAKE2B a6716e82b27390fb9a81b0116aa39330c11812ba180679e38bd1ff34003b2332f79a888f9828c610a2e29e95e67ca6f3592fab9cc743ae8f7e43294d4adc135d SHA512 ec789ef8addcbbb01777b2e49b4ada887ca614dc437e173e165fe1dbc7542c215597b784aa10687dd6c088441c990c264e9be189e3b479aecb642bd5e190a631
|
||||
EBUILD pandoc-bin-3.1.3.ebuild 1401 BLAKE2B df6b6d864fd5ac799f59a73380db8452421212fc5dd7848dc2c1b5f2f98b3cfbf5b161f51e31c9e98e76fa8ca3bd61465e0bc5154ffdd103a4a3caf0e708076d SHA512 5366c4d00711f395dda02ee7dfebd6e259b8e62e339441304f081cc2f711d15e93380f2df690c6be4bf78d0f126458b4b8a633f690aafc594146c4efa801ebdf
|
||||
MISC metadata.xml 986 BLAKE2B 10ab442c2f7892545054ba2747c0cde115d9d875673c077d2cefcd035e2ecd6d04f2aef05ef9ca58a2150a983079ad8fbdc6910ca93fc14977409041e5f20201 SHA512 c8e241d4d7bba0a6f36320517d18fbb99922e32970d7771d5bbc80a8ecf5086f8f7d1eadd0188d457412a66db898d044074b4d4f0301aab1e19cd1213e562375
|
||||
|
@ -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
|
||||
}
|
@ -1,6 +1,3 @@
|
||||
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
|
||||
EBUILD rarian-0.8.1-r4.ebuild 1729 BLAKE2B c268c0fab79a12632b7cc3ba10eabd06eca81bc1cfb9835d6df16d26ef7ba67a642acb8de14f9946bbcfac15065db3079f7d6de3e99c46a23b8adfae94c96e68 SHA512 7c9337cc0df94cc9067ecf93a20b9596106fb1e4d1bac7be34558c7d1d7e6cca8654e1989ce78c0f70a665c419e115870e5ada1a3c6915081adec0a604e017ae
|
||||
EBUILD rarian-0.8.4.ebuild 873 BLAKE2B 9b84c28ff2f4c23c1980db199963b5782b14fc4b8bf24e0fa7b089ffcf2401690591b112d4b59771e88552abdbed6dadbff9222619808ddebf424be23e90fd31 SHA512 ff27540fa556bc46d80e84df743bd32eb71d19cc48627d3df564c6bcb3766d8e61500c60ddb18728f8c2d332534b09b9d6c8ef109e40d5d359dbf2bd2d97dc51
|
||||
EBUILD rarian-0.8.4.ebuild 872 BLAKE2B 4a7a9208d0a1d511643780a12b974e431aac1bfa6fabb0aef656743077a4d6c83628790dc4a327018e535c0050bb358977da057d9c1de7a2bd626dfc6fa54db5 SHA512 c3a72a616978683edfa82999e3d8766fd324d8250a0578793e2665efdc5f3596e46dcd8f0349703cd7f95921e20ffb5b899dfd94e5594152982cef9718e5090f
|
||||
MISC metadata.xml 337 BLAKE2B cbe2bb760281e47c65dda3d0fafabed840e3dc776a79861064c51c28e9d1ac0267111e6b8f39814ce2653e02c36af46ed8cb9faf0aa532d718eb90a9a6c1f3ba SHA512 56b21ef4b2f335c7e346b590be30d98accb784904fb05d921158291e9095651e57f81ea9a2554180b2e4abfb88e55e1a2bfe483c943c60f463c5914e03e9e7bb
|
||||
|
@ -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
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -1,11 +1,15 @@
|
||||
AUX go-sets.conf 313 BLAKE2B 03e94776e317d34b72bfb8385b8b0dfa6a599a6086e4d0c9214e7b49293768947c21d9afb323ffcc7fd85ba0af72d9cb243dbb571eee9eb81de9400fd5f5e79c SHA512 7d01b98bc8d1b609183682dd942bd4c9fa757a98243c7de3cf6c497c7bc20b8cdbe59dd669ce4bb11f914a0e9b6d100e65cea2dffd99f38be50b18e0ecf66315
|
||||
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
|
||||
EBUILD go-1.19.10.ebuild 5238 BLAKE2B 9474a897fd3bfdffaebe01b5b0b7ad5b5c1debf5796f874df293773850217b0224f9806c2fb2b5b5c5c57b36b9c60562558e3f8ebc25b8526fe7a2d008371aaa SHA512 3ddf84e3ed971fed853dddb14e1832e5907d97cd88e7f2732b8cc868b5258357af49b897c71db39f17d79ca263a749cabfac5005ee361d6a5df35900e28f33d5
|
||||
EBUILD go-1.19.8.ebuild 5233 BLAKE2B 86b49ba0ccc71624134e67f3e97db2b58460835459080228ccaa6a6b043123bc4592cf8ac180d8e67eebfe0b6aaef0bd48c5e9358246099c20668181301b7842 SHA512 10577e3953f04e5998acce259355643455dab7e67bd42efa5fbc4d2aeb91d0807acdb3c59813f2d69acb853e7f6d6d2fcb3cb72e2ec9834dec5ccc6f6a50a7ba
|
||||
EBUILD go-1.19.9.ebuild 5234 BLAKE2B d017f18d2b8f2b3f95f5a8a84a294dc6d8779cf701a14e95d010f43027030de9290cbc05f7c92c95dffa938aa06477c92289ef2f76baeabc77dec91a7b5fd795 SHA512 129733230a68c6a019937dcc4601a1c6d1f23c22e2fda8b3ff55e366307e94703c532c0031f87f0585588177af15ad1425777d7e7fbe035414f11d94abec13eb
|
||||
EBUILD go-1.20.3.ebuild 5233 BLAKE2B 86b49ba0ccc71624134e67f3e97db2b58460835459080228ccaa6a6b043123bc4592cf8ac180d8e67eebfe0b6aaef0bd48c5e9358246099c20668181301b7842 SHA512 10577e3953f04e5998acce259355643455dab7e67bd42efa5fbc4d2aeb91d0807acdb3c59813f2d69acb853e7f6d6d2fcb3cb72e2ec9834dec5ccc6f6a50a7ba
|
||||
EBUILD go-1.20.4.ebuild 5234 BLAKE2B d017f18d2b8f2b3f95f5a8a84a294dc6d8779cf701a14e95d010f43027030de9290cbc05f7c92c95dffa938aa06477c92289ef2f76baeabc77dec91a7b5fd795 SHA512 129733230a68c6a019937dcc4601a1c6d1f23c22e2fda8b3ff55e366307e94703c532c0031f87f0585588177af15ad1425777d7e7fbe035414f11d94abec13eb
|
||||
EBUILD go-1.20.5.ebuild 5238 BLAKE2B 9474a897fd3bfdffaebe01b5b0b7ad5b5c1debf5796f874df293773850217b0224f9806c2fb2b5b5c5c57b36b9c60562558e3f8ebc25b8526fe7a2d008371aaa SHA512 3ddf84e3ed971fed853dddb14e1832e5907d97cd88e7f2732b8cc868b5258357af49b897c71db39f17d79ca263a749cabfac5005ee361d6a5df35900e28f33d5
|
||||
EBUILD go-9999.ebuild 4798 BLAKE2B 50daca174e8bc89f747432e96bc7d66e6c7dd50320d0b4c97754bb90267d62b700d34c250a892fdf60c907fa5eb881dd7adb3e64eba7ceb240740bd90c399f83 SHA512 051671c9a99efe554f9ed66423a20d053546ba68fdbf8a900e4ef0a365622bf8fcc976c678e393ade4a5475e01ccc53668d61d98e1b976e69de030662498273a
|
||||
MISC metadata.xml 590 BLAKE2B 56da63bdc350df5c6ef3b511a386627f4020f655027ca88da6a83ecb09581d3c3055c836eb8fe98a383412b3d431a77a9935ad753fe2d8392afa37cd613c15b0 SHA512 5d78adbae30c3a805194567bbb1af2ad59b78487819e7841a040d2a4d5db02f5b5d1d58f7cfc7a37f39e5e9bcf332dda4d336456e33e36c33caef792ac45d48b
|
||||
|
@ -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,5 +1,5 @@
|
||||
AUX mono-5.12-try-catch.patch 1267 BLAKE2B e33836d53fd4c9a4e64614d3f309058b2009487a853aee48fae99cd0326095b6dc26e7fbdd178e25f9fc3901f74f937ce5e9d3bb4322ca50e139d13f66c209a5 SHA512 3a82d4bed31b212e23fe24647fc5b9c4788be5f4966377a3bef9f92a51d16181e77e19ca1ec4736792da6a18206986bbb54d967499e2ca7e224201cf811f91b5
|
||||
AUX mono-6.12.0.122-disable-automagic-ccache.patch 513 BLAKE2B ca0f3f1b2d9f3357f8e5197acdb18c3f02a9e09d90140fec133e20edaf960e74a4bd4949b453d79c656c3314fa720e94794b91a748469ca91abf78c8ca0bb8c6 SHA512 5e97c420272644f0636dcee2baf49cfc91d055c42990197c1c2724358e6847cf4866f22c247d4930ad7b780037c252970c3c3baae7641794ed8f50ff6456f23e
|
||||
DIST mono-6.12.0.122.tar.xz 292266176 BLAKE2B 07043c5fbca33edf64ebca0392b47af9b9ab502be772efb5afbe5ec9e8683b7f4e96a305ee906dff617842bdba2819c2abc130d7aff23b12779f403bbd88f3bd SHA512 0fbd4147498cc81e384933147eb6aa5c559d17a794a308af7ffa43dce51e0faefde24fc75e987ed804dcb161b52756944bc3611100fc0a4adcc260ca97ddaecd
|
||||
EBUILD mono-6.12.0.122.ebuild 3357 BLAKE2B a48a9601dd3962b973f3daf7ce1468d2d45f0c8bd6e4f18d79fdd00c99094fcf461bdfcf0e13e51f0b980f218e21ac08ae3856e0e35c4e842637c55643765a7e SHA512 115a3d56a007a5192c532de06485738308d3648565b1fe9334a54de002d6b7995f77d13f80083469f95dd72974e02b3457fc848e277f63dfe46413a3c598b067
|
||||
EBUILD mono-6.12.0.122.ebuild 3373 BLAKE2B 28ba2d5b8dcbeb9a2fb5c3880575e1165726ba5fb5965ac33fd37db0e6f4547a5dbfebc8e5ef34f4e7ef3ce24c066bfee364de52a940f72eef8a14ebddd2565e SHA512 8c6d2cb0e61a865befedfe636885317e286fbd2e78458c892c55b21fc819cea3c97c858d0eb966255fd3dc0fa499f5520975e931d37aa45d3993b3c4d1a8c05d
|
||||
MISC metadata.xml 582 BLAKE2B 498a6035f8da9da20ae51144d40ff5c599576bc3aa76471d655fb1eb127bc9fac7d5e3c6ef20d2c3d7befce109931f6a2ce6751183d1444eda6a39456068ceb7 SHA512 691d1cba0271329b683c9c81651343dafaeab891aab0b9396c7f620ff1897848d2c7171d3ad73e7feb6ac2f63e98262c9ee3ee6f679e4a08bf7d1b6973921b2d
|
||||
|
@ -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
|
||||
}
|
@ -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
|
||||
}
|
@ -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
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue