Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
root | 948d4f06c5 | 7 hours ago |
@ -1,23 +1,23 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA512
|
||||
|
||||
MANIFEST Manifest.files.gz 29757 BLAKE2B 00155503da4dc8607ff0ac3783c47c5efb9b0de198b259f67350ec7881d5060b46095845a48a331abd7e5b885b508e425234f703570ff46fa3969914d195ee5b SHA512 e6fb288bff72f5ad1b2c127b4ebfe2002191fe69c8be4a200a37fbf65f6cf020b16186ca0a09af4bd685825c500df28c7b705e9f054ddfb4340f7128cf856515
|
||||
TIMESTAMP 2024-04-24T16:40:05Z
|
||||
MANIFEST Manifest.files.gz 29783 BLAKE2B 1a9182ba8fcbcc840567c7b7bb4144fdc1f1f2178b01d716d4752edf17353d0f88cdafd6d1a7108287cef5ad8168a9c34aa436e3436ab0ed17ff61ed2bcc3ee8 SHA512 6441ec3793b58616efe5b7f9c24c1eee795d12cbc1aa77512abcde1b9ef7b307d49e095c3b0c6faa98888960c11e5714e78e23466955c407710cb3a5f446a3ec
|
||||
TIMESTAMP 2024-04-25T07:40:07Z
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAmYpNeVfFIAAAAAALgAo
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAmYqCNdfFIAAAAAALgAo
|
||||
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEUx
|
||||
RDZBQkI2M0JGQ0ZCNEJBMDJGREYxQ0VDNTkwRUVBQzkxODkyNTAACgkQ7FkO6skY
|
||||
klAYGBAAl9Yow8oDX7pTgSB/c4MgTNGTI72d+QOkHVajau70GN4I2vzASKoBDHqC
|
||||
waZz+0AMEXlq05gIm8VnLDgrxYTvz/pW69OXO1Wuq8YJYIsPNE5y1w9j7wV5X9P5
|
||||
bhxKDmOfethVVpsPk1DNTqHBuZ+Bwtpn1m55HCYFl5/ekdW8256wC4s2hm5jRoS9
|
||||
FWR6D1GUs3cK05adyrsPUeZX1kS9NhqL8Sr9dXWsny0aHnUilDQp28pvVb+vhywe
|
||||
al/FY3bm5032NdJT7TUejRQJZ19I1zTfpvXTIK3v1ocPWiH7S8OUDizTPR+OwflQ
|
||||
Zsj7slb6sd5Qdq+VQ2xvYaE6UGVef6QlOXF6FGiCfxizIZnyTD/9FK6M/pSYvtAg
|
||||
fUwPuDAZ+SzWb/m99QcYfBTJqguhLr5EW+ASfZxrwm5/uXtubET0Xi7tZqx8AUYC
|
||||
O51EUXXJZ+yz6Ny+WU8I43KANkfgOBttiQSns1wEQDGyxhxKeltZen2UZxGhuUqz
|
||||
GeDuVcavScY7WuuEbEhz25GZtgFMU/2XA4dOy0cnzzFfA+Cud0pkC5sFJrdTdf0Z
|
||||
cyyskAgAQm2+K0JeXSSPsKRqKx27VQ1odjbyLToO35lgjqz9hBqQ1y7hScNpzxYW
|
||||
19zJx0NkLofnFk1Zir2eulA0rJOq05JOy9AwQyc3PVQRYKt3pR0=
|
||||
=UycQ
|
||||
klC7dRAApBlnR0huZe9qjjGGANU8vwI2kwck9AF1F8P/xOsH6mpzfkSWWbFFax9s
|
||||
nwHdwDwA9tv3RYIizaI2Z5BmkG61Ty74Zsf5jga3k8zKQmTRRgChnKeGP/4LjsF+
|
||||
6zxfto98O87u37+OYt83CKopV1Cuz4C8lGQ7LuJuGRjlgFUroe1pzqbiyNQ/2gRA
|
||||
G5KmbeT2Rj0YEqD9GIBXJdLSzlw7XmB/t5sLds5twljAsiDLUygZJDAe3vanUaFO
|
||||
KoB54+200LhGucW73+CBzb3xzrvru6pFrPgf+QjB2O1SgFFs7jf8RjH9BOUP5ahe
|
||||
UqUy8GIA9Tz9fFjN9DfHL2K0C+3yZNjAxhkSjO4+OtF4Spbpv0SoCpUrlreul/Sf
|
||||
m8tgh7bNZ/c/nplG3mmb0xi58Blwof2k2z7GEXXV69iqf7cMrNNPPnf+LXJc4pIy
|
||||
d8Y3iuQkKqsrBXKP41GTgQVhatjsXUraNgXa8hc0yldEtsP5WoB41fWmjkm5ioaY
|
||||
cw5jIYiKJXOCxUHqgKjba2+PZMopEMil0WPnX6JFibxX/3eJj2+sid8r3of2egwm
|
||||
9/ULeZ6UKWEaulahCiBl37ycZy3Gn+Mx0rIStcSurg1+DOiY1sjnZ2LAoG+4XRBg
|
||||
EloOBFyEXZZ8spSw9O+quALQh7z4aDvLGRaP9qVnZyMPMxDZynM=
|
||||
=CgRI
|
||||
-----END PGP SIGNATURE-----
|
||||
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,90 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
inherit bash-completion-r1 distutils-r1
|
||||
|
||||
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.10.0[${PYTHON_USEDEP}]
|
||||
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
!app-admin/awscli-bin
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/packaging[${PYTHON_USEDEP}]
|
||||
dev-python/pytest-forked[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
EPYTEST_XDIST=1
|
||||
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 serial_tests=(
|
||||
tests/functional/ecs/test_execute_command.py::TestExecuteCommand::test_execute_command_success
|
||||
tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_{fails,success}
|
||||
tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_with_new_version_plugin_success
|
||||
tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking
|
||||
tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking_windows
|
||||
tests/unit/customizations/codeartifact/test_adapter_login.py::TestNuGetLogin::test_login_nuget_sources_listed_with_backtracking
|
||||
tests/unit/customizations/ecs/test_executecommand_startsession.py::TestExecuteCommand::test_execute_command_success
|
||||
tests/unit/customizations/test_sessionmanager.py
|
||||
tests/unit/test_compat.py::TestIgnoreUserSignals
|
||||
tests/unit/test_help.py
|
||||
tests/unit/test_utils.py::TestIgnoreCtrlC::test_ctrl_c_is_ignored
|
||||
)
|
||||
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
|
||||
EPYTEST_XDIST= epytest "${serial_tests[@]}"
|
||||
|
||||
local EPYTEST_DESELECT=( "${serial_tests[@]}" )
|
||||
# integration tests require AWS credentials and Internet access
|
||||
epytest tests/{functional,unit}
|
||||
}
|
||||
|
||||
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
|
||||
}
|
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
DIST cantera-docs-2.6.0.tar.xz 5561604 BLAKE2B 3fab71497584e7be6b025daaedb9cdf87c837a2476206882016894e9af9dc719dc99f5b428beb836df1b83c1db6c8bffad6abf480a4e71e3756985c70f4362d6 SHA512 d9273396cbc7638ed2ab9ce754fe75cd7993a00884c3c988fa007527842913696a97b796cc5dd57f5657813c339ad61ad1ffcdaf7384a667eee97d70cae441bc
|
||||
DIST cantera-docs-3.0.0.tar.xz 6397512 BLAKE2B 086c81acf7a26c6ef429c37873b176cfb73168e03bb445120184008b9a92eeaf1eeb7bfbea7acce8c9741e5eababf7e10ed7cb0d2f239f4a73a77f52a8488b7a SHA512 57870ff1adf433c83f713541321b9742bb9881d5dbb3429c161ed7cf84bad9ccf9ec8ed725c6672dc449e4041144a82dc3ae443f757bcdbd14b297801e9fe5b9
|
||||
EBUILD cantera-docs-2.6.0.ebuild 797 BLAKE2B fe100832a4893c81e5a2af3ee0fed9ba0d88dd1ff968138b55f90ab8c6a86c48f42d85c9bbc1f12210d7396846dc167d48a573f986aa4a433543c0aa8c709ed1 SHA512 57487b127b03c234b3e131fbf7a11f7e9a3f203a637d475e0e8387a2a70f196e9f3e0025e03f869760dde676c062464942659d9ee9dc692a3c7f147b49aaeff1
|
||||
EBUILD cantera-docs-3.0.0.ebuild 798 BLAKE2B 2812c47b258beaeca883a5089854f389bf4d0601fa5d816f84bb9c639dfbf185e3d8fa5b61f164e4d203c4b8b49aa9bf8ee720727801c38ffa15fd7d94bab59c SHA512 4dc04fd4d73add9d8f1caeb96f74e0b7773a5f9639781419537c69599760b3ba74a3e3158f4584713a0b0de3d87c24aa1344fd88c2ab6ded6b05df33b4cd28fc
|
||||
EBUILD cantera-docs-3.0.0.ebuild 797 BLAKE2B fe100832a4893c81e5a2af3ee0fed9ba0d88dd1ff968138b55f90ab8c6a86c48f42d85c9bbc1f12210d7396846dc167d48a573f986aa4a433543c0aa8c709ed1 SHA512 57487b127b03c234b3e131fbf7a11f7e9a3f203a637d475e0e8387a2a70f196e9f3e0025e03f869760dde676c062464942659d9ee9dc692a3c7f147b49aaeff1
|
||||
MISC metadata.xml 722 BLAKE2B 4744bf9a9f94bb5105b962c0af3aaed9cc1d807e85cf9cf5131349ddc21ced76cec336bd8edda5ef7c0453f1298b47a69d2d6b489eea9a7322928f0e03312cc8 SHA512 1130e141df26cd84b74298782badb85c8c05d89d6c47d4537cd7534254d1bff765d03009e896e976359d23661d0702597e6cac54764fd3bb2e961e7b22270375
|
||||
|
Binary file not shown.
@ -1,3 +1,4 @@
|
||||
DIST featherpad-1.5.0.tar.gz 1087068 BLAKE2B aef468f426c9c635624fe16f8180647a9f62a12c98d654dfb340758ff524e629341469ec3f37cfe8a481def99ba6c99672aa31c49b03226e2e895dce11e9b5e6 SHA512 984d1fba0e4bcb1eda8c2dd3bee34cf2ee0ba5604dd2c9328cc67531099b8a806e8ab79020510049eb788764cf0ad4486c128eefb43d9ab1ccdc4a3c06c48497
|
||||
EBUILD featherpad-1.5.0-r1.ebuild 733 BLAKE2B f9540acb8dab4daa9e0faa58ce5670eaeadb47a47378ca1d36f38aeda1a3be9c1b413be6cb294e6fdf268b3b9b0b5075b3aa6ff5aa8f94920df0993e9af107e7 SHA512 b6dab2f8c247d564bdc9dffaaaa1145f47b64edc8145da539cc96f0265fbebcb1dc27720af7299661a7f716c76ca95e57b4d7c63f847a4041a717d34b21d108e
|
||||
EBUILD featherpad-9999.ebuild 623 BLAKE2B a067a835d4958f5263bd8ecc61cc11e2a0e0075a9c017a23bf95bdf5754d4243930b07951a459c064b7fe21730237187d6b42b489b5e77c2f5f32e88a1d993e8 SHA512 4a2ee2876d2e18adf34bd6c2d45f79d88a4892b984dce6711030e1fdb71d897d940646a656fc59aeac14d15d464d7e0d45dfe97d96540d30c235ceb3457fd612
|
||||
MISC metadata.xml 940 BLAKE2B 7d24c11cd115ff1687eafc01966063fa7725918f03b9dfc6e0f55c32e99f78a2a0123cdf01b447c2c9defd5f9e92291a6a517f99ef1a6cb8ac533f0d5cdf3d6e SHA512 e405c9af3d902e48ef4db68513b79c4bf28d40a76f6fdb951cc3f1e311741b6fd46dad2c322c5d22aece2dc0ff4c46a5b4ce949c615881896b889604c3185e4a
|
||||
|
@ -0,0 +1,32 @@
|
||||
# Copyright 2021-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit git-r3 cmake xdg
|
||||
|
||||
DESCRIPTION="Lightweight Qt5 Plain-Text Editor for Linux"
|
||||
HOMEPAGE="https://github.com/tsujan/FeatherPad"
|
||||
EGIT_REPO_URI="https://github.com/tsujan/FeatherPad"
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
IUSE="+X"
|
||||
|
||||
RDEPEND="
|
||||
app-text/hunspell:=
|
||||
dev-qt/qtbase:6[dbus,gui,widgets]
|
||||
dev-qt/qtsvg:6
|
||||
X? ( x11-libs/libX11 )
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
X? ( x11-base/xorg-proto )
|
||||
"
|
||||
BDEPEND="dev-qt/qttools:6[linguist]"
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DWITHOUT_X11=$(usex !X)
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
DIST fcitx5-chinese-addons-5.1.3_dict.tar.xz 884664 BLAKE2B 6e9f931c146798bbbd76e7a55d62d50de2c8173d0dddcb48ea78259dac62fe41cb4be4421c6d6d81a5b094a3ebe258b1d20b42e2891451da55723e3978c1379a SHA512 4ea52ec45af70b552d8d4af3ed077662d6d839d3984bc41858b4710fe5b1dc169c63e223770f5400718c1c18aa745e77305f242409fa1cc523cee8475eb2e9ff
|
||||
DIST fcitx5-chinese-addons-5.1.4_dict.tar.xz 885456 BLAKE2B 239b2092d9b4ca77d7c0373a85e7a0e5b03e223c477b8704e36657349cf3ba006791e77a064826cd452eb6e5e81d33831feceabb9a51a8d26275f70deb04658a SHA512 99f3cc101532879c126e2699d338528a25531b782a5c1f1e93cd363437567c1ba7b0173aca56f887089d4379e86aecf7977139b5b5c44d54e0bd9a416b01e976
|
||||
EBUILD fcitx-chinese-addons-5.1.3.ebuild 1488 BLAKE2B 077940de82ba0e09f522382bd27043f3de32efa76353133f91386628fa3a48e8d4cc6f8e2fee09b8a16e546e58f5ef4c566d5fabd5b356d2f1200c166417ab97 SHA512 38abe8a0d6a5e940b760bc128e5fe4cb6daa98d54b9bdc179dbc8cc6dbe559257e7815ac133d40ba72a5a3231854c73d0835b1228b975c1f8645487002916dd1
|
||||
DIST fcitx5-chinese-addons-5.1.5_dict.tar.zst 1007840 BLAKE2B dc7cfe09789a6d7ed5d820ebdae133648748478746b3da7ec93a7e1bf31db34d212459dd64e1887bb7cb4ab15f2846fab1d97cf4a17082129c9f4a6cbf819e76 SHA512 50559f1f2ffa89eb24ce58a14c3ca21f3c1092961ce90b925fcf89a029d65c0aee3601d89003be5e92f9f1697e72d5eb2dade06863256a9a615f8be9ec2b2fe5
|
||||
EBUILD fcitx-chinese-addons-5.1.4.ebuild 1488 BLAKE2B 077940de82ba0e09f522382bd27043f3de32efa76353133f91386628fa3a48e8d4cc6f8e2fee09b8a16e546e58f5ef4c566d5fabd5b356d2f1200c166417ab97 SHA512 38abe8a0d6a5e940b760bc128e5fe4cb6daa98d54b9bdc179dbc8cc6dbe559257e7815ac133d40ba72a5a3231854c73d0835b1228b975c1f8645487002916dd1
|
||||
EBUILD fcitx-chinese-addons-5.1.5.ebuild 1497 BLAKE2B 6291f4dd3c08f9d88597f079d6a5907a150174d4accb2a176aa93ddae27aad0857becbffb87d89fe49f2560fd7cc00e1165ba0d407ab38a272ac3c35d8a4621a SHA512 2ed5301bf77e6c46a19f164248c53e5224e20e46a1ee910b4fd3b4cc8b538619e077ea2a909f0d36f004aa7ef3f18bcd3b2d864e08dcb451a47a62743c854f69
|
||||
MISC metadata.xml 993 BLAKE2B 034a9f1ca3966a67fb884f3e0ce6baeb83c3ccfb2b7d7d99d41e54ef30087c94d5a0c9729902e08eb8b781deeb71daf57b27f3d238beebf6e356e690aae7723b SHA512 05140cdf9695922cf2ddad40744d51d197fc3beab99ca7ba5d19b38a7c22762195f2e3a3c2e2ded46f253e1efeab06259429725830328c5f2001fe0752cd2b26
|
||||
|
@ -1,8 +1,8 @@
|
||||
DIST fcitx-configtool-0.4.10.tar.xz 50440 BLAKE2B f2f2241d3ea139f6f3de9b8c6ffcc71c789dfa291efe4c551596eebc8a04f13f9fe698cc25d8349a174399044d15ddca2aeab952ac2bc7f0f4e9e47d453329ca SHA512 1c1267e9de694bbd5f258b5bba1e7514c4f8556cdc82a1cce5eafd8a4ec571955285dade0acd02f128eca01f867a30c5c6264ee7e91d32a333eba6e4d275fe8f
|
||||
DIST fcitx-configtool-5.1.3.tar.xz 110124 BLAKE2B 0aa608b80388ef0ecb2bb693a23bb600addcffcb61f446c7cdafe9930a00809ab62a77cad008602e3cc0bd0ae743fb1bbef9caabf52cc45fdb42586316031f9f SHA512 05be9591c7e609e302f4c803d2799ee7d02fab5de5577067bdffe31fb507f28deb1d674f38d319628c2fa4b5948c4a6958704d18e19bd7c9006683cdeaed11d3
|
||||
DIST fcitx-configtool-5.1.4.tar.xz 110356 BLAKE2B 942cd0b68d689f865bb46796543cea7746a0409bead0cb0d79f30ca23b988f93ac81ed862855f521c5e36541d210d12f898d45f195dc2afb2181198c846a8b27 SHA512 95ac4a8b8c261ae990d30d34ffa02f14f00916197f8f9f81ca4dd8a33c609124b1cfb25ce3ff8ccb653409879606f7f97dc0fd01e8e1d7f2ddba8bdfc51ac6eb
|
||||
DIST fcitx-configtool-5.1.5.tar.zst 148724 BLAKE2B 5bb8c819e0bbf7f962b4e7e91b9e4ba39f0637b478fb7d0d386e6f807c6f46be5ef1e4b52fd4c006dcfee944e33fd928119efb6b332fe16f1bfe17c31d751b11 SHA512 da418ad709dd5074bb413e8a042a53c055d151d27e487933481276980bbb1a971f4d1909f43b7cb5bb3983c190cba4a3fc12d6f1a1984dd9babf4607bec7334f
|
||||
EBUILD fcitx-configtool-0.4.10.ebuild 851 BLAKE2B 97d7acbf9f2984de63df3c6e603fb7d5c4bb8d5828d70d3840b8bc8fb8381388112978c2967f404f485ddc441daaa14b8ea972cad92068dba17cc6758063f7b0 SHA512 e7de180936ec303bfc23e02b77f0d367e94c30253b55dae9bd47ea2a0eb60df7da2360eb25b0c5b6930d08239109629e75179d502e930140b46385bc1a262c7a
|
||||
EBUILD fcitx-configtool-4.9999.ebuild 818 BLAKE2B d034a75bf15f37b71243d5d1c15a8ec6114ca559d715101f031d434b1a9478c39298f95b022c7c4f8cd08ad2701eeefb4cef628a4795f5fd15567723b0c71362 SHA512 42b150975f7293dfdb67c6d6479803526438adc80032adbaadf6f03927f6adaafd4469d145d07a21f8b929cba6eddf20e21d2374085c8791d77046ed0f496659
|
||||
EBUILD fcitx-configtool-5.1.3.ebuild 1573 BLAKE2B d098b3a8f8890f08b31caa938c6c877f22ec5658acf82abfa3f06c7e7217747a25cff19fce73740a90689e3141ab78fd4fe2f30a522a1c3c29b84a567933d74e SHA512 2579af773516fe339a25771f2eb5fd13cb8a40d88032125e682c71b85d2b1384417a17b27874e7911d9d19cd3d79cd1cd45aaab53ddd0510e142b2cb65fd94ac
|
||||
EBUILD fcitx-configtool-5.1.4.ebuild 1573 BLAKE2B d098b3a8f8890f08b31caa938c6c877f22ec5658acf82abfa3f06c7e7217747a25cff19fce73740a90689e3141ab78fd4fe2f30a522a1c3c29b84a567933d74e SHA512 2579af773516fe339a25771f2eb5fd13cb8a40d88032125e682c71b85d2b1384417a17b27874e7911d9d19cd3d79cd1cd45aaab53ddd0510e142b2cb65fd94ac
|
||||
EBUILD fcitx-configtool-5.1.5.ebuild 1583 BLAKE2B cbe08ad6c326ba90266119497fa8ef5cb46a19e40c3e27a397ab95a65b89299258e604bf6b35e44d26471aefaf64a6a2aadb64d3cdda3224e5667766c726aff4 SHA512 9338eefaa1885cfe06b14db5b0a4aa0216c0863d3090fd880f7af2a86d417af5e945e83e63c982ca36591f0efa1ba0c762ead1a3c20eba372fa62316dbb7c23f
|
||||
MISC metadata.xml 951 BLAKE2B f3f59dbca74fc02c4deeb07675ade6a56ccafb8b0ed4388ee0afc7cecc1a0f470a350e95a2c6be6e32dd7a85f763daac6d31e8c876107c32a7d2438db212ddaa SHA512 3cd5ce6c71a2d386c5927f8e0289b470bbb16559fb8a0deeffdba8c50bbe7cfa642dfaa1d0d35ea931c3a774bc20f97b1e8f8c3e5d01fb926d9f9104837afaa3
|
||||
|
@ -1,5 +1,5 @@
|
||||
DIST fcitx-gtk-5.1.1.tar.xz 53716 BLAKE2B 6231d3b0c2fd788f0f780aee41837b9d8fb21f730b271082d8517f6f0da7e0a0d5216fd6364998bfe535872cf334b63fb1b326167175657d2c5cb59bac4aae45 SHA512 14dc84661e33435df5157127b2a4a81adc399cdc833e1c32795783d60bf10fd301fb658fc48673cad87abccfe3bccbb7b4ee0d0da74460b7ef1d6529a554a3eb
|
||||
DIST fcitx-gtk-5.1.2.tar.xz 53760 BLAKE2B 25eb0151bbc5a1277a593c2b07dce21f97f29d7d1bf4846a0edff7de0798e5bc33592ee00ddfffa8183a0e8d0bf1aaf1217b9f7e6cfde70c33b456740661e8bc SHA512 585a64b81caef55391e352a5efc2efcded1220c8be378be93e4fc6abc6b70132b3bb3211271d5ed02b1623a6ffcf7ce784de026969025b5efb3497f82676fefa
|
||||
EBUILD fcitx-gtk-5.1.1.ebuild 1469 BLAKE2B ec02b9912529a1befa3ec12b6bb54b2d6c417c20f9df18a2e21a3d737d048a63f08d0e00a3a0399115977d5646198fd712b0759589abf2221bd47456487b17af SHA512 d1349d757f60539917a8e97612f7589f19bae23da7a53a9e0e4a9d2a22b4565acba91189e9493c6234790692eb4867cf9aec23ba155c6d561550e3e06a9d25c3
|
||||
DIST fcitx-gtk-5.1.3.tar.zst 67927 BLAKE2B 0019500e2dc8beb716b16c4a37461e45c4b14fbd1485afd1367a6dad56f2f6d363b3415b3923aceeebe576e47f93680d806a74750ef730fc0046f5eb815d4f94 SHA512 e19ba77e9e3d37947871b2c90ecec9089840a5639c2f0dc1a2b11efeda8291c2ee28809a2b4dd69d12f1e5988a13fbd7826cf15c88ce595fa287c81b3efc7f0e
|
||||
EBUILD fcitx-gtk-5.1.2.ebuild 1469 BLAKE2B ec02b9912529a1befa3ec12b6bb54b2d6c417c20f9df18a2e21a3d737d048a63f08d0e00a3a0399115977d5646198fd712b0759589abf2221bd47456487b17af SHA512 d1349d757f60539917a8e97612f7589f19bae23da7a53a9e0e4a9d2a22b4565acba91189e9493c6234790692eb4867cf9aec23ba155c6d561550e3e06a9d25c3
|
||||
EBUILD fcitx-gtk-5.1.3.ebuild 1479 BLAKE2B 59c31cc2f01377aa417ec4b37d6522bbc224726852710a3757577a42e5f816e62615acb77738ec77cbe8b7a47b3e5b5993eb6d75d4dc6ba4ebc4350e4527120a SHA512 3e392347a490ec0a4597aa66689894376217c4a28054212cbd50af74c2b09751f8b9c76584dd2fb035cd2e25b4f738354ed902a908818343347f6ba8a85685c1
|
||||
MISC metadata.xml 872 BLAKE2B 88c8dd56d42438578ce739932b66b9b04e7ee647ea859187387b6d58825973e1b147d60429632caf1af61afdcaba793071d7d0c8222128c5b54647b1b754b593 SHA512 0048fa62e7228efd07624db98aea00d5e809f3b553c7f1fdded8a7ed906afc6feb60004842da882f45dda844c00c58b85cec9f31fac646085e9469010bb352c2
|
||||
|
@ -1,3 +1,5 @@
|
||||
DIST fcitx-lua-5.0.12.tar.xz 33576 BLAKE2B 2aa2d526e42270a14efc3f163baf775012afb917bdb4aa7f52b2bf420265095100dfc84b61c34e892403b89bc96f3e258fa8030a735f234b820644bb8e443122 SHA512 1f6273ff8b9c0c3ef12dfcf508535b7865b33b102a8e158e82853c25717351339ba055012288d857f0aea5596398dd65ab9ed0c822a533b715dafcea3ec44798
|
||||
DIST fcitx-lua-5.0.13.tar.zst 40578 BLAKE2B 05defed55711d26c2fabf41e5474f7f90224a11cd8a758b5f7afc4ed6096560ab6c220745968bb0ca28367004cdf665856d04c3b52830092e3633188cd41c394 SHA512 40855f65537c2e56e1a00d7ea160d6aae9d360ff27def7f95b2f08de16c656db7a178a676f49d817b9d16eac80f73ad12f84b966eeed4a3f38f119519d288805
|
||||
EBUILD fcitx-lua-5.0.12.ebuild 869 BLAKE2B e6d8bf9e2ab492cc77a2e4939c095feddcd7225b6995b76a753df691cc9891e4dabdd981164df11444560e2cf1f7e0dad029ef1916da69dc5a3d16b4afa06ebe SHA512 55544afad93966074e97d9ab647485077983320f1d745c96e95d62b23d067f495c39ebf535f9d739441ebdb299205f978c3adf0738d355e1f3b15428ff6d0bce
|
||||
EBUILD fcitx-lua-5.0.13.ebuild 879 BLAKE2B 0ee6d5b2892eb1cf9b27ce63ec1ada8844354282cce5897721054f3984440fbde7a83638158fdaee04dedf4b9f9e7c27c515d946cea3615d253a6fc45488758c SHA512 5421345500030ecb82a3502d02e55830e25e97bf522dc893be2e75dfc25e0aef90ec2c19a046b549bb536e3563876f50ec1b9e7cf370e451774fbf9f33d6969a
|
||||
MISC metadata.xml 1018 BLAKE2B 64a202bdb4addde0999963a134ae283b62945b4448b7942994c6aa6809f5506220461d697398cd5562123a5aa902f56f83f0ad2c65e708e9daa969475fc37387 SHA512 35777f31006124a5970656be244de8bd1134d0f7cfc24ae5a7ee576e9d2841af36a5a2bd239d36ef9a3accb19a75c20710f720151c23f2b3f08d98de6ce27ce0
|
||||
|
@ -0,0 +1,45 @@
|
||||
# Copyright 2023-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
LUA_COMPAT=( lua5-{3,4} )
|
||||
|
||||
MY_PN="fcitx5-lua"
|
||||
|
||||
inherit cmake lua-single xdg unpacker
|
||||
|
||||
DESCRIPTION="Lua support for fcitx"
|
||||
HOMEPAGE="https://github.com/fcitx/fcitx5-lua"
|
||||
SRC_URI="https://download.fcitx-im.org/fcitx5/${MY_PN}/${MY_PN}-${PV}.tar.zst -> ${P}.tar.zst"
|
||||
|
||||
S="${WORKDIR}/${MY_PN}-${PV}"
|
||||
LICENSE="LGPL-2.1+"
|
||||
SLOT="5"
|
||||
KEYWORDS="~amd64 ~arm64 ~loong ~riscv ~x86"
|
||||
IUSE="+dlopen test"
|
||||
REQUIRED_USE="${LUA_REQUIRED_USE}"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
${LUA_DEPS}
|
||||
app-i18n/fcitx:5
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
kde-frameworks/extra-cmake-modules:0
|
||||
sys-devel/gettext
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
pkg_setup() {
|
||||
lua-single_pkg_setup
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DUSE_DLOPEN=$(usex dlopen)
|
||||
-DENABLE_TEST=$(usex test)
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
@ -1,8 +1,8 @@
|
||||
DIST fcitx-table-extra-0.3.8.tar.xz 3700736 BLAKE2B b8ce4b3aa04eba8b594b86958bb83e348758c30688828a4834643cf7bdd62852c2ca89bc4f75f0cb1b16ce969b0454c58e3abadff9c78318dc0953e0905c75fa SHA512 454798e9bd25c630ce98e2daf7296e82ba5fbc98027171038a5a7b9ac3169c153302a6703d9416718ec3a0b76db6d732caf3f03c6e6005841c9d7798702542df
|
||||
DIST fcitx-table-extra-5.1.3.tar.xz 7557460 BLAKE2B c5a06cd79d19ad3794379da24f0fa2c41b7edba3b62a7e377d1b85c66844c10167e46bfbb7d79c3795f22b579eeac99b0c37e79e2778fb73fb92595495776b89 SHA512 14dc416c5d5936484fd0a940ee8e1e3ddd34064b48213e69d3e93ce63d60c95ceac727cf3925e2aa0457d001ef72276f647246b739b98a6480f27b47e356cc3b
|
||||
DIST fcitx-table-extra-5.1.4.tar.xz 7506768 BLAKE2B 62082946e5e399eda6d4d44e3aaac7e96975da9ec39031735d775f526e7879718dae0fb8020364c65ca684bb186affcd1956a1fb87da9971d0135d9acd025da2 SHA512 c26007209706263d29f189a6bb8088d5bde81c322649b6dba21df76fda3dc1a6926066c950bdbd09f3392216bbf61aec8657f8182844b5656e4111554b5025bb
|
||||
DIST fcitx-table-extra-5.1.5.tar.zst 13837962 BLAKE2B 52d546636fb0520826d9b4e8df3a68a163edd71a57ac7cc720916ebdd7141d6a4ce194ecb3aa205a568b10a99ae611e607325c652ed293ba16bb783bfd64bfd3 SHA512 19cc8f45c26f4841b3c8a4724375f8926741a153757626d4f5a598abc9ea0e12133b0ef13c3a1893675360102f69dd91b8c9861849d8f1677242339f11f475fc
|
||||
EBUILD fcitx-table-extra-0.3.8.ebuild 799 BLAKE2B 6fc1349116575e7e3d321cecc4ddc79291fb21f6c029ed79dd37fb82f4ae43be065c1c8497400276bc6b8dded972d35c96533271a9cf8d774115d247e3be2ac8 SHA512 42fbd0c40568c75a9e0f765b1dc1a5667c5878b5d1d9abdbcb445ca134a40d3f2f2e97b652ca8115e19f59243ddb7283074b975034de1b28f201c53ef8cfbf3a
|
||||
EBUILD fcitx-table-extra-4.9999.ebuild 773 BLAKE2B 1debb5da1822ed6e17c62a3a37f2f80e079166b9434cd2f9840f8d0a9f747affbd556040bf7088951fd1a5851e7dbacc62d4f98c3d9961a7f28488b41d65d5c6 SHA512 fd3b5d55e45e0712211cf7ebb8808fde09ba373d7f3ae13a9c43b871fb5287133fc4bb26429f2916d0ca1883406a49003f7b3b400d1e2c2a85dccc281034ac26
|
||||
EBUILD fcitx-table-extra-5.1.3.ebuild 669 BLAKE2B 5363fc9937218092d7085f9d49c02cbc556eed3ce03e52cea8647be58851b6e6c5514026616216a50391e738859906307fc449bb1da92a9e7d50dc561212a8cb SHA512 b6641d7e965a33d5fe00873785a709c1a2b92385d1cd944342576bb1533b85873d1ee0507d65563bb92fcd2555c6057935874339a4f068c18e6cada74ee700ea
|
||||
EBUILD fcitx-table-extra-5.1.4.ebuild 669 BLAKE2B 5363fc9937218092d7085f9d49c02cbc556eed3ce03e52cea8647be58851b6e6c5514026616216a50391e738859906307fc449bb1da92a9e7d50dc561212a8cb SHA512 b6641d7e965a33d5fe00873785a709c1a2b92385d1cd944342576bb1533b85873d1ee0507d65563bb92fcd2555c6057935874339a4f068c18e6cada74ee700ea
|
||||
EBUILD fcitx-table-extra-5.1.5.ebuild 679 BLAKE2B deb5996d1af66e943898411aa9552decbf64f9dec9518cb609a1faeda1ebd2ba7159cabcd19f68d7d336e6916013c65c9f0e7c867cd5fbacdb83239d189b377b SHA512 a89c4b9792064d4fa818f3a65c865680c061668969ac422e79a0950e175b9edbfb3cff9702abd587164eeebdab6962ee5ff4d1fea39873bb96fca9a8d5156012
|
||||
MISC metadata.xml 794 BLAKE2B fbfb8bd1017ea97c3b91ad0c4c026a4bd69be61335c0d7a0848171b0747846a54c20db9c074db0ffd57d83b38950813224bba60f4a5c9c06ebbba5537af988e1 SHA512 f9ba53ade10f716760b7a751fdd2388b40dd9abc7336c280d31b20e52f114f4a5b23e8d29d616caaa6ec677d15fca1213756d8066a1838b85884b521fa46d59d
|
||||
|
@ -1,5 +1,5 @@
|
||||
DIST fcitx-table-other-5.1.0.tar.xz 285864 BLAKE2B 22ccfe519d497fb12c929404632b4e683e0471f8e5183492e9e1607b7a09042c30fc4515d323c0a0d33bfa683ed93b59af988622bc83148fc89e825605626612 SHA512 91b1b38edad9eef862f0bd72423cd2caf343688563190b8b67a24d468d6a1b367847c5e87cc3f440ab5a41a03575721206f86a75b7568b3453e975d4457bf03b
|
||||
DIST fcitx-table-other-5.1.1.tar.xz 284308 BLAKE2B 7dee4d9ba5debe19568ff3fea7ce025f6b27d0641fd5207fc67e726b61621975d5553478de4136b72ccc930675df4c5096ec340da16471351ef00f107ce94e1a SHA512 13e4139a0ed320f7bae1d9e6ac68eae624235fb00446dc3db7b01913f130324cc1353115c1d8c9b34e04507b9956ef5875ec59a398eec6dfdbda281b67dafdc7
|
||||
EBUILD fcitx-table-other-5.1.0.ebuild 636 BLAKE2B 8a1b2a3c1b7487577c1df9167f3dd2955fbb85eda35446bd1c1588bfad13dfe74863c0fbbb86a5aba6876aa0765f14fae64eda69a90a9be415d43fd2a844f1c1 SHA512 a350350a2c8772f8a6a1a997f44630519063886c1d6c1ffb7553533e9edfc51536cf40a026d1f39f647d05ce5c1b450975c6f66d64104dc5809673e34b420d60
|
||||
DIST fcitx-table-other-5.1.2.tar.zst 532035 BLAKE2B de699a15b50eadd4a4693b38ca4ba44ae98ff8c31373305a7d8f83c5ea7c24c811c718f217831bebc3e5fe126d010b866d53929b20b2e7e401ed1bf3252b815a SHA512 d09bba6c60f625a9a9c2aad3599305438809c0bc5b7d5354502cdfb928822cb670f391a14b150637050322021c379b8e07e634bc9a016751755759e0dbd97596
|
||||
EBUILD fcitx-table-other-5.1.1.ebuild 636 BLAKE2B 8a1b2a3c1b7487577c1df9167f3dd2955fbb85eda35446bd1c1588bfad13dfe74863c0fbbb86a5aba6876aa0765f14fae64eda69a90a9be415d43fd2a844f1c1 SHA512 a350350a2c8772f8a6a1a997f44630519063886c1d6c1ffb7553533e9edfc51536cf40a026d1f39f647d05ce5c1b450975c6f66d64104dc5809673e34b420d60
|
||||
EBUILD fcitx-table-other-5.1.2.ebuild 646 BLAKE2B 3bb02372acb7e6c399f615bbcbdf11f25d28a715d3312d47318275edd9597148e52a8ca7bb1fa15e05f7f78657bae87e378b14cad0cf4c11345cf6adef891138 SHA512 0d8ba2648d224102899ede4b2f5d0840127976ce0a1e6d5cc9d443bcf7c09b6deafd9667ae604e445c779db8d254b9bea06534c843a84ad2d32a76ce86b686b8
|
||||
MISC metadata.xml 583 BLAKE2B 9e27f3a3ffa0da1affef2ccabd3535f69a10a13b1a79f1eec74005ae1b97b8b3b89be1a90117ff00b7d6e903acc6a6e8b1d1c10f5fc1b7e7274edf6bd40d80e0 SHA512 2705b85869a5827543d897de9861ce7630ffe67d6e9d51e2b571924aa39d05efe3f8b4296fe80fcbe427783bec673427c0e96ad87bb8535ecdbc7f1f8b100bfe
|
||||
|
@ -1,5 +1,5 @@
|
||||
DIST libime-1.1.5_dict.tar.xz 36440624 BLAKE2B 20a4868dbf971d26b2772d8a95dec13f7a12689a763839ea99d700c6c74dc9e5b6b228b8adbb1b12cd3007bd42987ea11093d9ba2fb7bcbbc0a6254af90d8efa SHA512 d218025e5e40b87571a6285435c79d12f664ffef232bbb7a6698f99f36e62ee15e7d5da133fbc73e2b9b6443b6f5f7461f7b6f9feb3d18c49b8463d3aec786b2
|
||||
DIST libime-1.1.6_dict.tar.xz 36441068 BLAKE2B b10fff3c145fe96be0537c9934ffbbe2f0cea70df0bd4a3d517cfb74cbc976202846b14396c4f04097ebd24d268b3df7208113dbcd4dc0cd39fee7918381ec2d SHA512 adb7570c4d62ea94c8c38ab79a2a26700882088b518b6b7d6e16b0808d30ec751ee78d5084270adcacdeb4f3bace60332c4d67388eebfbf73627d22b30651bc4
|
||||
EBUILD libime-1.1.5.ebuild 936 BLAKE2B d09eb5bf17e1a396a50fb4f4287368b8811e3355c0f4960bd07cd96381c183d5a170b2fa38319bde82b36ea3f3301e290ba4f103307622e56b96ccbbe84dd363 SHA512 58640c2710071a85a3cc1cf4888c401672d96ee293cd4566bf7b0f975eb81cb8d7d1fdc36db28f596a484d817096c70deee51afd2d4720ee8dbb404389959404
|
||||
DIST libime-1.1.7_dict.tar.zst 37060247 BLAKE2B 1d81110e40844ad4e8b78445afbea7c7310150e75723e011bbc67e6cf75993197569f17192e4b4134e5bd99b0e5947d49fd6a622f02cd6df17cb176b23d31510 SHA512 67b69fe33e2a55cf9f82c668f3c97929fe8a0531e1540fa593ef15535ba66e079171928a54b268638a1d5fd14901f47500d1a6f79ad0e28f7f81e426f1384b42
|
||||
EBUILD libime-1.1.6.ebuild 936 BLAKE2B d09eb5bf17e1a396a50fb4f4287368b8811e3355c0f4960bd07cd96381c183d5a170b2fa38319bde82b36ea3f3301e290ba4f103307622e56b96ccbbe84dd363 SHA512 58640c2710071a85a3cc1cf4888c401672d96ee293cd4566bf7b0f975eb81cb8d7d1fdc36db28f596a484d817096c70deee51afd2d4720ee8dbb404389959404
|
||||
EBUILD libime-1.1.7.ebuild 946 BLAKE2B 04d1e70581f0426a039e8994f4a4efd4db537792dd5bcbddef8991204171cf5c67116374797eb7004e003312176d3d9e3796107457e183388dc3e82d1c5f78d0 SHA512 9d03ce6b8a66bc3ac8667cc906e510089a631c9d93c6eb19d3ee58cc9acfcc3c419b6e5e1d5fd4f68016d0554f02158a0cbce958c7de1b460170289b7ce27a74
|
||||
MISC metadata.xml 624 BLAKE2B 7c0e1d29bf86d256ac8ace1404f3ef8e017171cf461f861b2b681c9bb6c7c3bb639b13cbdccc506a07805ea9e23f449e22bba1ac16d3f40ecdd10b894ea0632d SHA512 8449b74e190a0acf83f4e5b0c0ed023e5a37e203a4e514074b9e8165616c43659d993e165bb170aa8902865166a7ceaf65bec04645be7b1390ddc80c2e43066a
|
||||
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,4 @@
|
||||
DIST feathernotes-1.2.0.tar.gz 926273 BLAKE2B ae945ae6adb95d3cd8ef42becfcd68a591ef62f97f05d514f19a9c07e6900b2230e89361b65abfc2082797755bcb8b6c521b72a6406a21886ba6ab386f23295f SHA512 f6aabc0d4bee5f3af20a86035befbc27eddedc5ec37c9a353723a80fb0f691af6ad57d5f50a0e8504336c141822227f8287ed61e52d084b34e3b8ab5246315c0
|
||||
EBUILD feathernotes-1.2.0.ebuild 757 BLAKE2B 7194c4de3c0542273fab9027525556f261fcf1029a432972f65ee6e83b70937469cd64cb25b7685e98b1158b3e27aaf77e6ba448d0664985ef6cdf12db7ab987 SHA512 9ee94680a54479dacc61f78c4ce29fec65850d89ed5887a1c77b0924222e30e4c13ad05c9236075a9f6fda22e9c41a5723fbeb6b6f9a1ccad7c2378d712d236d
|
||||
EBUILD feathernotes-9999.ebuild 681 BLAKE2B ef94f3e2299a2c27bdbc2da7d5138f6601e980fca10722be9b701253aa9872fd02cf7bfdcdc3e3cc9254c52dc588ce10fe11e9ecbb8330780c668903a7a43fad SHA512 09f79a01816602abb99a9274cd3ccfb202940d595f1c634953dd765621f62641bc11c5e9351384f2e331c2edcb0c805532de589f449fbc17d11769c418b4c743
|
||||
MISC metadata.xml 484 BLAKE2B f8ec67b99fada42c9ffe7fe44f68b51826e07a593deacc1893e0a2010ac1124258518ca584320948a65dd699572d79c6d4d02aad03f55dd9ec6f72ae33a8c974 SHA512 2668c8daa2b4b2e9d5a2d278aea95c6be39ec93a608daa45e315ef48b897c9405afef36583119e7e322b37bc0275c4be38441c2da8456c3f3a4d7b3115ed2a7f
|
@ -0,0 +1,35 @@
|
||||
# Copyright 2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit cmake xdg
|
||||
|
||||
DESCRIPTION=" Lightweight Qt Notes-Manager for Linux"
|
||||
HOMEPAGE="https://github.com/tsujan/FeatherNotes"
|
||||
SRC_URI="https://github.com/tsujan/FeatherNotes/archive/V${PV}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/FeatherNotes-${PV}"
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="spell X"
|
||||
|
||||
RDEPEND="
|
||||
dev-qt/qtbase:6[dbus,gui,network,widgets,xml,X?]
|
||||
dev-qt/qtsvg:6
|
||||
spell? ( app-text/hunspell:= )
|
||||
X? ( x11-libs/libX11 )
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
X? ( x11-base/xorg-proto )
|
||||
"
|
||||
BDEPEND="dev-qt/qttools:6[linguist]"
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DWITHOUT_X11=$(usex !X)
|
||||
-DWITH_HUNSPELL=$(usex spell)
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
# Copyright 2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit git-r3 cmake xdg
|
||||
|
||||
DESCRIPTION=" Lightweight Qt Notes-Manager for Linux"
|
||||
HOMEPAGE="https://github.com/tsujan/FeatherNotes"
|
||||
EGIT_REPO_URI="https://github.com/tsujan/FeatherNotes"
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
IUSE="spell X"
|
||||
|
||||
RDEPEND="
|
||||
dev-qt/qtbase:6[dbus,gui,network,widgets,xml,X?]
|
||||
dev-qt/qtsvg:6
|
||||
spell? ( app-text/hunspell:= )
|
||||
X? ( x11-libs/libX11 )
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
X? ( x11-base/xorg-proto )
|
||||
"
|
||||
BDEPEND="dev-qt/qttools:6[linguist]"
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DWITHOUT_X11=$(usex !X)
|
||||
-DWITH_HUNSPELL=$(usex spell)
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>arthurzam@gentoo.org</email>
|
||||
<name>Arthur Zamarin</name>
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="X">
|
||||
Link application against X11 libraries which adds
|
||||
support for virtual desktop awareness and tab DND
|
||||
</flag>
|
||||
</use>
|
||||
<upstream>
|
||||
<remote-id type="github">tsujan/FeatherNotes</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
Binary file not shown.
@ -0,0 +1,70 @@
|
||||
# Copyright 2018-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
inherit edo ninja-utils python-any-r1 toolchain-funcs
|
||||
|
||||
DESCRIPTION="GN is a meta-build system that generates build files for Ninja"
|
||||
HOMEPAGE="https://gn.googlesource.com/"
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://gn.googlesource.com/gn"
|
||||
else
|
||||
# The version number is derived from `git describe HEAD --abbrev=12`
|
||||
SRC_URI="https://deps.gentoo.zip/dev-build/gn/${P}.tar.xz"
|
||||
KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
|
||||
fi
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
app-alternatives/ninja
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/gn-gen-r5.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
:
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
python_setup
|
||||
tc-export AR CC CXX
|
||||
if use elibc_musl ; then # bug 906362
|
||||
export CC="${CC} -D_LARGEFILE64_SOURCE"
|
||||
export CXX="${CXX} -D_LARGEFILE64_SOURCE"
|
||||
fi
|
||||
unset CFLAGS
|
||||
set -- ${EPYTHON} build/gen.py --no-last-commit-position --no-strip --no-static-libstdc++ --allow-warnings
|
||||
edo "$@"
|
||||
cat >out/last_commit_position.h <<-EOF || die
|
||||
#ifndef OUT_LAST_COMMIT_POSITION_H_
|
||||
#define OUT_LAST_COMMIT_POSITION_H_
|
||||
#define LAST_COMMIT_POSITION_NUM ${PV##0.}
|
||||
#define LAST_COMMIT_POSITION "${PV}"
|
||||
#endif // OUT_LAST_COMMIT_POSITION_H_
|
||||
EOF
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
eninja -C out gn
|
||||
}
|
||||
|
||||
src_test() {
|
||||
eninja -C out gn_unittests
|
||||
out/gn_unittests || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin out/gn
|
||||
einstalldocs
|
||||
|
||||
insinto /usr/share/vim/vimfiles
|
||||
doins -r misc/vim/{autoload,ftdetect,ftplugin,syntax}
|
||||
}
|
Binary file not shown.
@ -1,5 +1,3 @@
|
||||
DIST rapidfuzz-cpp-3.0.2.gh.tar.gz 301823 BLAKE2B 49743ab1634649bf5a2b33d91dce1877b0c3135345d9c187eb2d633a1bb804701697d8245a74cfde2a76564abeb3fc8228dce121dcc1a05f74630400d06bb659 SHA512 76c1c5cc193c023c3994404c634bfb071eb45e737fcf81a74f1fa6c345a4daf69202d96bb31041b5393f344c176709f466df46eeb0ee0c4c329e70a58b7cab9d
|
||||
DIST rapidfuzz-cpp-3.0.4.gh.tar.gz 301889 BLAKE2B eb4b27a0a6b4e5268036bb0fd79e57136685daf307d808de27515279bed63e1b934f504e9f7c22a20fbb028d322df824fce33398685708a2db3d11de93bd77d3 SHA512 c9cc50f7d68756d81a5d2c5efdd76e859fe5a199bf5e45179effcd85e32f0bb98b593b93c2aa57950a04c3d827af98efb13096b9669329881d658ababc059fd5
|
||||
EBUILD rapidfuzz-cpp-3.0.2.ebuild 637 BLAKE2B 7eb8542f2b107e874541d757bf52d492c4ede70ac87f8db938dd30de5b72c02c8fc58dcdc9aa4fa306dea4b7a32608bd922212c087962151287ffa760f24a729 SHA512 8942fbf48246ea0a131f7b27a27e0c43d80b99791c4e7b20b18133957b8f833462d4d9730c0036525aa1c09031a56d60e97554642bbe1a22b1e9337a863ecc37
|
||||
EBUILD rapidfuzz-cpp-3.0.4.ebuild 638 BLAKE2B e4c18ea098f7dc272d8d8af9b46e0f6b66c731794cf0a105f0b0a1de4aa510d8efabe73c65dc3fa6f0d0c459f80266789bdd730144d2e398e8a3feae86a05f40 SHA512 8bc7e2549c845ce7e3356ef57d0ee67c13d5449f2e09031f2edde404718543310075563b0cbc6812ed88a23ad29fc0dcfd10fc3d78a024cf1e63ebf4d612fc1f
|
||||
EBUILD rapidfuzz-cpp-3.0.4.ebuild 637 BLAKE2B 7eb8542f2b107e874541d757bf52d492c4ede70ac87f8db938dd30de5b72c02c8fc58dcdc9aa4fa306dea4b7a32608bd922212c087962151287ffa760f24a729 SHA512 8942fbf48246ea0a131f7b27a27e0c43d80b99791c4e7b20b18133957b8f833462d4d9730c0036525aa1c09031a56d60e97554642bbe1a22b1e9337a863ecc37
|
||||
MISC metadata.xml 336 BLAKE2B e425e950b6a0524afb6b996f846fdda73310168d6415a67570ac01a75a2c9335b4f5785bda271a2cf88bf5d7e3708582d958d1fa658d12f36fc5455df9763573 SHA512 868c16a2c2b178fa38e65568aeacf5b96a8d4ebf4521094a0da106194de0acefd017d5f7c827d89a9711c6b80d5603a01d9e15ba9b167c55954f3d653ccc6ed5
|
||||
|
@ -1,32 +0,0 @@
|
||||
# Copyright 2022-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit cmake
|
||||
|
||||
DESCRIPTION="Rapid fuzzy string matching in C++"
|
||||
HOMEPAGE="https://github.com/rapidfuzz/rapidfuzz-cpp/"
|
||||
SRC_URI="
|
||||
https://github.com/rapidfuzz/rapidfuzz-cpp/archive/v${PV}.tar.gz
|
||||
-> ${P}.gh.tar.gz
|
||||
"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
IUSE="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="
|
||||
test? (
|
||||
>=dev-cpp/catch-3
|
||||
)
|
||||
"
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DRAPIDFUZZ_BUILD_TESTING=$(usex test)
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
Binary file not shown.
@ -1,7 +1,10 @@
|
||||
AUX 8.0-cmake-doc-path.patch 1384 BLAKE2B 96f2bb290e48363c9cfababb845732291f709a4f996f13ea39cb2dd5fc0a19a68dd87cbf3454fd48c5f2281ebb0f786f2415b6e45f5714c967e5ba5b5005bd5d SHA512 d2a007d9c6846ad22a1f43c621f0376085802f3b15ca846fa1dd5bc8c3fb6ec1dc913240cb1135ab16f9dd369c8680aba5f600c7d28660dd28bb06873d97cce3
|
||||
AUX myodbc-8.0.19-cxxlinkage.patch 812 BLAKE2B 18e0f62ceb6bb33ad282972a8aae2f755c0324dbff09b450230d7eafb054a37b2f2ea47d6ab9eed42b0ce0682383c6a9e00d222dd5d7c81bb0ea4f4fe470808e SHA512 f4eb1f8c2182a1a6002548a3ef1fa37e859613b8ab31c67c34d6d7f237f435fe2cdada05e75a518d67c05175e5a6535ece55541bfde477df9820a871e83347d3
|
||||
AUX myodbc-8.0.32-include-string.patch 291 BLAKE2B a7645e918f7453f5d469976f5a52bc7dd02c3b8c0d814d0faa6eb96506220cb463a562f4ada2bcb0116906e4c233d6c53f0a722839580b3999f373e9d7539ab5 SHA512 25c228df7bfe383f26f63982f71fc13b32248b89f4bba4d82a1b20f913bd8d2cc1a237d0eb9cc22762f38a45edf83005949786436f962056b2735c461b485baf
|
||||
AUX odbc.ini.m4 406 BLAKE2B 3a20c28b1971753a14a4aa4d30efcc7de833488501a41d9404987567623d48250ce1daea1d3138adaef36741c4f2e0eafc60eba554e5262b45084f93f5205160 SHA512 84ab2a3aab594123d42b65205a7faf8e91fe9416a9e3c4c4c354533b9a298395f59172649c91dc0b671392bfbe5baeaddb6aa47119ce4c825917f3977d9dd521
|
||||
AUX odbcinst.ini.m4 118 BLAKE2B 6da835746e063f415ad7d640233cfd96e744cd56e12aaab4a21a2bf0bd5f1bd1e5c3d1c9a28522e3aa07c1261abac92301819d4112ac6a000a729aca9f7f7ad6 SHA512 6d929bbffd602a9f060a05998149a6b16334f8a5e3db30d02ff5d38c0065085d085042521e700b87a63766e32aa27ae92be72cef33c2a7aa8f6767b6b71c82c8
|
||||
DIST mysql-connector-odbc-8.0.27-src.tar.gz 3849283 BLAKE2B 6a2500cdd706c0f8cda83dd04d3e573baa0bfbad59c931e20bb25a3f09dd78d2380079d0a20e075c3f44482d58acb6e727f4cbcf490e9d4d7817dd26f98061ee SHA512 4f907b7647425c274d3bd1c3b3ebbb83ac2360f2ee56733dabb501c17b800a26ef1117e16e5b05180ff904bfc642d25393baa861b96a79edf9d35f186a8689b2
|
||||
DIST mysql-connector-odbc-8.0.32-src.tar.gz 3845574 BLAKE2B 84adca951149739b79c60ee89416d2e638c5a5880feaed69afbd9de3a671ce505bad04303ccab9f13410f83e8827d9e3ee658b9e1241e66243d3424ac525525b SHA512 8011b131657e214de3f33407893ff990e2238e79a5d0ef76a64797c6f160f0895ed819e81c04054b3b4d439fc0db85c4813c713401db28092a9f6da16f24fb34
|
||||
EBUILD myodbc-8.0.27-r1.ebuild 3390 BLAKE2B f7076a9259031d8d92b121cf3deed3be0a61122329bcca9cfff585f104cdda355f159cc4191beafeb59531342d52ec5c791102eb72bc3dfbdd33eeee0d915303 SHA512 a044e12eb06896bc00e4d4fc1f36875d725b3ff127c7648012557633af60e62d03f7a8f34ef90cca6754d461a8ae811951acfa24ce1d34ea1d35c66017a7bc57
|
||||
EBUILD myodbc-8.0.32.ebuild 3476 BLAKE2B 3b96475d402c219dc9abfc494f475da9d61526cdbe1269bdef378e88431860330c22d7211c19f42be45c0309d7b7dbd0a68a0e260ff8412bdb3b5e96e6cff557 SHA512 df3b22989a19e9a4e23e35c89af9b2935375c2d860cd8e5e807a12428e364c9ba56181d743a3953b7826bbd3138a174161ca9c136471c32364187a53b8eecf50
|
||||
MISC metadata.xml 335 BLAKE2B bd41dfc9b0bb01a54d8754c81bbdfe4fe9e1b9331865beeeed7b853100a27c008feb7977b5a7ec1a1f50e95bf66e3361e85a12ac9d0009de134f5437f6bd8b52 SHA512 dc350644f551aaee6c0437721e8bd842bb33b9e55d60e38b169c861182103d4a1afd7ce99d38606912fc944d32bd5b7db0a280c9a65c833a16e7cf075a95f067
|
||||
|
@ -0,0 +1,14 @@
|
||||
# Gentoo Bug: https://bugs.gentoo.org/919501
|
||||
|
||||
diff --git a/dltest/dltest.c b/dltest/dltest.c
|
||||
index d3b9360..3fb354b 100644
|
||||
--- a/dltest/dltest.c
|
||||
+++ b/dltest/dltest.c
|
||||
@@ -28,6 +28,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
|
||||
#ifdef WIN32
|
||||
#include <windows.h>
|
@ -0,0 +1,130 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit cmake-multilib
|
||||
|
||||
MAJOR="$(ver_cut 1-2)"
|
||||
MY_PN="mysql-connector-odbc"
|
||||
MY_P="${MY_PN}-${PV/_p/r}-src"
|
||||
|
||||
DESCRIPTION="ODBC driver for MySQL"
|
||||
HOMEPAGE="https://dev.mysql.com/downloads/connector/odbc/"
|
||||
SRC_URI="https://dev.mysql.com/get/Downloads/Connector-ODBC/${MAJOR}/${MY_P}.tar.gz"
|
||||
S="${WORKDIR}"/${MY_P}
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="${MAJOR}"
|
||||
KEYWORDS="~amd64 ~ppc ~x86"
|
||||
|
||||
RDEPEND="
|
||||
dev-db/unixODBC[${MULTILIB_USEDEP}]
|
||||
>=dev-db/mysql-connector-c-8.0:0=[${MULTILIB_USEDEP}]
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
# Careful!
|
||||
DRIVER_NAME="${PN}-${SLOT}"
|
||||
|
||||
PATCHES=(
|
||||
# Patch document path so it doesn't install files to /usr
|
||||
"${FILESDIR}/${MAJOR}-cmake-doc-path.patch"
|
||||
"${FILESDIR}/${PN}-8.0.19-cxxlinkage.patch"
|
||||
"${FILESDIR}/${PN}-8.0.32-include-string.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
# Remove tests
|
||||
sed -i -e "s/ADD_SUBDIRECTORY(test)//" \
|
||||
"${S}/CMakeLists.txt" || die
|
||||
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
CMAKE_BUILD_TYPE="RelWithDebInfo"
|
||||
|
||||
mycmakeargs+=(
|
||||
-DCMAKE_C_FLAGS_RELWITHDEBINFO=-DNDEBUG
|
||||
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=-DNDEBUG
|
||||
-DMYSQLCLIENT_STATIC_LINKING=OFF
|
||||
-DMYSQL_CXX_LINKAGE=YES
|
||||
-DWITH_UNIXODBC=YES
|
||||
-DWITH_DOCUMENTATION_INSTALL_PATH="${EPREFIX}"/usr/share/doc/${PF}
|
||||
-DLIB_SUBDIR="$(get_libdir)/${PN}-${MAJOR}"
|
||||
-DMYSQLCLIENT_NO_THREADS=ON
|
||||
-DDISABLE_GUI=ON
|
||||
# Don't build "libmysql_strings.so" and "libmysql_sys.so" which are only
|
||||
# used internally
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
# The NUMA and LIBWRAP options are not really used.
|
||||
# They are just copied from the server code
|
||||
-DWITH_NUMA=OFF
|
||||
-DWITH_LIBWRAP=OFF
|
||||
)
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
debug-print-function ${FUNCNAME} "$@"
|
||||
|
||||
rm -rf "${ED}"/usr/test || die
|
||||
|
||||
dodir /usr/share/${PN}-${SLOT}
|
||||
for i in odbc.ini odbcinst.ini; do
|
||||
einfo "Building $i"
|
||||
sed \
|
||||
-e "s,__PN__,${DRIVER_NAME},g" \
|
||||
-e "s,__PF__,${MAJOR},g" \
|
||||
-e "s,lib/libmyodbc3.so,$(get_libdir)/${PN}-${MAJOR}/libmyodbc${SLOT:0:1}a.so,g" \
|
||||
>"${D}"/usr/share/${PN}-${SLOT}/${i} \
|
||||
<"${FILESDIR}"/${i}.m4 \
|
||||
|| die "Failed to build $i"
|
||||
done
|
||||
|
||||
rm -rf "${ED}/usr/$(get_libdir)/${PN}-${MAJOR}/private" \
|
||||
|| die "failed to remove bundled libs"
|
||||
|
||||
mv "${D}/usr/bin/myodbc-installer" \
|
||||
"${D}/usr/bin/myodbc-installer-${MAJOR}" || die "failed to move slotted binary"
|
||||
}
|
||||
|
||||
pkg_config() {
|
||||
[ -n "${ROOT}" ] && \
|
||||
die 'Sorry, non-standard ROOT setting is not supported :-('
|
||||
|
||||
local msg='MySQL ODBC driver'
|
||||
local drivers=$(/usr/bin/odbcinst -q -d)
|
||||
|
||||
if echo $drivers | grep -vq "^\[${DRIVER_NAME}\]$" ; then
|
||||
ebegin "Installing ${msg}"
|
||||
/usr/bin/odbcinst -i -d -f /usr/share/${PN}-${SLOT}/odbcinst.ini
|
||||
rc=$?
|
||||
eend $rc
|
||||
[ $rc -ne 0 ] && die
|
||||
else
|
||||
einfo "Skipping already installed ${msg}"
|
||||
fi
|
||||
|
||||
local sources=$(/usr/bin/odbcinst -q -s)
|
||||
msg='sample MySQL ODBC DSN'
|
||||
if echo $sources | grep -vq "^\[${DRIVER_NAME}-test\]$"; then
|
||||
ebegin "Installing ${msg}"
|
||||
/usr/bin/odbcinst -i -s -l -f /usr/share/${PN}-${SLOT}/odbc.ini
|
||||
rc=$?
|
||||
eend $rc
|
||||
[ $rc -ne 0 ] && die
|
||||
else
|
||||
einfo "Skipping already installed ${msg}"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "If this is a new install, please run the following command"
|
||||
elog "to configure the MySQL ODBC drivers and sources:"
|
||||
elog "emerge --config =${CATEGORY}/${PF}"
|
||||
elog "Please note that the driver name used to form the DSN now includes the SLOT."
|
||||
elog "The myodbc-install utility is installed as myodbc-install-${MAJOR}"
|
||||
}
|
@ -0,0 +1,76 @@
|
||||
From 50a1eae942effb0a9b90724323ef8f2a67e7984a Mon Sep 17 00:00:00 2001
|
||||
From: Peter Dimov <pdimov@gmail.com>
|
||||
Date: Wed, 16 Nov 2022 10:43:31 +0200
|
||||
Subject: [PATCH] Change mpl::integral_c to boost::integral_constant to avoid
|
||||
Clang 16 errors when constructing out of range enums (refs #24,
|
||||
https://github.com/boostorg/mpl/issues/69)
|
||||
|
||||
--- a/boost/boost_1_77_0/boost/numeric/conversion/detail/int_float_mixture.hpp
|
||||
+++ b/boost/boost_1_77_0/boost/numeric/conversion/detail/int_float_mixture.hpp
|
||||
@@ -16,15 +16,15 @@
|
||||
#include "boost/numeric/conversion/int_float_mixture_enum.hpp"
|
||||
#include "boost/numeric/conversion/detail/meta.hpp"
|
||||
|
||||
-#include "boost/mpl/integral_c.hpp"
|
||||
+#include "boost/type_traits/integral_constant.hpp"
|
||||
|
||||
namespace boost { namespace numeric { namespace convdetail
|
||||
{
|
||||
// Integral Constants for 'IntFloatMixture'
|
||||
- typedef mpl::integral_c<int_float_mixture_enum, integral_to_integral> int2int_c ;
|
||||
- typedef mpl::integral_c<int_float_mixture_enum, integral_to_float> int2float_c ;
|
||||
- typedef mpl::integral_c<int_float_mixture_enum, float_to_integral> float2int_c ;
|
||||
- typedef mpl::integral_c<int_float_mixture_enum, float_to_float> float2float_c ;
|
||||
+ typedef boost::integral_constant<int_float_mixture_enum, integral_to_integral> int2int_c ;
|
||||
+ typedef boost::integral_constant<int_float_mixture_enum, integral_to_float> int2float_c ;
|
||||
+ typedef boost::integral_constant<int_float_mixture_enum, float_to_integral> float2int_c ;
|
||||
+ typedef boost::integral_constant<int_float_mixture_enum, float_to_float> float2float_c ;
|
||||
|
||||
// Metafunction:
|
||||
//
|
||||
--- a/boost/boost_1_77_0/boost/numeric/conversion/detail/sign_mixture.hpp
|
||||
+++ b/boost/boost_1_77_0/boost/numeric/conversion/detail/sign_mixture.hpp
|
||||
@@ -16,15 +16,15 @@
|
||||
#include "boost/numeric/conversion/sign_mixture_enum.hpp"
|
||||
#include "boost/numeric/conversion/detail/meta.hpp"
|
||||
|
||||
-#include "boost/mpl/integral_c.hpp"
|
||||
+#include "boost/type_traits/integral_constant.hpp"
|
||||
|
||||
namespace boost { namespace numeric { namespace convdetail
|
||||
{
|
||||
// Integral Constants for 'SignMixture'
|
||||
- typedef mpl::integral_c<sign_mixture_enum, unsigned_to_unsigned> unsig2unsig_c ;
|
||||
- typedef mpl::integral_c<sign_mixture_enum, signed_to_signed> sig2sig_c ;
|
||||
- typedef mpl::integral_c<sign_mixture_enum, signed_to_unsigned> sig2unsig_c ;
|
||||
- typedef mpl::integral_c<sign_mixture_enum, unsigned_to_signed> unsig2sig_c ;
|
||||
+ typedef boost::integral_constant<sign_mixture_enum, unsigned_to_unsigned> unsig2unsig_c ;
|
||||
+ typedef boost::integral_constant<sign_mixture_enum, signed_to_signed> sig2sig_c ;
|
||||
+ typedef boost::integral_constant<sign_mixture_enum, signed_to_unsigned> sig2unsig_c ;
|
||||
+ typedef boost::integral_constant<sign_mixture_enum, unsigned_to_signed> unsig2sig_c ;
|
||||
|
||||
// Metafunction:
|
||||
//
|
||||
--- a/boost/boost_1_77_0/boost/numeric/conversion/detail/udt_builtin_mixture.hpp
|
||||
+++ b/boost/boost_1_77_0/boost/numeric/conversion/detail/udt_builtin_mixture.hpp
|
||||
@@ -15,15 +15,15 @@
|
||||
#include "boost/numeric/conversion/udt_builtin_mixture_enum.hpp"
|
||||
#include "boost/numeric/conversion/detail/meta.hpp"
|
||||
|
||||
-#include "boost/mpl/integral_c.hpp"
|
||||
+#include "boost/type_traits/integral_constant.hpp"
|
||||
|
||||
namespace boost { namespace numeric { namespace convdetail
|
||||
{
|
||||
// Integral Constants for 'UdtMixture'
|
||||
- typedef mpl::integral_c<udt_builtin_mixture_enum, builtin_to_builtin> builtin2builtin_c ;
|
||||
- typedef mpl::integral_c<udt_builtin_mixture_enum, builtin_to_udt> builtin2udt_c ;
|
||||
- typedef mpl::integral_c<udt_builtin_mixture_enum, udt_to_builtin> udt2builtin_c ;
|
||||
- typedef mpl::integral_c<udt_builtin_mixture_enum, udt_to_udt> udt2udt_c ;
|
||||
+ typedef boost::integral_constant<udt_builtin_mixture_enum, builtin_to_builtin> builtin2builtin_c ;
|
||||
+ typedef boost::integral_constant<udt_builtin_mixture_enum, builtin_to_udt> builtin2udt_c ;
|
||||
+ typedef boost::integral_constant<udt_builtin_mixture_enum, udt_to_builtin> udt2builtin_c ;
|
||||
+ typedef boost::integral_constant<udt_builtin_mixture_enum, udt_to_udt> udt2udt_c ;
|
||||
|
||||
// Metafunction:
|
||||
//
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@ -1,4 +1,4 @@
|
||||
AUX gnuprologjava-0.2.6-manual.patch 414 BLAKE2B 6bad70e46f1c2e9bdf9e4ef45cdbc4a4074671de28188aac7b69082e44eed86ef3fc1be1b5e83ea81da52df5d1b218583ab7ae73fdeeeb8241f50e8d45c23713 SHA512 419b509abae773e5ac3f2d79328bb4014776cc7c6390b8afa2d3d7242afec41e92d22830ed1be3c15f3d007c9fa08b303b553d883b18e1bde1fe9af09a0c7644
|
||||
DIST gnuprologjava-0.2.6-src.zip 477058 BLAKE2B 00248df0b307b733595b585ed5b847413d5de32c3348008ce53bb4dab93bfc465531bd59ea224f5c0bc6a66c3186ff55d353a0fe88d222b490927100cbafceea SHA512 b175c74e754a7176f5fc38ea2215809bb9d60ec5b8852f99a48a72a0bdb316b33b7195ff5c85398bb63aa2e522d12dfc75e2ff3af9f89ff44448d2f73357f0a4
|
||||
EBUILD gnuprologjava-0.2.6-r1.ebuild 870 BLAKE2B f148dec06e873bdeb9da63809b082972fbdcec546958c12ee9d284b56195217f0713d150c5fe49eebcc90f7c983a35937b890fbae6c6c321d01bc6f5c0d953ef SHA512 dab943589df310d16fca5c38e381fdc2926fe5cdad9c5011e7b205c1dd7b590392d6352644c11cddab437a0067f40b67f9956af5998a619ff9374d61e2096ad7
|
||||
EBUILD gnuprologjava-0.2.6-r2.ebuild 1163 BLAKE2B 93fbc175d98fb2718d2f32bec670e7ad6550e11eb818a89041f991bf347a38fb94ba71f96bceda6c3fa960edbbb694b884f9154adaf28e4b7fe8f0685fdbaf6f SHA512 a7deab720f6294edfb7fa8a1addbe247f9fb661caa3d1f9956f0adc93d4daaf10fb821c36b920ee4504b509c1b2fa19fae590a642c243a51e99f533140c9351c
|
||||
MISC metadata.xml 331 BLAKE2B 894fdaf1362143a9ec76d1354117ad387146c835993cd67fe0ba486333b93bd57e8395279ea5473844dc0a2cb39fae18b5bc883980136fe8bdfe0e2c123838ba SHA512 92eb687f37e4e8d0537d132021b672aaf7a523ac4ac8732657d9a30513f87e7e4c463b76aaa38b11d757c6c648a0662e10f259607b2dd9faabcd336ae4356eb4
|
||||
|
@ -1,46 +0,0 @@
|
||||
# Copyright 2016-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit java-pkg-2 java-ant-2
|
||||
|
||||
DESCRIPTION="GNU Prolog for Java is an implementation of ISO Prolog as a Java library"
|
||||
HOMEPAGE="https://www.gnu.org/software/gnuprologjava"
|
||||
SRC_URI="mirror://gnu/gnuprologjava/${P}-src.zip"
|
||||
|
||||
LICENSE="LGPL-3+"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 x86"
|
||||
IUSE="doc"
|
||||
|
||||
BDEPEND="app-arch/unzip"
|
||||
RDEPEND=">=virtual/jdk-1.8:*"
|
||||
DEPEND="${RDEPEND}
|
||||
dev-java/ant-core"
|
||||
|
||||
S="${WORKDIR}"
|
||||
|
||||
src_prepare() {
|
||||
eapply "${FILESDIR}"/${P}-manual.patch
|
||||
eapply_user
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
eant jar
|
||||
if use doc ; then
|
||||
eant doc
|
||||
fi
|
||||
mv build/${P}.jar build/${PN}.jar || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
java-pkg_dojar build/${PN}.jar
|
||||
|
||||
if use doc ; then
|
||||
java-pkg_dohtml -r build/api || die
|
||||
java-pkg_dohtml -r build/manual || die
|
||||
fi
|
||||
|
||||
dodoc NEWS.txt docs/readme.txt
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
# Copyright 2016-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
JAVA_PKG_IUSE="doc source"
|
||||
|
||||
inherit java-pkg-2 java-pkg-simple
|
||||
|
||||
DESCRIPTION="GNU Prolog for Java is an implementation of ISO Prolog as a Java library"
|
||||
HOMEPAGE="https://www.gnu.org/software/gnuprologjava/"
|
||||
SRC_URI="mirror://gnu/gnuprologjava/${P}-src.zip"
|
||||
|
||||
LICENSE="LGPL-3+"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 x86"
|
||||
|
||||
BDEPEND="app-arch/unzip"
|
||||
CP_DEPEND="dev-java/java-getopt:1"
|
||||
DEPEND="${CP_DEPEND}
|
||||
>=virtual/jdk-1.8:*
|
||||
doc? ( sys-apps/texinfo )"
|
||||
RDEPEND="${CP_DEPEND}
|
||||
>=virtual/jre-1.8:*"
|
||||
|
||||
DOCS=( NEWS.txt docs/readme.txt )
|
||||
PATCHES=( "${FILESDIR}/${P}-manual.patch" )
|
||||
|
||||
JAVA_RESOURCE_DIRS="res"
|
||||
JAVA_SRC_DIR="src"
|
||||
|
||||
src_prepare() {
|
||||
default #780585
|
||||
java-pkg-2_src_prepare
|
||||
rm -r src/gnu/getopt || die
|
||||
mkdir res || die
|
||||
pushd src > /dev/null || die
|
||||
find -type f \
|
||||
! -name '*.java' \
|
||||
| xargs cp --parent -t ../res || die
|
||||
popd > /dev/null || die
|
||||
if use doc; then
|
||||
mkdir manual || die
|
||||
makeinfo --html docs/manual.texinfo --output=manual
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
java-pkg-simple_src_install
|
||||
if use doc; then
|
||||
docinto html
|
||||
dodoc -r manual || die
|
||||
fi
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
# -*- conf -*-
|
||||
# broken, bug https://bugs.gentoo.org/930542
|
||||
tests/c/temit.nim
|
||||
tests/ccgbugs/t10964.nim
|
||||
tests/niminaction/Chapter3/ChatApp/src/client.nim
|
||||
tests/niminaction/Chapter3/various3.nim
|
||||
tests/niminaction/Chapter6/WikipediaStats/concurrency.nim
|
||||
tests/niminaction/Chapter6/WikipediaStats/concurrency_regex.nim
|
||||
tests/niminaction/Chapter6/WikipediaStats/parallel_counts.nim
|
||||
tests/niminaction/Chapter8/sdl/sdl_test.nim
|
||||
tests/parallel/tdeepcopy.nim
|
||||
tests/parallel/tdeepcopy2.nim
|
||||
tests/parallel/tflowvar.nim
|
||||
tests/parallel/tlet_spawn.nim
|
||||
tests/parallel/tpi.nim
|
||||
tests/parallel/tsysspawn.nim
|
||||
tests/parallel/twaitany.nim
|
||||
tests/stdlib/thttpclient_ssl.nim
|
||||
tests/stdlib/tthreadpool.nim
|
||||
# broken
|
||||
tests/assert/tassert_c.nim
|
||||
tests/async/tasync_traceback.nim
|
||||
tests/coroutines/twait.nim
|
||||
tests/errmsgs/t14444.nim
|
||||
tests/errmsgs/tcall_with_default_arg.nim
|
||||
tests/errmsgs/tproper_stacktrace.nim
|
||||
tests/errmsgs/tproper_stacktrace2.nim
|
||||
tests/errmsgs/tproper_stacktrace3.nim
|
||||
tests/exception/t13115.nim
|
||||
tests/js/tmangle.nim
|
||||
tests/js/twritestacktrace.nim
|
||||
tests/lent/tbasic_lent_check.nim
|
||||
tests/misc/trunner.nim
|
||||
tests/misc/tstrace.nim
|
||||
tests/misc/twarningaserror.nim
|
||||
tests/parser/t20922.nim
|
||||
tests/pragmas/thintprocessing.nim
|
||||
tests/pragmas/tused.nim
|
||||
tests/pragmas/twarning_off.nim
|
||||
tests/stdlib/tos.nim
|
||||
tests/stdlib/tstackframes.nim
|
||||
tests/stdlib/tstats.nim
|
||||
tests/system/talloc.nim
|
||||
tests/testament/tshould_not_work.nim
|
||||
# broken on musl + llvm
|
||||
tests/coroutines/tgc.nim
|
||||
tests/coroutines/twait.nim
|
||||
tests/misc/t18077.nim
|
||||
tests/misc/temit.nim
|
||||
tests/nimdoc/t15916.nim
|
||||
tests/nimdoc/trunnableexamples.nim
|
||||
tests/nimdoc/trunnableexamples2.nim
|
||||
tests/objects/tobjcov.nim
|
||||
tests/objects/toop1.nim
|
||||
tests/stdlib/tencodings.nim
|
||||
tests/stdlib/tgetaddrinfo.nim
|
||||
tests/stdlib/tstdlib_various.nim
|
||||
tests/stdlib/tstreams.nim
|
||||
tests/stdlib/ttimes.nim
|
||||
tests/vm/tvmmisc.nim
|
||||
# require network
|
||||
tests/stdlib/thttpclient.nim
|
||||
tests/stdlib/tnetconnect.nim
|
||||
tests/stdlib/tssl.nim
|
||||
# don't work without megatest
|
||||
tests/misc/tjoinable.nim
|
||||
tests/testament/tjoinable.nim
|
||||
# don't work with "--hint:all:off" hack
|
||||
tests/concepts/t3330.nim
|
||||
tests/stylecheck/t20397_2.nim
|
||||
tests/stylecheck/treject.nim
|
||||
tests/stylecheck/tusages.nim
|
||||
# need external dependencies
|
||||
tests/manyloc/keineschweine/keineschweine.nim
|
||||
tests/manyloc/nake/nakefile.nim
|
||||
tests/niminaction/Chapter7/Tweeter/src/tweeter.nim
|
||||
# need functional valgrind
|
||||
tests/destructor/tnewruntime_strutils.nim
|
||||
tests/destructor/tv2_raise.nim
|
||||
tests/views/tsplit_into_openarray.nim
|
@ -1,508 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
|
||||
inherit prefix python-utils-r1 toolchain-funcs verify-sig
|
||||
|
||||
MY_PV=${PV/_rc/rc}
|
||||
MY_P="Python-${MY_PV%_p*}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="
|
||||
https://www.python.org/
|
||||
https://github.com/python/cpython/
|
||||
"
|
||||
SRC_URI="
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||
verify-sig? (
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
|
||||
)
|
||||
"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
IUSE="
|
||||
bluetooth build debug +ensurepip examples gdbm libedit
|
||||
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="
|
||||
app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
>=dev-libs/expat-2.1:=
|
||||
dev-libs/libffi:=
|
||||
dev-python/gentoo-common
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
ensurepip? ( dev-python/ensurepip-wheels )
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
kernel_linux? ( sys-apps/util-linux:= )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? (
|
||||
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||
libedit? ( dev-libs/libedit:= )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
valgrind? ( dev-debug/valgrind )
|
||||
test? ( app-arch/xz-utils )
|
||||
"
|
||||
# autoconf-archive needed to eautoreconf
|
||||
BDEPEND="
|
||||
dev-build/autoconf-archive
|
||||
app-alternatives/awk
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( sec-keys/openpgp-keys-python )
|
||||
"
|
||||
RDEPEND+="
|
||||
!build? ( app-misc/mime-types )
|
||||
"
|
||||
if [[ ${PV} != *_alpha* ]]; then
|
||||
RDEPEND+="
|
||||
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
|
||||
"
|
||||
fi
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
|
||||
|
||||
# large file tests involve a 2.5G file being copied (duplicated)
|
||||
CHECKREQS_DISK_BUILD=5500M
|
||||
|
||||
QA_PKGCONFIG_VERSION=${PYVER}
|
||||
# false positives -- functions specific to *BSD
|
||||
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||
|
||||
pkg_pretend() {
|
||||
use test && check-reqs_pkg_pretend
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && check-reqs_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if use verify-sig; then
|
||||
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||
fi
|
||||
default
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat and libffi are not used.
|
||||
rm -r Modules/expat || die
|
||||
rm -r Modules/_ctypes/libffi* || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
# https://bugs.gentoo.org/850151
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
|
||||
|
||||
# force the correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
local jobs=$(makeopts_jobs)
|
||||
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
build_cbuild_python() {
|
||||
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
#
|
||||
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||
|
||||
# We need to build our own Python on CBUILD first, and feed it in.
|
||||
# bug #847910 and bug #864911.
|
||||
local myeconfargs_cbuild=(
|
||||
"${myeconfargs[@]}"
|
||||
|
||||
--prefix="${BROOT}"/usr
|
||||
--libdir="${cbuild_libdir:2}"
|
||||
|
||||
# Avoid needing to load the right libpython.so.
|
||||
--disable-shared
|
||||
|
||||
# As minimal as possible for the mini CBUILD Python
|
||||
# we build just for cross.
|
||||
--without-lto
|
||||
--disable-optimizations
|
||||
)
|
||||
|
||||
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
|
||||
# libdir correctly for cross.
|
||||
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \
|
||||
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||
|
||||
# Avoid as many dependencies as possible for the cross build.
|
||||
cat >> Makefile <<-EOF || die
|
||||
MODULE_NIS=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__GDBM=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__SQLITE3=disabled
|
||||
MODULE__HASHLIB=disabled
|
||||
MODULE__SSL=disabled
|
||||
MODULE__CURSES=disabled
|
||||
MODULE__CURSES_PANEL=disabled
|
||||
MODULE_READLINE=disabled
|
||||
MODULE__TKINTER=disabled
|
||||
MODULE_PYEXPAT=disabled
|
||||
MODULE_ZLIB=disabled
|
||||
EOF
|
||||
|
||||
# Unfortunately, we do have to build this immediately, and
|
||||
# not in src_compile, because CHOST configure for Python
|
||||
# will check the existence of the Python it was pointed to
|
||||
# immediately.
|
||||
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" emake
|
||||
popd &> /dev/null || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# disable automagic bluetooth headers detection
|
||||
if ! use bluetooth; then
|
||||
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||
fi
|
||||
local disable
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
append-flags -fwrapv
|
||||
filter-flags -malign-double
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
# PKG_CONFIG needed for cross.
|
||||
tc-export CXX PKG_CONFIG
|
||||
|
||||
local dbmliborder=
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
if use pgo; then
|
||||
local profile_task_flags=(
|
||||
-m test
|
||||
"-j$(makeopts_jobs)"
|
||||
--pgo-extended
|
||||
-u-network
|
||||
|
||||
# We use a timeout because of how often we've had hang issues
|
||||
# here. It also matches the default upstream PROFILE_TASK.
|
||||
--timeout 1200
|
||||
|
||||
-x test_gdb
|
||||
-x test_dtrace
|
||||
|
||||
# All of these seem to occasionally hang for PGO inconsistently
|
||||
# They'll even hang here but be fine in src_test sometimes.
|
||||
# bug #828535 (and related: bug #788022)
|
||||
-x test_asyncio
|
||||
-x test_concurrent_futures
|
||||
-x test_httpservers
|
||||
-x test_logging
|
||||
-x test_multiprocessing_fork
|
||||
-x test_socket
|
||||
-x test_xmlrpc
|
||||
|
||||
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
|
||||
# bug #900429
|
||||
-x test_tools
|
||||
)
|
||||
|
||||
if has_version "app-arch/rpm" ; then
|
||||
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||
profile_task_flags+=(
|
||||
-x test_distutils
|
||||
)
|
||||
fi
|
||||
local -x PROFILE_TASK="${profile_task_flags[*]}"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||
# Python on glibc upgrade, remove it proactively to give
|
||||
# a chance for users rebuilding python before glibc
|
||||
ac_cv_header_stropts_h=no
|
||||
|
||||
--enable-shared
|
||||
--without-static-libpython
|
||||
--enable-ipv6
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--without-lto
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||
|
||||
$(use_with debug assertions)
|
||||
$(use_enable pgo optimizations)
|
||||
$(use_with readline readline "$(usex libedit editline readline)")
|
||||
$(use_with valgrind)
|
||||
)
|
||||
|
||||
# disable implicit optimization/debugging flags
|
||||
local -x OPT=
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if tc-is-lto; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
myeconfargs+=(
|
||||
--with-lto
|
||||
)
|
||||
fi
|
||||
|
||||
if tc-is-cross-compiler ; then
|
||||
build_cbuild_python
|
||||
# Point the imminent CHOST build to the Python we just
|
||||
# built for CBUILD.
|
||||
export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
|
||||
fi
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
local -x CFLAGS_NODIST=${CFLAGS}
|
||||
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
if use ncurses; then
|
||||
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
fi
|
||||
|
||||
hprefixify setup.py
|
||||
econf "${myeconfargs[@]}"
|
||||
|
||||
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
|
||||
# install epython.py as part of stdlib
|
||||
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
# Prevent using distutils bundled by setuptools.
|
||||
# https://bugs.gentoo.org/823728
|
||||
export SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||
|
||||
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||
# end up writing bytecode & violating sandbox.
|
||||
# bug #831897
|
||||
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
if use pgo ; then
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
addpredict "/usr/lib/python${PYVER}/site-packages"
|
||||
fi
|
||||
|
||||
# also need to clear the flags explicitly here or they end up
|
||||
# in _sysconfigdata*
|
||||
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||
|
||||
# Restore saved value from above.
|
||||
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
# Work around bug 329499. See also bug 413751 and 457194.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E python
|
||||
else
|
||||
pax-mark m python
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
local test_opts=(
|
||||
-u-network
|
||||
-j "$(makeopts_jobs)"
|
||||
|
||||
# fails
|
||||
-x test_concurrent_futures
|
||||
-x test_gdb
|
||||
)
|
||||
|
||||
if use sparc ; then
|
||||
# bug #788022
|
||||
test_opts+=(
|
||||
-x test_multiprocessing_fork
|
||||
-x test_multiprocessing_forkserver
|
||||
)
|
||||
fi
|
||||
|
||||
# workaround docutils breaking tests
|
||||
cat > Lib/docutils.py <<-EOF || die
|
||||
raise ImportError("Thou shalt not import!")
|
||||
EOF
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
# workaround https://bugs.gentoo.org/775416
|
||||
addwrite "/usr/lib/python${PYVER}/site-packages"
|
||||
|
||||
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local ret=${?}
|
||||
|
||||
rm Lib/docutils.py || die
|
||||
|
||||
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||
|
||||
# Cheap hack to get version with ABIFLAGS
|
||||
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||
if [[ ${abiver} != python${PYVER} ]]; then
|
||||
# Replace python3.X with a symlink to python3.Xm
|
||||
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||
# Create python3.X-config symlink
|
||||
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||
# Create python-3.5m.pc symlink
|
||||
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||
fi
|
||||
|
||||
# python seems to get rebuilt in src_install (bug 569908)
|
||||
# Work around it for now.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||
else
|
||||
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||
fi
|
||||
|
||||
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||
if ! use ensurepip; then
|
||||
rm -r "${libdir}"/ensurepip || die
|
||||
fi
|
||||
if ! use sqlite; then
|
||||
rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||
fi
|
||||
if ! use tk; then
|
||||
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
fi
|
||||
|
||||
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
|
||||
|
||||
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||
dodoc -r Tools
|
||||
fi
|
||||
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||
local libname=$(
|
||||
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
|
||||
emake --no-print-directory -s -f - 2>/dev/null
|
||||
)
|
||||
newins Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||
|
||||
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||
sed \
|
||||
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local EPYTHON=python${PYVER}
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||
# python-config and pythonX-config
|
||||
# note: we need to create a wrapper rather than symlinking it due
|
||||
# to some random dirname(argv[0]) magic performed by python-config
|
||||
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
|
||||
# 2to3, pydoc
|
||||
ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
@ -1,508 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
|
||||
inherit prefix python-utils-r1 toolchain-funcs verify-sig
|
||||
|
||||
MY_PV=${PV/_rc/rc}
|
||||
MY_P="Python-${MY_PV%_p*}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="
|
||||
https://www.python.org/
|
||||
https://github.com/python/cpython/
|
||||
"
|
||||
SRC_URI="
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||
verify-sig? (
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
|
||||
)
|
||||
"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}"
|
||||
KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
IUSE="
|
||||
bluetooth build debug +ensurepip examples gdbm libedit
|
||||
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="
|
||||
app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
>=dev-libs/expat-2.1:=
|
||||
dev-libs/libffi:=
|
||||
dev-python/gentoo-common
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
ensurepip? ( dev-python/ensurepip-wheels )
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
kernel_linux? ( sys-apps/util-linux:= )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? (
|
||||
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||
libedit? ( dev-libs/libedit:= )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
valgrind? ( dev-debug/valgrind )
|
||||
test? ( app-arch/xz-utils )
|
||||
"
|
||||
# autoconf-archive needed to eautoreconf
|
||||
BDEPEND="
|
||||
dev-build/autoconf-archive
|
||||
app-alternatives/awk
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( sec-keys/openpgp-keys-python )
|
||||
"
|
||||
RDEPEND+="
|
||||
!build? ( app-misc/mime-types )
|
||||
"
|
||||
if [[ ${PV} != *_alpha* ]]; then
|
||||
RDEPEND+="
|
||||
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
|
||||
"
|
||||
fi
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
|
||||
|
||||
# large file tests involve a 2.5G file being copied (duplicated)
|
||||
CHECKREQS_DISK_BUILD=5500M
|
||||
|
||||
QA_PKGCONFIG_VERSION=${PYVER}
|
||||
# false positives -- functions specific to *BSD
|
||||
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||
|
||||
pkg_pretend() {
|
||||
use test && check-reqs_pkg_pretend
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && check-reqs_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if use verify-sig; then
|
||||
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||
fi
|
||||
default
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat and libffi are not used.
|
||||
rm -r Modules/expat || die
|
||||
rm -r Modules/_ctypes/libffi* || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
# https://bugs.gentoo.org/850151
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
|
||||
|
||||
# force the correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
local jobs=$(makeopts_jobs)
|
||||
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
build_cbuild_python() {
|
||||
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
#
|
||||
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||
|
||||
# We need to build our own Python on CBUILD first, and feed it in.
|
||||
# bug #847910 and bug #864911.
|
||||
local myeconfargs_cbuild=(
|
||||
"${myeconfargs[@]}"
|
||||
|
||||
--prefix="${BROOT}"/usr
|
||||
--libdir="${cbuild_libdir:2}"
|
||||
|
||||
# Avoid needing to load the right libpython.so.
|
||||
--disable-shared
|
||||
|
||||
# As minimal as possible for the mini CBUILD Python
|
||||
# we build just for cross.
|
||||
--without-lto
|
||||
--disable-optimizations
|
||||
)
|
||||
|
||||
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
|
||||
# libdir correctly for cross.
|
||||
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \
|
||||
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||
|
||||
# Avoid as many dependencies as possible for the cross build.
|
||||
cat >> Makefile <<-EOF || die
|
||||
MODULE_NIS=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__GDBM=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__SQLITE3=disabled
|
||||
MODULE__HASHLIB=disabled
|
||||
MODULE__SSL=disabled
|
||||
MODULE__CURSES=disabled
|
||||
MODULE__CURSES_PANEL=disabled
|
||||
MODULE_READLINE=disabled
|
||||
MODULE__TKINTER=disabled
|
||||
MODULE_PYEXPAT=disabled
|
||||
MODULE_ZLIB=disabled
|
||||
EOF
|
||||
|
||||
# Unfortunately, we do have to build this immediately, and
|
||||
# not in src_compile, because CHOST configure for Python
|
||||
# will check the existence of the Python it was pointed to
|
||||
# immediately.
|
||||
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" emake
|
||||
popd &> /dev/null || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# disable automagic bluetooth headers detection
|
||||
if ! use bluetooth; then
|
||||
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||
fi
|
||||
local disable
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
append-flags -fwrapv
|
||||
filter-flags -malign-double
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
# PKG_CONFIG needed for cross.
|
||||
tc-export CXX PKG_CONFIG
|
||||
|
||||
local dbmliborder=
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
if use pgo; then
|
||||
local profile_task_flags=(
|
||||
-m test
|
||||
"-j$(makeopts_jobs)"
|
||||
--pgo-extended
|
||||
-u-network
|
||||
|
||||
# We use a timeout because of how often we've had hang issues
|
||||
# here. It also matches the default upstream PROFILE_TASK.
|
||||
--timeout 1200
|
||||
|
||||
-x test_gdb
|
||||
-x test_dtrace
|
||||
|
||||
# All of these seem to occasionally hang for PGO inconsistently
|
||||
# They'll even hang here but be fine in src_test sometimes.
|
||||
# bug #828535 (and related: bug #788022)
|
||||
-x test_asyncio
|
||||
-x test_concurrent_futures
|
||||
-x test_httpservers
|
||||
-x test_logging
|
||||
-x test_multiprocessing_fork
|
||||
-x test_socket
|
||||
-x test_xmlrpc
|
||||
|
||||
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
|
||||
# bug #900429
|
||||
-x test_tools
|
||||
)
|
||||
|
||||
if has_version "app-arch/rpm" ; then
|
||||
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||
profile_task_flags+=(
|
||||
-x test_distutils
|
||||
)
|
||||
fi
|
||||
local -x PROFILE_TASK="${profile_task_flags[*]}"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||
# Python on glibc upgrade, remove it proactively to give
|
||||
# a chance for users rebuilding python before glibc
|
||||
ac_cv_header_stropts_h=no
|
||||
|
||||
--enable-shared
|
||||
--without-static-libpython
|
||||
--enable-ipv6
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--without-lto
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||
|
||||
$(use_with debug assertions)
|
||||
$(use_enable pgo optimizations)
|
||||
$(use_with readline readline "$(usex libedit editline readline)")
|
||||
$(use_with valgrind)
|
||||
)
|
||||
|
||||
# disable implicit optimization/debugging flags
|
||||
local -x OPT=
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if tc-is-lto; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
myeconfargs+=(
|
||||
--with-lto
|
||||
)
|
||||
fi
|
||||
|
||||
if tc-is-cross-compiler ; then
|
||||
build_cbuild_python
|
||||
# Point the imminent CHOST build to the Python we just
|
||||
# built for CBUILD.
|
||||
export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
|
||||
fi
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
local -x CFLAGS_NODIST=${CFLAGS}
|
||||
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
if use ncurses; then
|
||||
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
fi
|
||||
|
||||
hprefixify setup.py
|
||||
econf "${myeconfargs[@]}"
|
||||
|
||||
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
|
||||
# install epython.py as part of stdlib
|
||||
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
# Prevent using distutils bundled by setuptools.
|
||||
# https://bugs.gentoo.org/823728
|
||||
export SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||
|
||||
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||
# end up writing bytecode & violating sandbox.
|
||||
# bug #831897
|
||||
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
if use pgo ; then
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
addpredict "/usr/lib/python${PYVER}/site-packages"
|
||||
fi
|
||||
|
||||
# also need to clear the flags explicitly here or they end up
|
||||
# in _sysconfigdata*
|
||||
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||
|
||||
# Restore saved value from above.
|
||||
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
# Work around bug 329499. See also bug 413751 and 457194.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E python
|
||||
else
|
||||
pax-mark m python
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
local test_opts=(
|
||||
-u-network
|
||||
-j "$(makeopts_jobs)"
|
||||
|
||||
# fails
|
||||
-x test_concurrent_futures
|
||||
-x test_gdb
|
||||
)
|
||||
|
||||
if use sparc ; then
|
||||
# bug #788022
|
||||
test_opts+=(
|
||||
-x test_multiprocessing_fork
|
||||
-x test_multiprocessing_forkserver
|
||||
)
|
||||
fi
|
||||
|
||||
# workaround docutils breaking tests
|
||||
cat > Lib/docutils.py <<-EOF || die
|
||||
raise ImportError("Thou shalt not import!")
|
||||
EOF
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
# workaround https://bugs.gentoo.org/775416
|
||||
addwrite "/usr/lib/python${PYVER}/site-packages"
|
||||
|
||||
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local ret=${?}
|
||||
|
||||
rm Lib/docutils.py || die
|
||||
|
||||
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||
|
||||
# Cheap hack to get version with ABIFLAGS
|
||||
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||
if [[ ${abiver} != python${PYVER} ]]; then
|
||||
# Replace python3.X with a symlink to python3.Xm
|
||||
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||
# Create python3.X-config symlink
|
||||
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||
# Create python-3.5m.pc symlink
|
||||
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||
fi
|
||||
|
||||
# python seems to get rebuilt in src_install (bug 569908)
|
||||
# Work around it for now.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||
else
|
||||
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||
fi
|
||||
|
||||
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||
if ! use ensurepip; then
|
||||
rm -r "${libdir}"/ensurepip || die
|
||||
fi
|
||||
if ! use sqlite; then
|
||||
rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||
fi
|
||||
if ! use tk; then
|
||||
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
fi
|
||||
|
||||
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
|
||||
|
||||
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||
dodoc -r Tools
|
||||
fi
|
||||
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||
local libname=$(
|
||||
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
|
||||
emake --no-print-directory -s -f - 2>/dev/null
|
||||
)
|
||||
newins Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||
|
||||
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||
sed \
|
||||
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local EPYTHON=python${PYVER}
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||
# python-config and pythonX-config
|
||||
# note: we need to create a wrapper rather than symlinking it due
|
||||
# to some random dirname(argv[0]) magic performed by python-config
|
||||
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
|
||||
# 2to3, pydoc
|
||||
ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
@ -1,547 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
|
||||
LLVM_COMPAT=( 16 )
|
||||
LLVM_OPTIONAL=1
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic llvm-r1 multiprocessing
|
||||
inherit pax-utils python-utils-r1 toolchain-funcs verify-sig
|
||||
|
||||
MY_PV=${PV/_alpha/a}
|
||||
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}"
|
||||
IUSE="
|
||||
bluetooth build debug +ensurepip examples gdbm jit libedit
|
||||
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||
"
|
||||
REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="
|
||||
app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
app-crypt/libb2
|
||||
>=dev-libs/expat-2.1:=
|
||||
dev-libs/libffi:=
|
||||
dev-python/gentoo-common
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
ensurepip? ( dev-python/ensurepip-pip )
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
kernel_linux? ( sys-apps/util-linux:= )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? (
|
||||
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||
libedit? ( dev-libs/libedit:= )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
test? (
|
||||
app-arch/xz-utils
|
||||
dev-python/ensurepip-pip
|
||||
dev-python/ensurepip-setuptools
|
||||
dev-python/ensurepip-wheel
|
||||
)
|
||||
valgrind? ( dev-debug/valgrind )
|
||||
"
|
||||
# autoconf-archive needed to eautoreconf
|
||||
BDEPEND="
|
||||
dev-build/autoconf-archive
|
||||
app-alternatives/awk
|
||||
virtual/pkgconfig
|
||||
jit? (
|
||||
$(llvm_gen_dep '
|
||||
sys-devel/clang:${LLVM_SLOT}
|
||||
sys-devel/llvm:${LLVM_SLOT}
|
||||
')
|
||||
)
|
||||
verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
|
||||
"
|
||||
RDEPEND+="
|
||||
!build? ( app-misc/mime-types )
|
||||
"
|
||||
if [[ ${PV} != *_alpha* ]]; then
|
||||
RDEPEND+="
|
||||
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
|
||||
"
|
||||
fi
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
|
||||
|
||||
# large file tests involve a 2.5G file being copied (duplicated)
|
||||
CHECKREQS_DISK_BUILD=5500M
|
||||
|
||||
QA_PKGCONFIG_VERSION=${PYVER}
|
||||
# false positives -- functions specific to *BSD
|
||||
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||
|
||||
pkg_pretend() {
|
||||
use test && check-reqs_pkg_pretend
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use jit && llvm-r1_pkg_setup
|
||||
use test && check-reqs_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if use verify-sig; then
|
||||
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||
fi
|
||||
default
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat and libffi are not used.
|
||||
# TODO: Makefile has annoying deps on expat headers
|
||||
#rm -r Modules/expat || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
# force the correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
build_cbuild_python() {
|
||||
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
#
|
||||
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||
|
||||
# We need to build our own Python on CBUILD first, and feed it in.
|
||||
# bug #847910
|
||||
local myeconfargs_cbuild=(
|
||||
"${myeconfargs[@]}"
|
||||
|
||||
--prefix="${BROOT}"/usr
|
||||
--libdir="${cbuild_libdir:2}"
|
||||
|
||||
# Avoid needing to load the right libpython.so.
|
||||
--disable-shared
|
||||
|
||||
# As minimal as possible for the mini CBUILD Python
|
||||
# we build just for cross to satisfy --with-build-python.
|
||||
--without-lto
|
||||
--without-readline
|
||||
--disable-optimizations
|
||||
)
|
||||
|
||||
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||
|
||||
# Avoid as many dependencies as possible for the cross build.
|
||||
mkdir Modules || die
|
||||
cat > Modules/Setup.local <<-EOF || die
|
||||
*disabled*
|
||||
nis
|
||||
_dbm _gdbm
|
||||
_sqlite3
|
||||
_hashlib _ssl
|
||||
_curses _curses_panel
|
||||
readline
|
||||
_tkinter
|
||||
pyexpat
|
||||
zlib
|
||||
# We disabled these for CBUILD because Python's setup.py can't handle locating
|
||||
# libdir correctly for cross. This should be rechecked for the pure Makefile approach,
|
||||
# and uncommented if needed.
|
||||
#_ctypes _crypt
|
||||
EOF
|
||||
|
||||
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||
|
||||
# Unfortunately, we do have to build this immediately, and
|
||||
# not in src_compile, because CHOST configure for Python
|
||||
# will check the existence of the --with-build-python value
|
||||
# immediately.
|
||||
emake
|
||||
popd &> /dev/null || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# disable automagic bluetooth headers detection
|
||||
if ! use bluetooth; then
|
||||
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||
fi
|
||||
|
||||
append-flags -fwrapv
|
||||
filter-flags -malign-double
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
# PKG_CONFIG needed for cross.
|
||||
tc-export CXX PKG_CONFIG
|
||||
|
||||
local dbmliborder=
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
if use pgo; then
|
||||
local profile_task_flags=(
|
||||
-m test
|
||||
"-j$(makeopts_jobs)"
|
||||
--pgo-extended
|
||||
-u-network
|
||||
|
||||
# We use a timeout because of how often we've had hang issues
|
||||
# here. It also matches the default upstream PROFILE_TASK.
|
||||
--timeout 1200
|
||||
|
||||
-x test_gdb
|
||||
-x test_dtrace
|
||||
|
||||
# All of these seem to occasionally hang for PGO inconsistently
|
||||
# They'll even hang here but be fine in src_test sometimes.
|
||||
# bug #828535 (and related: bug #788022)
|
||||
-x test_asyncio
|
||||
-x test_concurrent_futures
|
||||
-x test_httpservers
|
||||
-x test_logging
|
||||
-x test_multiprocessing_fork
|
||||
-x test_socket
|
||||
-x test_xmlrpc
|
||||
|
||||
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
|
||||
# bug #900429
|
||||
-x test_tools
|
||||
)
|
||||
|
||||
if has_version "app-arch/rpm" ; then
|
||||
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||
profile_task_flags+=(
|
||||
-x test_distutils
|
||||
)
|
||||
fi
|
||||
local -x PROFILE_TASK="${profile_task_flags[*]}"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||
# Python on glibc upgrade, remove it proactively to give
|
||||
# a chance for users rebuilding python before glibc
|
||||
ac_cv_header_stropts_h=no
|
||||
|
||||
--enable-shared
|
||||
--without-static-libpython
|
||||
--enable-ipv6
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--without-lto
|
||||
--with-system-expat
|
||||
--with-platlibdir=lib
|
||||
--with-pkg-config=yes
|
||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||
|
||||
$(use_with debug assertions)
|
||||
$(use_enable jit experimental-jit)
|
||||
$(use_enable pgo optimizations)
|
||||
$(use_with readline readline "$(usex libedit editline readline)")
|
||||
$(use_with valgrind)
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if tc-is-lto; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
myeconfargs+=(
|
||||
--with-lto
|
||||
)
|
||||
fi
|
||||
|
||||
# Force-disable modules we don't want built.
|
||||
# See Modules/Setup for docs on how this works. Setup.local contains our local deviations.
|
||||
cat > Modules/Setup.local <<-EOF || die
|
||||
*disabled*
|
||||
nis
|
||||
$(usev !gdbm '_gdbm _dbm')
|
||||
$(usev !sqlite '_sqlite3')
|
||||
$(usev !ssl '_hashlib _ssl')
|
||||
$(usev !ncurses '_curses _curses_panel')
|
||||
$(usev !readline 'readline')
|
||||
$(usev !tk '_tkinter')
|
||||
EOF
|
||||
|
||||
# disable implicit optimization/debugging flags
|
||||
local -x OPT=
|
||||
|
||||
if tc-is-cross-compiler ; then
|
||||
build_cbuild_python
|
||||
myeconfargs+=(
|
||||
# Point the imminent CHOST build to the Python we just
|
||||
# built for CBUILD.
|
||||
--with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
|
||||
)
|
||||
fi
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
local -x CFLAGS_NODIST=${CFLAGS}
|
||||
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
if use ncurses; then
|
||||
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
fi
|
||||
|
||||
econf "${myeconfargs[@]}"
|
||||
|
||||
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
|
||||
# install epython.py as part of stdlib
|
||||
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
export PYTHONSTRICTEXTENSIONBUILD=1
|
||||
|
||||
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||
# end up writing bytecode & violating sandbox.
|
||||
# bug #831897
|
||||
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
if use pgo ; then
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
addwrite "/usr/lib/python${PYVER}/site-packages"
|
||||
fi
|
||||
|
||||
# also need to clear the flags explicitly here or they end up
|
||||
# in _sysconfigdata*
|
||||
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||
|
||||
# Restore saved value from above.
|
||||
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
# Work around bug 329499. See also bug 413751 and 457194.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E python
|
||||
else
|
||||
pax-mark m python
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
# this just happens to skip test_support.test_freeze that is broken
|
||||
# without bundled expat
|
||||
# TODO: get a proper skip for it upstream
|
||||
local -x LOGNAME=buildbot
|
||||
|
||||
local test_opts=(
|
||||
-u-network
|
||||
-j "$(makeopts_jobs)"
|
||||
|
||||
# fails
|
||||
-x test_concurrent_futures
|
||||
-x test_gdb
|
||||
)
|
||||
|
||||
if use sparc ; then
|
||||
# bug #788022
|
||||
test_opts+=(
|
||||
-x test_multiprocessing_fork
|
||||
-x test_multiprocessing_forkserver
|
||||
)
|
||||
fi
|
||||
|
||||
# workaround docutils breaking tests
|
||||
cat > Lib/docutils.py <<-EOF || die
|
||||
raise ImportError("Thou shalt not import!")
|
||||
EOF
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
# workaround https://bugs.gentoo.org/775416
|
||||
addwrite "/usr/lib/python${PYVER}/site-packages"
|
||||
|
||||
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local ret=${?}
|
||||
|
||||
rm Lib/docutils.py || die
|
||||
|
||||
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
# the Makefile rules are broken
|
||||
# https://github.com/python/cpython/issues/100221
|
||||
mkdir -p "${libdir}"/lib-dynload || die
|
||||
|
||||
# -j1 hack for now for bug #843458
|
||||
emake -j1 DESTDIR="${D}" altinstall
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||
|
||||
# Cheap hack to get version with ABIFLAGS
|
||||
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||
if [[ ${abiver} != python${PYVER} ]]; then
|
||||
# Replace python3.X with a symlink to python3.Xm
|
||||
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||
# Create python3.X-config symlink
|
||||
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||
# Create python-3.5m.pc symlink
|
||||
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||
fi
|
||||
|
||||
# python seems to get rebuilt in src_install (bug 569908)
|
||||
# Work around it for now.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||
else
|
||||
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||
fi
|
||||
|
||||
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||
if ! use ensurepip; then
|
||||
rm -r "${libdir}"/ensurepip || die
|
||||
fi
|
||||
if ! use sqlite; then
|
||||
rm -r "${libdir}/"sqlite3 || die
|
||||
fi
|
||||
if ! use tk; then
|
||||
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
fi
|
||||
|
||||
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
|
||||
|
||||
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||
dodoc -r Tools
|
||||
fi
|
||||
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||
local libname=$(
|
||||
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
|
||||
emake --no-print-directory -s -f - 2>/dev/null
|
||||
)
|
||||
newins Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||
|
||||
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||
sed \
|
||||
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local EPYTHON=python${PYVER}
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||
# python-config and pythonX-config
|
||||
# note: we need to create a wrapper rather than symlinking it due
|
||||
# to some random dirname(argv[0]) magic performed by python-config
|
||||
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
|
||||
# pydoc
|
||||
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
local v
|
||||
for v in ${REPLACING_VERSIONS}; do
|
||||
if ver_test "${v}" -lt 3.11.0_beta4-r2; then
|
||||
ewarn "Python 3.11.0b4 has changed its module ABI. The .pyc files"
|
||||
ewarn "installed previously are no longer valid and will be regenerated"
|
||||
ewarn "(or ignored) on the next import. This may cause sandbox failures"
|
||||
ewarn "when installing some packages and checksum mismatches when removing"
|
||||
ewarn "old versions. To actively prevent this, rebuild all packages"
|
||||
ewarn "installing Python 3.11 modules, e.g. using:"
|
||||
ewarn
|
||||
ewarn " emerge -1v /usr/lib/python3.11/site-packages"
|
||||
fi
|
||||
done
|
||||
}
|
@ -1,547 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
|
||||
LLVM_COMPAT=( 16 )
|
||||
LLVM_OPTIONAL=1
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic llvm-r1 multiprocessing
|
||||
inherit pax-utils python-utils-r1 toolchain-funcs verify-sig
|
||||
|
||||
MY_PV=${PV/_alpha/a}
|
||||
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}"
|
||||
IUSE="
|
||||
bluetooth build debug +ensurepip examples gdbm jit libedit
|
||||
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||
"
|
||||
REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="
|
||||
app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
app-crypt/libb2
|
||||
>=dev-libs/expat-2.1:=
|
||||
dev-libs/libffi:=
|
||||
dev-python/gentoo-common
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
ensurepip? ( dev-python/ensurepip-pip )
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
kernel_linux? ( sys-apps/util-linux:= )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? (
|
||||
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||
libedit? ( dev-libs/libedit:= )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
test? (
|
||||
app-arch/xz-utils
|
||||
dev-python/ensurepip-pip
|
||||
dev-python/ensurepip-setuptools
|
||||
dev-python/ensurepip-wheel
|
||||
)
|
||||
valgrind? ( dev-debug/valgrind )
|
||||
"
|
||||
# autoconf-archive needed to eautoreconf
|
||||
BDEPEND="
|
||||
dev-build/autoconf-archive
|
||||
app-alternatives/awk
|
||||
virtual/pkgconfig
|
||||
jit? (
|
||||
$(llvm_gen_dep '
|
||||
sys-devel/clang:${LLVM_SLOT}
|
||||
sys-devel/llvm:${LLVM_SLOT}
|
||||
')
|
||||
)
|
||||
verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
|
||||
"
|
||||
RDEPEND+="
|
||||
!build? ( app-misc/mime-types )
|
||||
"
|
||||
if [[ ${PV} != *_alpha* ]]; then
|
||||
RDEPEND+="
|
||||
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
|
||||
"
|
||||
fi
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
|
||||
|
||||
# large file tests involve a 2.5G file being copied (duplicated)
|
||||
CHECKREQS_DISK_BUILD=5500M
|
||||
|
||||
QA_PKGCONFIG_VERSION=${PYVER}
|
||||
# false positives -- functions specific to *BSD
|
||||
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||
|
||||
pkg_pretend() {
|
||||
use test && check-reqs_pkg_pretend
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use jit && llvm-r1_pkg_setup
|
||||
use test && check-reqs_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if use verify-sig; then
|
||||
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||
fi
|
||||
default
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat and libffi are not used.
|
||||
# TODO: Makefile has annoying deps on expat headers
|
||||
#rm -r Modules/expat || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
# force the correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
build_cbuild_python() {
|
||||
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
#
|
||||
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||
|
||||
# We need to build our own Python on CBUILD first, and feed it in.
|
||||
# bug #847910
|
||||
local myeconfargs_cbuild=(
|
||||
"${myeconfargs[@]}"
|
||||
|
||||
--prefix="${BROOT}"/usr
|
||||
--libdir="${cbuild_libdir:2}"
|
||||
|
||||
# Avoid needing to load the right libpython.so.
|
||||
--disable-shared
|
||||
|
||||
# As minimal as possible for the mini CBUILD Python
|
||||
# we build just for cross to satisfy --with-build-python.
|
||||
--without-lto
|
||||
--without-readline
|
||||
--disable-optimizations
|
||||
)
|
||||
|
||||
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||
|
||||
# Avoid as many dependencies as possible for the cross build.
|
||||
mkdir Modules || die
|
||||
cat > Modules/Setup.local <<-EOF || die
|
||||
*disabled*
|
||||
nis
|
||||
_dbm _gdbm
|
||||
_sqlite3
|
||||
_hashlib _ssl
|
||||
_curses _curses_panel
|
||||
readline
|
||||
_tkinter
|
||||
pyexpat
|
||||
zlib
|
||||
# We disabled these for CBUILD because Python's setup.py can't handle locating
|
||||
# libdir correctly for cross. This should be rechecked for the pure Makefile approach,
|
||||
# and uncommented if needed.
|
||||
#_ctypes _crypt
|
||||
EOF
|
||||
|
||||
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||
|
||||
# Unfortunately, we do have to build this immediately, and
|
||||
# not in src_compile, because CHOST configure for Python
|
||||
# will check the existence of the --with-build-python value
|
||||
# immediately.
|
||||
emake
|
||||
popd &> /dev/null || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# disable automagic bluetooth headers detection
|
||||
if ! use bluetooth; then
|
||||
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||
fi
|
||||
|
||||
append-flags -fwrapv
|
||||
filter-flags -malign-double
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
# PKG_CONFIG needed for cross.
|
||||
tc-export CXX PKG_CONFIG
|
||||
|
||||
local dbmliborder=
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
if use pgo; then
|
||||
local profile_task_flags=(
|
||||
-m test
|
||||
"-j$(makeopts_jobs)"
|
||||
--pgo-extended
|
||||
-u-network
|
||||
|
||||
# We use a timeout because of how often we've had hang issues
|
||||
# here. It also matches the default upstream PROFILE_TASK.
|
||||
--timeout 1200
|
||||
|
||||
-x test_gdb
|
||||
-x test_dtrace
|
||||
|
||||
# All of these seem to occasionally hang for PGO inconsistently
|
||||
# They'll even hang here but be fine in src_test sometimes.
|
||||
# bug #828535 (and related: bug #788022)
|
||||
-x test_asyncio
|
||||
-x test_concurrent_futures
|
||||
-x test_httpservers
|
||||
-x test_logging
|
||||
-x test_multiprocessing_fork
|
||||
-x test_socket
|
||||
-x test_xmlrpc
|
||||
|
||||
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
|
||||
# bug #900429
|
||||
-x test_tools
|
||||
)
|
||||
|
||||
if has_version "app-arch/rpm" ; then
|
||||
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||
profile_task_flags+=(
|
||||
-x test_distutils
|
||||
)
|
||||
fi
|
||||
local -x PROFILE_TASK="${profile_task_flags[*]}"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||
# Python on glibc upgrade, remove it proactively to give
|
||||
# a chance for users rebuilding python before glibc
|
||||
ac_cv_header_stropts_h=no
|
||||
|
||||
--enable-shared
|
||||
--without-static-libpython
|
||||
--enable-ipv6
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--without-lto
|
||||
--with-system-expat
|
||||
--with-platlibdir=lib
|
||||
--with-pkg-config=yes
|
||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||
|
||||
$(use_with debug assertions)
|
||||
$(use_enable jit experimental-jit)
|
||||
$(use_enable pgo optimizations)
|
||||
$(use_with readline readline "$(usex libedit editline readline)")
|
||||
$(use_with valgrind)
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if tc-is-lto; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
myeconfargs+=(
|
||||
--with-lto
|
||||
)
|
||||
fi
|
||||
|
||||
# Force-disable modules we don't want built.
|
||||
# See Modules/Setup for docs on how this works. Setup.local contains our local deviations.
|
||||
cat > Modules/Setup.local <<-EOF || die
|
||||
*disabled*
|
||||
nis
|
||||
$(usev !gdbm '_gdbm _dbm')
|
||||
$(usev !sqlite '_sqlite3')
|
||||
$(usev !ssl '_hashlib _ssl')
|
||||
$(usev !ncurses '_curses _curses_panel')
|
||||
$(usev !readline 'readline')
|
||||
$(usev !tk '_tkinter')
|
||||
EOF
|
||||
|
||||
# disable implicit optimization/debugging flags
|
||||
local -x OPT=
|
||||
|
||||
if tc-is-cross-compiler ; then
|
||||
build_cbuild_python
|
||||
myeconfargs+=(
|
||||
# Point the imminent CHOST build to the Python we just
|
||||
# built for CBUILD.
|
||||
--with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
|
||||
)
|
||||
fi
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
local -x CFLAGS_NODIST=${CFLAGS}
|
||||
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
if use ncurses; then
|
||||
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
fi
|
||||
|
||||
econf "${myeconfargs[@]}"
|
||||
|
||||
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
|
||||
# install epython.py as part of stdlib
|
||||
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
export PYTHONSTRICTEXTENSIONBUILD=1
|
||||
|
||||
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||
# end up writing bytecode & violating sandbox.
|
||||
# bug #831897
|
||||
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
if use pgo ; then
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
addwrite "/usr/lib/python${PYVER}/site-packages"
|
||||
fi
|
||||
|
||||
# also need to clear the flags explicitly here or they end up
|
||||
# in _sysconfigdata*
|
||||
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||
|
||||
# Restore saved value from above.
|
||||
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
# Work around bug 329499. See also bug 413751 and 457194.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E python
|
||||
else
|
||||
pax-mark m python
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
# this just happens to skip test_support.test_freeze that is broken
|
||||
# without bundled expat
|
||||
# TODO: get a proper skip for it upstream
|
||||
local -x LOGNAME=buildbot
|
||||
|
||||
local test_opts=(
|
||||
-u-network
|
||||
-j "$(makeopts_jobs)"
|
||||
|
||||
# fails
|
||||
-x test_concurrent_futures
|
||||
-x test_gdb
|
||||
)
|
||||
|
||||
if use sparc ; then
|
||||
# bug #788022
|
||||
test_opts+=(
|
||||
-x test_multiprocessing_fork
|
||||
-x test_multiprocessing_forkserver
|
||||
)
|
||||
fi
|
||||
|
||||
# workaround docutils breaking tests
|
||||
cat > Lib/docutils.py <<-EOF || die
|
||||
raise ImportError("Thou shalt not import!")
|
||||
EOF
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
# workaround https://bugs.gentoo.org/775416
|
||||
addwrite "/usr/lib/python${PYVER}/site-packages"
|
||||
|
||||
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local ret=${?}
|
||||
|
||||
rm Lib/docutils.py || die
|
||||
|
||||
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
# the Makefile rules are broken
|
||||
# https://github.com/python/cpython/issues/100221
|
||||
mkdir -p "${libdir}"/lib-dynload || die
|
||||
|
||||
# -j1 hack for now for bug #843458
|
||||
emake -j1 DESTDIR="${D}" altinstall
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||
|
||||
# Cheap hack to get version with ABIFLAGS
|
||||
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||
if [[ ${abiver} != python${PYVER} ]]; then
|
||||
# Replace python3.X with a symlink to python3.Xm
|
||||
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||
# Create python3.X-config symlink
|
||||
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||
# Create python-3.5m.pc symlink
|
||||
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||
fi
|
||||
|
||||
# python seems to get rebuilt in src_install (bug 569908)
|
||||
# Work around it for now.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||
else
|
||||
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||
fi
|
||||
|
||||
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||
if ! use ensurepip; then
|
||||
rm -r "${libdir}"/ensurepip || die
|
||||
fi
|
||||
if ! use sqlite; then
|
||||
rm -r "${libdir}/"sqlite3 || die
|
||||
fi
|
||||
if ! use tk; then
|
||||
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
fi
|
||||
|
||||
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
|
||||
|
||||
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||
dodoc -r Tools
|
||||
fi
|
||||
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||
local libname=$(
|
||||
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
|
||||
emake --no-print-directory -s -f - 2>/dev/null
|
||||
)
|
||||
newins Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||
|
||||
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||
sed \
|
||||
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local EPYTHON=python${PYVER}
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||
# python-config and pythonX-config
|
||||
# note: we need to create a wrapper rather than symlinking it due
|
||||
# to some random dirname(argv[0]) magic performed by python-config
|
||||
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
|
||||
# pydoc
|
||||
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
local v
|
||||
for v in ${REPLACING_VERSIONS}; do
|
||||
if ver_test "${v}" -lt 3.11.0_beta4-r2; then
|
||||
ewarn "Python 3.11.0b4 has changed its module ABI. The .pyc files"
|
||||
ewarn "installed previously are no longer valid and will be regenerated"
|
||||
ewarn "(or ignored) on the next import. This may cause sandbox failures"
|
||||
ewarn "when installing some packages and checksum mismatches when removing"
|
||||
ewarn "old versions. To actively prevent this, rebuild all packages"
|
||||
ewarn "installing Python 3.11 modules, e.g. using:"
|
||||
ewarn
|
||||
ewarn " emerge -1v /usr/lib/python3.11/site-packages"
|
||||
fi
|
||||
done
|
||||
}
|
@ -1,430 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools flag-o-matic multiprocessing pax-utils
|
||||
inherit prefix python-utils-r1 toolchain-funcs verify-sig
|
||||
|
||||
MY_PV=${PV/_rc/rc}
|
||||
MY_P="Python-${MY_PV%_p*}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="
|
||||
https://www.python.org/
|
||||
https://github.com/python/cpython/
|
||||
"
|
||||
SRC_URI="
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||
verify-sig? (
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
|
||||
)
|
||||
"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
IUSE="
|
||||
bluetooth build debug +ensurepip examples gdbm +ncurses pgo
|
||||
+readline +sqlite +ssl test tk valgrind
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="
|
||||
app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
>=dev-libs/expat-2.1:=
|
||||
dev-libs/libffi:=
|
||||
dev-python/gentoo-common
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
ensurepip? ( dev-python/ensurepip-wheels )
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
kernel_linux? ( sys-apps/util-linux:= )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? ( >=sys-libs/readline-4.1:= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
test? ( app-arch/xz-utils )
|
||||
valgrind? ( dev-debug/valgrind )
|
||||
"
|
||||
# autoconf-archive needed to eautoreconf
|
||||
BDEPEND="
|
||||
dev-build/autoconf-archive
|
||||
app-alternatives/awk
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( sec-keys/openpgp-keys-python )
|
||||
"
|
||||
RDEPEND+="
|
||||
!build? ( app-misc/mime-types )
|
||||
"
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
|
||||
|
||||
QA_PKGCONFIG_VERSION=${PYVER}
|
||||
# false positives -- functions specific to *BSD
|
||||
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||
|
||||
src_unpack() {
|
||||
if use verify-sig; then
|
||||
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||
fi
|
||||
default
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat and libffi are not used.
|
||||
rm -r Modules/expat || die
|
||||
rm -r Modules/_ctypes/libffi* || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
# https://bugs.gentoo.org/850151
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
|
||||
|
||||
# force the correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
local jobs=$(makeopts_jobs)
|
||||
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||
|
||||
rm Lib/distutils/command/wininst*.exe || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# disable automagic bluetooth headers detection
|
||||
if ! use bluetooth; then
|
||||
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||
fi
|
||||
local disable
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
append-flags -fwrapv
|
||||
filter-flags -malign-double
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
# PKG_CONFIG needed for cross.
|
||||
tc-export CXX PKG_CONFIG
|
||||
|
||||
local dbmliborder=
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||
# Python on glibc upgrade, remove it proactively to give
|
||||
# a chance for users rebuilding python before glibc
|
||||
ac_cv_header_stropts_h=no
|
||||
|
||||
--enable-shared
|
||||
--enable-ipv6
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--without-lto
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||
|
||||
$(use_with debug assertions)
|
||||
$(use_with valgrind)
|
||||
)
|
||||
|
||||
# disable implicit optimization/debugging flags
|
||||
local -x OPT=
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if tc-is-lto; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
myeconfargs+=(
|
||||
--with-lto
|
||||
)
|
||||
fi
|
||||
|
||||
if tc-is-cross-compiler ; then
|
||||
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
#
|
||||
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||
|
||||
# We need to build our own Python on CBUILD first, and feed it in.
|
||||
# bug #847910 and bug #864911.
|
||||
local myeconfargs_cbuild=(
|
||||
"${myeconfargs[@]}"
|
||||
|
||||
--libdir="${cbuild_libdir:2}"
|
||||
|
||||
# Avoid needing to load the right libpython.so.
|
||||
--disable-shared
|
||||
|
||||
# As minimal as possible for the mini CBUILD Python
|
||||
# we build just for cross.
|
||||
--without-lto
|
||||
--disable-optimizations
|
||||
)
|
||||
|
||||
# Point the imminent CHOST build to the Python we just
|
||||
# built for CBUILD.
|
||||
export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
|
||||
|
||||
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
|
||||
# libdir correctly for cross.
|
||||
PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" \
|
||||
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||
|
||||
# Avoid as many dependencies as possible for the cross build.
|
||||
cat >> Makefile <<-EOF || die
|
||||
MODULE_NIS=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__GDBM=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__SQLITE3=disabled
|
||||
MODULE__HASHLIB=disabled
|
||||
MODULE__SSL=disabled
|
||||
MODULE__CURSES=disabled
|
||||
MODULE__CURSES_PANEL=disabled
|
||||
MODULE_READLINE=disabled
|
||||
MODULE__TKINTER=disabled
|
||||
MODULE_PYEXPAT=disabled
|
||||
MODULE_ZLIB=disabled
|
||||
EOF
|
||||
|
||||
# Unfortunately, we do have to build this immediately, and
|
||||
# not in src_compile, because CHOST configure for Python
|
||||
# will check the existence of the Python it was pointed to
|
||||
# immediately.
|
||||
PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" emake
|
||||
popd &> /dev/null || die
|
||||
fi
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
local -x CFLAGS_NODIST=${CFLAGS}
|
||||
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
if use ncurses; then
|
||||
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
fi
|
||||
|
||||
hprefixify setup.py
|
||||
econf "${myeconfargs[@]}"
|
||||
|
||||
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
|
||||
# install epython.py as part of stdlib
|
||||
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
# Prevent using distutils bundled by setuptools.
|
||||
# https://bugs.gentoo.org/823728
|
||||
export SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||
|
||||
# also need to clear the flags explicitly here or they end up
|
||||
# in _sysconfigdata*
|
||||
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||
|
||||
# Work around bug 329499. See also bug 413751 and 457194.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E python
|
||||
else
|
||||
pax-mark m python
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
local test_opts=(
|
||||
-u-network
|
||||
-j "$(makeopts_jobs)"
|
||||
|
||||
# fails
|
||||
-x test_concurrent_futures
|
||||
-x test_gdb
|
||||
)
|
||||
|
||||
if use sparc ; then
|
||||
# bug #788022
|
||||
test_opts+=(
|
||||
-x test_multiprocessing_fork
|
||||
-x test_multiprocessing_forkserver
|
||||
)
|
||||
fi
|
||||
|
||||
# workaround docutils breaking tests
|
||||
cat > Lib/docutils.py <<-EOF || die
|
||||
raise ImportError("Thou shalt not import!")
|
||||
EOF
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local ret=${?}
|
||||
|
||||
rm Lib/docutils.py || die
|
||||
|
||||
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
# Remove static library
|
||||
rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||
|
||||
# Cheap hack to get version with ABIFLAGS
|
||||
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||
if [[ ${abiver} != python${PYVER} ]]; then
|
||||
# Replace python3.X with a symlink to python3.Xm
|
||||
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||
# Create python3.X-config symlink
|
||||
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||
# Create python-3.5m.pc symlink
|
||||
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||
fi
|
||||
|
||||
# python seems to get rebuilt in src_install (bug 569908)
|
||||
# Work around it for now.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||
else
|
||||
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||
fi
|
||||
|
||||
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||
if ! use ensurepip; then
|
||||
rm -r "${libdir}"/ensurepip || die
|
||||
fi
|
||||
if ! use sqlite; then
|
||||
rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||
fi
|
||||
if ! use tk; then
|
||||
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
fi
|
||||
|
||||
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
|
||||
|
||||
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||
dodoc -r Tools
|
||||
fi
|
||||
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||
local libname=$(
|
||||
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
|
||||
emake --no-print-directory -s -f - 2>/dev/null
|
||||
)
|
||||
newins Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||
|
||||
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||
sed \
|
||||
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local EPYTHON=python${PYVER}
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||
# python-config and pythonX-config
|
||||
# note: we need to create a wrapper rather than symlinking it due
|
||||
# to some random dirname(argv[0]) magic performed by python-config
|
||||
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
|
||||
# 2to3, pydoc
|
||||
ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
@ -1,430 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools flag-o-matic multiprocessing pax-utils
|
||||
inherit prefix python-utils-r1 toolchain-funcs verify-sig
|
||||
|
||||
MY_PV=${PV/_rc/rc}
|
||||
MY_P="Python-${MY_PV%_p*}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="
|
||||
https://www.python.org/
|
||||
https://github.com/python/cpython/
|
||||
"
|
||||
SRC_URI="
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||
verify-sig? (
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
|
||||
)
|
||||
"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}"
|
||||
KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
IUSE="
|
||||
bluetooth build debug +ensurepip examples gdbm +ncurses pgo
|
||||
+readline +sqlite +ssl test tk valgrind
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="
|
||||
app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
>=dev-libs/expat-2.1:=
|
||||
dev-libs/libffi:=
|
||||
dev-python/gentoo-common
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
ensurepip? ( dev-python/ensurepip-wheels )
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
kernel_linux? ( sys-apps/util-linux:= )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? ( >=sys-libs/readline-4.1:= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
test? ( app-arch/xz-utils )
|
||||
valgrind? ( dev-debug/valgrind )
|
||||
"
|
||||
# autoconf-archive needed to eautoreconf
|
||||
BDEPEND="
|
||||
dev-build/autoconf-archive
|
||||
app-alternatives/awk
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( sec-keys/openpgp-keys-python )
|
||||
"
|
||||
RDEPEND+="
|
||||
!build? ( app-misc/mime-types )
|
||||
"
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
|
||||
|
||||
QA_PKGCONFIG_VERSION=${PYVER}
|
||||
# false positives -- functions specific to *BSD
|
||||
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||
|
||||
src_unpack() {
|
||||
if use verify-sig; then
|
||||
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||
fi
|
||||
default
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat and libffi are not used.
|
||||
rm -r Modules/expat || die
|
||||
rm -r Modules/_ctypes/libffi* || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
# https://bugs.gentoo.org/850151
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
|
||||
|
||||
# force the correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
local jobs=$(makeopts_jobs)
|
||||
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||
|
||||
rm Lib/distutils/command/wininst*.exe || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# disable automagic bluetooth headers detection
|
||||
if ! use bluetooth; then
|
||||
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||
fi
|
||||
local disable
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
append-flags -fwrapv
|
||||
filter-flags -malign-double
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
# PKG_CONFIG needed for cross.
|
||||
tc-export CXX PKG_CONFIG
|
||||
|
||||
local dbmliborder=
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||
# Python on glibc upgrade, remove it proactively to give
|
||||
# a chance for users rebuilding python before glibc
|
||||
ac_cv_header_stropts_h=no
|
||||
|
||||
--enable-shared
|
||||
--enable-ipv6
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--without-lto
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||
|
||||
$(use_with debug assertions)
|
||||
$(use_with valgrind)
|
||||
)
|
||||
|
||||
# disable implicit optimization/debugging flags
|
||||
local -x OPT=
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if tc-is-lto; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
myeconfargs+=(
|
||||
--with-lto
|
||||
)
|
||||
fi
|
||||
|
||||
if tc-is-cross-compiler ; then
|
||||
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
#
|
||||
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||
|
||||
# We need to build our own Python on CBUILD first, and feed it in.
|
||||
# bug #847910 and bug #864911.
|
||||
local myeconfargs_cbuild=(
|
||||
"${myeconfargs[@]}"
|
||||
|
||||
--libdir="${cbuild_libdir:2}"
|
||||
|
||||
# Avoid needing to load the right libpython.so.
|
||||
--disable-shared
|
||||
|
||||
# As minimal as possible for the mini CBUILD Python
|
||||
# we build just for cross.
|
||||
--without-lto
|
||||
--disable-optimizations
|
||||
)
|
||||
|
||||
# Point the imminent CHOST build to the Python we just
|
||||
# built for CBUILD.
|
||||
export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
|
||||
|
||||
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
|
||||
# libdir correctly for cross.
|
||||
PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" \
|
||||
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||
|
||||
# Avoid as many dependencies as possible for the cross build.
|
||||
cat >> Makefile <<-EOF || die
|
||||
MODULE_NIS=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__GDBM=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__SQLITE3=disabled
|
||||
MODULE__HASHLIB=disabled
|
||||
MODULE__SSL=disabled
|
||||
MODULE__CURSES=disabled
|
||||
MODULE__CURSES_PANEL=disabled
|
||||
MODULE_READLINE=disabled
|
||||
MODULE__TKINTER=disabled
|
||||
MODULE_PYEXPAT=disabled
|
||||
MODULE_ZLIB=disabled
|
||||
EOF
|
||||
|
||||
# Unfortunately, we do have to build this immediately, and
|
||||
# not in src_compile, because CHOST configure for Python
|
||||
# will check the existence of the Python it was pointed to
|
||||
# immediately.
|
||||
PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" emake
|
||||
popd &> /dev/null || die
|
||||
fi
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
local -x CFLAGS_NODIST=${CFLAGS}
|
||||
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
if use ncurses; then
|
||||
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
fi
|
||||
|
||||
hprefixify setup.py
|
||||
econf "${myeconfargs[@]}"
|
||||
|
||||
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
|
||||
# install epython.py as part of stdlib
|
||||
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
# Prevent using distutils bundled by setuptools.
|
||||
# https://bugs.gentoo.org/823728
|
||||
export SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||
|
||||
# also need to clear the flags explicitly here or they end up
|
||||
# in _sysconfigdata*
|
||||
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||
|
||||
# Work around bug 329499. See also bug 413751 and 457194.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E python
|
||||
else
|
||||
pax-mark m python
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
local test_opts=(
|
||||
-u-network
|
||||
-j "$(makeopts_jobs)"
|
||||
|
||||
# fails
|
||||
-x test_concurrent_futures
|
||||
-x test_gdb
|
||||
)
|
||||
|
||||
if use sparc ; then
|
||||
# bug #788022
|
||||
test_opts+=(
|
||||
-x test_multiprocessing_fork
|
||||
-x test_multiprocessing_forkserver
|
||||
)
|
||||
fi
|
||||
|
||||
# workaround docutils breaking tests
|
||||
cat > Lib/docutils.py <<-EOF || die
|
||||
raise ImportError("Thou shalt not import!")
|
||||
EOF
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local ret=${?}
|
||||
|
||||
rm Lib/docutils.py || die
|
||||
|
||||
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
# Remove static library
|
||||
rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||
|
||||
# Cheap hack to get version with ABIFLAGS
|
||||
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||
if [[ ${abiver} != python${PYVER} ]]; then
|
||||
# Replace python3.X with a symlink to python3.Xm
|
||||
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||
# Create python3.X-config symlink
|
||||
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||
# Create python-3.5m.pc symlink
|
||||
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||
fi
|
||||
|
||||
# python seems to get rebuilt in src_install (bug 569908)
|
||||
# Work around it for now.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||
else
|
||||
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||
fi
|
||||
|
||||
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||
if ! use ensurepip; then
|
||||
rm -r "${libdir}"/ensurepip || die
|
||||
fi
|
||||
if ! use sqlite; then
|
||||
rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||
fi
|
||||
if ! use tk; then
|
||||
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
fi
|
||||
|
||||
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
|
||||
|
||||
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||
dodoc -r Tools
|
||||
fi
|
||||
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||
local libname=$(
|
||||
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
|
||||
emake --no-print-directory -s -f - 2>/dev/null
|
||||
)
|
||||
newins Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||
|
||||
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||
sed \
|
||||
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local EPYTHON=python${PYVER}
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||
# python-config and pythonX-config
|
||||
# note: we need to create a wrapper rather than symlinking it due
|
||||
# to some random dirname(argv[0]) magic performed by python-config
|
||||
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
|
||||
# 2to3, pydoc
|
||||
ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
@ -1,490 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
|
||||
inherit prefix python-utils-r1 toolchain-funcs verify-sig
|
||||
|
||||
MY_PV=${PV/_rc/rc}
|
||||
MY_P="Python-${MY_PV%_p*}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="
|
||||
https://www.python.org/
|
||||
https://github.com/python/cpython/
|
||||
"
|
||||
SRC_URI="
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||
verify-sig? (
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
|
||||
)
|
||||
"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
IUSE="
|
||||
bluetooth build debug +ensurepip examples gdbm +ncurses pgo
|
||||
+readline +sqlite +ssl test tk valgrind
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="
|
||||
app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
>=dev-libs/expat-2.1:=
|
||||
dev-libs/libffi:=
|
||||
dev-python/gentoo-common
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
ensurepip? ( dev-python/ensurepip-wheels )
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
kernel_linux? ( sys-apps/util-linux:= )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? ( >=sys-libs/readline-4.1:= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
test? ( app-arch/xz-utils )
|
||||
valgrind? ( dev-debug/valgrind )
|
||||
"
|
||||
# autoconf-archive needed to eautoreconf
|
||||
BDEPEND="
|
||||
dev-build/autoconf-archive
|
||||
app-alternatives/awk
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( sec-keys/openpgp-keys-python )
|
||||
"
|
||||
RDEPEND+="
|
||||
!build? ( app-misc/mime-types )
|
||||
"
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
|
||||
|
||||
# large file tests involve a 2.5G file being copied (duplicated)
|
||||
CHECKREQS_DISK_BUILD=5500M
|
||||
|
||||
QA_PKGCONFIG_VERSION=${PYVER}
|
||||
# false positives -- functions specific to *BSD
|
||||
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||
|
||||
pkg_pretend() {
|
||||
use test && check-reqs_pkg_pretend
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && check-reqs_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if use verify-sig; then
|
||||
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||
fi
|
||||
default
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat and libffi are not used.
|
||||
rm -r Modules/expat || die
|
||||
rm -r Modules/_ctypes/libffi* || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
# https://bugs.gentoo.org/850151
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
|
||||
|
||||
# force the correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
local jobs=$(makeopts_jobs)
|
||||
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# disable automagic bluetooth headers detection
|
||||
if ! use bluetooth; then
|
||||
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||
fi
|
||||
local disable
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
append-flags -fwrapv
|
||||
filter-flags -malign-double
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
# PKG_CONFIG needed for cross.
|
||||
tc-export CXX PKG_CONFIG
|
||||
|
||||
local dbmliborder=
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
if use pgo; then
|
||||
local profile_task_flags=(
|
||||
-m test
|
||||
"-j$(makeopts_jobs)"
|
||||
--pgo-extended
|
||||
-x test_gdb
|
||||
-x test_dtrace
|
||||
-u-network
|
||||
|
||||
# All of these seem to occasionally hang for PGO inconsistently
|
||||
# They'll even hang here but be fine in src_test sometimes.
|
||||
# bug #828535 (and related: bug #788022)
|
||||
-x test_asyncio
|
||||
-x test_concurrent_futures
|
||||
-x test_httpservers
|
||||
-x test_logging
|
||||
-x test_multiprocessing_fork
|
||||
-x test_socket
|
||||
-x test_xmlrpc
|
||||
|
||||
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
|
||||
# bug #900429
|
||||
-x test_tools
|
||||
)
|
||||
|
||||
if has_version "app-arch/rpm" ; then
|
||||
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||
profile_task_flags+=(
|
||||
-x test_distutils
|
||||
)
|
||||
fi
|
||||
local -x PROFILE_TASK="${profile_task_flags[*]}"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||
# Python on glibc upgrade, remove it proactively to give
|
||||
# a chance for users rebuilding python before glibc
|
||||
ac_cv_header_stropts_h=no
|
||||
|
||||
--enable-shared
|
||||
--enable-ipv6
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--without-lto
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||
|
||||
$(use_with debug assertions)
|
||||
$(use_enable pgo optimizations)
|
||||
$(use_with valgrind)
|
||||
)
|
||||
|
||||
# disable implicit optimization/debugging flags
|
||||
local -x OPT=
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if tc-is-lto; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
myeconfargs+=(
|
||||
--with-lto
|
||||
)
|
||||
fi
|
||||
|
||||
if tc-is-cross-compiler ; then
|
||||
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
#
|
||||
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||
|
||||
# We need to build our own Python on CBUILD first, and feed it in.
|
||||
# bug #847910 and bug #864911.
|
||||
local myeconfargs_cbuild=(
|
||||
"${myeconfargs[@]}"
|
||||
|
||||
--libdir="${cbuild_libdir:2}"
|
||||
|
||||
# Avoid needing to load the right libpython.so.
|
||||
--disable-shared
|
||||
|
||||
# As minimal as possible for the mini CBUILD Python
|
||||
# we build just for cross.
|
||||
--without-lto
|
||||
--disable-optimizations
|
||||
)
|
||||
|
||||
# Point the imminent CHOST build to the Python we just
|
||||
# built for CBUILD.
|
||||
export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
|
||||
|
||||
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
|
||||
# libdir correctly for cross.
|
||||
PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" \
|
||||
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||
|
||||
# Avoid as many dependencies as possible for the cross build.
|
||||
cat >> Makefile <<-EOF || die
|
||||
MODULE_NIS=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__GDBM=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__SQLITE3=disabled
|
||||
MODULE__HASHLIB=disabled
|
||||
MODULE__SSL=disabled
|
||||
MODULE__CURSES=disabled
|
||||
MODULE__CURSES_PANEL=disabled
|
||||
MODULE_READLINE=disabled
|
||||
MODULE__TKINTER=disabled
|
||||
MODULE_PYEXPAT=disabled
|
||||
MODULE_ZLIB=disabled
|
||||
EOF
|
||||
|
||||
# Unfortunately, we do have to build this immediately, and
|
||||
# not in src_compile, because CHOST configure for Python
|
||||
# will check the existence of the Python it was pointed to
|
||||
# immediately.
|
||||
PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" emake
|
||||
popd &> /dev/null || die
|
||||
fi
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
local -x CFLAGS_NODIST=${CFLAGS}
|
||||
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
if use ncurses; then
|
||||
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
fi
|
||||
|
||||
hprefixify setup.py
|
||||
econf "${myeconfargs[@]}"
|
||||
|
||||
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
|
||||
# install epython.py as part of stdlib
|
||||
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
# Prevent using distutils bundled by setuptools.
|
||||
# https://bugs.gentoo.org/823728
|
||||
export SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||
|
||||
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||
# end up writing bytecode & violating sandbox.
|
||||
# bug #831897
|
||||
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
if use pgo ; then
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
addpredict "/usr/lib/python${PYVER}/site-packages"
|
||||
fi
|
||||
|
||||
# also need to clear the flags explicitly here or they end up
|
||||
# in _sysconfigdata*
|
||||
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||
|
||||
# Restore saved value from above.
|
||||
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
# Work around bug 329499. See also bug 413751 and 457194.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E python
|
||||
else
|
||||
pax-mark m python
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
local test_opts=(
|
||||
-u-network
|
||||
-j "$(makeopts_jobs)"
|
||||
|
||||
# fails
|
||||
-x test_concurrent_futures
|
||||
-x test_gdb
|
||||
)
|
||||
|
||||
if use sparc ; then
|
||||
# bug #788022
|
||||
test_opts+=(
|
||||
-x test_multiprocessing_fork
|
||||
-x test_multiprocessing_forkserver
|
||||
)
|
||||
fi
|
||||
|
||||
# workaround docutils breaking tests
|
||||
cat > Lib/docutils.py <<-EOF || die
|
||||
raise ImportError("Thou shalt not import!")
|
||||
EOF
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local ret=${?}
|
||||
|
||||
rm Lib/docutils.py || die
|
||||
|
||||
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
# Remove static library
|
||||
rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||
|
||||
# Cheap hack to get version with ABIFLAGS
|
||||
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||
if [[ ${abiver} != python${PYVER} ]]; then
|
||||
# Replace python3.X with a symlink to python3.Xm
|
||||
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||
# Create python3.X-config symlink
|
||||
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||
# Create python-3.5m.pc symlink
|
||||
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||
fi
|
||||
|
||||
# python seems to get rebuilt in src_install (bug 569908)
|
||||
# Work around it for now.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||
else
|
||||
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||
fi
|
||||
|
||||
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||
if ! use ensurepip; then
|
||||
rm -r "${libdir}"/ensurepip || die
|
||||
fi
|
||||
if ! use sqlite; then
|
||||
rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||
fi
|
||||
if ! use tk; then
|
||||
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
fi
|
||||
|
||||
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
|
||||
|
||||
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||
dodoc -r Tools
|
||||
fi
|
||||
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||
local libname=$(
|
||||
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
|
||||
emake --no-print-directory -s -f - 2>/dev/null
|
||||
)
|
||||
newins Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||
|
||||
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||
sed \
|
||||
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local EPYTHON=python${PYVER}
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||
# python-config and pythonX-config
|
||||
# note: we need to create a wrapper rather than symlinking it due
|
||||
# to some random dirname(argv[0]) magic performed by python-config
|
||||
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
|
||||
# 2to3, pydoc
|
||||
ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
@ -1,490 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
|
||||
inherit prefix python-utils-r1 toolchain-funcs verify-sig
|
||||
|
||||
MY_PV=${PV/_rc/rc}
|
||||
MY_P="Python-${MY_PV%_p*}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="
|
||||
https://www.python.org/
|
||||
https://github.com/python/cpython/
|
||||
"
|
||||
SRC_URI="
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||
verify-sig? (
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
|
||||
)
|
||||
"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}"
|
||||
KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
IUSE="
|
||||
bluetooth build debug +ensurepip examples gdbm +ncurses pgo
|
||||
+readline +sqlite +ssl test tk valgrind
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="
|
||||
app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
>=dev-libs/expat-2.1:=
|
||||
dev-libs/libffi:=
|
||||
dev-python/gentoo-common
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
ensurepip? ( dev-python/ensurepip-wheels )
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
kernel_linux? ( sys-apps/util-linux:= )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? ( >=sys-libs/readline-4.1:= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
test? ( app-arch/xz-utils )
|
||||
valgrind? ( dev-debug/valgrind )
|
||||
"
|
||||
# autoconf-archive needed to eautoreconf
|
||||
BDEPEND="
|
||||
dev-build/autoconf-archive
|
||||
app-alternatives/awk
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( sec-keys/openpgp-keys-python )
|
||||
"
|
||||
RDEPEND+="
|
||||
!build? ( app-misc/mime-types )
|
||||
"
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
|
||||
|
||||
# large file tests involve a 2.5G file being copied (duplicated)
|
||||
CHECKREQS_DISK_BUILD=5500M
|
||||
|
||||
QA_PKGCONFIG_VERSION=${PYVER}
|
||||
# false positives -- functions specific to *BSD
|
||||
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||
|
||||
pkg_pretend() {
|
||||
use test && check-reqs_pkg_pretend
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && check-reqs_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if use verify-sig; then
|
||||
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||
fi
|
||||
default
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat and libffi are not used.
|
||||
rm -r Modules/expat || die
|
||||
rm -r Modules/_ctypes/libffi* || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
# https://bugs.gentoo.org/850151
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
|
||||
|
||||
# force the correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
local jobs=$(makeopts_jobs)
|
||||
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# disable automagic bluetooth headers detection
|
||||
if ! use bluetooth; then
|
||||
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||
fi
|
||||
local disable
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
append-flags -fwrapv
|
||||
filter-flags -malign-double
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
# PKG_CONFIG needed for cross.
|
||||
tc-export CXX PKG_CONFIG
|
||||
|
||||
local dbmliborder=
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
if use pgo; then
|
||||
local profile_task_flags=(
|
||||
-m test
|
||||
"-j$(makeopts_jobs)"
|
||||
--pgo-extended
|
||||
-x test_gdb
|
||||
-x test_dtrace
|
||||
-u-network
|
||||
|
||||
# All of these seem to occasionally hang for PGO inconsistently
|
||||
# They'll even hang here but be fine in src_test sometimes.
|
||||
# bug #828535 (and related: bug #788022)
|
||||
-x test_asyncio
|
||||
-x test_concurrent_futures
|
||||
-x test_httpservers
|
||||
-x test_logging
|
||||
-x test_multiprocessing_fork
|
||||
-x test_socket
|
||||
-x test_xmlrpc
|
||||
|
||||
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
|
||||
# bug #900429
|
||||
-x test_tools
|
||||
)
|
||||
|
||||
if has_version "app-arch/rpm" ; then
|
||||
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||
profile_task_flags+=(
|
||||
-x test_distutils
|
||||
)
|
||||
fi
|
||||
local -x PROFILE_TASK="${profile_task_flags[*]}"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||
# Python on glibc upgrade, remove it proactively to give
|
||||
# a chance for users rebuilding python before glibc
|
||||
ac_cv_header_stropts_h=no
|
||||
|
||||
--enable-shared
|
||||
--enable-ipv6
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--without-lto
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||
|
||||
$(use_with debug assertions)
|
||||
$(use_enable pgo optimizations)
|
||||
$(use_with valgrind)
|
||||
)
|
||||
|
||||
# disable implicit optimization/debugging flags
|
||||
local -x OPT=
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if tc-is-lto; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
myeconfargs+=(
|
||||
--with-lto
|
||||
)
|
||||
fi
|
||||
|
||||
if tc-is-cross-compiler ; then
|
||||
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
#
|
||||
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||
|
||||
# We need to build our own Python on CBUILD first, and feed it in.
|
||||
# bug #847910 and bug #864911.
|
||||
local myeconfargs_cbuild=(
|
||||
"${myeconfargs[@]}"
|
||||
|
||||
--libdir="${cbuild_libdir:2}"
|
||||
|
||||
# Avoid needing to load the right libpython.so.
|
||||
--disable-shared
|
||||
|
||||
# As minimal as possible for the mini CBUILD Python
|
||||
# we build just for cross.
|
||||
--without-lto
|
||||
--disable-optimizations
|
||||
)
|
||||
|
||||
# Point the imminent CHOST build to the Python we just
|
||||
# built for CBUILD.
|
||||
export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
|
||||
|
||||
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
|
||||
# libdir correctly for cross.
|
||||
PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" \
|
||||
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||
|
||||
# Avoid as many dependencies as possible for the cross build.
|
||||
cat >> Makefile <<-EOF || die
|
||||
MODULE_NIS=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__GDBM=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__SQLITE3=disabled
|
||||
MODULE__HASHLIB=disabled
|
||||
MODULE__SSL=disabled
|
||||
MODULE__CURSES=disabled
|
||||
MODULE__CURSES_PANEL=disabled
|
||||
MODULE_READLINE=disabled
|
||||
MODULE__TKINTER=disabled
|
||||
MODULE_PYEXPAT=disabled
|
||||
MODULE_ZLIB=disabled
|
||||
EOF
|
||||
|
||||
# Unfortunately, we do have to build this immediately, and
|
||||
# not in src_compile, because CHOST configure for Python
|
||||
# will check the existence of the Python it was pointed to
|
||||
# immediately.
|
||||
PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" emake
|
||||
popd &> /dev/null || die
|
||||
fi
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
local -x CFLAGS_NODIST=${CFLAGS}
|
||||
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
if use ncurses; then
|
||||
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
fi
|
||||
|
||||
hprefixify setup.py
|
||||
econf "${myeconfargs[@]}"
|
||||
|
||||
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
|
||||
# install epython.py as part of stdlib
|
||||
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
# Prevent using distutils bundled by setuptools.
|
||||
# https://bugs.gentoo.org/823728
|
||||
export SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||
|
||||
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||
# end up writing bytecode & violating sandbox.
|
||||
# bug #831897
|
||||
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
if use pgo ; then
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
addpredict "/usr/lib/python${PYVER}/site-packages"
|
||||
fi
|
||||
|
||||
# also need to clear the flags explicitly here or they end up
|
||||
# in _sysconfigdata*
|
||||
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||
|
||||
# Restore saved value from above.
|
||||
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
# Work around bug 329499. See also bug 413751 and 457194.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E python
|
||||
else
|
||||
pax-mark m python
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
local test_opts=(
|
||||
-u-network
|
||||
-j "$(makeopts_jobs)"
|
||||
|
||||
# fails
|
||||
-x test_concurrent_futures
|
||||
-x test_gdb
|
||||
)
|
||||
|
||||
if use sparc ; then
|
||||
# bug #788022
|
||||
test_opts+=(
|
||||
-x test_multiprocessing_fork
|
||||
-x test_multiprocessing_forkserver
|
||||
)
|
||||
fi
|
||||
|
||||
# workaround docutils breaking tests
|
||||
cat > Lib/docutils.py <<-EOF || die
|
||||
raise ImportError("Thou shalt not import!")
|
||||
EOF
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local ret=${?}
|
||||
|
||||
rm Lib/docutils.py || die
|
||||
|
||||
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
# Remove static library
|
||||
rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||
|
||||
# Cheap hack to get version with ABIFLAGS
|
||||
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||
if [[ ${abiver} != python${PYVER} ]]; then
|
||||
# Replace python3.X with a symlink to python3.Xm
|
||||
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||
# Create python3.X-config symlink
|
||||
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||
# Create python-3.5m.pc symlink
|
||||
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||
fi
|
||||
|
||||
# python seems to get rebuilt in src_install (bug 569908)
|
||||
# Work around it for now.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||
else
|
||||
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||
fi
|
||||
|
||||
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||
if ! use ensurepip; then
|
||||
rm -r "${libdir}"/ensurepip || die
|
||||
fi
|
||||
if ! use sqlite; then
|
||||
rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||
fi
|
||||
if ! use tk; then
|
||||
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
fi
|
||||
|
||||
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
|
||||
|
||||
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||
dodoc -r Tools
|
||||
fi
|
||||
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||
local libname=$(
|
||||
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
|
||||
emake --no-print-directory -s -f - 2>/dev/null
|
||||
)
|
||||
newins Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||
|
||||
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||
sed \
|
||||
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local EPYTHON=python${PYVER}
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||
# python-config and pythonX-config
|
||||
# note: we need to create a wrapper rather than symlinking it due
|
||||
# to some random dirname(argv[0]) magic performed by python-config
|
||||
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
|
||||
# 2to3, pydoc
|
||||
ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
Binary file not shown.
@ -0,0 +1,68 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
inherit meson python-any-r1 udev
|
||||
|
||||
DESCRIPTION="Library for identifying Wacom tablets and their model-specific features"
|
||||
HOMEPAGE="https://github.com/linuxwacom/libwacom"
|
||||
SRC_URI="https://github.com/linuxwacom/${PN}/releases/download/${P}/${P}.tar.xz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0/9" # libwacom SONAME
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
|
||||
IUSE="doc test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
dev-libs/glib:2
|
||||
dev-libs/libevdev
|
||||
dev-libs/libgudev:=
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
virtual/pkgconfig
|
||||
doc? ( app-text/doxygen )
|
||||
test? (
|
||||
$(python_gen_any_dep '
|
||||
dev-python/libevdev[${PYTHON_USEDEP}]
|
||||
dev-python/pyudev[${PYTHON_USEDEP}]
|
||||
dev-python/pytest[${PYTHON_USEDEP}]
|
||||
')
|
||||
)
|
||||
"
|
||||
|
||||
python_check_deps() {
|
||||
use test || return 0
|
||||
python_has_version \
|
||||
"dev-python/libevdev[${PYTHON_USEDEP}]" \
|
||||
"dev-python/pyudev[${PYTHON_USEDEP}]" \
|
||||
"dev-python/pytest[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Don't call systemd daemon-reload in the test suite
|
||||
sed -i -e '/daemon-reload/d' test/test_udev_rules.py || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local emesonargs=(
|
||||
$(meson_feature doc documentation)
|
||||
$(meson_feature test tests)
|
||||
-Dudev-dir=$(get_udevdir)
|
||||
)
|
||||
meson_src_configure
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
udev_reload
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
udev_reload
|
||||
}
|
@ -1,10 +1,7 @@
|
||||
AUX README.gentoo 383 BLAKE2B a0d8fef2d1f0deebe46ed85065a09057a620aa7af4e7aa901f1fef7b75d15e2ca9d2be1b9367a651a2edf3b4265441ce47af832f423cf9725c78e61836a4f982 SHA512 e4d8f8e0edeb6773dd7ef6329074d1e40b694b9e7e10b6a429d8c5dd4fe1170594f447a42eb41446ec2355829a1da1606bf6c544434551c5c931b0794422e786
|
||||
DIST weston-11.0.1.tar.xz 1900796 BLAKE2B 33d7d5b3340e7074265885bd54ee039e8b5d448fa9f58f4bf9f823efd2557da9b916d903119565a806ab698382fe185165c8ede8614e983c872dfe15b474b616 SHA512 d451230fc260b45aaaadb5cf0aa360629e45e72e3b3676c6ec040d6c6549dbb57d05683effd962c3b2d61482b47a6c990d12cc736c896b501d982c8c4d34834c
|
||||
DIST weston-12.0.91.tar.xz 1986200 BLAKE2B 368fe795bd6121390f14995d8c5ddfcd585e620bcb54f0818b9e9131bb442e79048f82bcd90cfff563c7ad9968cdc9e4f1d859fdd318f4e9b08fec371c4a62e4 SHA512 8e1ceae599344c305e1b65294403d434c4a6ca740f76bdcc67a9f83afe9d352d75ab9cf8bb5091b889ddece43941adf9c4666767098c4c27cb732f8c7f8f738a
|
||||
DIST weston-13.0.0.tar.xz 1986520 BLAKE2B df0e73e451e39b329ed327c370f42bcae01eb5b8fad67711f069fa8f24900ac0c9a9e69b9a6445b67c76ab0ce441dcd2a5a1a8aa3ac0d89a647b9661d575a917 SHA512 8c656cdf24ec9429c76c64ebd2d58351991f5990a6d4b5900ac913243ad8e2c9c0fb1a748f018d177fbfd7e0a8836d0434d97acec287a8f977d47335ae30eacc
|
||||
EBUILD weston-11.0.1-r1.ebuild 3670 BLAKE2B 68f602a9146246169076ade491844eb26ec365ba8adeb9d474ce67599b0e7d859b71eb6c1fb9690d1ae78f05b2d860ad2ff3727ef42ff07017dbbe36c8ef9f3a SHA512 b04bded6989a3f08961d801501cfe0682c06144f4826173c295ec0cd208a8926b13bdb22b3d6e0c81cc5a704196e86ec68ad49899dcf6c693fec4bfe9c4f2567
|
||||
EBUILD weston-11.0.1-r10.ebuild 3649 BLAKE2B c117a6aff993c601f910af251c145ac35bc02773d0e5e6f2a04b3b8ae72ac016e059fce0eb4a2b3b7c5aa1d48cc46f8c526fb637bd1324234e69f93936f78c66 SHA512 abed4d58b69f90cfbfed65e89f3fcb5b5cb6610bea4d9ac490fede7730084c72c38fad08d49dbfbc6273573335980b47b1cc266bbdbe24e06eea7e582828df55
|
||||
EBUILD weston-12.0.91-r1.ebuild 3813 BLAKE2B 005ff0fa5f978d48a24d1d0806341825c33125787bb375611fb61157e97e3ec8560ab5e410c126623f48d1c4afd45c2103f232773645488529043f0549f205a1 SHA512 6734c4a61923e5006c8603371ac368d767721d06ec9932b9275d52cf94aeba7bbfd2a46a08b8ba4eda279e16094d5f8cb2ec6fe98ddf5897b9196d47e6c51cf6
|
||||
EBUILD weston-11.0.1-r10.ebuild 3648 BLAKE2B b9b687c98f0147edb97b18f44c628aeb2a1e283311b728e0427242d21f1897a840c20cd9580044e43617a2dd797368d4ad7922600660fdb828ed1f4e6264b70f SHA512 a60c48a58e0cbc4df204087dd7d73829ca9cc1a2331d22f0fef537c19a489bb3217f66fce19811bbab4aa5049d9021836cb96584d95f62f2b9cd9acf48a3b035
|
||||
EBUILD weston-13.0.0-r1.ebuild 3813 BLAKE2B 005ff0fa5f978d48a24d1d0806341825c33125787bb375611fb61157e97e3ec8560ab5e410c126623f48d1c4afd45c2103f232773645488529043f0549f205a1 SHA512 6734c4a61923e5006c8603371ac368d767721d06ec9932b9275d52cf94aeba7bbfd2a46a08b8ba4eda279e16094d5f8cb2ec6fe98ddf5897b9196d47e6c51cf6
|
||||
EBUILD weston-9999.ebuild 3813 BLAKE2B 005ff0fa5f978d48a24d1d0806341825c33125787bb375611fb61157e97e3ec8560ab5e410c126623f48d1c4afd45c2103f232773645488529043f0549f205a1 SHA512 6734c4a61923e5006c8603371ac368d767721d06ec9932b9275d52cf94aeba7bbfd2a46a08b8ba4eda279e16094d5f8cb2ec6fe98ddf5897b9196d47e6c51cf6
|
||||
MISC metadata.xml 1605 BLAKE2B d4379b28e83de554638a52a2938d3cc57d170ebc0d58a6b5e88cc21c64afc5421e8fa640e7c0e9aa9c8e28861d086a2aabe406b3b1209f3122670edecc3154bd SHA512 0e953c0dfc0174a8f15586d12b56f650bccdcca085c911dd85ae320ed7deb836daf51679a54fece6afdba55ba520074d10275b50f4ed310e55e9aa79eae4cf7a
|
||||
|
@ -1,141 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
if [[ ${PV} = 9999* ]]; then
|
||||
EGIT_REPO_URI="https://gitlab.freedesktop.org/wayland/weston.git"
|
||||
GIT_ECLASS="git-r3"
|
||||
EXPERIMENTAL="true"
|
||||
fi
|
||||
|
||||
PYTHON_COMPAT=( python3_{9..11} )
|
||||
inherit meson python-any-r1 readme.gentoo-r1 xdg-utils ${GIT_ECLASS}
|
||||
|
||||
DESCRIPTION="Wayland reference compositor"
|
||||
HOMEPAGE="https://wayland.freedesktop.org/ https://gitlab.freedesktop.org/wayland/weston"
|
||||
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
SRC_URI="${SRC_PATCHES}"
|
||||
else
|
||||
SRC_URI="https://gitlab.freedesktop.org/wayland/${PN}/uploads/f5648c818fba5432edc3ea63c4db4813/${P}.tar.xz"
|
||||
KEYWORDS="amd64 arm arm64 ~ia64 ~loong ppc64 ~riscv x86"
|
||||
fi
|
||||
|
||||
LICENSE="MIT CC-BY-SA-3.0"
|
||||
SLOT="0"
|
||||
|
||||
IUSE="+desktop +drm editor examples fullscreen +gles2 headless ivi jpeg kiosk lcms pipewire rdp remoting +resize-optimization screen-sharing +seatd +suid systemd test wayland-compositor webp +X xwayland"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
REQUIRED_USE="
|
||||
drm? ( gles2 )
|
||||
pipewire? ( drm )
|
||||
remoting? ( drm gles2 )
|
||||
screen-sharing? ( rdp )
|
||||
test? ( desktop headless lcms xwayland )
|
||||
wayland-compositor? ( gles2 )
|
||||
|| ( drm headless rdp wayland-compositor X )
|
||||
|| ( seatd systemd )
|
||||
"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-libs/libinput-0.8.0
|
||||
>=dev-libs/wayland-1.20.0
|
||||
lcms? ( >=media-libs/lcms-2.9:2 )
|
||||
media-libs/libpng:0=
|
||||
webp? ( media-libs/libwebp:0= )
|
||||
jpeg? ( media-libs/libjpeg-turbo:0= )
|
||||
>=x11-libs/cairo-1.11.3
|
||||
>=x11-libs/libdrm-2.4.108
|
||||
>=x11-libs/libxkbcommon-0.5.0
|
||||
>=x11-libs/pixman-0.25.2
|
||||
x11-misc/xkeyboard-config
|
||||
drm? (
|
||||
>=media-libs/mesa-17.1[gbm(+)]
|
||||
>=sys-libs/mtdev-1.1.0
|
||||
>=virtual/udev-136
|
||||
)
|
||||
editor? ( x11-libs/pango )
|
||||
examples? ( x11-libs/pango )
|
||||
gles2? (
|
||||
media-libs/mesa[gles2,wayland]
|
||||
)
|
||||
pipewire? ( >=media-video/pipewire-0.3:= )
|
||||
rdp? ( >=net-misc/freerdp-2.3.0:0=[server] <net-misc/freerdp-3:0 )
|
||||
remoting? (
|
||||
media-libs/gstreamer:1.0
|
||||
media-libs/gst-plugins-base:1.0
|
||||
)
|
||||
seatd? ( sys-auth/seatd:= )
|
||||
systemd? (
|
||||
sys-auth/pambase[systemd]
|
||||
>=sys-apps/dbus-1.6
|
||||
>=sys-apps/systemd-209[pam]
|
||||
)
|
||||
X? (
|
||||
>=x11-libs/libxcb-1.9
|
||||
x11-libs/libX11
|
||||
)
|
||||
xwayland? (
|
||||
x11-base/xwayland
|
||||
x11-libs/cairo[X,xcb(+)]
|
||||
>=x11-libs/libxcb-1.9
|
||||
x11-libs/libXcursor
|
||||
)
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
>=dev-libs/wayland-protocols-1.24
|
||||
"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
src_configure() {
|
||||
local emesonargs=(
|
||||
$(meson_use drm backend-drm)
|
||||
-Dbackend-drm-screencast-vaapi=false
|
||||
$(meson_use headless backend-headless)
|
||||
$(meson_use rdp backend-rdp)
|
||||
$(meson_use screen-sharing screenshare)
|
||||
$(meson_use wayland-compositor backend-wayland)
|
||||
$(meson_use X backend-x11)
|
||||
-Dbackend-default=auto
|
||||
$(meson_use gles2 renderer-gl)
|
||||
$(meson_use xwayland)
|
||||
$(meson_use seatd launcher-libseat)
|
||||
$(meson_use systemd)
|
||||
$(meson_use remoting)
|
||||
$(meson_use pipewire)
|
||||
$(meson_use desktop shell-desktop)
|
||||
$(meson_use fullscreen shell-fullscreen)
|
||||
$(meson_use ivi shell-ivi)
|
||||
$(meson_use kiosk shell-kiosk)
|
||||
$(meson_use lcms color-management-lcms)
|
||||
$(meson_use systemd launcher-logind)
|
||||
$(meson_use jpeg image-jpeg)
|
||||
$(meson_use webp image-webp)
|
||||
-Dtools=debug,info,terminal
|
||||
$(meson_use examples demo-clients)
|
||||
-Dsimple-clients=$(usex examples damage,dmabuf-v4l,im,shm,touch$(usex gles2 ,dmabuf-egl,egl "") "")
|
||||
$(meson_use resize-optimization resize-pool)
|
||||
-Dtest-junit-xml=false
|
||||
"${myconf[@]}"
|
||||
)
|
||||
meson_src_configure
|
||||
}
|
||||
|
||||
src_test() {
|
||||
xdg_environment_reset
|
||||
addwrite /dev/dri/
|
||||
|
||||
# xwayland test can fail if X11 socket already exists.
|
||||
cd "${BUILD_DIR}" || die
|
||||
meson test $(meson test --list | grep -Exv "xwayland") || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
meson_src_install
|
||||
readme.gentoo_create_doc
|
||||
}
|
@ -1,146 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
if [[ ${PV} = 9999* ]]; then
|
||||
EGIT_REPO_URI="https://gitlab.freedesktop.org/wayland/weston.git"
|
||||
GIT_ECLASS="git-r3"
|
||||
EXPERIMENTAL="true"
|
||||
fi
|
||||
|
||||
PYTHON_COMPAT=( python3_{9..12} )
|
||||
inherit meson python-any-r1 readme.gentoo-r1 xdg-utils ${GIT_ECLASS}
|
||||
|
||||
DESCRIPTION="Wayland reference compositor"
|
||||
HOMEPAGE="https://wayland.freedesktop.org/ https://gitlab.freedesktop.org/wayland/weston"
|
||||
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
SRC_URI="${SRC_PATCHES}"
|
||||
else
|
||||
SRC_URI="https://gitlab.freedesktop.org/wayland/${PN}/-/releases/${PV}/downloads/${P}.tar.xz"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~loong ~riscv ~x86"
|
||||
fi
|
||||
|
||||
LICENSE="MIT CC-BY-SA-3.0"
|
||||
SLOT="0"
|
||||
|
||||
IUSE="+desktop +drm editor examples fullscreen +gles2 headless ivi jpeg kiosk lcms pipewire rdp remoting +resize-optimization screen-sharing +suid systemd test vnc wayland-compositor webp +X xwayland"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
REQUIRED_USE="
|
||||
drm? ( gles2 )
|
||||
pipewire? ( drm )
|
||||
remoting? ( drm gles2 )
|
||||
screen-sharing? ( rdp )
|
||||
test? ( desktop headless lcms xwayland )
|
||||
wayland-compositor? ( gles2 )
|
||||
|| ( drm headless rdp vnc wayland-compositor X )
|
||||
"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-libs/libinput-1.2.0
|
||||
>=dev-libs/wayland-1.22.0
|
||||
media-libs/libpng:0=
|
||||
sys-auth/seatd:=
|
||||
>=x11-libs/cairo-1.11.3
|
||||
>=x11-libs/libdrm-2.4.108
|
||||
>=x11-libs/libxkbcommon-0.5.0
|
||||
>=x11-libs/pixman-0.25.2
|
||||
x11-misc/xkeyboard-config
|
||||
drm? (
|
||||
>=media-libs/mesa-17.1[gbm(+)]
|
||||
>=sys-libs/mtdev-1.1.0
|
||||
>=virtual/udev-136
|
||||
)
|
||||
editor? ( x11-libs/pango )
|
||||
examples? ( x11-libs/pango )
|
||||
gles2? ( media-libs/mesa[gles2,wayland] )
|
||||
jpeg? ( media-libs/libjpeg-turbo:0= )
|
||||
lcms? ( >=media-libs/lcms-2.9:2 )
|
||||
pipewire? ( >=media-video/pipewire-0.3:= )
|
||||
rdp? ( >=net-misc/freerdp-2.3.0:2=[server] )
|
||||
remoting? (
|
||||
media-libs/gstreamer:1.0
|
||||
media-libs/gst-plugins-base:1.0
|
||||
)
|
||||
systemd? ( sys-apps/systemd )
|
||||
vnc? (
|
||||
=dev-libs/aml-0.3*
|
||||
=gui-libs/neatvnc-0.7*
|
||||
sys-libs/pam
|
||||
)
|
||||
webp? ( media-libs/libwebp:0= )
|
||||
X? (
|
||||
>=x11-libs/libxcb-1.9
|
||||
x11-libs/libX11
|
||||
)
|
||||
xwayland? (
|
||||
x11-base/xwayland
|
||||
x11-libs/cairo[X,xcb(+)]
|
||||
>=x11-libs/libxcb-1.9
|
||||
x11-libs/libXcursor
|
||||
>=x11-libs/xcb-util-cursor-0.1.4
|
||||
)
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
>=dev-libs/wayland-protocols-1.24
|
||||
"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
dev-util/wayland-scanner
|
||||
virtual/pkgconfig
|
||||
$(python_gen_any_dep 'dev-python/setuptools[${PYTHON_USEDEP}]')
|
||||
"
|
||||
|
||||
python_check_deps() {
|
||||
python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local emesonargs=(
|
||||
$(meson_use drm backend-drm)
|
||||
-Dbackend-drm-screencast-vaapi=false
|
||||
$(meson_use headless backend-headless)
|
||||
$(meson_use pipewire backend-pipewire)
|
||||
$(meson_use rdp backend-rdp)
|
||||
$(meson_use screen-sharing screenshare)
|
||||
$(meson_use vnc backend-vnc)
|
||||
$(meson_use wayland-compositor backend-wayland)
|
||||
$(meson_use X backend-x11)
|
||||
-Dbackend-default=auto
|
||||
$(meson_use gles2 renderer-gl)
|
||||
$(meson_use xwayland)
|
||||
$(meson_use systemd)
|
||||
$(meson_use remoting)
|
||||
$(meson_use pipewire)
|
||||
$(meson_use desktop shell-desktop)
|
||||
$(meson_use fullscreen shell-fullscreen)
|
||||
$(meson_use ivi shell-ivi)
|
||||
$(meson_use kiosk shell-kiosk)
|
||||
$(meson_use lcms color-management-lcms)
|
||||
$(meson_use jpeg image-jpeg)
|
||||
$(meson_use webp image-webp)
|
||||
-Dtools=debug,info,terminal
|
||||
$(meson_use examples demo-clients)
|
||||
-Dsimple-clients=$(usex examples damage,dmabuf-v4l,im,shm,touch$(usex gles2 ,dmabuf-egl,egl "") "")
|
||||
$(meson_use resize-optimization resize-pool)
|
||||
-Dtest-junit-xml=false
|
||||
"${myconf[@]}"
|
||||
)
|
||||
meson_src_configure
|
||||
}
|
||||
|
||||
src_test() {
|
||||
xdg_environment_reset
|
||||
addwrite /dev/dri/
|
||||
|
||||
# xwayland test can fail if X11 socket already exists.
|
||||
cd "${BUILD_DIR}" || die
|
||||
meson test $(meson test --list | grep -Exv "xwayland") || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
meson_src_install
|
||||
readme.gentoo_create_doc
|
||||
}
|
Binary file not shown.
@ -1,7 +1,3 @@
|
||||
DIST flexi-streams-1.0.16.tar.gz 135698 BLAKE2B 9d6d5b064f10d27ce60d5a8a6792b7c36e63d393f64c98148bfd9addd36483e1e4d9e2b699c0ae151c55d88e01bd86fea3197e082b001face2c44206229c3e21 SHA512 66b7c5231616c7a6095a52d6c679717795c9308e33487536a5e1b7f0d25f26aacd2579a76c351f8e16a967a0611456cbc97b3824f4d9cf4875b8e48b0c4f7c78
|
||||
DIST flexi-streams-1.0.17.tar.gz 135883 BLAKE2B 96670bffc8b53196d2138bff6bdcaaae74d3a9318bb637cb52914de0905be86d3d5ce40ed3f5f87deec75cbad609d339fc0656f8542ee05edae5c9c342430a90 SHA512 58a19214f74e00948dd5c15453cb68a65ad600a78fd7b637018914446a3953f68efa5e229b3d27e93464d8f273e82aa71d0fafe9b2ace77e40d23c5aea756d49
|
||||
DIST flexi-streams-1.0.19.tar.gz 393330 BLAKE2B 755f835ea7fe7edf0fd4ff317463a7ed86289aad428b4bbf461808900a9656711279de362a48c32d5ea8cb9933743b92c28729ad866950200d5d65bd7fab83c1 SHA512 03288868f86ce8c3c4ed63fb5f5f9d809bc0772834ef603793c861d09ad7ffb900c14021f1f1621111e7bd4ee3f0b0653985449391ee250d0f43385abbfdfdfa
|
||||
EBUILD flexi-streams-1.0.16.ebuild 596 BLAKE2B e6ff52d7856210b52fb6abf3c18fd3f2616d8984a01aef603407564e8f19e59a1d1ae877bcade69eccbb611b883ac52de2b712f4eb33c59debe8e9c5e50ad1a6 SHA512 d77a4fb7ee26b503719c7cfbb17c56174d7a1942379546f9103136e5a5519b16e958dda0c67535d2bdbb01b13da3ac44ad6d8053cc331d1e1b7454f8b5f34028
|
||||
EBUILD flexi-streams-1.0.17.ebuild 594 BLAKE2B fc70c1e7d89d929c35ce52bddc3f9c03d2a1829b2a94327837d621cee5c2972203583a670db4033c4b163aa5751c9016672f649d20b9a90dac03eda4b5196156 SHA512 aba0fd9b07639a0fc581c089ff38e9ef4e24d0d1f129d49e46df58203e72848f842b92f663f229d18498fce6584569607caf176cd7b67937700cc601e800abe6
|
||||
EBUILD flexi-streams-1.0.19.ebuild 845 BLAKE2B fa3109889980b9a07280a68fcd89ef14e3f27283a1544f291d98f3e9633bb97399269f1800e2a97b6913f51e56556d4f063cd47bae5990cd7106849287fa4958 SHA512 05cf30fc9b7a4fefbd1467460ea7b28a46d04c55dcecd6fe5fded9856b4bed47357c6532f9f8578cbf414df59a463ee84f71f58233bf33434de5e208b5092a23
|
||||
EBUILD flexi-streams-1.0.19.ebuild 844 BLAKE2B c42f5c7f0955f28ca19db6864eeb98bc5341217d55d81e003780f61c086c459c7c90f865ee0b18c789f038cd0cfecbf4775a4bc8bc1ac03fc91c5f191ac58ecb SHA512 556eddf517caf0ec0679638ba67f4ead1a84e7424ae30729795c16ff006d37f79d971223a2ced4905aff0ab7d26e2e86e70f3bb99d4b7a9f19b3396be19eab48
|
||||
MISC metadata.xml 1204 BLAKE2B af14366c5e2d4f015cf79e2477d54ee407d67f28f585f06de9383d9d529ccaecb31133aad5252d16b1ad8b4d759c6ed95b0550912f8aae8c9fe4c182afd7c84e SHA512 d6886f4f8d51832af61faca9a557959a1c4265fc4b265025eb385151184cf46bbcd5264cdd6b5c14d8ba93e51c2159630930092ed2f82c82d3d2359af6d3a20d
|
||||
|
@ -1,25 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit common-lisp-3
|
||||
|
||||
DESCRIPTION="Flexible bivalent streams for Common Lisp"
|
||||
HOMEPAGE="http://weitz.de/flexi-streams/
|
||||
http://www.cliki.net/flexi-streams/"
|
||||
SRC_URI="https://github.com/edicl/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="BSD-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ~ppc ~sparc x86"
|
||||
IUSE=""
|
||||
|
||||
RDEPEND="!dev-lisp/cl-${PN}
|
||||
>=dev-lisp/trivial-gray-streams-20060925"
|
||||
|
||||
src_install() {
|
||||
common-lisp-install-sources *.lisp
|
||||
common-lisp-install-asdf
|
||||
dodoc doc/index.html
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit common-lisp-3
|
||||
|
||||
DESCRIPTION="Flexible bivalent streams for Common Lisp"
|
||||
HOMEPAGE="http://weitz.de/flexi-streams/
|
||||
http://www.cliki.net/flexi-streams/"
|
||||
SRC_URI="https://github.com/edicl/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="BSD-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ~ppc ~sparc x86"
|
||||
IUSE=""
|
||||
|
||||
RDEPEND="!dev-lisp/cl-${PN}
|
||||
>=dev-lisp/trivial-gray-streams-20060925"
|
||||
|
||||
src_install() {
|
||||
common-lisp-install-sources *.lisp
|
||||
common-lisp-install-asdf
|
||||
dodoc docs/index.html
|
||||
}
|
Binary file not shown.
@ -1,4 +1,4 @@
|
||||
DIST lutok-0.4.tar.gz 489570 BLAKE2B b4bc26d9a4901901e6ca66a41bc42ccc2f82697ff14e64c1bea35b4a9ed08b6f13ecfa9aaabb54e25fb3e4f3aea03791c225c4c8fc6ed3e0387d34d933a228e9 SHA512 664f30099bfbb30978e24068a9232a4ff1b5b1839c601bf784f35f6bb1394558067495093a3b0343c94e756d2e4186a32a8227baf5934c15c45905f7c0a5d19c
|
||||
EBUILD lutok-0.4-r10.ebuild 975 BLAKE2B 5abeb0c4c1c30cf464f996c7ad85451fafdeea8e299444e588c462a3d9e77b3131897d1cc136f8f225844fe3142a1fe139d0bcb075e0b1faee6279e0eb1c1fa2 SHA512 906bedeb278523eaddbe7f1e8ba1e3a9121fe02c4c742205029039c73423a41591c986e8beb5121b214663ada6adfa5821d826b5ca989e20a35bb755c8bfbf1b
|
||||
EBUILD lutok-0.4-r11.ebuild 1132 BLAKE2B 400852cb23ead01890bbf6d182e2bcafce3512fbcab9632fd9ac8a724a51e590843cb847ec17289788fce4cdca3dd031c47db866edbdca4b245b1c02b9dd117c SHA512 abc7ca7e08c87d1329b28a49fa0f1de12fe94a2220ff1bb2bb129ab7068abf1e3d5cc68c4ced769293255771dc083bdd8420eac4c01c17401daba351906672c2
|
||||
EBUILD lutok-0.4-r11.ebuild 1125 BLAKE2B 3c97805d37f6a0f920053d7c1996459c397d583dcbcb87efacedb82e896fcd673b4fe4a556281dd52fd5a39d75aba5f00e2a64ceefed9f5bafb90e53799dccf4 SHA512 2c9023829df6cc268dfab0cee936299d12c53c680df3e0164fe866648e5f7d498fbe75b60c329e9dff4250187f818e35f32c0edaba591f17e3ea0868e7e85604
|
||||
MISC metadata.xml 322 BLAKE2B b0d43a21c8b8360db9c6fbe1179c0ad211f23ce0ae083aba21d92c155c19e09337cd10f5cbe2b02b9f9fdd43e3fc03e4979df89977eff5234c38f56e74e34006 SHA512 917c5031f80ffd6e4ef1cd994d03d60a068effd7ade96ddb103f152d07ce5cab787cd35e120f5195155e0e1164e8f2a3eca912c47652ea7288ce7c14ed433ec3
|
||||
|
@ -1,40 +0,0 @@
|
||||
# Copyright 2022-2024 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=( pypy3 python3_{10..12} )
|
||||
|
||||
inherit distutils-r1 pypi
|
||||
|
||||
DESCRIPTION="A Python package that generates fake data for you"
|
||||
HOMEPAGE="
|
||||
https://github.com/joke2k/faker/
|
||||
https://pypi.org/project/Faker/
|
||||
"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-python/python-dateutil-2.4.2[${PYTHON_USEDEP}]
|
||||
!dev-ruby/faker
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/freezegun[${PYTHON_USEDEP}]
|
||||
dev-python/pillow[${PYTHON_USEDEP},tiff]
|
||||
dev-python/validators[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
distutils_enable_tests pytest
|
||||
|
||||
python_test() {
|
||||
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
|
||||
local -x PYTEST_PLUGINS=faker.contrib.pytest.plugin
|
||||
epytest
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
# Copyright 2022-2024 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=( pypy3 python3_{10..12} )
|
||||
|
||||
inherit distutils-r1 pypi
|
||||
|
||||
DESCRIPTION="A Python package that generates fake data for you"
|
||||
HOMEPAGE="
|
||||
https://github.com/joke2k/faker/
|
||||
https://pypi.org/project/Faker/
|
||||
"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-python/python-dateutil-2.4.2[${PYTHON_USEDEP}]
|
||||
!dev-ruby/faker
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/freezegun[${PYTHON_USEDEP}]
|
||||
dev-python/pillow[${PYTHON_USEDEP},tiff]
|
||||
dev-python/validators[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
distutils_enable_tests pytest
|
||||
|
||||
python_test() {
|
||||
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
|
||||
local -x PYTEST_PLUGINS=faker.contrib.pytest.plugin
|
||||
epytest
|
||||
}
|
@ -1,9 +1,5 @@
|
||||
DIST Faker-24.11.0.tar.gz 1726502 BLAKE2B 52429b5b0db4e1fd55d2a4b30ed007417f37e36fbec8d4fe43dea316920d85877668f4e66107011fef5874b74b25c1465fcfc0990ee3f40810df064622bb5373 SHA512 d5ee8c7c048d113c37b13608406d96966745ab46b095fcb30c9107a27a7af909c9d4d6bf9c7bb478ad7d0604b3cb6b33b93b0ba9e1a321c20870d651f57617a5
|
||||
DIST Faker-24.4.0.tar.gz 1724351 BLAKE2B 2eeb2d660462b0f0b55aadd32768c9a5eaaf22a8036ae203dab7538b8c24f0e6fcdf08533c7737fe597dbe395a00a39c8c2d5e3a823133638a90a9ffa8d32f08 SHA512 5ea18faa39cf8506f007557b9a8c84bf2cc21d806a99991bf2fcced3d350f96daf3dd6a0a42dfdb7021b72156eb12ad84a930c669df011f39a17f4c290d08675
|
||||
DIST Faker-24.8.0.tar.gz 1725365 BLAKE2B b2646766b993d946bf7965133b7484408370a2e8bed9091b713ffd427d545bb708027066b6787a78cd675659b4d342ac86c9f611aecfb7df3d0565a8066925f0 SHA512 d8fe7e411052bec485b40540317c88ff5aeae8a32ef2e53214816b190d4730c9f5af9157ac2c66aba5fbc887e995d0238f71deefdcf67300e49586c7995b60ff
|
||||
DIST Faker-24.9.0.tar.gz 1725521 BLAKE2B 30486824e1e9a33cb9bf018ebbe9845c65c5fbb797fd75c0798f854c487b5e02b30fad83dd1f94ef4650e5e6ec981ef3318e1b3ec7cc64169e2b3fb7f90a42d8 SHA512 18fb6970c90c1048fcfcc9bb3f557eb21374b9e0f128833ac32ad281019059d8a8a3a05a276b72d38bd9bd6315cf0846d7f8111f054191dae1149cdcaf08187d
|
||||
EBUILD Faker-24.11.0.ebuild 865 BLAKE2B 003402d2706fd0c094a71b72288598b8fb9b953ba6e3883b5812630102fc0cf063cea84f829518e1e6041c9dd21b3d39b7139ba0d7ba720c48d27fb6e82671a6 SHA512 052f8d09869485c1317fcdb808f3499c322be28e9e851c844b8db8fd740743bb8e3afc965a83bc664e07aea9f70ce24304ffa99252cb1a3a7d0b8eaa59e1b61c
|
||||
EBUILD Faker-24.4.0.ebuild 858 BLAKE2B 2e7693b63d3810eadf6c63951eec2c96385940ba69e88ad8ee14cf28f14beb0a0bbe5edeaaabe694832506a24e7e4648ac9fc8469d7ba0f38d9b6c687b69a736 SHA512 c3540187d7ca070be4942be3e2718a980ba85c588409b419d90b9987efc5a2f26f8362ba7350c6df1d28865496dc1256b752d8a44157eb2e6ac78bfcf54a33a0
|
||||
EBUILD Faker-24.8.0.ebuild 858 BLAKE2B 2e7693b63d3810eadf6c63951eec2c96385940ba69e88ad8ee14cf28f14beb0a0bbe5edeaaabe694832506a24e7e4648ac9fc8469d7ba0f38d9b6c687b69a736 SHA512 c3540187d7ca070be4942be3e2718a980ba85c588409b419d90b9987efc5a2f26f8362ba7350c6df1d28865496dc1256b752d8a44157eb2e6ac78bfcf54a33a0
|
||||
EBUILD Faker-24.9.0.ebuild 865 BLAKE2B 003402d2706fd0c094a71b72288598b8fb9b953ba6e3883b5812630102fc0cf063cea84f829518e1e6041c9dd21b3d39b7139ba0d7ba720c48d27fb6e82671a6 SHA512 052f8d09869485c1317fcdb808f3499c322be28e9e851c844b8db8fd740743bb8e3afc965a83bc664e07aea9f70ce24304ffa99252cb1a3a7d0b8eaa59e1b61c
|
||||
MISC metadata.xml 498 BLAKE2B c9b7885dc7d34f2263068624a6b07ac6f1ec8078cc11abb6137612ba57edffefc48dae2708284aa83ecc941ebb2d3b8a87a143648e404a0683e75bb6c078f4e2 SHA512 0b385bbbfbb026803526e43c6c43965ff75f42d3ab133603708b187686aac29de508856e5e8ae7622a66b99032efa97f95c21625e10d074c858d8aff7446a312
|
||||
|
@ -1,48 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_EXT=1
|
||||
# custom wrapper over setuptools
|
||||
DISTUTILS_USE_PEP517=standalone
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Functions for fast computation of Levenshtein distance, and edit operations"
|
||||
HOMEPAGE="
|
||||
https://pypi.org/project/Levenshtein/
|
||||
https://github.com/rapidfuzz/Levenshtein/
|
||||
"
|
||||
SRC_URI="
|
||||
https://github.com/rapidfuzz/Levenshtein/archive/v${PV}.tar.gz
|
||||
-> ${P}.gh.tar.gz
|
||||
"
|
||||
|
||||
LICENSE="GPL-2+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
|
||||
DEPEND="
|
||||
<dev-cpp/rapidfuzz-cpp-4
|
||||
>=dev-cpp/rapidfuzz-cpp-3.0.0
|
||||
"
|
||||
RDEPEND="
|
||||
<dev-python/rapidfuzz-4.0.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/rapidfuzz-3.1.0[${PYTHON_USEDEP}]
|
||||
"
|
||||
BDEPEND="
|
||||
>=dev-python/cython-3.0.2[${PYTHON_USEDEP}]
|
||||
>=dev-python/scikit-build-0.13.0[${PYTHON_USEDEP}]
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
"
|
||||
|
||||
distutils_enable_tests pytest
|
||||
|
||||
src_prepare() {
|
||||
# sterilize build flags
|
||||
sed -i -e '/CMAKE_INTERPROCEDURAL_OPTIMIZATION/d' CMakeLists.txt || die
|
||||
|
||||
distutils-r1_src_prepare
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue