parent
fa6126634f
commit
308fbe8550
@ -1,23 +1,23 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA512
|
||||
|
||||
MANIFEST Manifest.files.gz 29315 BLAKE2B 6416f281a4184aafbcc843c0cdd5488ac67a7b721cc7143a752f84a9774330fa6ea726829e8f887e97e363581d14389f53ef27c065b6bd891e18433e613ec734 SHA512 dcb92a66b082a29eb87a94ae8dca87ecdd54d23ab423a2d33f928293b74870f94a15e50f87a5499f973bcaffe149c859fa55471f59fc6ff4b257c3994c83b853
|
||||
TIMESTAMP 2020-12-14T10:08:36Z
|
||||
MANIFEST Manifest.files.gz 29287 BLAKE2B d5a91fef5ee5f2965cad81e5069836dec60ed19c44871312cb4fdca07e049958d1c66b654afc90e3d81cb6bd2aaa97681a37d7e4283df25081fc7468ac3e4425 SHA512 17ca0a44dd7ace5d7a4ebd2fc38e38801523bd94e07c0cee529a493d9106534ff3e2ec912617a3f24e6137c7d0014dbd1eb52648998a167d7f3ae8b90282c9e9
|
||||
TIMESTAMP 2020-12-15T04:38:41Z
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAl/XOaRfFIAAAAAALgAo
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAl/YPdFfFIAAAAAALgAo
|
||||
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEUx
|
||||
RDZBQkI2M0JGQ0ZCNEJBMDJGREYxQ0VDNTkwRUVBQzkxODkyNTAACgkQ7FkO6skY
|
||||
klBYFQ/9EVWK2ZUCnlETqdMjwu06BRF/giCVS2tJS+noLAkB/DGycLnCzktmd8bS
|
||||
UTHngz3r8nLd73JkquP+fd7OzBqv9AksZBgfmp7ztx9wuQidOkkdI10jC3duc2EO
|
||||
ay2EowdbjFMThoUx9ew1dpvE4N4TmqefMEE73rR8pYMkrmgCI/SIz+XDWR923eqm
|
||||
GKzfsYQqlCYzwWQlLbWGtaG0O9WJnBi5wI8DmXxmE82VePgGc4ouogLoORBHilpo
|
||||
FRos9uDIx3E/oku8jVqky+mb69inrkFllSPdktr2Z4+Ztzea3JwsqZPNQPha9L8Q
|
||||
InT5wpI1QWggvfXobl01yzJyx/vNITyfqk34rkguVoYTM4aUkYiWOBt5sowEthkC
|
||||
RNb2KRiv/GCyLSI/gckvL+IsxdU27rgUGJ3qu/TAB+mETBS6hE+lRmHWP7hmKSW2
|
||||
wBqMwNbDj/anisLVJ430ucg+jQX1H+uNnjJZRJLPZqjYGVQOtsZehdCMpwmfy7R/
|
||||
zk+WUEzrXJ0ku6SB+KhuIG57kuugH8b3VBT8kASDqnN7lQ0ERZFkAXVYiGEHNtlY
|
||||
nopXt0dTUugrQDqlyiq57JqKYWFysiTmBPHTi7jPCZaOIBAix85Ma2XZXaLIzqBm
|
||||
bWt9+dSPyq8wcI2nnQgw4sdBuVr3OzzsB3qqV9LfLNpCv567npA=
|
||||
=JSDY
|
||||
klDnrg/+MbmMq1ptZvU/cRyKfLqMycJ1nXLJ4I2uriSrq5CM0TP7klExtrKbSvfA
|
||||
+KepzbnOP2DEr8sDS5F88WPHWSrSNDHRaTg3+RWVD9oL1Wc/hWY6hsHA+gmDyjPB
|
||||
pEHb9z7qLWk0hqnvWPHGtXtlZtKeanOp+GKf0pJLC/Sf+Tn0dNTsAPFtZ/j3cKw7
|
||||
NzvRN0LwgqVU3mxDJ0GSxKb0SWjWXj8FxzIXBYu9+qwK+sTBcD9bgnU6d8D847Ex
|
||||
uteXHDKHpSWkNA1fbf/qITIikSwNUCUb5gTU0aCb29h2hPmc+mB4aP1BnYTn6g18
|
||||
F1G4bU2u4gjYg3aWc0i07FVQLjlTqJaXi7v76UmmG7BdxgVd/nco+DDrB8uuFCUe
|
||||
pTUgcGiURQpdkp3bHMg7wob3jZ7zSX/JWbdfaotAIyhlhg1TXxNPDeG3/M/QEfEP
|
||||
SXp61bf3Q5H2vHupsM+43nwxdpLFJWx6yxdkqBXExhbErkqRYwdFu/ECfUHHbOWp
|
||||
EBS0F4dSXDIM9dJAPtpRVTs5FwEFuz7ZldtYbdy5/zcd1HspK1cn6PIP++1yrJg9
|
||||
f9tc+yIy8FbRApfrgUcQ2AixqoF3Af/Iki424UFtyZsKppKiZSphmcsxdlZtf5pJ
|
||||
opJJyOYhL9ffjyG6W5q9touWTWfzgVbxfBdJiPaQvFmrYxPGM0Y=
|
||||
=Vimd
|
||||
-----END PGP SIGNATURE-----
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1,5 +1,7 @@
|
||||
AUX fangfrisch.conf 512 BLAKE2B 1b1cd87fbf2095f8d6839fef2175b70cdf1c8d72bcfa8eb06e9abe5e88150f3d4414a64679d775f1fef4378a940334c6c1567f387dbf6ce7f8bb40f6070f31c0 SHA512 e3fff2b24a6bd05a709472e9b7b5416732807171539d31c9f2129e8b7c2ef2b5f047a7090818a2aae77941169030e7785be7a6cded1220f8a130e9e60ea05ce6
|
||||
AUX fangfrisch.cron 170 BLAKE2B b2b3572bb468942eecc006749710900bb19e29d40ad444a4b1ee1575f2d4eda77e2b4c66f6ab75208bbb28c48f0d26075b2d0517982cd62d0f082aa657ff82f2 SHA512 46ba3a9bbdc93896387e9ca3a2fef1bbae6711b3680baa0afddf41c83b537e62d9425fe93d7d7befc60dd8a89aa4c70f9947b596594d5ca93024acec1f9bf454
|
||||
DIST fangfrisch-1.2.0.tar.gz 113088 BLAKE2B 9fb5f4b838e6337128c9e988f5749864cadacb74c9e3006f29cf8b976592af88c00ff5359cd70e4d6901e24cfc01b061861b7b1a563a82d66b2d71c970627c26 SHA512 6f6c0cfc4d840f99186c83e6109c6234ff5bfb44e19bcd3309056347392e46da56e17106259508864b05397d39ea92500ab6863b50d55efc790d88b59f88ee3b
|
||||
DIST fangfrisch-1.3.0.tar.gz 114361 BLAKE2B eca124f02f814d2915c4dbba45b6e4dc620e250730a32b34d3f5f5eaa33945e697d2d887f29251f1f8a3b1813476a54092091235a786e84695a3bc1cadebad28 SHA512 9c138737908a02efa5c9b4c6792a31e2a4908f8ab27e8cecab78612f812ab151afef75a405f47695779a949485aa88a3a5830efd02344ec334e6f37425cffe49
|
||||
EBUILD fangfrisch-1.2.0-r1.ebuild 1974 BLAKE2B aa48cb2d6beae1e5405deb60dfa0a68b9c7ccd7e5fa78ce8a0e66fb7241625ca3bbfef35f414e9a5c628792a3b944ec95ac5622a3a76872191c3fa42316ea7f7 SHA512 d02213e13ccca23c0fa667592e5f8e8d8c29fa3b7dac5183b6c5eba9742f4e493b98fd7daa0e583dbdc0d9c7a5132b2ab1b062e2ad297ed48d11e92b156306ad
|
||||
EBUILD fangfrisch-1.3.0.ebuild 1978 BLAKE2B c5361c507f8df22bcdff023fa74b1e8c4348c4516f066346dc3e78cb47cea3e28e6d6084a7c50c1a831bb58c1b6f63d1b502b8ca116132c50f3223bcf70cb109 SHA512 c82a7e66eb89386519fbdda435d4ee494adda8f5fe5996b7af72d63aa4b3497a3dfa343ac04eff7a0da1385bb63abf7229c55c2c5f456ad5c79ceb05c9b65c3a
|
||||
MISC metadata.xml 863 BLAKE2B f3324a0adbcf5979af8daf27906630edb5d6ae78cf74ef1abd7610297587a382981658381d22b8af6233f543b02903733d1dce13df27faa4c6eb243cc164b243 SHA512 b11935bd73f1d405292dbd80456380dcc1b390015158cbacb1023b12f755d41c2af656514ec1fc9e307752706166fa96651fdebc626f1e0e4134e0a0a9d01f82
|
||||
|
@ -0,0 +1,69 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
DISTUTILS_USE_SETUPTOOLS=rdepend
|
||||
PYTHON_COMPAT=( python3_{7,8,9} )
|
||||
|
||||
inherit distutils-r1 readme.gentoo-r1
|
||||
|
||||
DESCRIPTION="Update and verify unofficial Clam Anti-Virus signatures"
|
||||
HOMEPAGE="https://github.com/rseichter/fangfrisch https://pypi.org/project/fangfrisch/"
|
||||
SRC_URI="https://github.com/rseichter/fangfrisch/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
MY_CONF="/etc/${PN}.conf"
|
||||
MY_DBDIR="/var/lib/${PN}"
|
||||
DISABLE_AUTOFORMATTING=1
|
||||
DOC_CONTENTS="See https://rseichter.github.io/fangfrisch/ for the official
|
||||
documentation.
|
||||
|
||||
### Fresh installations:
|
||||
|
||||
Modify ${MY_CONF} according to your preferences.
|
||||
Assuming you place the database into ${MY_DBDIR}
|
||||
(recommended), execute the following commands in a root shell:
|
||||
|
||||
mkdir -m 0770 ${MY_DBDIR}
|
||||
chgrp clamav ${MY_DBDIR}
|
||||
sudo -u clamav -- fangfrisch -c ${MY_CONF} initdb
|
||||
|
||||
You can now enable /etc/cron.d/${PN} for periodic updates.
|
||||
|
||||
### Alternative: Updating from release 1.0.1:
|
||||
|
||||
Either create a fresh database or manually delete all existing
|
||||
database tables, then run the initdb command as shown above."
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
|
||||
DEPEND=">=dev-python/requests-2.22.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/sqlalchemy-1.3.11[${PYTHON_USEDEP}]"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
python_prepare_all() {
|
||||
sed -i -e '/SQLAlchemy/d' setup.py || die
|
||||
# Due to the nature of Fangfrisch, most tests require network
|
||||
# connectivity. Upstream CI reports show that the tests are
|
||||
# successful, so instead of a pick-and-choose approach, the
|
||||
# complete tests directory is removed in this ebuild.
|
||||
if [ -d tests ]; then
|
||||
rm -r tests || die
|
||||
fi
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
insinto /etc
|
||||
doins "${FILESDIR}/${PN}.conf"
|
||||
insinto /etc/cron.d
|
||||
newins "${FILESDIR}/${PN}.cron" ${PN}
|
||||
distutils-r1_python_install_all
|
||||
readme.gentoo_create_doc
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
FORCE_PRINT_ELOG=1 readme.gentoo_print_elog
|
||||
}
|
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
AUX 99acme-sh 62 BLAKE2B b9542b99b2e720e0930139f7dd56efc63e596156dca1649624f6f4c27a7d57555bb13deb3b5714aa06477e9ca79996b5f891c8a91ea808d853cc7e5d5655b0a0 SHA512 b7fc9402e3bea3ca846bdb82d6f21d1b7023bb2ace8d5ffd146959cd12e3270243fd22e3a7dde9b6cefae8f2cbca369b35d2da4ea9f1e60a2f61ae81612d8bc5
|
||||
AUX acme.sh 63 BLAKE2B 50c3284c0172ff0a0dc57fcfbaba57a6518d7c043b5d052f2710b28229b9b13313e7ca7c8b644ea273eb2f4991246631e70e6184fb5489005be12b77b8efa229 SHA512 7ec0764c86db5c68c42189a8af708e769189df201fdf017bd0d8d9e322ab71c2f422be382d170a1f4b876a1e5a6629eb55df0c564abfebab665e27e58660ff6e
|
||||
DIST acme.sh-2.8.7.tar.gz 206475 BLAKE2B ac1d51efac6301210ffd8b6e5ff6ed490cbf80e7dd154ec7a2ad0b6a2dd08ac73a325e332192214c964a873ba7c6f01a43a2157963d7edec9e0ec45b47e5b689 SHA512 45599f50a4a45b6fdea58d7a5759e4eb5f8e33acc53d60b264c15662e6bdc1e353af610845056fc67b127242c4ad15eaaf60a2113f2cb0245d4e4861dac6e1c3
|
||||
EBUILD acme-sh-2.8.7.ebuild 1100 BLAKE2B bb49e7ee375145152b585e38a5d64283a886cb9694f0b7167e23ad252f34863de64cc4ac6c4ec2ede86f4182ff90f7591187240d47170dd0482f0583d29ea723 SHA512 7abfd5cf5cafbb7277e8092fca9beac0cefdd20003438de9aabb132040c92192da5fde5aebf0e88d2980c08b82833a61f3906b6be7a38a47c7004a0625529fc9
|
||||
DIST acme.sh-2.8.8.tar.gz 218582 BLAKE2B bcd2fbc0ff984d7bbcf4e0ee4c1f08f868ebc4b31a5d217587cdeb5810b8991698de52dd082219194c762ef245324e981eb2a044b213e2713c0d12370be1c19b SHA512 cf601965cd5542dbd11668330d0a4e428e89ccc3af92d4d04ea3936c8a31979a5c00aa8e18a31fde07812242dddcebbfdbc06f1c29260b917dfa19f88d12fd72
|
||||
EBUILD acme-sh-2.8.8.ebuild 1100 BLAKE2B bb49e7ee375145152b585e38a5d64283a886cb9694f0b7167e23ad252f34863de64cc4ac6c4ec2ede86f4182ff90f7591187240d47170dd0482f0583d29ea723 SHA512 7abfd5cf5cafbb7277e8092fca9beac0cefdd20003438de9aabb132040c92192da5fde5aebf0e88d2980c08b82833a61f3906b6be7a38a47c7004a0625529fc9
|
||||
EBUILD acme-sh-9999.ebuild 1022 BLAKE2B 0e439fa8bfb6365f24aa4181acdad1af2ae1d0ab55abcb386348180d3ccf03e00bd9f395a96dceb252b56e29bd0a5711d027eedc7e3e23c67e9c491a9d75b66d SHA512 d370fa4197af017c61faf8b89b71e195920ebf6e970e51f86c773027fa95189491e75d94b1fe8901f02562ffc1ec9b736d82a0a21a64e31203bf6e841d2a4021
|
||||
MISC metadata.xml 457 BLAKE2B ae99692003d755e2dfcfbd0cd0b6f6094f61fed3e660e742920df93d738f6d6ad53c4e15394585e251cf082c76ae44fc004e53ce8d2df3525c82c57f803bcf1d SHA512 7f2d3a4f0ace2704bfb312ab07e483f1162ddfe6357b14a89010a1f6e45b9dc1600d2d337c6129e53f380988e543c1c5fe3203eb5018907721139882da698c32
|
||||
|
@ -1,3 +1,3 @@
|
||||
DIST glep63-check-9.tar.gz 73445 BLAKE2B cd229065da9a4663491a891787d2a9e719cd9d61ea5974393199ca418413e7e1c6b73a3146577b26029ceb3302f430ed1051c9d050278b098b18407e95c1cac3 SHA512 86c49ffe2b8dde3735b85ff4808862c460b1e832fa9c3fca4fc2ea776d314c29ed2442adef2e1dbca1cec81b6ea29bbb417b123306602dfaa611b5153dddb7ac
|
||||
EBUILD glep63-check-9.ebuild 686 BLAKE2B 6a9f562dd9ae2719fccd88b93d1e462c983f5fd89b5dae041784187108585056e11271eb9edb10e3cc12257325675175306f1cdc3b55b1a187bdd4bc32a581ec SHA512 ade831ede4af178832a7b7105fd5b983878ae52cbe4d93a6493690b135f188a39b48b0e6106ccfa95a1722cd086b0ab58e6c1d35ffd1c5486eca7a6d1164544f
|
||||
EBUILD glep63-check-9.ebuild 688 BLAKE2B 4b26b2f41790e6df5e4eae060f9e667c567919d5d48e741215d2c321c4fdff00cda6b3de22607a3aace9d08385cd1477a1cfa8bddbbd7b1a582e0e46fb10a13b SHA512 701d571a58f2206d7ef1368e64f8fa6c21bd0c981eed6da3cbb21957da48bf4004a5a032a4b4e18f8e6bd1668353d167a39f41e64cba8180a56039cbb4dc5e48
|
||||
MISC metadata.xml 537 BLAKE2B cc05c3872c522fdcc2355da9d451f9ad102d23e2e5de657f447ce5c9441a4379fb5f6560cd22a8be325f322e901b65917b11630fc0229bd0e952c6f8b6b64bf0 SHA512 493bcb28f9144c49050445de98b54e19730e46cc24df02b15859f4114f4fa8775431aac9d8fcb4f50639609680656b108f6c4ca47f67b38680f926cf9610ccd9
|
||||
|
Binary file not shown.
@ -1,9 +1,10 @@
|
||||
AUX create_vbox_modules_tarball.sh 896 BLAKE2B 4153a8fa67cd8fe7187f3c4232691b1ded8e51315f41292f9fcc0adb294e9b235b0c2f1e91f6f728076ab85f687ea1ba2877dc44b511eaceb24e7d6e71a8bbd4 SHA512 c3154a13550817c581fa142e24081edfbdbc145315d34cc4569d12ad87a518fa0bf1443c053b50fdfdea6915bda1325ad973455ee85079294b83a49fd53f4771
|
||||
AUX virtualbox-modules-5.2.8-pax-const.patch 1728 BLAKE2B 1a2e8c5946af5abcf443c8cea08a6dbe78f75dd89aa072ac2ac0d745e598e8195ef321eaee53d31bedf52013d94efc046863e65c9fac0d61a507b292b04c7fb9 SHA512 600fd557992efb1fb5db9db64914becd5a86f81a42d70bbc3823533df941881f2289a6ccf630adb8346419499dd48b84ed43c21d0aba183a780daa99fcafddbd
|
||||
AUX virtualbox-modules-6.1.16-linux-5.10-r0drv-memobj-fix-r0.patch 3237 BLAKE2B 5ebd53475768d4611ce9a23f8b11ad92246f561933c67a620136adcd4c7f5d1cf12cd09360eb6676221725c3732c255fcb1fe2a177fce9d007db83c776c5b202 SHA512 046e4c8e2d8f295d8e7c29c7dea53b8db18700f2ba03c7ab67ff466850f1cb2ed0dbc22aacd78b8c7011e3fb2dc02be06aba1678d1930b947988ddacf74e9174
|
||||
AUX virtualbox.conf 38 BLAKE2B 4f03cb09a1cca36013beb2a38220115d63510fd0aa63e2df1f0dc755a9162f7c2efed32d8f9c98fcc1e36d48067471085d5b038c6e8b3118508fbaaaab3790f7 SHA512 63eba0963b3344ea7e7a0035560406899d878a0761cddef9853bec95deb9812b221e98f446f240070d6448d61d6ecbcf7a990bcd52863660e8f21cf9a98c0e1d
|
||||
AUX virtualbox.conf-r1 30 BLAKE2B 6308dedc75e2677cbdc844b53f51359e6b5745d3510636b04d08512122aeb6db81a1a18af156a8b9acccad395d390b24f9c27ed47413382cb6101266762de230 SHA512 5c6d31f527ca2db8d7fbeea759ac328eff42803d7940fd81ef12af22eb09f8913a0e561c35db1963e2a8b398ee288692817b5c8f3d439f2a6fd381769ec2ac8a
|
||||
DIST vbox-kernel-module-src-6.0.24.tar.xz 670960 BLAKE2B 26e4b1b6b9ab8c8fd0312b2162fe745dc11ef3f8a7e2f08f49df9d9ef346ec21b64e4a0a480bd726e9cca6ab2ce5d3cf2637aa8923c0843bf78a3ed160b98810 SHA512 9b1093307dffeb64f3ec22c4797268858e1fcc729403e89294c2e3cf0852662b7b0aad4416a593fd25b2107a1995d6bc17078f072b6f7718ed111ab61df8324e
|
||||
DIST vbox-kernel-module-src-6.1.16.tar.xz 671736 BLAKE2B 8b2153874ee7a63f88679a5372215e89def49622caa7679a5c2410423eaf23ced18ece79d638fc96db40fac88857db7568dd72dd8e05371b14add3553d61d3a7 SHA512 c51dfad5f9578ad43e2fbdd35a70659640030108006f89d362bc25dead99eb3b39a78d403633b3813f62f5b510eff22d826a2750b9c88f5fcb1cde6531295bff
|
||||
EBUILD virtualbox-modules-6.0.24-r2.ebuild 1471 BLAKE2B 405d9600d0f8d00f9442db9bea087094a035114acf58e2357cb18797c9273ecec65c26f4b470711fcc6372a641e718553fb436a52eb366b3f563800277c5f3aa SHA512 a8ee80d7c9c0e31ac4f4c0115d2a4f11798a182549e009ed55dcaddf1b8b893a54838696cffcc01f4760f212b55fc80319917235ea40776d280496386c9e278e
|
||||
EBUILD virtualbox-modules-6.1.16-r1.ebuild 1434 BLAKE2B 48eb0f4d0b06113ee8d470f07e75ceb34eb3bb453df3baa66d5f1b1d8d6ab4f71a75a3e3aa2f2994976ea6999b1be9b8937311cedd99e1cdb2e76c01e7f38d43 SHA512 cf1281ab6ef8353175b6f7bd15658bd1012c6ca03ca45cc060ba336794a16f8bf035e7589b21b94d948c1549ea36631808bcc84c31984ef1744fa98bcb833442
|
||||
EBUILD virtualbox-modules-6.1.16-r1.ebuild 1512 BLAKE2B 5a6cb34498170aa3f9bf5fe4387f0d4918325155c1c8b87d0f8307c2011fda971af63cce5db155e9a070ca7aabdd75042b1e05f60d30a87cf09ad551692a28d9 SHA512 d1d2bec59f9ac961fba04116dd77359481309b4cab600bc04d0ff09f894fdaf792d5a75dbabb9d308a43fa79c267cea7c82abeeb42f1f19f59b18249fa9b2af9
|
||||
MISC metadata.xml 353 BLAKE2B d7de13b3a8966ab3bca54ae77f7f6c7dfd57f2c5941f09ab1b5f79ac798687ffaaa183afdf9c034a9d50fda8507a3aaa2ef0c11d0fdfa6e09a55a1bdb9f30f4a SHA512 40029c9a246dde5ed51119f42ec5448b7ae08a47ee4d6be201fef282305c809d7d3182abf807dd2444ffe1a980abcd670878567d948bcd3661a55c6848a37000
|
||||
|
@ -0,0 +1,96 @@
|
||||
Index: vboxdrv/r0drv/linux/memobj-r0drv-linux.c
|
||||
===================================================================
|
||||
--- a/vboxdrv/r0drv/linux/memobj-r0drv-linux.c
|
||||
+++ b/vboxdrv/r0drv/linux/memobj-r0drv-linux.c
|
||||
@@ -56,9 +56,12 @@
|
||||
* Whether we use alloc_vm_area (3.2+) for executable memory.
|
||||
* This is a must for 5.8+, but we enable it all the way back to 3.2.x for
|
||||
* better W^R compliance (fExecutable flag). */
|
||||
-#if RTLNX_VER_MIN(3,2,0) || defined(DOXYGEN_RUNNING)
|
||||
+#if RTLNX_VER_RANGE(3,2,0, 5,10,0) || defined(DOXYGEN_RUNNING)
|
||||
# define IPRT_USE_ALLOC_VM_AREA_FOR_EXEC
|
||||
#endif
|
||||
+#if RTLNX_VER_MIN(5,10,0) || defined(DOXYGEN_RUNNING)
|
||||
+# define IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC
|
||||
+#endif
|
||||
|
||||
/*
|
||||
* 2.6.29+ kernels don't work with remap_pfn_range() anymore because
|
||||
@@ -502,7 +505,43 @@
|
||||
}
|
||||
|
||||
|
||||
+#ifdef IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC
|
||||
/**
|
||||
+ * User data passed to the apply_to_page_range() callback.
|
||||
+ */
|
||||
+typedef struct LNXAPPLYPGRANGE
|
||||
+{
|
||||
+ /** Pointer to the memory object. */
|
||||
+ PRTR0MEMOBJLNX pMemLnx;
|
||||
+ /** The page protection flags to apply. */
|
||||
+ pgprot_t fPg;
|
||||
+} LNXAPPLYPGRANGE;
|
||||
+/** Pointer to the user data. */
|
||||
+typedef LNXAPPLYPGRANGE *PLNXAPPLYPGRANGE;
|
||||
+/** Pointer to the const user data. */
|
||||
+typedef const LNXAPPLYPGRANGE *PCLNXAPPLYPGRANGE;
|
||||
+
|
||||
+/**
|
||||
+ * Callback called in apply_to_page_range().
|
||||
+ *
|
||||
+ * @returns Linux status code.
|
||||
+ * @param pPte Pointer to the page table entry for the given address.
|
||||
+ * @param uAddr The address to apply the new protection to.
|
||||
+ * @param pvUser The opaque user data.
|
||||
+ */
|
||||
+static DECLCALLBACK(int) rtR0MemObjLinuxApplyPageRange(pte_t *pPte, unsigned long uAddr, void *pvUser)
|
||||
+{
|
||||
+ PCLNXAPPLYPGRANGE pArgs = (PCLNXAPPLYPGRANGE)pvUser;
|
||||
+ PRTR0MEMOBJLNX pMemLnx = pArgs->pMemLnx;
|
||||
+ uint32_t idxPg = (uAddr - (unsigned long)pMemLnx->Core.pv) >> PAGE_SHIFT;
|
||||
+
|
||||
+ set_pte(pPte, mk_pte(pMemLnx->apPages[idxPg], pArgs->fPg));
|
||||
+ return 0;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
+/**
|
||||
* Maps the allocation into ring-0.
|
||||
*
|
||||
* This will update the RTR0MEMOBJLNX::Core.pv and RTR0MEMOBJ::fMappedToRing0 members.
|
||||
@@ -584,6 +623,11 @@
|
||||
else
|
||||
# endif
|
||||
{
|
||||
+# if defined(IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC)
|
||||
+ if (fExecutable)
|
||||
+ pgprot_val(fPg) |= _PAGE_NX; /* Uses RTR0MemObjProtect to clear NX when memory ready, W^X fashion. */
|
||||
+# endif
|
||||
+
|
||||
# ifdef VM_MAP
|
||||
pMemLnx->Core.pv = vmap(&pMemLnx->apPages[0], pMemLnx->cPages, VM_MAP, fPg);
|
||||
# else
|
||||
@@ -1851,6 +1895,21 @@
|
||||
preempt_enable();
|
||||
return VINF_SUCCESS;
|
||||
}
|
||||
+# elif defined(IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC)
|
||||
+ PRTR0MEMOBJLNX pMemLnx = (PRTR0MEMOBJLNX)pMem;
|
||||
+ if ( pMemLnx->fExecutable
|
||||
+ && pMemLnx->fMappedToRing0)
|
||||
+ {
|
||||
+ LNXAPPLYPGRANGE Args;
|
||||
+ Args.pMemLnx = pMemLnx;
|
||||
+ Args.fPg = rtR0MemObjLinuxConvertProt(fProt, true /*fKernel*/);
|
||||
+ int rcLnx = apply_to_page_range(current->active_mm, (unsigned long)pMemLnx->Core.pv + offSub, cbSub,
|
||||
+ rtR0MemObjLinuxApplyPageRange, (void *)&Args);
|
||||
+ if (rcLnx)
|
||||
+ return VERR_NOT_SUPPORTED;
|
||||
+
|
||||
+ return VINF_SUCCESS;
|
||||
+ }
|
||||
# endif
|
||||
|
||||
NOREF(pMem);
|
Binary file not shown.
@ -0,0 +1,197 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# The Debian ca-certificates package merely takes the CA database as it exists
|
||||
# in the nss package and repackages it for use by openssl.
|
||||
#
|
||||
# The issue with using the compiled debs directly is two fold:
|
||||
# - they do not update frequently enough for us to rely on them
|
||||
# - they pull the CA database from nss tip of tree rather than the release
|
||||
#
|
||||
# So we take the Debian source tools and combine them with the latest nss
|
||||
# release to produce (largely) the same end result. The difference is that
|
||||
# now we know our cert database is kept in sync with nss and, if need be,
|
||||
# can be sync with nss tip of tree more frequently to respond to bugs.
|
||||
|
||||
# When triaging bugs from users, here's some handy tips:
|
||||
# - To see what cert is hitting errors, use openssl:
|
||||
# openssl s_client -port 443 -CApath /etc/ssl/certs/ -host $HOSTNAME
|
||||
# Focus on the errors written to stderr.
|
||||
#
|
||||
# - Look at the upstream log as to why certs were added/removed:
|
||||
# https://hg.mozilla.org/projects/nss/log/tip/lib/ckfw/builtins/certdata.txt
|
||||
#
|
||||
# - If people want to add/remove certs, tell them to file w/mozilla:
|
||||
# https://bugzilla.mozilla.org/enter_bug.cgi?product=NSS&component=CA%20Certificates&version=trunk
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_{6..9} )
|
||||
|
||||
inherit python-any-r1
|
||||
|
||||
if [[ ${PV} == *.* ]] ; then
|
||||
# Compile from source ourselves.
|
||||
PRECOMPILED=false
|
||||
|
||||
DEB_VER=$(ver_cut 1)
|
||||
NSS_VER=$(ver_cut 2-)
|
||||
RTM_NAME="NSS_${NSS_VER//./_}_RTM"
|
||||
else
|
||||
# Debian precompiled version.
|
||||
PRECOMPILED=true
|
||||
inherit unpacker
|
||||
fi
|
||||
|
||||
DESCRIPTION="Common CA Certificates PEM files"
|
||||
HOMEPAGE="https://packages.debian.org/sid/ca-certificates"
|
||||
NMU_PR=""
|
||||
if ${PRECOMPILED} ; then
|
||||
SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${PV}${NMU_PR:++nmu}${NMU_PR}_all.deb"
|
||||
else
|
||||
SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${DEB_VER}${NMU_PR:++nmu}${NMU_PR}.tar.xz
|
||||
https://archive.mozilla.org/pub/security/nss/releases/${RTM_NAME}/src/nss-${NSS_VER}.tar.gz
|
||||
cacert? (
|
||||
https://dev.gentoo.org/~whissi/dist/ca-certificates/nss-cacert-class1-class3-r1.patch
|
||||
)"
|
||||
fi
|
||||
|
||||
LICENSE="MPL-1.1"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
|
||||
IUSE=""
|
||||
${PRECOMPILED} || IUSE+=" cacert"
|
||||
|
||||
# c_rehash: we run `c_rehash`
|
||||
# debianutils: we run `run-parts`
|
||||
CDEPEND="app-misc/c_rehash
|
||||
sys-apps/debianutils"
|
||||
|
||||
BDEPEND="${CDEPEND}"
|
||||
if ! ${PRECOMPILED} ; then
|
||||
BDEPEND+=" ${PYTHON_DEPS}"
|
||||
fi
|
||||
|
||||
DEPEND=""
|
||||
if ${PRECOMPILED} ; then
|
||||
DEPEND+=" !<sys-apps/portage-2.1.10.41"
|
||||
fi
|
||||
|
||||
RDEPEND="${CDEPEND}
|
||||
${DEPEND}"
|
||||
|
||||
S=${WORKDIR}
|
||||
|
||||
pkg_setup() {
|
||||
# For the conversion to having it in CONFIG_PROTECT_MASK,
|
||||
# we need to tell users about it once manually first.
|
||||
[[ -f "${EPREFIX}"/etc/env.d/98ca-certificates ]] \
|
||||
|| ewarn "You should run update-ca-certificates manually after etc-update"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if ! ${PRECOMPILED} ; then
|
||||
default
|
||||
# Initial 20200601 deb release had bad naming inside the debian source tarball.
|
||||
DEB_S="${WORKDIR}/${PN}-${DEB_VER}"
|
||||
DEB_BAD_S="${WORKDIR}/work"
|
||||
if [[ -d "${DEB_BAD_S}" ]] && [[ ! -d "${DEB_S}" ]] ; then
|
||||
mv "${DEB_BAD_S}" "${DEB_S}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Do all the work in the image subdir to avoid conflicting with source
|
||||
# dirs in ${WORKDIR}. Need to perform everything in the offset #381937
|
||||
mkdir -p "image/${EPREFIX}" || die
|
||||
cd "image/${EPREFIX}" || die
|
||||
|
||||
${PRECOMPILED} && unpacker_src_unpack
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
cd "image/${EPREFIX}" || die
|
||||
if ! ${PRECOMPILED} ; then
|
||||
mkdir -p usr/sbin || die
|
||||
cp -p "${S}"/${PN}-${DEB_VER}/sbin/update-ca-certificates \
|
||||
usr/sbin/ || die
|
||||
|
||||
if use cacert ; then
|
||||
pushd "${S}"/nss-${NSS_VER} >/dev/null || die
|
||||
eapply "${DISTDIR}"/nss-cacert-class1-class3-r1.patch
|
||||
popd >/dev/null || die
|
||||
fi
|
||||
fi
|
||||
|
||||
default
|
||||
eapply -p2 "${FILESDIR}"/${PN}-20150426-root.patch
|
||||
local relp=$(echo "${EPREFIX}" | sed -e 's:[^/]\+:..:g')
|
||||
sed -i \
|
||||
-e '/="$ROOT/s:ROOT:ROOT'"${EPREFIX}"':' \
|
||||
-e '/RELPATH="\.\./s:"$:'"${relp}"'":' \
|
||||
-e 's/openssl rehash/c_rehash/' \
|
||||
usr/sbin/update-ca-certificates || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cd "image/${EPREFIX}" || die
|
||||
if ! ${PRECOMPILED} ; then
|
||||
python_setup
|
||||
local d="${S}/${PN}-${DEB_VER}/mozilla" c="usr/share/${PN}"
|
||||
# Grab the database from the nss sources.
|
||||
cp "${S}"/nss-${NSS_VER}/nss/lib/ckfw/builtins/{certdata.txt,nssckbi.h} "${d}" || die
|
||||
emake -C "${d}"
|
||||
|
||||
# Now move the files to the same places that the precompiled would.
|
||||
mkdir -p etc/ssl/certs \
|
||||
etc/ca-certificates/update.d \
|
||||
"${c}"/mozilla \
|
||||
|| die
|
||||
if use cacert ; then
|
||||
mkdir -p "${c}"/cacert.org || die
|
||||
mv "${d}"/CA_Cert_Signing_Authority.crt \
|
||||
"${c}"/cacert.org/cacert.org_class1.crt || die
|
||||
mv "${d}"/CAcert_Class_3_Root.crt \
|
||||
"${c}"/cacert.org/cacert.org_class3.crt || die
|
||||
fi
|
||||
mv "${d}"/*.crt "${c}"/mozilla/ || die
|
||||
else
|
||||
mv usr/share/doc/{ca-certificates,${PF}} || die
|
||||
fi
|
||||
|
||||
(
|
||||
echo "# Automatically generated by ${CATEGORY}/${PF}"
|
||||
echo "# $(date -u)"
|
||||
echo "# Do not edit."
|
||||
cd "${c}" || die
|
||||
find * -name '*.crt' | LC_ALL=C sort
|
||||
) > etc/ca-certificates.conf
|
||||
|
||||
sh usr/sbin/update-ca-certificates --root "${S}/image" || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cp -pPR image/* "${D}"/ || die
|
||||
if ! ${PRECOMPILED} ; then
|
||||
cd ${PN}-${DEB_VER} || die
|
||||
doman sbin/*.8
|
||||
dodoc debian/README.* examples/ca-certificates-local/README
|
||||
fi
|
||||
|
||||
echo 'CONFIG_PROTECT_MASK="/etc/ca-certificates.conf"' > 98ca-certificates
|
||||
doenvd 98ca-certificates
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if [[ -d "${EROOT}/usr/local/share/ca-certificates" ]] ; then
|
||||
# if the user has local certs, we need to rebuild again
|
||||
# to include their stuff in the db.
|
||||
# However it's too overzealous when the user has custom certs in place.
|
||||
# --fresh is to clean up dangling symlinks
|
||||
"${EROOT}"/usr/sbin/update-ca-certificates --root "${ROOT}"
|
||||
fi
|
||||
|
||||
if [[ -n "$(find -L "${EROOT}"/etc/ssl/certs/ -type l)" ]] ; then
|
||||
ewarn "Removing the following broken symlinks:"
|
||||
ewarn "$(find -L "${EROOT}"/etc/ssl/certs/ -type l -printf '%p -> %l\n' -delete)"
|
||||
fi
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
DIST piper-0.5.1.tar.gz 234944 BLAKE2B 1df33ca6e2d0dae95b34f8e3a98c6829a8f113ae68fb60980ff40374090b9272f86d69103c33fe0a4e1b0ac21a84724e7cabccca4ce8dd23d02f6d56e67d072b SHA512 13368521a9c32b2dc3300b129ed3bb07a6204623fa750f8f75ca31d2a3b60f43ae5f5066ef755814960d4890a489bdfd21b0e1b8f456b3445e0ba35ac06bc877
|
||||
EBUILD piper-0.5.1.ebuild 1110 BLAKE2B bd4c37b5e9416cc4e7c3c926220faa0e824f59e08e19203ac900e2c48a0d52b6341580a4fae9e98a37b5e504a5bf4e74b11f3bf94db20d7cee3591cc722a887d SHA512 9c00f3c2aaabcd3769ebfd71dede6dfb41e31a13cdd8f08597732f4ed1e433c6ea420d8a9ebb3dc6c55b56f3c53f85bcff7d45beb5ec7b66246c7be083463d8c
|
||||
MISC metadata.xml 630 BLAKE2B 21a1ff2104078c5a1e13ca8981d4c0db9e693c0a060fda89fc097c1d3fd4b5f6169cd026b6e62ee9aadd746b31c00469dc305e96eeeea9ab24b39e643d74c9b9 SHA512 01eb922d5a1b216d47da29d00febac07c89760898eb4e2ef24435879330a81255be63d139bebf5ea2a97fabe73dadd7049e11c3f09ec45ee5ea22267a628f939
|
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>alex@1stleg.com</email>
|
||||
<name>Alex Barker</name>
|
||||
</maintainer>
|
||||
<maintainer type="project">
|
||||
<email>proxy-maint@gentoo.org</email>
|
||||
<name>Proxy Maintainers</name>
|
||||
</maintainer>
|
||||
<maintainer type="person">
|
||||
<email>polynomial-c@gentoo.org</email>
|
||||
<name>Lars Wendler</name>
|
||||
<description>Proxy maintainer for Alex</description>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="github">libratbag/piper</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
@ -0,0 +1,52 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_{6,7,8} )
|
||||
|
||||
inherit meson python-single-r1 udev
|
||||
|
||||
DESCRIPTION="GTK configuration application for libratbag"
|
||||
HOMEPAGE="https://github.com/libratbag/piper"
|
||||
SRC_URI="https://github.com/libratbag/piper/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
||||
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
virtual/pkgconfig
|
||||
"
|
||||
RDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
dev-libs/gobject-introspection
|
||||
>=dev-libs/libratbag-0.13
|
||||
gnome-base/librsvg[introspection]
|
||||
x11-libs/gdk-pixbuf[introspection]
|
||||
x11-libs/gtk+:3[introspection]
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/lxml[${PYTHON_MULTI_USEDEP}]
|
||||
dev-python/pycairo[${PYTHON_MULTI_USEDEP}]
|
||||
dev-python/pygobject:3[${PYTHON_MULTI_USEDEP}]
|
||||
dev-python/python-evdev[${PYTHON_MULTI_USEDEP}]
|
||||
')
|
||||
"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
dev-libs/libevdev
|
||||
virtual/libudev
|
||||
"
|
||||
|
||||
src_configure() {
|
||||
python_setup
|
||||
meson_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
meson_src_install
|
||||
python_optimize
|
||||
python_fix_shebang "${ED}"/usr/bin/
|
||||
}
|
Binary file not shown.
@ -1,5 +1,3 @@
|
||||
DIST console-setup_1.104.tar.gz 3272857 BLAKE2B ae7a5929a059ddd2258884e5207198ae517da1284e264527878ad25bf883e48b399e53f2a987265623a5cffa3eefce8cce5fe8ad632576c46bba40689c17c586 SHA512 72b07a0ed955069777c1691b16753534630bcbdb5cd94f05ae95e8c27436c233598f01418fbf52a29b6ecf7d8217e6af841778d8e5d329569f2f585b538ba03e
|
||||
DIST console-setup_1.155.tar.xz 1641952 BLAKE2B fbe1e58915c2aac1148a1de31eca5bc9b7fc078c9840b5d51d8b1211e178315360e294d81040c464e2404774594606b3fecab6f7924b1fd4bec4c24b219e9197 SHA512 e00b0b48d91c9587c0659714f74de259bf3efd1caa553c4a06d9bc545335463808db2da16797ffca1dc59cae4f524619d3cf9a68db2ff5ad7b47cdd8aced37ac
|
||||
EBUILD bdf2psf-1.104.ebuild 678 BLAKE2B 357443c76f206854737eec7b9d32561515339e316428cc2c45d4bf9e222d36deebcf8191774961089c120eb074c8c357259d527d8e32183bf04dff7851e42226 SHA512 54f8ee43215a9e2de7eef0a5d4732d07fe26ef6f68c22732dd616f012e781f44115b01e80516cf5e585140fa91be4103e4d41b603b510b74ed6eda37f05b3460
|
||||
EBUILD bdf2psf-1.155.ebuild 678 BLAKE2B 8004a9359bef3f975bb70aceb4e1bcdf417b3b5e475606f4cc7846b724bce95e96b0d7d56932cddc04fc09439a41573837e1008dec38946b0f88750189203cab SHA512 2b65c85a5682775b3b5e89528ff961a805bb6e09a5f0cf70760cd69201bbc4737c5d0f7323acddbf3cc264ee104d2c9ab14357c524305781db0a71058b963e77
|
||||
MISC metadata.xml 246 BLAKE2B f94a229d0ffd7220f14c23ca2b0b6b84128338b5af27cd18ddb0c9e2f95f51c943fdfbc368c03b4a87d7bb381c668158fdc169fd067cc0cd8cd35852acc29d62 SHA512 b6df287a6e1f18bf267a05d8eb6dea788ae7ec74de31d9cea76fea038e4090c6a83d62221505d280d55e9b314d059c409e442951d78eb3a58928307ff118147b
|
||||
|
@ -1,32 +0,0 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
DESCRIPTION="Converter to generate console fonts from BDF source fonts"
|
||||
HOMEPAGE="http://packages.debian.org/sid/bdf2psf"
|
||||
SRC_URI="mirror://debian/pool/main/c/console-setup/console-setup_${PV}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm ~ia64 ppc ppc64 ~s390 sparc x86"
|
||||
IUSE=""
|
||||
|
||||
DEPEND=""
|
||||
RDEPEND="dev-lang/perl"
|
||||
|
||||
S="${WORKDIR}/console-setup-${PV}"
|
||||
|
||||
src_compile() {
|
||||
:
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin Fonts/bdf2psf
|
||||
|
||||
insinto usr/share/bdf2psf
|
||||
doins -r Fonts/*.equivalents Fonts/*.set Fonts/fontsets
|
||||
|
||||
doman man/bdf2psf.1
|
||||
dodoc debian/README.fontsets
|
||||
}
|
@ -1,8 +1,9 @@
|
||||
AUX ghostscript-gpl-9.53.3-fix-ps2epsi.patch 537 BLAKE2B fe6bf851c52751e3653e8e7cfac4b5e5e85ec3b9c9a125e5c7e0ca3aeca5cbe0b1ffe068633dd091755bfba410476b1328abbd94af7c90637541215f484e2413 SHA512 901a8a3b2ef645cd1e61f7596aa0f71921d480ebd48249b3d4e0e07dcfc33bb92ba484a28e952575c33062b3f429d8d60b43aeba8ea59a0623b18405dc27515a
|
||||
AUX ghostscript-gpl-9.53.3-freetype-2.10.3.patch 508 BLAKE2B 8819f3be84b556adde4808509a1199d08b059a77abeafb6d95076194093a3223cc8c8b7032124eaeaa98dedb237dd94632cb374cb854f7d1594a80b82df79173 SHA512 43bb10cbf6b316d59a616f986fe8bea87af1313ca71138ecdeb531ea2a689c64718c44d0a81f69bdf30e3814fec3b36866c2249d26c6d45c58bd121accc7f8d4
|
||||
DIST ghostscript-9.52.tar.xz 39711040 BLAKE2B 317042ae7e2bfdeded2ae9d9a1bd1521422d1ce1dd6b9b2cdedf4c503cce1285684d5329663dc8ee7263591761c33254827d16b1a93f8c10aad4baab1d859f93 SHA512 4c4a33884e1138bad553eee61fac1a72158297ad5c2ce46a4b36150848dea8158affaf2b902f4ff03e4f72ebc8154c198b618112624f409230a610b7648faa67
|
||||
DIST ghostscript-9.53.3.tar.xz 41368160 BLAKE2B 6b5840a420d7527c7155bfb707fe19b3412bdd3a6707f44d058c20f607e6695cfc878cf5df4c4528686c1c1f488b2dbdb81ef5fdf38b950eb15751d2ebafb0a9 SHA512 eb832c27eecd30f15e346408c592d7096fd23ef0a6fa59bd50ca327578915434530a4868e69249c2594def0910c527302e99d54f0877f726a8ca8bea6f0f17b7
|
||||
DIST ghostscript-gpl-9.52-patchset-01.tar.xz 3292 BLAKE2B b6ac4f06c149301b07f57a5dd1f4507cc1e6d17ea60132b64177972ca58a29b2f6ff2f034b20b8ac083b60ea999f50ff75b74f86eec0cd73179741ed8a1486a8 SHA512 2498c5f396807a282727a7a9bd678e2008a1e4112722745aab48a12601661b08557c5d49f0a5ee67fb636f8c2b00c737640e894523b904ef3600f66d107999cb
|
||||
DIST ghostscript-gpl-9.53-patchset-01.tar.xz 2340 BLAKE2B 55d82c88f1b57c084318839e1382ffa112461d074411b1f6586a5a9ace37772b144abdda9f742defd077ce937df590d63bd7a2306bad52438949d1036bb7900c SHA512 ab58485df9152bb32c6f0eb25bd45689089bd17ffb0323c54e1977c5f810ec5eb09f358637251c428591749bfb42c6f8489c74d4bd0a7ae5d696eb2346503c44
|
||||
EBUILD ghostscript-gpl-9.52-r1.ebuild 5175 BLAKE2B 83b725c22dfae426de0735f8195e6e4477b47d3fff6fb0f3108d344ffee6eba03bdb875078c472a048c2be7ed1f3347cea7e22707bbc1c0c77629ad11a3c5106 SHA512 f242c79f3ac85c147ee9d6ea203b716ebf44170e5574db68fecb04940b2e7c6146631bb2e1a46cf06673d91fc6cad18bf4828ef97af91896815cceb5efba0e17
|
||||
EBUILD ghostscript-gpl-9.53.3-r2.ebuild 5210 BLAKE2B 9a7fca567d9263eb455e83b1c10e720adf2cac85377f7d2636bf19f7e0c052d467949d4ead0ac1adcc19308df7ad8daadaa76aa6a0b82cb60c98ff727532cd6f SHA512 85a07b3eb6b8a6d3fad665930011d2926057c745dcbb1e38163cb012b0caa53803d58bcdec9d2d1b8caac1f3b5e3fae572b264ea2c0170dd3a091a23ee842a0c
|
||||
EBUILD ghostscript-gpl-9.53.3-r4.ebuild 5245 BLAKE2B d186dea50712499529a91b12b919837a91c2be4433b92c65762af961686bc93fb5cb95521481db07dc92d85c6b1721c44b85685b66aa1c01fd02854d2f318f41 SHA512 7f6f1c4851deec9b604fdf7595694f733a750a31a37268b657537dd803d7c29bceb879bb80e7f9bc3e51f055bafa8d321e162bb7320e2f9ecf2b0f6ed787ee82
|
||||
MISC metadata.xml 583 BLAKE2B cc9bd976a53f467582f4657d0f08862454c53783d1eeedf90dfe9fab7e074a8903a48632b03847e4aeba4d9f6cf821ebda120c1de1e64740641e4849278646a8 SHA512 3de9e76a9a3b6fff971d0760b3590a60448014268f45faa742327a90b1cd8c40eae1426026cda590dd9f91c96580eabbba85125c88ed250479b8df675f45bb15
|
||||
|
@ -0,0 +1,16 @@
|
||||
https://bugs.ghostscript.com/show_bug.cgi?id=703270
|
||||
|
||||
--- a/lib/ps2epsi
|
||||
+++ b/lib/ps2epsi
|
||||
@@ -40,8 +40,8 @@ else
|
||||
outfile=$2
|
||||
fi
|
||||
|
||||
-# Note, we expect 'ps2epsi.ps' to be in the same directory as 'ps2epsi'
|
||||
+# Note, we expect 'ps2epsi.ps' to be on one of the search paths which can be seen by: gs -h
|
||||
"$GS_EXECUTABLE" -q -dNOOUTERSAVE -dNODISPLAY -dLastPage=1 -sOutputFile="${outfile}" \
|
||||
- --permit-file-all="${infile}" -- "$LIBDIR/ps2epsi.ps" "${infile}" 1>&2
|
||||
+ --permit-file-all="${infile}" -- ps2epsi.ps "${infile}" 1>&2
|
||||
|
||||
exit 0
|
||||
|
@ -1,3 +1,3 @@
|
||||
DIST ronn-0.7.3.gem 61440 BLAKE2B 3ff0a1752d7a972b7d8319cac2b1287e7d21207e22b9eb288694172eb9b30b2198e4378eb02df8418585a44d3d2c89b4695675933dc5ef5d9ba63c78e71f4e7c SHA512 885418c88d5a1073f9457ea11e29d82d3bb40ad12506589ccfab83ad447445e41282c9688aba5646082ae5ecc6a047fa9439ffae14561152fc61a136474f611c
|
||||
EBUILD ronn-0.7.3-r3.ebuild 1162 BLAKE2B bbd33b82dc461ea868020c56ae8f541cd28ebff1f4aa3b1f575c55f87a3719aae478de5305144147977368609d7f035a879c877fc72749f3cd913dbfab5cbc28 SHA512 e86aa624ed0c286108d4f7a58dc3df9cdba20bb8080baeabbf9c6f1db4174047ecf33df5949951f6c4358a4e621e952c84f15a64d73aa3722402888448b37b33
|
||||
EBUILD ronn-0.7.3-r3.ebuild 1163 BLAKE2B 69f0e58f11eeac58714bcef08c6e62ec182ebdd68c21e0b589db88eee8209a696f6d62da1ff1a6a78c08ecdcfad892966af16dcd53fb77d4ecbfc2a756706ce4 SHA512 6714f18e70c27e9a67a6dfab82a34d9505f5b975204f57ef0bf9c843872fc18429a592d8d762fde9877145977fc5669d67cd4da009a6fc8364b9e755a607409d
|
||||
MISC metadata.xml 339 BLAKE2B 2a1722a0531a1ccaba0d29a1ace114b95789ba4b0c692e8efcf38605f81de4dd1210671331fcdb5baa6536cf38fbf63f11b85fb13bd6a067be56f22a372fc5b6 SHA512 0be4072cf3514eba60569138ed409362b318616ad4514e319d9b4add120e74fd7655e2fc5c3ab8d7b5d813cfcf8e1054fb98395a1a89d9fb90e447a825ee9439
|
||||
|
@ -1,10 +1,6 @@
|
||||
DIST scdoc-1.10.0.tar.gz 12414 BLAKE2B 3111b3ace102aca2f7da86e510e00f552874817b6b9d754770bd94f9482e4e444a4bc4d44a8317376a6c374bb7363eae96a49281fefd95dd663134087123034b SHA512 546743376380d84aa9c8be65529dbbe1634e574203220ce1c057341436bd3a15297f393ca79d29372cb125bf457cfc00f64ba2867b8d2e910ca6531acb552e97
|
||||
DIST scdoc-1.10.1.tar.gz 12422 BLAKE2B 4aa5b28994cd03f5d3fc9fff253a02f1052653d25d41225665219ebb6322ebe69f2671d91c5cfe201fd7f9b1ac06f38db3dd126492da06fef0b692fc040300d5 SHA512 356aee85c4676a1fbd7367c6087dd7f6f4d33793be0f3fef74803ceb93c0a9e45c78022d219dc08a7d79d71c393849fa3113c36a85d5d60ed474b62bf5f89743
|
||||
DIST scdoc-1.11.0.tar.gz 12616 BLAKE2B 3aec60e51b949dc94e8339e400c366428a217c1bd44f79716cbd6993a7f8051a0796dc96163e071db4808c0edde071408e3eb1ee0ae3bb8ccd718479960ab8f3 SHA512 4c8248a12e69e53cc2182af5375912f7af64f3807163dbe3c52e85d817b1bfa7e461d02a627c73d93bdaa96e49668ff894d37817ceb70ee3186da9e3f8372d49
|
||||
DIST scdoc-1.9.3.tar.gz 11479 BLAKE2B 79aa3f18104e06722f087e9c2fa047f6e19fe8eb47ba0b4e6fa86f7abdc52b06a2dfcfd632b16dc7bce6e5ef3b0dbb40ce9170e678bc17c0a4e43dcc0099a1dc SHA512 77be81f042e2099de7fc84b0161bc8a95d5c3dde662284613d84a1e249fa0aa51dad73f53f265c833526d40f5e1f19fce99dc5cd6df35efb0a323c3db6084a55
|
||||
EBUILD scdoc-1.10.0.ebuild 1182 BLAKE2B b52c95f0dbabac5b4eb7487cd48e59bd1b361a3a944d53c7b007bb52c7b3f0c68c6d80cd22be964b97d95f82474722a005745cf34c9d0ed0d36dac0887183e86 SHA512 a810dfca019775b6aa54e76dd8f2d411550360e86ac883498ba9e769224de6067c225eec31e93735a4f5fc6585507e780fd94c4ecf19b77677188d7118537a2a
|
||||
EBUILD scdoc-1.10.1.ebuild 1185 BLAKE2B 461515e1fe30b3c6213e9d58c9d005ba3a8866c493a90785b6907a30d3ba2dc819122ed44a79c38d11141ec4df14edb56e998a469776e0cb619db26ba838c37b SHA512 f740888fa375d7ee55730b3ed099ff3f233e88f0d8f80deb8ce063f717ab1dc9eb7df945aef834b026aa2fa9243b9a2658b6015683213ec08b914ed20f9ed7ab
|
||||
DIST scdoc-1.11.1.tar.gz 12482 BLAKE2B 2632da654730a373f03955f0b3bb190c8d6beb2fd4e4b05c88a4c86d384b26c51a8f032e6b2ef8d4d795638c1981a4d5500384f3103411869c7097a2ba1466ff SHA512 28b676a2ba69a101034c47378c4b66c94bfb9903d680a1871020fd8772d0990a4c91678738f71d37bfca06e27991ef782047c6503d375ce69df744caf6b459de
|
||||
EBUILD scdoc-1.11.0.ebuild 1182 BLAKE2B b52c95f0dbabac5b4eb7487cd48e59bd1b361a3a944d53c7b007bb52c7b3f0c68c6d80cd22be964b97d95f82474722a005745cf34c9d0ed0d36dac0887183e86 SHA512 a810dfca019775b6aa54e76dd8f2d411550360e86ac883498ba9e769224de6067c225eec31e93735a4f5fc6585507e780fd94c4ecf19b77677188d7118537a2a
|
||||
EBUILD scdoc-1.9.3-r1.ebuild 1182 BLAKE2B 1d6f07981f9117ae906d84b52e8f65eb10da65b993506e2a24a465c59933af440d38d3d136613a47e936bf622f8a9879ff957ab4111a510ec812002b6b381bf0 SHA512 f2e021e0df03289c46e163c5f07f73898871795f250ca3a1e2d52f06af2de6718e8b1b5c9b7e2fbad368c0e0595cf0778a707026dd767135360811015b1b0b7d
|
||||
EBUILD scdoc-1.11.1.ebuild 1185 BLAKE2B 461515e1fe30b3c6213e9d58c9d005ba3a8866c493a90785b6907a30d3ba2dc819122ed44a79c38d11141ec4df14edb56e998a469776e0cb619db26ba838c37b SHA512 f740888fa375d7ee55730b3ed099ff3f233e88f0d8f80deb8ce063f717ab1dc9eb7df945aef834b026aa2fa9243b9a2658b6015683213ec08b914ed20f9ed7ab
|
||||
EBUILD scdoc-9999.ebuild 1168 BLAKE2B ebe65c78c3eefe79dc5efa4a5a76abe1480ce975ca0dec3de56e74e37f8af799cf1f878e0019b4d69231470aaa507287dcae8c3005bbda2c48007784a2f2b0d1 SHA512 bcfd36c54713470010a6ccb3d3066a83d9e4090fb1ec9c365ab0e9aebac743275dfb79a0ddb9e0392122711dd7e55d2a2e83911c5f7bc9471cffaadf58b9d591
|
||||
MISC metadata.xml 422 BLAKE2B ec662d4bd34390be05318e8816524f206decf6e3cf97ee6e132405a7a2bdd33839b5b82e8083bd3fedc8d390871275ecc9490252cdeb883994e35d511cb8b7d4 SHA512 09dc27076a9ffd2c3f94b40b9df84cbb02317dee7235cb0ce358890c93667dacfc3a7adfe09cf949b8f63970983a7ed7ff654a9ec290b58c6f4ac6b05f9579e1
|
||||
|
@ -1,44 +0,0 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit toolchain-funcs
|
||||
|
||||
DESCRIPTION="Standalone tool for generating man pages with a simple syntax"
|
||||
HOMEPAGE="https://git.sr.ht/~sircmpwn/scdoc"
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
EGIT_REPO_URI="https://git.sr.ht/~sircmpwn/scdoc"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="https://git.sr.ht/~sircmpwn/scdoc/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="amd64 arm64 ~ppc64 x86"
|
||||
fi
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
sed -e 's/-Werror//' \
|
||||
-i Makefile || die 'Failed to patch Makefile'
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
local MY_HS="./scdoc"
|
||||
if tc-is-cross-compiler; then
|
||||
tc-export_build_env
|
||||
MY_HS="./hostscdoc"
|
||||
emake scdoc HOST_SCDOC="./hostscdoc" OUTDIR="${S}/.build.host" CC="$(tc-getBUILD_CC)" \
|
||||
CFLAGS="${BUILD_CFLAGS} -DVERSION='\"${PV}\"'" LDFLAGS="${BUILD_LDFLAGS}"
|
||||
mv scdoc hostscdoc || die 'Failed to rename host scdoc'
|
||||
fi
|
||||
emake CC="$(tc-getCC)" LDFLAGS="${LDFLAGS}" PREFIX="${EPREFIX}/usr" HOST_SCDOC="${MY_HS}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" HOST_SCDOC="${MY_HS}" \
|
||||
PCDIR="${ED}/usr/$(get_libdir)/pkgconfig" install
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit toolchain-funcs
|
||||
|
||||
DESCRIPTION="Standalone tool for generating man pages with a simple syntax"
|
||||
HOMEPAGE="https://git.sr.ht/~sircmpwn/scdoc"
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
EGIT_REPO_URI="https://git.sr.ht/~sircmpwn/scdoc"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="https://git.sr.ht/~sircmpwn/scdoc/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="amd64 arm64 ~ppc64 x86"
|
||||
fi
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
sed -e 's/-Werror//' \
|
||||
-i Makefile || die 'Failed to patch Makefile'
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
local MY_HS="./scdoc"
|
||||
if tc-is-cross-compiler; then
|
||||
tc-export_build_env
|
||||
MY_HS="./hostscdoc"
|
||||
emake scdoc HOST_SCDOC="./hostscdoc" OUTDIR="${S}/.build.host" CC="$(tc-getBUILD_CC)" \
|
||||
CFLAGS="${BUILD_CFLAGS} -DVERSION='\"${PV}\"'" LDFLAGS="${BUILD_LDFLAGS}"
|
||||
mv scdoc hostscdoc || die 'Failed to rename host scdoc'
|
||||
fi
|
||||
emake CC="$(tc-getCC)" LDFLAGS="${LDFLAGS}" PREFIX="${EPREFIX}/usr" HOST_SCDOC="${MY_HS}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" HOST_SCDOC="${MY_HS}" \
|
||||
PCDIR="${ED}/usr/$(get_libdir)/pkgconfig" install
|
||||
}
|
Binary file not shown.
@ -1,9 +1,13 @@
|
||||
AUX eigen-3.3.7-gentoo-cmake.patch 910 BLAKE2B 9cad2b9c54fb1299dfe45f9a94a427d1c7980fa0e5372db69465ccf964e7294213ae459e200a39f2721849df94a8433febcfb225813af3b43bc204b0edd3d64c SHA512 b8c4701f22c483078fb7d25df60c8f002f47573ec434a309b1a3739aecc1c51f79852b06f46c1ed9ae4cbec0e7d70aaabd06bc59e561c19d81b05388d3cedc61
|
||||
AUX eigen-3.3.8-no-error-counting-in-openmp-parallelize_gemm.patch 2382 BLAKE2B 99d69381ebb3ecf8b097eef69916bde88ab5cec075df623a46537281b37059876ce39e687de4ca441ebe6459c66438f3282d051d0e85b0574df98205be8cf6d0 SHA512 26cdf877d4d3378b322cc08c0430b0628a07279a030732661ba4acb85d6c835956c99474fc4587a170d11437ca6715e56d8eaabb625a1eba7c46ce4d6e4d66f9
|
||||
AUX eigen-3.3.9-disable-cholmod_support.patch 655 BLAKE2B 437de3e3bc52df313598c07d3c7c9750dba2750c1975e451c7748dfa8dcb9f3762dcb110334690b9c46fa06453e3d43dde578e6ac4ae49c4cb600e259996e85c SHA512 3e09aeb9bb9ff3538f46a5a41108744886b3541f120d646b69d3b3c49960c370704e07f1a3ac5de92d53224fe5063c02617d1b4a14ba8688039300cd7bb48dee
|
||||
AUX eigen-3.3.9-max-macro.patch 476 BLAKE2B aa2e810a7be5a934a8bf5844b7e24633ab8f6b6a58388d6d9cb9b4b925f68311443f79cb3f94c8c50adc14f2165530c43b735abc4aa21340868d9330c1e9b4fa SHA512 ad8d10c90136188ffda547b8d8781e9d26bc43d1dba7e9c3ff12f8a73725d1b331dd47bccdd331f998a0b03251eb2e3373a8cb39284f82c4bc63a5a703f21a46
|
||||
DIST eigen-3.3.7-gitlab.tar.bz2 1663474 BLAKE2B 70c2f6305ca205d62755cf5e90961088938b8daf56b7cc27abf52f0731064858ada523009d6bf5f014e24b34ceeafe59f918c385d12ccfe249ddb675e13d37a8 SHA512 ea3f1570de3be9ec230d2fbd0f2ae246bf5fd13da79835bf546eb31524796f26f9f633ee779f77942b370a8d540c5cbbd8dd033ccec53a44b692c7e407d6266f
|
||||
DIST eigen-3.3.7.tar.bz2 1665168 BLAKE2B 544d35d1c7a4125affa094c6aa372c2aeca4e99bc60c496ff393d538c1c467b454491a772121450e3a1a43a582d073b4b7584918354d0b9175121fde88947c4b SHA512 c12bfd034d0a1112bf2df3f773ad98f36b2b53fbbfceac5f143ee1793322746fb8a6546d7db7da2a1000da6a535bd8cea0c4125b549afc90a6570743b02dcf3d
|
||||
DIST eigen-3.3.8.tar.gz 2141903 BLAKE2B c33e699ba08338e7b9b215c9466e161229164ed3c466ce3d760c6917749af33c0414c3bc4bbdd216e3466e69ece8a38ca8beb78b7e0f1609894df6bb4a7fcca3 SHA512 5b4b5985b0294e07b3ed1155720cbbfea322fe9ccad0fc8b0a10060b136a9169a15d5b9cb7a434470cadd45dff0a43049edc20d2e1070005481a120212edc355
|
||||
DIST eigen-3.3.9.tar.gz 2142379 BLAKE2B 437dc190fdf7a416d0a5cf81703ef4cc73c195f0f3e7c853e0ab38cf904608ddd4485cc4e15eb0cd5e3c401276f270f3c86f538f205cc91b8c83e131d1bc916d SHA512 16244cc89f2e1879543232b965cbf653b3ccf10e967c8c437a41e27d8320392bdf584d8c24b8a97406ab7d1481d5154da74e0702ec1334ae6a46de83f4573a46
|
||||
EBUILD eigen-3.3.7-r1.ebuild 2251 BLAKE2B d8470d733ed8c1762e6759e28f96c7559e08d2bec7a80590bb504dcabbbf3e262d655c4bce660e7f6611b6f75095125b9ddb62229d46a535343e6343b257912a SHA512 f839c91a430acfb91c641575eaa9e375e227a8dfc19d0600015819955efb25ea148ff42614b9fbb39129e22038d6711fbf55f4e3cc67fa087a6dc628dc89e1c7
|
||||
EBUILD eigen-3.3.7.ebuild 2432 BLAKE2B 2312d5d606907923882c74f4842128d95f9fa25eff68ab7217a58131c2fab11f42d8e1658129f29a7dbc68d3ab42510f6289ff1fe9ec7987596f691aebb67fd6 SHA512 e411a3a4c08776dc667d2145e52b23225d88b6bc9e6b36e664392fc26bd34195fcfcf2b54d0b20dec4ad8597f6e262d4dd7671513ab3581b10d0a16ed2713701
|
||||
EBUILD eigen-3.3.8-r1.ebuild 2292 BLAKE2B ec49dbace8c35444eb8a823270845eca371973500d187d91dbc897329fbe295c0ffdd5bc566301a51b1cc1ac26d51618762fd41c2d958ab4d7d813860df7ad45 SHA512 1aa8b8db7450a986fd3df736de11f7b1060523e30173d0240dc5bbdf18db0cbaf6b5657f2517e8dcdf4dd34b55efba88b3e51686c145b7c0a97502424be2aab8
|
||||
EBUILD eigen-3.3.9.ebuild 2514 BLAKE2B 4885159b7021201a54b909c69ed51801aa219d564f2b64387ced79dee1982e9d74dfa71774f8782e9cf7636d37bdd76a46e392a5d5fe286d939576d229d25857 SHA512 4ade209f6e21cf78193704130fdddf171a3b456e98a0622e58d0397986d900d9ef349b0522391766f795f836317fa18b7dfe021241e4c9d8e4b81235ccf71906
|
||||
MISC metadata.xml 945 BLAKE2B 11864f5eb57e7a8ecfa9d1869536fbfbd9fcb24bc965edad51ec5013bea87a48d63c1b6427b5bffe26191de7e24b950a1c7ad1f0a801fed6b77a41bad4786334 SHA512 99fe52d30c344b957a76a7f6add1dd4251c606f47befa6f517fa50cbd8ba1ef325e66051ff799093cef8281bf1099709e86d3f3a896b078267c665ad68063203
|
||||
|
@ -0,0 +1,107 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
FORTRAN_NEEDED="test"
|
||||
inherit cmake cuda fortran-2
|
||||
|
||||
DESCRIPTION="C++ template library for linear algebra"
|
||||
HOMEPAGE="http://eigen.tuxfamily.org/index.php?title=Main_Page"
|
||||
SRC_URI="https://gitlab.com/lib${PN}/${PN}/-/archive/${PV}/${P}.tar.gz"
|
||||
|
||||
LICENSE="MPL-2.0"
|
||||
SLOT="3"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="cpu_flags_arm_neon cpu_flags_ppc_altivec cpu_flags_ppc_vsx cuda debug doc openmp test" #zvector
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="
|
||||
doc? (
|
||||
app-doc/doxygen[dot]
|
||||
dev-texlive/texlive-bibtexextra
|
||||
dev-texlive/texlive-fontsextra
|
||||
dev-texlive/texlive-fontutils
|
||||
dev-texlive/texlive-latex
|
||||
dev-texlive/texlive-latexextra
|
||||
)
|
||||
test? ( virtual/pkgconfig )
|
||||
"
|
||||
DEPEND="
|
||||
cuda? ( dev-util/nvidia-cuda-toolkit )
|
||||
test? (
|
||||
dev-libs/gmp:0
|
||||
dev-libs/mpfr:0
|
||||
media-libs/freeglut
|
||||
media-libs/glew
|
||||
sci-libs/adolc[sparse]
|
||||
sci-libs/cholmod
|
||||
sci-libs/fftw:3.0
|
||||
sci-libs/pastix
|
||||
sci-libs/scotch
|
||||
sci-libs/spqr
|
||||
sci-libs/superlu
|
||||
sci-libs/umfpack
|
||||
virtual/opengl
|
||||
)
|
||||
"
|
||||
# Missing:
|
||||
# METIS-5
|
||||
# GOOGLEHASH
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-3.3.7-gentoo-cmake.patch
|
||||
"${FILESDIR}"/${PN}-3.3.9-max-macro.patch
|
||||
# disable the cholmod tests, they always fail
|
||||
"${FILESDIR}"/${PN}-3.3.9-disable-cholmod_support.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
cmake_src_prepare
|
||||
|
||||
cmake_comment_add_subdirectory demos
|
||||
|
||||
if ! use test; then
|
||||
sed -e "/add_subdirectory(test/s/^/#DONOTCOMPILE /g" \
|
||||
-e "/add_subdirectory(blas/s/^/#DONOTCOMPILE /g" \
|
||||
-e "/add_subdirectory(lapack/s/^/#DONOTCOMPILE /g" \
|
||||
-i CMakeLists.txt || die
|
||||
fi
|
||||
|
||||
use cuda && cuda_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DCMAKEPACKAGE_INSTALL_DIR=$(get_libdir)/cmake/${PN}${SLOT}
|
||||
)
|
||||
use test && mycmakeargs+=(
|
||||
# the OpenGL testsuite is extremely brittle, bug #712808
|
||||
-DEIGEN_TEST_NO_OPENGL=ON
|
||||
-DEIGEN_TEST_CXX11=ON
|
||||
-DEIGEN_TEST_NOQT=ON
|
||||
-DEIGEN_TEST_ALTIVEC=$(usex cpu_flags_ppc_altivec)
|
||||
-DEIGEN_TEST_CUDA=$(usex cuda)
|
||||
-DEIGEN_TEST_OPENMP=$(usex openmp)
|
||||
-DEIGEN_TEST_NEON64=$(usex cpu_flags_arm_neon)
|
||||
-DEIGEN_TEST_VSX=$(usex cpu_flags_ppc_vsx)
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cmake_src_compile
|
||||
if use doc; then
|
||||
cmake_src_compile doc
|
||||
HTML_DOCS=( "${BUILD_DIR}"/doc/html/. )
|
||||
fi
|
||||
if use test; then
|
||||
cmake_src_compile blas
|
||||
cmake_src_compile buildtests
|
||||
|
||||
# tests generate random data, which
|
||||
# obviously fails for some seeds
|
||||
export EIGEN_SEED=712808
|
||||
fi
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
--- a/test/CMakeLists.txt
|
||||
+++ b/test/CMakeLists.txt
|
||||
@@ -46,16 +46,7 @@
|
||||
|
||||
set(SPARSE_LIBS " ")
|
||||
|
||||
-find_package(Cholmod)
|
||||
-if(CHOLMOD_FOUND)
|
||||
- add_definitions("-DEIGEN_CHOLMOD_SUPPORT")
|
||||
- include_directories(${CHOLMOD_INCLUDES})
|
||||
- set(SPARSE_LIBS ${SPARSE_LIBS} ${CHOLMOD_LIBRARIES} ${EIGEN_BLAS_LIBRARIES} ${EIGEN_LAPACK_LIBRARIES})
|
||||
- set(CHOLMOD_ALL_LIBS ${CHOLMOD_LIBRARIES} ${EIGEN_BLAS_LIBRARIES} ${EIGEN_LAPACK_LIBRARIES})
|
||||
- ei_add_property(EIGEN_TESTED_BACKENDS "Cholmod, ")
|
||||
-else()
|
||||
- ei_add_property(EIGEN_MISSING_BACKENDS "Cholmod, ")
|
||||
-endif()
|
||||
+ei_add_property(EIGEN_MISSING_BACKENDS "Cholmod, ")
|
||||
|
||||
find_package(Umfpack)
|
||||
if(UMFPACK_FOUND)
|
@ -0,0 +1,17 @@
|
||||
--- a/unsupported/test/forward_adolc.cpp
|
||||
+++ b/unsupported/test/forward_adolc.cpp
|
||||
@@ -7,12 +7,13 @@
|
||||
// Public License v. 2.0. If a copy of the MPL was not distributed
|
||||
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
-#include "main.h"
|
||||
#include <Eigen/Dense>
|
||||
|
||||
#define NUMBER_DIRECTIONS 16
|
||||
#include <unsupported/Eigen/AdolcForward>
|
||||
|
||||
+#include "main.h"
|
||||
+
|
||||
template<typename Vector>
|
||||
EIGEN_DONT_INLINE typename Vector::Scalar foo(const Vector& p)
|
||||
{
|
Binary file not shown.
@ -1,5 +1,8 @@
|
||||
AUX init.d_rpi-eeprom-update-1 394 BLAKE2B 4a42ba2bca9f1cc646f2b39f33f1752a34b62ee01234a595d7d11c32507b92d2cb6909d739f4deda9381222596278d5e7e4faab60933f43d01a4be0df2f0f3a7 SHA512 1a88b1e73b2a40f644e1b37cc89a1a32d8ef25d0e09ee8b7dc005f0a834ec20a66e029a0a6a7d7d4e8a3066593bb277800a464783c2bf2e5923a71d4416b5eea
|
||||
DIST rpi-eeprom_10.2-1.debian.tar.xz 7360 BLAKE2B e7959c4de4f3675632f0897b6f8abc811c80daa102ad3fcca672a0e0f9ce4b4da80fd616de7aa8896f0f5fe889a10a52d32eba34627858a173186292175f3bf9 SHA512 cf401c5f761fc8c5b463630d192c8af9da2ae2e55e178857d9c09198437f162f96af23836d20adda6054243c6b613b7cc5c90a70975b96bad574dc3b328caa22
|
||||
DIST rpi-eeprom_10.2.orig.tar.gz 7415652 BLAKE2B b1f56263c0037b2ba3bac2aecd9b5736736cf599bc68a743c065c853a20f56f18984816fdfb402bb499c3aa911dbe72376cec4647d87406cce2f4328b04cc2b1 SHA512 ea76a157ed57984fb0667e9171e3fbf7dba180e014faa9352b0c1904531dca9528b0e3204645a4af2b550670a52354b6b1be6af27e190d4523d8044f3349aa73
|
||||
DIST rpi-eeprom_10.3-1.debian.tar.xz 10188 BLAKE2B 284a5465f2b5bc28c95135b8869218e83cbea9d0667b165de954f5c73549dfc190ddc838d956eec4c569c579e95ffc157054c6ed4bbd45e8ae88f786675cb164 SHA512 ead6b6c51d03493479c242e757edfc33bfdba4627f7501d90d0a181e8adc68f1503e0dac900b9b253a7286523f84d0e9afd8460d72f30b3ee8ee75b2f76811ab
|
||||
DIST rpi-eeprom_10.3.orig.tar.gz 7635402 BLAKE2B 3153eda08eada4c9e4f05d7a68ac4661413591314c4980e16ee876d49e756e2e13a101765b579adbe51e0e3b88cdfe419b71a58da858250781e0f292220dc397 SHA512 ea5a6ae47be5052b4793161d891a1e3a72dda951c95f15797d7baf68d475fcec1250638e4c43a32578ceef10563ebce052e746bc8fc60f8cf8d90780d5a7e8a7
|
||||
EBUILD rpi-eeprom-10.2_p1.ebuild 2991 BLAKE2B bf77188c5c04b9db3a6d34474b8fc4cab9874eaef84011818dbd84532d8978eabdbde0264a27bad30425062e723061558b65bf0361189b25b4040435e2774108 SHA512 ababceb54335943aceb1ce2d99aa39b741252d9dd094652f467ace73b3bfd4a4acb039d859ef864ef6ae8827d4fb6f695206362d925f404a56be9d957d3a8d26
|
||||
EBUILD rpi-eeprom-10.3_p1.ebuild 2992 BLAKE2B bbfb9fc1bc996fe9b1f20fcbcdcfdae5c2e18845f50d163a2c5f127885d98a70724b94cd0f45e1e502799cca8a5a2a2d929d287486bee7bd6d134e80c47a232a SHA512 ecc9382bb1aa8988a039e3bdf119d71aa19c0f33333bd5a02acee0b9c5e8635dc00f55e7a49917f44d370b7602a35683c3a0eeb4decbf176bd9ede03c5c6d92d
|
||||
MISC metadata.xml 566 BLAKE2B cb5076ad252b4c305c8116d6a763c954ad939b2326519db5102bf67f50b8eb7f6713df5173190771fd30caf29762911c5a0da3f1b4cebd74f845b474df9073f8 SHA512 9a82fc89ffff553b2de5037e26151a4da5a54fc13203781d7e6e7048f6e3014a2530c55f6f5d1a73c30e8efdacb22c8d1a76185c1e9ca6dc384f98f86c7dcccc
|
||||
|
@ -0,0 +1,93 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_{6,7,8,9} )
|
||||
|
||||
inherit python-r1 systemd
|
||||
|
||||
DESCRIPTION="Updater for Raspberry Pi 4 bootloader and the VL805 USB controller"
|
||||
HOMEPAGE="https://github.com/raspberrypi/rpi-eeprom/"
|
||||
MY_P="${PN}-$(ver_cut 1-2)"
|
||||
MY_BASE_URL="https://archive.raspberrypi.org/debian/pool/main/r/${PN}/${PN}_$(ver_cut 1-2)"
|
||||
SRC_URI="${MY_BASE_URL}-$(ver_cut 4).debian.tar.xz
|
||||
${MY_BASE_URL}.orig.tar.gz"
|
||||
S="${WORKDIR}"
|
||||
|
||||
SLOT="0"
|
||||
LICENSE="BSD rpi-eeprom"
|
||||
KEYWORDS="~arm ~arm64"
|
||||
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
||||
|
||||
BDEPEND="sys-apps/help2man"
|
||||
DEPEND="${PYTHON_DEPS}"
|
||||
RDEPEND="${PYTHON_DEPS}
|
||||
sys-apps/flashrom
|
||||
|| (
|
||||
>=media-libs/raspberrypi-userland-0_pre20201022
|
||||
>=media-libs/raspberrypi-userland-bin-1.20201022
|
||||
)"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
sed -i \
|
||||
-e 's:/etc/default/rpi-eeprom-update:/etc/conf.d/rpi-eeprom-update:' \
|
||||
"${MY_P}/rpi-eeprom-update" || die "Failed sed on rpi-eeprom-update"
|
||||
sed -i \
|
||||
-e 's:/usr/bin/rpi-eeprom-update:/usr/sbin/rpi-eeprom-update:' \
|
||||
"debian/rpi-eeprom.rpi-eeprom-update.service" || die "Failed sed on rpi-eeprom.rpi-eeprom-update.service"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
pushd "${MY_P}" 1>/dev/null || die "Cannot change into directory ${MY_P}"
|
||||
|
||||
python_scriptinto /usr/sbin
|
||||
python_foreach_impl python_newscript rpi-eeprom-config rpi-eeprom-config
|
||||
|
||||
dosbin rpi-eeprom-update
|
||||
keepdir /var/lib/raspberrypi/bootloader/backup
|
||||
|
||||
for dir in critical stable beta; do
|
||||
insinto /lib/firmware/raspberrypi/bootloader
|
||||
doins -r firmware/${dir}
|
||||
done
|
||||
|
||||
dodoc firmware/release-notes.md
|
||||
|
||||
help2man -N \
|
||||
--version-string="${PV}" --help-option="-h" \
|
||||
--name="Bootloader EEPROM configuration tool for the Raspberry Pi 4B" \
|
||||
--output=rpi-eeprom-config.1 ./rpi-eeprom-config || die "Failed to create manpage for rpi-eeprom-config"
|
||||
|
||||
help2man -N \
|
||||
--version-string="${PV}" --help-option="-h" \
|
||||
--name="Checks whether the Raspberry Pi bootloader EEPROM is \
|
||||
up-to-date and updates the EEPROM" \
|
||||
--output=rpi-eeprom-update.1 ./rpi-eeprom-update || die "Failed to create manpage for rpi-eeprom-update"
|
||||
|
||||
doman rpi-eeprom-update.1 rpi-eeprom-config.1
|
||||
|
||||
newconfd rpi-eeprom-update-default rpi-eeprom-update
|
||||
|
||||
popd 1>/dev/null || die
|
||||
|
||||
pushd debian 1>/dev/null || die "Cannot change into directory debian"
|
||||
|
||||
systemd_newunit rpi-eeprom.rpi-eeprom-update.service rpi-eeprom-update.service
|
||||
newdoc changelog changelog.Debian
|
||||
|
||||
popd 1>/dev/null || die
|
||||
|
||||
newinitd "${FILESDIR}/init.d_rpi-eeprom-update-1" "rpi-eeprom-update"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog 'To have rpi-eeprom-update run at each startup, enable and start either'
|
||||
elog '/etc/init.d/rpi-eeprom-update (for openrc users)'
|
||||
elog 'or'
|
||||
elog 'rpi-eeprom-update.service (for systemd users)'
|
||||
elog '/etc/conf.d/rpi-eeprom-update contains the configuration.'
|
||||
elog 'FIRMWARE_RELEASE_STATUS="critical|stable|beta" determines'
|
||||
elog 'which release track you get. "critical" is recommended and the default.'
|
||||
}
|
Binary file not shown.
@ -1,3 +1,3 @@
|
||||
DIST comonad-5.0.6.tar.gz 18154 BLAKE2B 4654a76ccc51c1cb1f7a96db54dd211148b8afcada19d0153356f203ea93cd0b914f6771f4407f5a81e312a7060cf11d9720a9eb96760b35c38567a34ac1a44a SHA512 0b7fc727a2b972203d1651049a4f4c371a8f134d64d36409d60fbc4d11b7eb9650c79cf917abaa3f66084d7c5e9f32b288862a5e93c3d93c16c11533a446cfa5
|
||||
EBUILD comonad-5.0.6.ebuild 1303 BLAKE2B 0a561e6b58aef3d9c3ad4371a07b61a2de76bc8b4016a28b5f2b921ddcb8933b0eb9be5cfc2d911e5fa424e94a29b360eb1a4143d28d2425a00830f435639ae0 SHA512 c07f01b14525fae0b2678a6a6601e0779c3a14179a2db15b0661566bf4c72ea5618c279149c6aea57b2803cddf9d9428e537f78e1b4fb153ff4d268d86a83794
|
||||
MISC metadata.xml 971 BLAKE2B 7c93a2a5f46470f854849bc69ce7bf737bb853f5fbe7d83a3a3bf93e7db484cc22917518fb6ad79e102464b96f41d3ad3d029a84f90da53a2eecb540669ccd04 SHA512 0d491b3a8aa8812e264f9f6946a939048560c20679cc10850b701c769ae3e37218d2075aed02bca11dcfd01030da8aeae5d884d0244448a56b2dd46abb560860
|
||||
EBUILD comonad-5.0.6.ebuild 1265 BLAKE2B ef5a649e52c4f4d1c3d7dc25a6b794d1e9f5814491979295de8365c922dfb5d82c2ed7a67df8aca88e8712f9046b232c896c7116bf4e6119598d8a37225288f4 SHA512 ef888caa6299a34c5175fb228190b056eff5c28725981d095f47a185ee75308b497adbc1aaa1243e38a80a236213587ee2daf7d295ef53fbab0b6709cf62f534
|
||||
MISC metadata.xml 328 BLAKE2B 4f5fd750a0fe1892c472f9f0f7214c231a7ee4f7c00f0d7caca409a296b606f3fb02799d501613c94454ff2b4178d964515e111d23b31d6a6c8e0791338d6a91 SHA512 991c06b275f0f832b1d23fd411a31870a2f235291f05d810d5b4baab2f0202d6de87179ad290172d91be1039efecba8cff132643cf5a0cee38ab0f4931504e37
|
||||
|
@ -1,3 +1,3 @@
|
||||
DIST wai-app-static-3.1.7.2.tar.gz 22843 BLAKE2B 777a25ac71c24fa850b214d18096396dd03809c125aab8197d2621f0943bfc6bbae0f8f25dbfe19dd93bb835dbb39487ee89689ca3ef49e8c9580f102d1a9df9 SHA512 e073d85efc201eab94b9c8be4e40ee71567d07ed2e2907504a946477211bc21aaf2250213cac67525ae58be499b164b09880600c0a6f62b0b1742fb9d730d6d9
|
||||
EBUILD wai-app-static-3.1.7.2.ebuild 1616 BLAKE2B 16d968fa7541e7c68c3465f15532cde6ceecd27da35204248849663e168842a7dee493a555f12b94d07b1e7418842bf4e6ef6f0093debad16ff95d7c062b6299 SHA512 2907be994ab62a5766ac69fd7733932ba60d56eda2c5a274cbfbba67a3a0d755a6a463f806695ef5164f3559cc730efb9fe263340262c50d722dbf820e8d789c
|
||||
EBUILD wai-app-static-3.1.7.2-r1.ebuild 1747 BLAKE2B 12ea8f91929c0f877b30a7984915d57d64c83765ed33f51a98fbd595b96a25e41fd7e31ed6d63458bd592341d28b2dcbdfc006ca0a6addeb0a224a4f06931afb SHA512 a51e76beaef1afbe0ad5087685f5f6a13d63cac3529288b14e68fddb54982f10c02d45aa303e924da9f3088cdeac67878eb207a5e4d95010a377084e163af120
|
||||
MISC metadata.xml 310 BLAKE2B 81a54a34d953f4bfefd6895c26a9cfc2593fa72b16f32729541f954d55a01625dc917f3749b0a8abdc9b3b19e457ecbec6e8216ae86ac5dc3f57a38c31f5230e SHA512 efe656ebadf198b9ea416e631fe032dbb2e65b8359fb3bce58196fa0451fdaab2cc4aba6167499dd643bc0a16eea896677e092667b3a01e3130f89bdddee8ee6
|
||||
|
@ -1,3 +1,3 @@
|
||||
DIST wai-extra-3.0.31.tar.gz 63975 BLAKE2B e705142e48bac00d13d9ec42ecc02a646a081e69a5996794db34bea77b193dccfe9de2f9b89518b234adf226cfc79765c1d8eabcf7c990494e0d206f6a8de080 SHA512 71635f9acc44ffd19b76d7f1a5e43fa079dffe6e447be1c9df4b491cf96c226346788eb773923cf702d44d4620f2a5e7478be1c625b4c2332b9bed7e6e5391d2
|
||||
EBUILD wai-extra-3.0.31.ebuild 1799 BLAKE2B 80d9f43e1975417f11977858055777f174419ed2453820c00a9b14afa66f285f90e37cbf39a19c0475af69eaa1e61fffbaddc7669a8ed2d7a832e88a10469386 SHA512 32c4360cc58f24e55e448097f65d2cf91f79c6a02d8611583bcb71530f2a5e48c5e85dde4e59eab230ed23a152751497f45f176532d9d2258041ed6f0ef7d555
|
||||
DIST wai-extra-3.1.4.1.tar.gz 67063 BLAKE2B d75f1425cf4c75596adb65c152c954a6005b085f3a290d7dea279a4417d85e359f6948fc8282cee63f2057b4dfe3e33b7a364667544c925582024e4255e71462 SHA512 c33b513bd6e627361007f285167235535ac4065e7198749c14d05cfcd89c5017b54896064c64ffdda9875d6363b684b9beed4098fdbefaba1058045ba3245af5
|
||||
EBUILD wai-extra-3.1.4.1.ebuild 1808 BLAKE2B f6bfccf1117ac3eebf209d8407f6267b36a3c78d4a14b4b275380d69584d8ade001867c01a0e88dfaeb7c21ecd83071e1c405b64945ede056c970d4e810d768a SHA512 e3021edbb18578d73a4903d247924ced88e303f749fb824d454348c937be57a05e4a8553bfec943ca4c7577dce496b62e2ed7cdc9da4c6d32a632cfa888baf17
|
||||
MISC metadata.xml 326 BLAKE2B 26be8d6c32c1cd0a7c0f608f5546ea3139adeef7aeb7e4bf22e2f944ab0571946e98b0239796a6956a6c169f026646dfa9fdebe71a6bec079c7ba6cd6fe175d9 SHA512 58194255acaf42f3f0d725291259a745219fedce1146c74a994ce413a6b7f34c186b036b14bacc753aab2585dd4957e2f4d5be9cd0af80f7ad07feceeed9bec5
|
||||
|
@ -1,3 +1,3 @@
|
||||
DIST yesod-core-1.6.18.7.tar.gz 100141 BLAKE2B 0d00fffcc4371868f02ec5ec1fe4f5af15369f62b7bf88562e8c092b3988824cbbe26defd574f2514d23fca983f81cc951b75f564213f568d244069e352cc198 SHA512 fde155df74588d2eb9824e0f423b666228a1b681a83c4f30e194c8816667cd6e4fefb7cddcd66f6ff2ca745ad3ef8daee439a133b017d8583167b54a698a12a1
|
||||
EBUILD yesod-core-1.6.18.7.ebuild 2259 BLAKE2B f0d07b0936656494a299188cb715cd1d81cc0a387733e5b84064302357ff9b3365df2ceeb5827ddce1aabc93bc0a134e4cc74a57affd6e1f30a91405f6ca0f0c SHA512 88014380c1addddb673fec2d076e94e4b30db63684e1d513e7a259d5624a5b9cef287037eec662dcaf3848d9196126d6494e17a2b117064284dd5a5a58e2bea0
|
||||
DIST yesod-core-1.6.18.8.tar.gz 100016 BLAKE2B 117535cc875be850011b357ebf3bb89e6d854870cefe26e20001e70b93247d85a3bd190e2f889626819f8bc80211b2c64b5d8dac7e9606229ed07c03d8926c2e SHA512 1774281bf8de190995360bcf461adc46b65bac5fa2200aada0b511f73b3bc7bab8365fa4737b4de4723481f7b76c0cb440d68b118c15c46e3d455ea9126bffa7
|
||||
EBUILD yesod-core-1.6.18.8.ebuild 2259 BLAKE2B f0d07b0936656494a299188cb715cd1d81cc0a387733e5b84064302357ff9b3365df2ceeb5827ddce1aabc93bc0a134e4cc74a57affd6e1f30a91405f6ca0f0c SHA512 88014380c1addddb673fec2d076e94e4b30db63684e1d513e7a259d5624a5b9cef287037eec662dcaf3848d9196126d6494e17a2b117064284dd5a5a58e2bea0
|
||||
MISC metadata.xml 722 BLAKE2B 8f4f6d4c278f92f847046b4c85c35c78e2a114b17766bdb24e7b7f2b48a48f9b7aca69c4eac626dd27b5b3eda92b18f0cd11f2fd39db2f8c348f030ce1d5da07 SHA512 a0a229d4867993c1256e99c804f503bdb9461a11003b9f616d2f8985d700aaa6821949316faf5e18a202a05f802f34a0c42ea237a86cbbde076c6279d7be5135
|
||||
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,369 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools flag-o-matic pax-utils python-utils-r1 toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-2.7.18-r4"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="https://www.python.org/"
|
||||
SRC_URI="https://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc x86"
|
||||
IUSE="-berkdb bluetooth build elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml"
|
||||
|
||||
# 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:=
|
||||
dev-libs/libffi:=
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
berkdb? ( || (
|
||||
sys-libs/db:5.3
|
||||
sys-libs/db:5.1
|
||||
sys-libs/db:4.8
|
||||
sys-libs/db:4.7
|
||||
sys-libs/db:4.6
|
||||
sys-libs/db:4.5
|
||||
sys-libs/db:4.4
|
||||
sys-libs/db:4.3
|
||||
sys-libs/db:4.2
|
||||
) )
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? ( >=sys-libs/readline-4.1:= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:= )
|
||||
libressl? ( dev-libs/libressl:= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:= )"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
virtual/pkgconfig
|
||||
!sys-devel/gcc[libffi(-)]"
|
||||
RDEPEND+="
|
||||
!build? ( app-misc/mime-types )
|
||||
!<=dev-lang/python-exec-2.4.6-r1"
|
||||
PDEPEND=">=app-eselect/eselect-python-20140125-r1"
|
||||
|
||||
pkg_setup() {
|
||||
if use berkdb; then
|
||||
ewarn "'bsddb' module is out-of-date and no longer maintained inside"
|
||||
ewarn "dev-lang/python. 'bsddb' and 'dbhash' modules have been additionally"
|
||||
ewarn "removed in Python 3. A maintained alternative of 'bsddb3' module"
|
||||
ewarn "is provided by dev-python/bsddb3."
|
||||
else
|
||||
if has_version "=${CATEGORY}/${PN}-${PV%%.*}*[berkdb]"; then
|
||||
ewarn "You are migrating from =${CATEGORY}/${PN}-${PV%%.*}*[berkdb]"
|
||||
ewarn "to =${CATEGORY}/${PN}-${PV%%.*}*[-berkdb]."
|
||||
ewarn "You might need to migrate your databases."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat || die
|
||||
rm -fr Modules/_ctypes/libffi* || die
|
||||
rm -fr Modules/zlib || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
Lib/distutils/command/install.py \
|
||||
Lib/distutils/sysconfig.py \
|
||||
Lib/site.py \
|
||||
Lib/sysconfig.py \
|
||||
Lib/test/test_site.py \
|
||||
Makefile.pre.in \
|
||||
Modules/Setup.dist \
|
||||
Modules/getpath.c \
|
||||
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# dbm module can be linked against berkdb or gdbm.
|
||||
# Defaults to gdbm when both are enabled, #204343.
|
||||
local disable
|
||||
use berkdb || use gdbm || disable+=" dbm"
|
||||
use berkdb || disable+=" _bsddb"
|
||||
# disable automagic bluetooth headers detection
|
||||
use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if ! use xml; then
|
||||
ewarn "You have configured Python without XML support."
|
||||
ewarn "This is NOT a recommended configuration as you"
|
||||
ewarn "may face problems parsing any XML documents."
|
||||
fi
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
if [[ "$(gcc-major-version)" -ge 4 ]]; then
|
||||
append-flags -fwrapv
|
||||
fi
|
||||
|
||||
filter-flags -malign-double
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=50309
|
||||
if is-flagq -O3; then
|
||||
is-flagq -fstack-protector-all && replace-flags -O3 -O2
|
||||
use hardened && replace-flags -O3 -O2
|
||||
fi
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Force some tests that try to poke fs paths.
|
||||
export ac_cv_file__dev_ptc=no
|
||||
export ac_cv_file__dev_ptmx=yes
|
||||
fi
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python2.X/config/Makefile.
|
||||
tc-export CXX
|
||||
# The configure script fails to use pkg-config correctly.
|
||||
# http://bugs.python.org/issue15506
|
||||
export ac_cv_path_PKG_CONFIG=$(tc-getPKG_CONFIG)
|
||||
|
||||
# Set LDFLAGS so we link modules with -lpython2.7 correctly.
|
||||
# Needed on FreeBSD unless Python 2.7 is already installed.
|
||||
# Please query BSD team before removing this!
|
||||
append-ldflags "-L."
|
||||
|
||||
local dbmliborder
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
if use berkdb; then
|
||||
dbmliborder+="${dbmliborder:+:}bdb"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
# The check is broken on clang, and gives false positive:
|
||||
# https://bugs.gentoo.org/596798
|
||||
# (upstream dropped this flag in 3.2a4 anyway)
|
||||
ac_cv_opt_olimit_ok=no
|
||||
# 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
|
||||
|
||||
--with-fpectl
|
||||
--enable-shared
|
||||
$(use_enable ipv6)
|
||||
$(use_with threads)
|
||||
$(use wide-unicode && echo "--enable-unicode=ucs4" || echo "--enable-unicode=ucs2")
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
--without-ensurepip
|
||||
)
|
||||
|
||||
OPT="" econf "${myeconfargs[@]}"
|
||||
|
||||
if use threads && 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
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
|
||||
# Avoid invoking pgen for cross-compiles.
|
||||
touch Include/graminit.h Python/graminit.c
|
||||
|
||||
emake
|
||||
|
||||
# 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
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="distutils gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
|
||||
# Daylight saving time problem
|
||||
# https://bugs.python.org/issue22067
|
||||
# https://bugs.gentoo.org/610628
|
||||
local -x TZ=UTC
|
||||
|
||||
# Rerun failed tests in verbose mode (regrtest -w).
|
||||
emake test EXTRATESTOPTS="-w" < /dev/tty
|
||||
local result="$?"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${T}/test_${test}.py" "${S}"/Lib/test
|
||||
done
|
||||
|
||||
elog "The following tests have been skipped:"
|
||||
for test in ${skipped_tests}; do
|
||||
elog "test_${test}.py"
|
||||
done
|
||||
|
||||
elog "If you would like to run them, you may:"
|
||||
elog "cd '${EPREFIX}/usr/$(get_libdir)/python${PYVER}/test'"
|
||||
elog "and run the tests separately."
|
||||
|
||||
if [[ ${result} -ne 0 ]]; then
|
||||
die "emake test failed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/$(get_libdir)/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
sed -e "s/\(LDFLAGS=\).*/\1/" -i "${libdir}/config/Makefile" || die
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
mv "${ED}/usr/bin/2to3" "${ED}/usr/bin/2to3-${PYVER}" || die
|
||||
mv "${ED}/usr/bin/pydoc" "${ED}/usr/bin/pydoc${PYVER}" || die
|
||||
mv "${ED}/usr/bin/idle" "${ED}/usr/bin/idle${PYVER}" || die
|
||||
rm "${ED}/usr/bin/smtpd.py" || die
|
||||
|
||||
use berkdb || rm -r "${libdir}/"{bsddb,dbhash.py*,test/test_bsddb*} || die
|
||||
use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||
use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,lib-tk} || die
|
||||
use elibc_uclibc && rm -fr "${libdir}/"{bsddb/test,test}
|
||||
|
||||
use threads || rm -r "${libdir}/multiprocessing" || die
|
||||
use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die
|
||||
|
||||
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
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 "${S}"/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"
|
||||
|
||||
local -x EPYTHON=python${PYVER}
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local -x PYTHON=./python
|
||||
local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
|
||||
else
|
||||
local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python
|
||||
ln -s "../../../bin/python${PYVER}" \
|
||||
"${scriptdir}/python" || die
|
||||
# python-config
|
||||
ln -s "../../../bin/python${PYVER}-config" \
|
||||
"${scriptdir}/python-config" || die
|
||||
# 2to3, pydoc, pyvenv
|
||||
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
|
||||
|
||||
# python2* is no longer wrapped, so just symlink it
|
||||
local pymajor=${PYVER%.*}
|
||||
dosym "python${PYVER}" "/usr/bin/python${pymajor}"
|
||||
dosym "python${PYVER}-config" "/usr/bin/python${pymajor}-config"
|
||||
}
|
||||
|
||||
eselect_python_update() {
|
||||
if [[ -z "$(eselect python show)" || \
|
||||
! -f "${EROOT}/usr/bin/$(eselect python show)" ]]; then
|
||||
eselect python update
|
||||
fi
|
||||
|
||||
if [[ -z "$(eselect python show --python${PV%%.*})" || \
|
||||
! -f "${EROOT}/usr/bin/$(eselect python show --python${PV%%.*})" ]]
|
||||
then
|
||||
eselect python update --python${PV%%.*}
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect_python_update
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect_python_update
|
||||
}
|
@ -0,0 +1,331 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils \
|
||||
python-utils-r1 toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV/_alpha/a}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-3.10.0a1"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="https://www.python.org/"
|
||||
SRC_URI="https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
dev-libs/libffi:=
|
||||
sys-apps/util-linux:=
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? ( >=sys-libs/readline-4.1:= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:= )
|
||||
libressl? ( dev-libs/libressl:= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:= )"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
test? ( app-arch/xz-utils[extra-filters(+)] )
|
||||
virtual/pkgconfig
|
||||
!sys-devel/gcc[libffi(-)]"
|
||||
RDEPEND+=" !build? ( app-misc/mime-types )"
|
||||
PDEPEND=">=app-eselect/eselect-python-20140125-r1"
|
||||
|
||||
# large file tests involve a 2.5G file being copied (duplicated)
|
||||
CHECKREQS_DISK_BUILD=5500M
|
||||
|
||||
pkg_pretend() {
|
||||
use test && check-reqs_pkg_pretend
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && check-reqs_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat || die
|
||||
rm -fr Modules/_ctypes/libffi* || die
|
||||
rm -fr Modules/zlib || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
|
||||
|
||||
# force correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
|
||||
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local disable
|
||||
# disable automagic bluetooth headers detection
|
||||
use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if ! use xml; then
|
||||
ewarn "You have configured Python without XML support."
|
||||
ewarn "This is NOT a recommended configuration as you"
|
||||
ewarn "may face problems parsing any XML documents."
|
||||
fi
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
if [[ "$(gcc-major-version)" -ge 4 ]]; then
|
||||
append-flags -fwrapv
|
||||
fi
|
||||
|
||||
filter-flags -malign-double
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=50309
|
||||
if is-flagq -O3; then
|
||||
is-flagq -fstack-protector-all && replace-flags -O3 -O2
|
||||
use hardened && replace-flags -O3 -O2
|
||||
fi
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if is-flagq -flto || is-flagq '-flto=*'; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
fi
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
tc-export CXX
|
||||
|
||||
# Set LDFLAGS so we link modules with -lpython3.2 correctly.
|
||||
# Needed on FreeBSD unless Python 3.2 is already installed.
|
||||
# Please query BSD team before removing this!
|
||||
append-ldflags "-L."
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
|
||||
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
|
||||
$(use_enable ipv6)
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
)
|
||||
|
||||
OPT="" econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
|
||||
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
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
|
||||
|
||||
emake test EXTRATESTOPTS="-u-network -j${jobs}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local result=$?
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${T}/test_${test}.py" "${S}"/Lib/test
|
||||
done
|
||||
|
||||
elog "The following tests have been skipped:"
|
||||
for test in ${skipped_tests}; do
|
||||
elog "test_${test}.py"
|
||||
done
|
||||
|
||||
elog "If you would like to run them, you may:"
|
||||
elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
|
||||
elog "and run the tests separately."
|
||||
|
||||
if [[ ${result} -ne 0 ]]; then
|
||||
die "emake test failed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
# Remove static library
|
||||
rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
|
||||
|
||||
sed \
|
||||
-e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
|
||||
-e "s/\(PY_LDFLAGS=\).*/\1/" \
|
||||
-i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
|
||||
|
||||
# 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
|
||||
|
||||
use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||
use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || 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 "${S}"/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"
|
||||
|
||||
local -x EPYTHON=python${PYVER}
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local -x PYTHON=./python
|
||||
local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
|
||||
else
|
||||
local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" \
|
||||
"${scriptdir}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||
# python-config and pythonX-config
|
||||
# note: we need to create a wrapper rather than symlinking it due
|
||||
# to some random dirname(argv[0]) magic performed by python-config
|
||||
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" \
|
||||
"${scriptdir}/python-config" || die
|
||||
# 2to3, pydoc
|
||||
ln -s "../../../bin/2to3-${PYVER}" \
|
||||
"${scriptdir}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" \
|
||||
"${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" \
|
||||
"${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
@ -0,0 +1,365 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools flag-o-matic multiprocessing pax-utils \
|
||||
python-utils-r1 toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-${PV}-r1"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="https://www.python.org/"
|
||||
SRC_URI="https://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}/${PYVER}m"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc x86"
|
||||
IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads tk wininst +xml"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
dev-libs/libffi:=
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? ( >=sys-libs/readline-4.1:= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:= )
|
||||
libressl? ( dev-libs/libressl:= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:= )"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
test? ( app-arch/xz-utils[extra-filters(+)] )
|
||||
virtual/pkgconfig
|
||||
!sys-devel/gcc[libffi(-)]"
|
||||
RDEPEND+=" !build? ( app-misc/mime-types )"
|
||||
PDEPEND=">=app-eselect/eselect-python-20140125-r1"
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat || die
|
||||
rm -fr Modules/_ctypes/libffi* || die
|
||||
rm -fr Modules/zlib || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
Lib/distutils/command/install.py \
|
||||
Lib/distutils/sysconfig.py \
|
||||
Lib/site.py \
|
||||
Lib/sysconfig.py \
|
||||
Lib/test/test_site.py \
|
||||
Makefile.pre.in \
|
||||
Modules/Setup.dist \
|
||||
Modules/getpath.c \
|
||||
configure.ac \
|
||||
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
|
||||
|
||||
# force correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
|
||||
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local disable
|
||||
# disable automagic bluetooth headers detection
|
||||
use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if ! use xml; then
|
||||
ewarn "You have configured Python without XML support."
|
||||
ewarn "This is NOT a recommended configuration as you"
|
||||
ewarn "may face problems parsing any XML documents."
|
||||
fi
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
if [[ "$(gcc-major-version)" -ge 4 ]]; then
|
||||
append-flags -fwrapv
|
||||
fi
|
||||
|
||||
filter-flags -malign-double
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=50309
|
||||
if is-flagq -O3; then
|
||||
is-flagq -fstack-protector-all && replace-flags -O3 -O2
|
||||
use hardened && replace-flags -O3 -O2
|
||||
fi
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
tc-export CXX
|
||||
|
||||
# Set LDFLAGS so we link modules with -lpython3.2 correctly.
|
||||
# Needed on FreeBSD unless Python 3.2 is already installed.
|
||||
# Please query BSD team before removing this!
|
||||
append-ldflags "-L."
|
||||
|
||||
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
|
||||
|
||||
--with-fpectl
|
||||
--enable-shared
|
||||
$(use_enable ipv6)
|
||||
$(use_with threads)
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
)
|
||||
|
||||
OPT="" econf "${myeconfargs[@]}"
|
||||
|
||||
if use threads && 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
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
|
||||
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
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb faulthandler"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
|
||||
|
||||
emake test EXTRATESTOPTS="-u-network -j${jobs}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local result=$?
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${T}/test_${test}.py" "${S}"/Lib/test
|
||||
done
|
||||
|
||||
elog "The following tests have been skipped:"
|
||||
for test in ${skipped_tests}; do
|
||||
elog "test_${test}.py"
|
||||
done
|
||||
|
||||
elog "If you would like to run them, you may:"
|
||||
elog "cd '${EPREFIX}/usr/$(get_libdir)/python${PYVER}/test'"
|
||||
elog "and run the tests separately."
|
||||
|
||||
if [[ ${result} -ne 0 ]]; then
|
||||
die "emake test failed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/$(get_libdir)/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
# Remove static library
|
||||
rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
|
||||
|
||||
sed \
|
||||
-e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
|
||||
-e "s/\(PY_LDFLAGS=\).*/\1/" \
|
||||
-i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
|
||||
|
||||
# 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
|
||||
|
||||
use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||
use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
|
||||
use threads || rm -r "${libdir}/multiprocessing" || die
|
||||
use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || 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 "${S}"/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"
|
||||
|
||||
local -x EPYTHON=python${PYVER}
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local -x PYTHON=./python
|
||||
local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
|
||||
else
|
||||
local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${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, pyvenv
|
||||
ln -s "../../../bin/2to3-${PYVER}" \
|
||||
"${scriptdir}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" \
|
||||
"${scriptdir}/pydoc" || die
|
||||
ln -s "../../../bin/pyvenv-${PYVER}" \
|
||||
"${scriptdir}/pyvenv" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" \
|
||||
"${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-${PYVER}" && ! has_version ">=${CATEGORY}/${PN}-${PYVER}_alpha"; then
|
||||
python_updater_warning="1"
|
||||
fi
|
||||
}
|
||||
|
||||
eselect_python_update() {
|
||||
if [[ -z "$(eselect python show)" || \
|
||||
! -f "${EROOT}/usr/bin/$(eselect python show)" ]]; then
|
||||
eselect python update
|
||||
fi
|
||||
|
||||
if [[ -z "$(eselect python show --python${PV%%.*})" || \
|
||||
! -f "${EROOT}/usr/bin/$(eselect python show --python${PV%%.*})" ]]
|
||||
then
|
||||
eselect python update --python${PV%%.*}
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect_python_update
|
||||
|
||||
if [[ "${python_updater_warning}" == "1" ]]; then
|
||||
ewarn "You have just upgraded from an older version of Python."
|
||||
ewarn
|
||||
ewarn "Please adjust PYTHON_TARGETS (if so desired), and run emerge with the --newuse or --changed-use option to rebuild packages installing python modules."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect_python_update
|
||||
}
|
@ -0,0 +1,351 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools flag-o-matic multiprocessing pax-utils \
|
||||
python-utils-r1 toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-${PV}-r1"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="https://www.python.org/"
|
||||
SRC_URI="https://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}/${PYVER}m"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
|
||||
IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
dev-libs/libffi:=
|
||||
sys-apps/util-linux:=
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? ( >=sys-libs/readline-4.1:= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:= )
|
||||
libressl? ( dev-libs/libressl:= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:= )"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
test? ( app-arch/xz-utils[extra-filters(+)] )
|
||||
virtual/pkgconfig
|
||||
!sys-devel/gcc[libffi(-)]"
|
||||
RDEPEND+=" !build? ( app-misc/mime-types )"
|
||||
PDEPEND=">=app-eselect/eselect-python-20140125-r1"
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat || die
|
||||
rm -fr Modules/_ctypes/libffi* || die
|
||||
rm -fr Modules/zlib || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
|
||||
|
||||
# force correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
|
||||
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local disable
|
||||
# disable automagic bluetooth headers detection
|
||||
use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if ! use xml; then
|
||||
ewarn "You have configured Python without XML support."
|
||||
ewarn "This is NOT a recommended configuration as you"
|
||||
ewarn "may face problems parsing any XML documents."
|
||||
fi
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
if [[ "$(gcc-major-version)" -ge 4 ]]; then
|
||||
append-flags -fwrapv
|
||||
fi
|
||||
|
||||
filter-flags -malign-double
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=50309
|
||||
if is-flagq -O3; then
|
||||
is-flagq -fstack-protector-all && replace-flags -O3 -O2
|
||||
use hardened && replace-flags -O3 -O2
|
||||
fi
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
tc-export CXX
|
||||
|
||||
# Set LDFLAGS so we link modules with -lpython3.2 correctly.
|
||||
# Needed on FreeBSD unless Python 3.2 is already installed.
|
||||
# Please query BSD team before removing this!
|
||||
append-ldflags "-L."
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
|
||||
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
|
||||
$(use_enable ipv6)
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
)
|
||||
|
||||
OPT="" econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
|
||||
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
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
|
||||
|
||||
emake test EXTRATESTOPTS="-u-network -j${jobs}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local result=$?
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${T}/test_${test}.py" "${S}"/Lib/test
|
||||
done
|
||||
|
||||
elog "The following tests have been skipped:"
|
||||
for test in ${skipped_tests}; do
|
||||
elog "test_${test}.py"
|
||||
done
|
||||
|
||||
elog "If you would like to run them, you may:"
|
||||
elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
|
||||
elog "and run the tests separately."
|
||||
|
||||
if [[ ${result} -ne 0 ]]; then
|
||||
die "emake test failed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
# Remove static library
|
||||
rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
|
||||
|
||||
sed \
|
||||
-e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
|
||||
-e "s/\(PY_LDFLAGS=\).*/\1/" \
|
||||
-i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
|
||||
|
||||
# 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
|
||||
|
||||
use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||
use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
|
||||
use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || 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 "${S}"/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"
|
||||
|
||||
local -x EPYTHON=python${PYVER}
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local -x PYTHON=./python
|
||||
local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
|
||||
else
|
||||
local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${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, pyvenv
|
||||
ln -s "../../../bin/2to3-${PYVER}" \
|
||||
"${scriptdir}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" \
|
||||
"${scriptdir}/pydoc" || die
|
||||
ln -s "../../../bin/pyvenv-${PYVER}" \
|
||||
"${scriptdir}/pyvenv" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" \
|
||||
"${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-${PYVER}" && ! has_version ">=${CATEGORY}/${PN}-${PYVER}_alpha"; then
|
||||
python_updater_warning="1"
|
||||
fi
|
||||
}
|
||||
|
||||
eselect_python_update() {
|
||||
if [[ -z "$(eselect python show)" || \
|
||||
! -f "${EROOT}/usr/bin/$(eselect python show)" ]]; then
|
||||
eselect python update
|
||||
fi
|
||||
|
||||
if [[ -z "$(eselect python show --python${PV%%.*})" || \
|
||||
! -f "${EROOT}/usr/bin/$(eselect python show --python${PV%%.*})" ]]
|
||||
then
|
||||
eselect python update --python${PV%%.*}
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect_python_update
|
||||
|
||||
if [[ "${python_updater_warning}" == "1" ]]; then
|
||||
ewarn "You have just upgraded from an older version of Python."
|
||||
ewarn
|
||||
ewarn "Please adjust PYTHON_TARGETS (if so desired), and run emerge with the --newuse or --changed-use option to rebuild packages installing python modules."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect_python_update
|
||||
}
|
@ -0,0 +1,355 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools flag-o-matic multiprocessing pax-utils \
|
||||
python-utils-r1 toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-${PV}-r1"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="https://www.python.org/"
|
||||
SRC_URI="https://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
|
||||
IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
dev-libs/libffi:=
|
||||
sys-apps/util-linux:=
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? ( >=sys-libs/readline-4.1:= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:= )
|
||||
libressl? ( dev-libs/libressl:= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:= )"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
test? ( app-arch/xz-utils[extra-filters(+)] )
|
||||
virtual/pkgconfig
|
||||
!sys-devel/gcc[libffi(-)]"
|
||||
RDEPEND+=" !build? ( app-misc/mime-types )"
|
||||
PDEPEND=">=app-eselect/eselect-python-20140125-r1"
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat || die
|
||||
rm -fr Modules/_ctypes/libffi* || die
|
||||
rm -fr Modules/zlib || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
|
||||
|
||||
# force correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
|
||||
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local disable
|
||||
# disable automagic bluetooth headers detection
|
||||
use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if ! use xml; then
|
||||
ewarn "You have configured Python without XML support."
|
||||
ewarn "This is NOT a recommended configuration as you"
|
||||
ewarn "may face problems parsing any XML documents."
|
||||
fi
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
if [[ "$(gcc-major-version)" -ge 4 ]]; then
|
||||
append-flags -fwrapv
|
||||
fi
|
||||
|
||||
filter-flags -malign-double
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=50309
|
||||
if is-flagq -O3; then
|
||||
is-flagq -fstack-protector-all && replace-flags -O3 -O2
|
||||
use hardened && replace-flags -O3 -O2
|
||||
fi
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if is-flagq -flto || is-flagq '-flto=*'; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
fi
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
tc-export CXX
|
||||
|
||||
# Set LDFLAGS so we link modules with -lpython3.2 correctly.
|
||||
# Needed on FreeBSD unless Python 3.2 is already installed.
|
||||
# Please query BSD team before removing this!
|
||||
append-ldflags "-L."
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
|
||||
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
|
||||
$(use_enable ipv6)
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
)
|
||||
|
||||
OPT="" econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
|
||||
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
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
|
||||
|
||||
emake test EXTRATESTOPTS="-u-network -j${jobs}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local result=$?
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${T}/test_${test}.py" "${S}"/Lib/test
|
||||
done
|
||||
|
||||
elog "The following tests have been skipped:"
|
||||
for test in ${skipped_tests}; do
|
||||
elog "test_${test}.py"
|
||||
done
|
||||
|
||||
elog "If you would like to run them, you may:"
|
||||
elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
|
||||
elog "and run the tests separately."
|
||||
|
||||
if [[ ${result} -ne 0 ]]; then
|
||||
die "emake test failed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
# Remove static library
|
||||
rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
|
||||
|
||||
sed \
|
||||
-e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
|
||||
-e "s/\(PY_LDFLAGS=\).*/\1/" \
|
||||
-i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
|
||||
|
||||
# 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
|
||||
|
||||
use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||
use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
|
||||
use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || 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 "${S}"/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"
|
||||
|
||||
local -x EPYTHON=python${PYVER}
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local -x PYTHON=./python
|
||||
local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
|
||||
else
|
||||
local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" \
|
||||
"${scriptdir}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||
# python-config and pythonX-config
|
||||
# note: we need to create a wrapper rather than symlinking it due
|
||||
# to some random dirname(argv[0]) magic performed by python-config
|
||||
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" \
|
||||
"${scriptdir}/python-config" || die
|
||||
# 2to3, pydoc
|
||||
ln -s "../../../bin/2to3-${PYVER}" \
|
||||
"${scriptdir}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" \
|
||||
"${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" \
|
||||
"${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-${PYVER}" && ! has_version ">=${CATEGORY}/${PN}-${PYVER}_alpha"; then
|
||||
python_updater_warning="1"
|
||||
fi
|
||||
}
|
||||
|
||||
eselect_python_update() {
|
||||
if [[ -z "$(eselect python show)" || \
|
||||
! -f "${EROOT}/usr/bin/$(eselect python show)" ]]; then
|
||||
eselect python update
|
||||
fi
|
||||
|
||||
if [[ -z "$(eselect python show --python${PV%%.*})" || \
|
||||
! -f "${EROOT}/usr/bin/$(eselect python show --python${PV%%.*})" ]]
|
||||
then
|
||||
eselect python update --python${PV%%.*}
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect_python_update
|
||||
|
||||
if [[ "${python_updater_warning}" == "1" ]]; then
|
||||
ewarn "You have just upgraded from an older version of Python."
|
||||
ewarn
|
||||
ewarn "Please adjust PYTHON_TARGETS (if so desired), and run emerge with the --newuse or --changed-use option to rebuild packages installing python modules."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect_python_update
|
||||
}
|
@ -0,0 +1,355 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools flag-o-matic multiprocessing pax-utils \
|
||||
python-utils-r1 toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV/_rc/rc}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-3.8.6"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="https://www.python.org/"
|
||||
SRC_URI="https://www.python.org/ftp/python/${PV%_rc*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
dev-libs/libffi:=
|
||||
sys-apps/util-linux:=
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? ( >=sys-libs/readline-4.1:= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:= )
|
||||
libressl? ( dev-libs/libressl:= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:= )"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
test? ( app-arch/xz-utils[extra-filters(+)] )
|
||||
virtual/pkgconfig
|
||||
!sys-devel/gcc[libffi(-)]"
|
||||
RDEPEND+=" !build? ( app-misc/mime-types )"
|
||||
PDEPEND=">=app-eselect/eselect-python-20140125-r1"
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat || die
|
||||
rm -fr Modules/_ctypes/libffi* || die
|
||||
rm -fr Modules/zlib || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
|
||||
|
||||
# force correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
|
||||
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local disable
|
||||
# disable automagic bluetooth headers detection
|
||||
use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if ! use xml; then
|
||||
ewarn "You have configured Python without XML support."
|
||||
ewarn "This is NOT a recommended configuration as you"
|
||||
ewarn "may face problems parsing any XML documents."
|
||||
fi
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
if [[ "$(gcc-major-version)" -ge 4 ]]; then
|
||||
append-flags -fwrapv
|
||||
fi
|
||||
|
||||
filter-flags -malign-double
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=50309
|
||||
if is-flagq -O3; then
|
||||
is-flagq -fstack-protector-all && replace-flags -O3 -O2
|
||||
use hardened && replace-flags -O3 -O2
|
||||
fi
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if is-flagq -flto || is-flagq '-flto=*'; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
fi
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
tc-export CXX
|
||||
|
||||
# Set LDFLAGS so we link modules with -lpython3.2 correctly.
|
||||
# Needed on FreeBSD unless Python 3.2 is already installed.
|
||||
# Please query BSD team before removing this!
|
||||
append-ldflags "-L."
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
|
||||
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
|
||||
$(use_enable ipv6)
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
)
|
||||
|
||||
OPT="" econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
|
||||
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
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
|
||||
|
||||
emake test EXTRATESTOPTS="-u-network -j${jobs}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local result=$?
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${T}/test_${test}.py" "${S}"/Lib/test
|
||||
done
|
||||
|
||||
elog "The following tests have been skipped:"
|
||||
for test in ${skipped_tests}; do
|
||||
elog "test_${test}.py"
|
||||
done
|
||||
|
||||
elog "If you would like to run them, you may:"
|
||||
elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
|
||||
elog "and run the tests separately."
|
||||
|
||||
if [[ ${result} -ne 0 ]]; then
|
||||
die "emake test failed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
# Remove static library
|
||||
rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
|
||||
|
||||
sed \
|
||||
-e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
|
||||
-e "s/\(PY_LDFLAGS=\).*/\1/" \
|
||||
-i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
|
||||
|
||||
# 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
|
||||
|
||||
use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||
use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
|
||||
use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || 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 "${S}"/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"
|
||||
|
||||
local -x EPYTHON=python${PYVER}
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local -x PYTHON=./python
|
||||
local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
|
||||
else
|
||||
local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" \
|
||||
"${scriptdir}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||
# python-config and pythonX-config
|
||||
# note: we need to create a wrapper rather than symlinking it due
|
||||
# to some random dirname(argv[0]) magic performed by python-config
|
||||
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" \
|
||||
"${scriptdir}/python-config" || die
|
||||
# 2to3, pydoc
|
||||
ln -s "../../../bin/2to3-${PYVER}" \
|
||||
"${scriptdir}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" \
|
||||
"${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" \
|
||||
"${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-${PYVER}" && ! has_version ">=${CATEGORY}/${PN}-${PYVER}_alpha"; then
|
||||
python_updater_warning="1"
|
||||
fi
|
||||
}
|
||||
|
||||
eselect_python_update() {
|
||||
if [[ -z "$(eselect python show)" || \
|
||||
! -f "${EROOT}/usr/bin/$(eselect python show)" ]]; then
|
||||
eselect python update
|
||||
fi
|
||||
|
||||
if [[ -z "$(eselect python show --python${PV%%.*})" || \
|
||||
! -f "${EROOT}/usr/bin/$(eselect python show --python${PV%%.*})" ]]
|
||||
then
|
||||
eselect python update --python${PV%%.*}
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect_python_update
|
||||
|
||||
if [[ "${python_updater_warning}" == "1" ]]; then
|
||||
ewarn "You have just upgraded from an older version of Python."
|
||||
ewarn
|
||||
ewarn "Please adjust PYTHON_TARGETS (if so desired), and run emerge with the --newuse or --changed-use option to rebuild packages installing python modules."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect_python_update
|
||||
}
|
@ -0,0 +1,331 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils \
|
||||
python-utils-r1 toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV/_/}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-${PV}-r1"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="https://www.python.org/"
|
||||
SRC_URI="https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
|
||||
IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
dev-libs/libffi:=
|
||||
sys-apps/util-linux:=
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? ( >=sys-libs/readline-4.1:= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:= )
|
||||
libressl? ( dev-libs/libressl:= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:= )"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
test? ( app-arch/xz-utils[extra-filters(+)] )
|
||||
virtual/pkgconfig
|
||||
!sys-devel/gcc[libffi(-)]"
|
||||
RDEPEND+=" !build? ( app-misc/mime-types )"
|
||||
PDEPEND=">=app-eselect/eselect-python-20140125-r1"
|
||||
|
||||
# large file tests involve a 2.5G file being copied (duplicated)
|
||||
CHECKREQS_DISK_BUILD=5500M
|
||||
|
||||
pkg_pretend() {
|
||||
use test && check-reqs_pkg_pretend
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && check-reqs_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat || die
|
||||
rm -fr Modules/_ctypes/libffi* || die
|
||||
rm -fr Modules/zlib || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
|
||||
|
||||
# force correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
|
||||
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local disable
|
||||
# disable automagic bluetooth headers detection
|
||||
use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if ! use xml; then
|
||||
ewarn "You have configured Python without XML support."
|
||||
ewarn "This is NOT a recommended configuration as you"
|
||||
ewarn "may face problems parsing any XML documents."
|
||||
fi
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
if [[ "$(gcc-major-version)" -ge 4 ]]; then
|
||||
append-flags -fwrapv
|
||||
fi
|
||||
|
||||
filter-flags -malign-double
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=50309
|
||||
if is-flagq -O3; then
|
||||
is-flagq -fstack-protector-all && replace-flags -O3 -O2
|
||||
use hardened && replace-flags -O3 -O2
|
||||
fi
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if is-flagq -flto || is-flagq '-flto=*'; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
fi
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
tc-export CXX
|
||||
|
||||
# Set LDFLAGS so we link modules with -lpython3.2 correctly.
|
||||
# Needed on FreeBSD unless Python 3.2 is already installed.
|
||||
# Please query BSD team before removing this!
|
||||
append-ldflags "-L."
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
|
||||
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
|
||||
$(use_enable ipv6)
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
)
|
||||
|
||||
OPT="" econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
|
||||
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
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
|
||||
|
||||
emake test EXTRATESTOPTS="-u-network -j${jobs}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local result=$?
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${T}/test_${test}.py" "${S}"/Lib/test
|
||||
done
|
||||
|
||||
elog "The following tests have been skipped:"
|
||||
for test in ${skipped_tests}; do
|
||||
elog "test_${test}.py"
|
||||
done
|
||||
|
||||
elog "If you would like to run them, you may:"
|
||||
elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
|
||||
elog "and run the tests separately."
|
||||
|
||||
if [[ ${result} -ne 0 ]]; then
|
||||
die "emake test failed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
# Remove static library
|
||||
rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
|
||||
|
||||
sed \
|
||||
-e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
|
||||
-e "s/\(PY_LDFLAGS=\).*/\1/" \
|
||||
-i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
|
||||
|
||||
# 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
|
||||
|
||||
use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||
use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || 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 "${S}"/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"
|
||||
|
||||
local -x EPYTHON=python${PYVER}
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local -x PYTHON=./python
|
||||
local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
|
||||
else
|
||||
local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" \
|
||||
"${scriptdir}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||
# python-config and pythonX-config
|
||||
# note: we need to create a wrapper rather than symlinking it due
|
||||
# to some random dirname(argv[0]) magic performed by python-config
|
||||
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" \
|
||||
"${scriptdir}/python-config" || die
|
||||
# 2to3, pydoc
|
||||
ln -s "../../../bin/2to3-${PYVER}" \
|
||||
"${scriptdir}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" \
|
||||
"${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" \
|
||||
"${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
@ -0,0 +1,331 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils \
|
||||
python-utils-r1 toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV/_/}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-3.9.0rc1"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="https://www.python.org/"
|
||||
SRC_URI="https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
dev-libs/libffi:=
|
||||
sys-apps/util-linux:=
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? ( >=sys-libs/readline-4.1:= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:= )
|
||||
libressl? ( dev-libs/libressl:= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:= )"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
test? ( app-arch/xz-utils[extra-filters(+)] )
|
||||
virtual/pkgconfig
|
||||
!sys-devel/gcc[libffi(-)]"
|
||||
RDEPEND+=" !build? ( app-misc/mime-types )"
|
||||
PDEPEND=">=app-eselect/eselect-python-20140125-r1"
|
||||
|
||||
# large file tests involve a 2.5G file being copied (duplicated)
|
||||
CHECKREQS_DISK_BUILD=5500M
|
||||
|
||||
pkg_pretend() {
|
||||
use test && check-reqs_pkg_pretend
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && check-reqs_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat || die
|
||||
rm -fr Modules/_ctypes/libffi* || die
|
||||
rm -fr Modules/zlib || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
|
||||
|
||||
# force correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
|
||||
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local disable
|
||||
# disable automagic bluetooth headers detection
|
||||
use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if ! use xml; then
|
||||
ewarn "You have configured Python without XML support."
|
||||
ewarn "This is NOT a recommended configuration as you"
|
||||
ewarn "may face problems parsing any XML documents."
|
||||
fi
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
if [[ "$(gcc-major-version)" -ge 4 ]]; then
|
||||
append-flags -fwrapv
|
||||
fi
|
||||
|
||||
filter-flags -malign-double
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=50309
|
||||
if is-flagq -O3; then
|
||||
is-flagq -fstack-protector-all && replace-flags -O3 -O2
|
||||
use hardened && replace-flags -O3 -O2
|
||||
fi
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if is-flagq -flto || is-flagq '-flto=*'; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
fi
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
tc-export CXX
|
||||
|
||||
# Set LDFLAGS so we link modules with -lpython3.2 correctly.
|
||||
# Needed on FreeBSD unless Python 3.2 is already installed.
|
||||
# Please query BSD team before removing this!
|
||||
append-ldflags "-L."
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
|
||||
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
|
||||
$(use_enable ipv6)
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
)
|
||||
|
||||
OPT="" econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
|
||||
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
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
|
||||
|
||||
emake test EXTRATESTOPTS="-u-network -j${jobs}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local result=$?
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${T}/test_${test}.py" "${S}"/Lib/test
|
||||
done
|
||||
|
||||
elog "The following tests have been skipped:"
|
||||
for test in ${skipped_tests}; do
|
||||
elog "test_${test}.py"
|
||||
done
|
||||
|
||||
elog "If you would like to run them, you may:"
|
||||
elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
|
||||
elog "and run the tests separately."
|
||||
|
||||
if [[ ${result} -ne 0 ]]; then
|
||||
die "emake test failed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
# Remove static library
|
||||
rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
|
||||
|
||||
sed \
|
||||
-e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
|
||||
-e "s/\(PY_LDFLAGS=\).*/\1/" \
|
||||
-i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
|
||||
|
||||
# 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
|
||||
|
||||
use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||
use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || 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 "${S}"/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"
|
||||
|
||||
local -x EPYTHON=python${PYVER}
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local -x PYTHON=./python
|
||||
local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
|
||||
else
|
||||
local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" \
|
||||
"${scriptdir}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||
# python-config and pythonX-config
|
||||
# note: we need to create a wrapper rather than symlinking it due
|
||||
# to some random dirname(argv[0]) magic performed by python-config
|
||||
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" \
|
||||
"${scriptdir}/python-config" || die
|
||||
# 2to3, pydoc
|
||||
ln -s "../../../bin/2to3-${PYVER}" \
|
||||
"${scriptdir}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" \
|
||||
"${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" \
|
||||
"${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
@ -0,0 +1,418 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
# Patch version
|
||||
FIREFOX_PATCHSET="firefox-78esr-patches-07.tar.xz"
|
||||
SPIDERMONKEY_PATCHSET="spidermonkey-78-patches-03.tar.xz"
|
||||
|
||||
LLVM_MAX_SLOT=11
|
||||
|
||||
PYTHON_COMPAT=( python3_{6..9} )
|
||||
|
||||
WANT_AUTOCONF="2.1"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic llvm multiprocessing python-any-r1 toolchain-funcs
|
||||
|
||||
MY_PN="mozjs"
|
||||
MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
|
||||
|
||||
MY_MAJOR=$(ver_cut 1)
|
||||
|
||||
MOZ_ESR=yes
|
||||
|
||||
MOZ_PV=${PV}
|
||||
MOZ_PV_SUFFIX=
|
||||
if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
|
||||
MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
|
||||
|
||||
# Convert the ebuild version to the upstream Mozilla version
|
||||
MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
|
||||
MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
|
||||
MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
|
||||
fi
|
||||
|
||||
if [[ -n ${MOZ_ESR} ]] ; then
|
||||
# ESR releases have slightly different version numbers
|
||||
MOZ_PV="${MOZ_PV}esr"
|
||||
fi
|
||||
|
||||
MOZ_PN="firefox"
|
||||
MOZ_P="${MOZ_PN}-${MOZ_PV}"
|
||||
MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
|
||||
MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
|
||||
|
||||
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
|
||||
|
||||
if [[ ${PV} == *_rc* ]] ; then
|
||||
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
|
||||
fi
|
||||
|
||||
PATCH_URIS=(
|
||||
https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${FIREFOX_PATCHSET}
|
||||
https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
|
||||
)
|
||||
|
||||
SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
|
||||
${PATCH_URIS[@]}"
|
||||
|
||||
DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
|
||||
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
|
||||
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc64 ~s390 ~x86"
|
||||
|
||||
SLOT="78"
|
||||
LICENSE="MPL-2.0"
|
||||
IUSE="+clang cpu_flags_arm_neon debug +jit lto test"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="${PYTHON_DEPS}
|
||||
>=virtual/rust-1.41.0
|
||||
virtual/pkgconfig
|
||||
|| (
|
||||
(
|
||||
sys-devel/llvm:11
|
||||
clang? (
|
||||
sys-devel/clang:11
|
||||
lto? ( =sys-devel/lld-11* )
|
||||
)
|
||||
)
|
||||
(
|
||||
sys-devel/llvm:10
|
||||
clang? (
|
||||
sys-devel/clang:10
|
||||
lto? ( =sys-devel/lld-10* )
|
||||
)
|
||||
)
|
||||
(
|
||||
sys-devel/llvm:9
|
||||
clang? (
|
||||
sys-devel/clang:9
|
||||
lto? ( =sys-devel/lld-9* )
|
||||
)
|
||||
)
|
||||
)
|
||||
lto? (
|
||||
!clang? ( sys-devel/binutils[gold] )
|
||||
)"
|
||||
|
||||
CDEPEND=">=dev-libs/icu-67.1:=
|
||||
>=dev-libs/nspr-4.25
|
||||
sys-libs/readline:0=
|
||||
>=sys-libs/zlib-1.2.3"
|
||||
|
||||
DEPEND="${CDEPEND}
|
||||
test? (
|
||||
$(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
|
||||
)"
|
||||
|
||||
RDEPEND="${CDEPEND}"
|
||||
|
||||
S="${WORKDIR}/firefox-${MY_PV}/js/src"
|
||||
|
||||
llvm_check_deps() {
|
||||
if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
|
||||
ewarn "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
if use clang && use lto ; then
|
||||
if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
|
||||
ewarn "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
|
||||
}
|
||||
|
||||
python_check_deps() {
|
||||
if use test ; then
|
||||
has_version "dev-python/six[${PYTHON_USEDEP}]"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
if use test ; then
|
||||
CHECKREQS_DISK_BUILD="7600M"
|
||||
else
|
||||
CHECKREQS_DISK_BUILD="6400M"
|
||||
fi
|
||||
|
||||
check-reqs_pkg_pretend
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
if [[ ${MERGE_TYPE} != binary ]] ; then
|
||||
if use test ; then
|
||||
CHECKREQS_DISK_BUILD="7600M"
|
||||
else
|
||||
CHECKREQS_DISK_BUILD="6400M"
|
||||
fi
|
||||
|
||||
check-reqs_pkg_setup
|
||||
|
||||
llvm_pkg_setup
|
||||
|
||||
if use clang && use lto ; then
|
||||
local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
|
||||
[[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
|
||||
[[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
|
||||
|
||||
local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
|
||||
[[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
|
||||
[[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
|
||||
|
||||
if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
|
||||
eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
|
||||
eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
|
||||
eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
|
||||
eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
|
||||
eerror " - Build ${CATEGORY}/${PN} without USE=lto"
|
||||
die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
|
||||
fi
|
||||
fi
|
||||
|
||||
python-any-r1_pkg_setup
|
||||
|
||||
# Build system is using /proc/self/oom_score_adj, bug #604394
|
||||
addpredict /proc/self/oom_score_adj
|
||||
|
||||
if ! mountpoint -q /dev/shm ; then
|
||||
# If /dev/shm is not available, configure is known to fail with
|
||||
# a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
|
||||
ewarn "/dev/shm is not mounted -- expect build failures!"
|
||||
fi
|
||||
|
||||
# Ensure we use C locale when building, bug #746215
|
||||
export LC_ALL=C
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
pushd ../.. &>/dev/null || die
|
||||
|
||||
use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
|
||||
|
||||
eapply "${WORKDIR}"/firefox-patches
|
||||
eapply "${WORKDIR}"/spidermonkey-patches
|
||||
|
||||
default
|
||||
|
||||
# Make LTO respect MAKEOPTS
|
||||
sed -i \
|
||||
-e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
|
||||
build/moz.configure/lto-pgo.configure \
|
||||
|| die "sed failed to set num_cores"
|
||||
|
||||
# sed-in toolchain prefix
|
||||
sed -i \
|
||||
-e "s/objdump/${CHOST}-objdump/" \
|
||||
python/mozbuild/mozbuild/configure/check_debug_ranges.py \
|
||||
|| die "sed failed to set toolchain prefix"
|
||||
|
||||
einfo "Removing pre-built binaries ..."
|
||||
find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
|
||||
|
||||
MOZJS_BUILDDIR="${WORKDIR}/build"
|
||||
mkdir "${MOZJS_BUILDDIR}" || die
|
||||
|
||||
popd &>/dev/null || die
|
||||
eautoconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Show flags set at the beginning
|
||||
einfo "Current CFLAGS: ${CFLAGS}"
|
||||
einfo "Current LDFLAGS: ${LDFLAGS}"
|
||||
einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
|
||||
|
||||
local have_switched_compiler=
|
||||
if use clang && ! tc-is-clang ; then
|
||||
# Force clang
|
||||
einfo "Enforcing the use of clang due to USE=clang ..."
|
||||
have_switched_compiler=yes
|
||||
AR=llvm-ar
|
||||
CC=${CHOST}-clang
|
||||
CXX=${CHOST}-clang++
|
||||
NM=llvm-nm
|
||||
RANLIB=llvm-ranlib
|
||||
elif ! use clang && ! tc-is-gcc ; then
|
||||
# Force gcc
|
||||
have_switched_compiler=yes
|
||||
einfo "Enforcing the use of gcc due to USE=-clang ..."
|
||||
AR=gcc-ar
|
||||
CC=${CHOST}-gcc
|
||||
CXX=${CHOST}-g++
|
||||
NM=gcc-nm
|
||||
RANLIB=gcc-ranlib
|
||||
fi
|
||||
|
||||
if [[ -n "${have_switched_compiler}" ]] ; then
|
||||
# Because we switched active compiler we have to ensure
|
||||
# that no unsupported flags are set
|
||||
strip-unsupported-flags
|
||||
fi
|
||||
|
||||
# Ensure we use correct toolchain
|
||||
export HOST_CC="$(tc-getBUILD_CC)"
|
||||
export HOST_CXX="$(tc-getBUILD_CXX)"
|
||||
tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
|
||||
|
||||
cd "${MOZJS_BUILDDIR}" || die
|
||||
|
||||
# ../python/mach/mach/mixin/process.py fails to detect SHELL
|
||||
export SHELL="${EPREFIX}/bin/bash"
|
||||
|
||||
local -a myeconfargs=(
|
||||
--host="${CBUILD:-${CHOST}}"
|
||||
--target="${CHOST}"
|
||||
--disable-jemalloc
|
||||
--disable-optimize
|
||||
--disable-strip
|
||||
--enable-readline
|
||||
--enable-shared-js
|
||||
--with-intl-api
|
||||
--with-system-icu
|
||||
--with-system-nspr
|
||||
--with-system-zlib
|
||||
--with-toolchain-prefix="${CHOST}-"
|
||||
$(use_enable debug)
|
||||
$(use_enable jit)
|
||||
$(use_enable test tests)
|
||||
)
|
||||
|
||||
if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
|
||||
myeconfargs+=( --enable-rust-simd )
|
||||
fi
|
||||
|
||||
# Modifications to better support ARM, bug 717344
|
||||
if use cpu_flags_arm_neon ; then
|
||||
myeconfargs+=( --with-fpu=neon )
|
||||
|
||||
if ! tc-is-clang ; then
|
||||
# thumb options aren't supported when using clang, bug 666966
|
||||
myeconfargs+=( --with-thumb=yes )
|
||||
myeconfargs+=( --with-thumb-interwork=no )
|
||||
fi
|
||||
fi
|
||||
|
||||
# Tell build system that we want to use LTO
|
||||
if use lto ; then
|
||||
myeconfargs+=( --enable-lto )
|
||||
|
||||
if use clang ; then
|
||||
myeconfargs+=( --enable-linker=lld )
|
||||
else
|
||||
myeconfargs+=( --enable-linker=gold )
|
||||
fi
|
||||
fi
|
||||
|
||||
# LTO flag was handled via configure
|
||||
filter-flags '-flto*'
|
||||
|
||||
# Show flags we will use
|
||||
einfo "Build CFLAGS: ${CFLAGS}"
|
||||
einfo "Build LDFLAGS: ${LDFLAGS}"
|
||||
einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
|
||||
|
||||
# Forcing system-icu allows us to skip patching bundled ICU for PPC
|
||||
# and other minor arches
|
||||
ECONF_SOURCE="${S}" \
|
||||
econf \
|
||||
${myeconfargs[@]} \
|
||||
XARGS="${EPREFIX}/usr/bin/xargs"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cd "${MOZJS_BUILDDIR}" || die
|
||||
default
|
||||
}
|
||||
|
||||
src_test() {
|
||||
if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
|
||||
einfo "Smoke-test successful, continuing with full test suite"
|
||||
else
|
||||
die "Smoke-test failed: did interpreter initialization fail?"
|
||||
fi
|
||||
|
||||
local -a KNOWN_TESTFAILURES
|
||||
KNOWN_TESTFAILURES+=( non262/Date/reset-time-zone-cache-same-offset.js )
|
||||
KNOWN_TESTFAILURES+=( non262/Date/time-zone-path.js )
|
||||
KNOWN_TESTFAILURES+=( non262/Date/time-zones-historic.js )
|
||||
KNOWN_TESTFAILURES+=( non262/Date/time-zones-imported.js )
|
||||
KNOWN_TESTFAILURES+=( non262/Date/toString-localized.js )
|
||||
KNOWN_TESTFAILURES+=( non262/Date/toString-localized-posix.js )
|
||||
KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/timeZone_backward_links.js )
|
||||
KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/tz-environment-variable.js )
|
||||
KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags.js )
|
||||
KNOWN_TESTFAILURES+=( test262/intl402/Locale/prototype/minimize/removing-likely-subtags-first-adds-likely-subtags.js )
|
||||
|
||||
if use x86 ; then
|
||||
KNOWN_TESTFAILURES+=( non262/Date/timeclip.js )
|
||||
KNOWN_TESTFAILURES+=( test262/built-ins/Number/prototype/toPrecision/return-values.js )
|
||||
KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.1.js )
|
||||
KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.2.js )
|
||||
fi
|
||||
|
||||
if [[ $(tc-endian) == "big" ]] ; then
|
||||
KNOWN_TESTFAILURES+=( test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js )
|
||||
fi
|
||||
|
||||
echo "" > "${T}"/known_failures.list || die
|
||||
|
||||
local KNOWN_TESTFAILURE
|
||||
for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
|
||||
echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
|
||||
done
|
||||
|
||||
PYTHONPATH="${S}/tests/lib" \
|
||||
${PYTHON} \
|
||||
"${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
|
||||
--exclude-file="${T}"/known_failures.list \
|
||||
"${MOZJS_BUILDDIR}"/js/src/js \
|
||||
|| die
|
||||
|
||||
if use jit ; then
|
||||
KNOWN_TESTFAILURES=()
|
||||
|
||||
echo "" > "${T}"/known_failures.list || die
|
||||
|
||||
for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
|
||||
echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
|
||||
done
|
||||
|
||||
PYTHONPATH="${S}/tests/lib" \
|
||||
${PYTHON} \
|
||||
"${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
|
||||
--exclude-file="${T}"/known_failures.list \
|
||||
"${MOZJS_BUILDDIR}"/js/src/js basic \
|
||||
|| die
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cd "${MOZJS_BUILDDIR}" || die
|
||||
default
|
||||
|
||||
# fix soname links
|
||||
pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
|
||||
mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
|
||||
ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
|
||||
ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
|
||||
popd &>/dev/null || die
|
||||
|
||||
# remove unneeded files
|
||||
rm \
|
||||
"${ED}"/usr/bin/js${MY_MAJOR}-config \
|
||||
"${ED}"/usr/$(get_libdir)/libjs_static.ajs \
|
||||
|| die
|
||||
|
||||
# fix permissions
|
||||
chmod -x \
|
||||
"${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
|
||||
"${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
|
||||
|| die
|
||||
}
|
Binary file not shown.
@ -1,3 +1,4 @@
|
||||
DIST libratbag-0.9.tar.gz 238225 BLAKE2B 74efbed2840103018195a73c11760a2022e42db5e81ba2e9d63a21bc5eb4c1dfed107382b657d2dc208101dfb53eb1926aaccc116ae66e3bf83e1218239dc1a2 SHA512 36215f534f9429c3b182f5502a2bbe16905492a634e327a845d65b638d7dd5ebb5c4eb1700a5196d6b5caac68e500603ced60c3c83f6d0c8e3c776e0161f657b
|
||||
EBUILD libratbag-0.9.ebuild 761 BLAKE2B fbcd3ec221b7c2cfbcd2dbf85dd3c2fa845bf1e7e90b8b1edf607c13418cdbb57f672ba73a4bb8f790725e6a05ce6fe8e4b95cfa29302bf56d395bc90afd3488 SHA512 b2ca3694cdfb145f29b6bb24b9eb14c77cc62250155b1bcac1a2393a7ad065956b1b7e4455744b3d0eecc1e29f4597d0ecec041855c637732e0fffe33ccaa2fe
|
||||
MISC metadata.xml 256 BLAKE2B 55800f1afe85cae6b43d53da79dea4169d8f2606b4b5152843c741e59b686be4c5c432d6160031d1337a153576d69f9c24b08d70a26b22289b63b560f3ba3afe SHA512 bb303019614fae3631db582d2515dc71f9e9953e97f2b46724667c760b180173544255700c4f5d24a9f0addf78e0ee6407272c1137e200d17ce7b7708c8bcb66
|
||||
AUX ratbagd.init 336 BLAKE2B c6f2ef095cd7d929c3097a18e912ae4b3615bd0ebbdfdaa9f4151b312614c016af2f3581c2fbb2853472cb70ce47d5f26f254772fb9f3dabba2ce93626b672b7 SHA512 3908b3481b49bcebc84e3023ff911dcbc1773e4322356def0067ed4aa426184cf43e12de702e98210157d17c2806d57c1cb4bc79ddb0b8660036a6fe3974607e
|
||||
DIST libratbag-0.15.tar.gz 249492 BLAKE2B 0f5b35800cb9f82cb892dacd5e3b041843cf5513507ee4882ec5b3f8c8aec8a24594736f2eb1c8e373a0ee38ace1e6328cbd4816d6e5b2cd1f2154ebd803a5fa SHA512 add47a6b3d771de77c6307e128a549f5295e216059b5a2375aa6b2b6bbebcf9a93d7bf148181b3f39f855976e9b6f57072dd9198d07828bebe85409f4ad994aa
|
||||
EBUILD libratbag-0.15.ebuild 1943 BLAKE2B 439c567599d155a0071913113c96493a0ec33e1f2aca55f1f9311468b29a52ed75371b1b5e6019359a2619a9e46c4ae55339d9db9fe9f96c911baff4966936b1 SHA512 eda7ebd7afa9c9c55b5805bb4e82484a1c3657f4d08811d692d63282d1cc2a037da72a0f7d9dc58bf3cbc17b6440ab619a2490ac9eaada16d260cfae46977e4a
|
||||
MISC metadata.xml 634 BLAKE2B cc8a930132b186fe8acad18725ff2c621edd878cacf59a65491c3515061d5954bff2eb9be72ee0b3901aff82acb6aab0f88d814528a62358171a4288da2b38fb SHA512 6dabec3887b8958f6351c5fb7e33ee512bff8905d36d8002b088f02f0bf5474e97d33f017bb866b67cc6b6b82939fef25549625aefd87546dfa626bb596aa5d3
|
||||
|
@ -0,0 +1,13 @@
|
||||
#!/sbin/openrc-run
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
description="system daemon to introspect and modify configurable mice"
|
||||
pidfile="/run/${SVCNAME}.pid"
|
||||
command="/usr/bin/ratbagd"
|
||||
start_stop_daemon_args="--quiet"
|
||||
command_background="true"
|
||||
|
||||
depend() {
|
||||
need dbus
|
||||
}
|
@ -0,0 +1,90 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_{6,7,8} )
|
||||
|
||||
inherit meson python-single-r1 systemd udev
|
||||
|
||||
DESCRIPTION="Library to configure gaming mice"
|
||||
HOMEPAGE="https://github.com/libratbag/libratbag"
|
||||
SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="doc elogind systemd test"
|
||||
REQUIRED_USE="
|
||||
${PYTHON_REQUIRED_USE}
|
||||
^^ ( elogind systemd )
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
dev-lang/swig
|
||||
virtual/pkgconfig
|
||||
doc? ( app-doc/doxygen )
|
||||
test? (
|
||||
dev-libs/gobject-introspection
|
||||
dev-util/valgrind
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/pygobject:3[${PYTHON_MULTI_USEDEP}]
|
||||
dev-python/python-evdev[${PYTHON_MULTI_USEDEP}]
|
||||
')
|
||||
)
|
||||
"
|
||||
RDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
acct-group/plugdev
|
||||
dev-libs/gobject-introspection
|
||||
dev-libs/libevdev
|
||||
virtual/libudev
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/pygobject:3[${PYTHON_MULTI_USEDEP}]
|
||||
dev-python/python-evdev[${PYTHON_MULTI_USEDEP}]
|
||||
')
|
||||
elogind? ( sys-auth/elogind )
|
||||
systemd? ( sys-apps/systemd )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
if use elogind ; then
|
||||
# Fix systemd includes for elogind
|
||||
sed -i -e 's@include <systemd@include <elogind@' \
|
||||
ratbagd/ratbag*.c || die
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
python_setup
|
||||
|
||||
local emesonargs=(
|
||||
$(meson_use doc documentation)
|
||||
$(meson_use systemd)
|
||||
$(meson_use test tests)
|
||||
-Ddbus-group="plugdev"
|
||||
-Dlogind-provider=$(usex elogind elogind systemd)
|
||||
-Dsystemd-unit-dir="$(systemd_get_systemunitdir)"
|
||||
-Dudev-dir="${EPREFIX}$(get_udevdir)"
|
||||
)
|
||||
|
||||
meson_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
meson_src_install
|
||||
python_fix_shebang "${ED}"/usr/bin/
|
||||
newinitd "${FILESDIR}"/ratbagd.init ratbagd
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if [[ -z "${REPLACING_VERSIONS}" ]] ; then
|
||||
elog 'You need to be in "plugdev" group in order to access the'
|
||||
elog 'ratbagd dbus interface'
|
||||
fi
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit meson udev
|
||||
|
||||
DESCRIPTION="Library to configure gaming mice"
|
||||
HOMEPAGE="https://github.com/libratbag/libratbag"
|
||||
SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="doc test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
DEPEND="
|
||||
virtual/pkgconfig
|
||||
doc? ( app-doc/doxygen )
|
||||
"
|
||||
RDEPEND="
|
||||
dev-libs/libevdev
|
||||
virtual/libudev
|
||||
"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
sed '/default:/d' -i meson_options.txt || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local emesonargs=(
|
||||
-Denable-documentation=$(usex doc true false)
|
||||
-Denable-tests=$(usex test true false)
|
||||
-Dudev-dir=$(get_udevdir)
|
||||
)
|
||||
meson_src_configure
|
||||
}
|
@ -0,0 +1,358 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit flag-o-matic multilib toolchain-funcs multilib-minimal
|
||||
|
||||
NSPR_VER="4.29"
|
||||
RTM_NAME="NSS_${PV//./_}_RTM"
|
||||
|
||||
DESCRIPTION="Mozilla's Network Security Services library that implements PKI support"
|
||||
HOMEPAGE="https://www.mozilla.org/projects/security/pki/nss/"
|
||||
SRC_URI="https://archive.mozilla.org/pub/security/nss/releases/${RTM_NAME}/src/${P}.tar.gz
|
||||
cacert? ( https://dev.gentoo.org/~axs/distfiles/${PN}-cacert-class1-class3.patch )"
|
||||
|
||||
LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="cacert utils"
|
||||
# pkg-config called by nss-config -> virtual/pkgconfig in RDEPEND
|
||||
RDEPEND="
|
||||
>=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
|
||||
>=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}]
|
||||
>=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]
|
||||
virtual/pkgconfig
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
RESTRICT="test"
|
||||
|
||||
S="${WORKDIR}/${P}/${PN}"
|
||||
|
||||
MULTILIB_CHOST_TOOLS=(
|
||||
/usr/bin/nss-config
|
||||
)
|
||||
|
||||
PATCHES=(
|
||||
# Custom changes for gentoo
|
||||
"${FILESDIR}/${PN}-3.53-gentoo-fixups.patch"
|
||||
"${FILESDIR}/${PN}-3.21-gentoo-fixup-warnings.patch"
|
||||
"${FILESDIR}/${PN}-3.23-hppa-byte_order.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
if use cacert ; then #521462
|
||||
PATCHES+=(
|
||||
"${DISTDIR}/${PN}-cacert-class1-class3.patch"
|
||||
)
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
pushd coreconf >/dev/null || die
|
||||
# hack nspr paths
|
||||
echo 'INCLUDES += -I$(DIST)/include/dbm' \
|
||||
>> headers.mk || die "failed to append include"
|
||||
|
||||
# modify install path
|
||||
sed -e '/CORE_DEPTH/s:SOURCE_PREFIX.*$:SOURCE_PREFIX = $(CORE_DEPTH)/dist:' \
|
||||
-i source.mk || die
|
||||
|
||||
# Respect LDFLAGS
|
||||
sed -i -e 's/\$(MKSHLIB) -o/\$(MKSHLIB) \$(LDFLAGS) -o/g' rules.mk
|
||||
popd >/dev/null || die
|
||||
|
||||
# Fix pkgconfig file for Prefix
|
||||
sed -i -e "/^PREFIX =/s:= /usr:= ${EPREFIX}/usr:" \
|
||||
config/Makefile || die
|
||||
|
||||
# use host shlibsign if need be #436216
|
||||
if tc-is-cross-compiler ; then
|
||||
sed -i \
|
||||
-e 's:"${2}"/shlibsign:shlibsign:' \
|
||||
cmd/shlibsign/sign.sh || die
|
||||
fi
|
||||
|
||||
# dirty hack
|
||||
sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../freebl/\$(OBJDIR):" \
|
||||
lib/ssl/config.mk || die
|
||||
sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../../lib/freebl/\$(OBJDIR):" \
|
||||
cmd/platlibs.mk || die
|
||||
|
||||
multilib_copy_sources
|
||||
|
||||
strip-flags
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
# Ensure we stay multilib aware
|
||||
sed -i -e "/@libdir@/ s:lib64:$(get_libdir):" config/Makefile || die
|
||||
}
|
||||
|
||||
nssarch() {
|
||||
# Most of the arches are the same as $ARCH
|
||||
local t=${1:-${CHOST}}
|
||||
case ${t} in
|
||||
aarch64*)echo "aarch64";;
|
||||
hppa*) echo "parisc";;
|
||||
i?86*) echo "i686";;
|
||||
x86_64*) echo "x86_64";;
|
||||
*) tc-arch ${t};;
|
||||
esac
|
||||
}
|
||||
|
||||
nssbits() {
|
||||
local cc cppflags="${1}CPPFLAGS" cflags="${1}CFLAGS"
|
||||
if [[ ${1} == BUILD_ ]]; then
|
||||
cc=$(tc-getBUILD_CC)
|
||||
else
|
||||
cc=$(tc-getCC)
|
||||
fi
|
||||
echo > "${T}"/test.c || die
|
||||
${cc} ${!cppflags} ${!cflags} -c "${T}"/test.c -o "${T}/${1}test.o" || die
|
||||
case $(file "${T}/${1}test.o") in
|
||||
*32-bit*x86-64*) echo USE_X32=1;;
|
||||
*64-bit*|*ppc64*|*x86_64*) echo USE_64=1;;
|
||||
*32-bit*|*ppc*|*i386*) ;;
|
||||
*) die "Failed to detect whether ${cc} builds 64bits or 32bits, disable distcc if you're using it, please";;
|
||||
esac
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
# use ABI to determine bit'ness, or fallback if unset
|
||||
local buildbits mybits
|
||||
case "${ABI}" in
|
||||
n32) mybits="USE_N32=1";;
|
||||
x32) mybits="USE_X32=1";;
|
||||
s390x|*64) mybits="USE_64=1";;
|
||||
${DEFAULT_ABI})
|
||||
einfo "Running compilation test to determine bit'ness"
|
||||
mybits=$(nssbits)
|
||||
;;
|
||||
esac
|
||||
# bitness of host may differ from target
|
||||
if tc-is-cross-compiler; then
|
||||
buildbits=$(nssbits BUILD_)
|
||||
fi
|
||||
|
||||
local makeargs=(
|
||||
CC="$(tc-getCC)"
|
||||
CCC="$(tc-getCXX)"
|
||||
AR="$(tc-getAR) rc \$@"
|
||||
RANLIB="$(tc-getRANLIB)"
|
||||
OPTIMIZER=
|
||||
${mybits}
|
||||
)
|
||||
|
||||
# Take care of nspr settings #436216
|
||||
local myCPPFLAGS="${CPPFLAGS} $($(tc-getPKG_CONFIG) nspr --cflags)"
|
||||
unset NSPR_INCLUDE_DIR
|
||||
|
||||
export NSS_ALLOW_SSLKEYLOGFILE=1
|
||||
export NSS_ENABLE_WERROR=0 #567158
|
||||
export BUILD_OPT=1
|
||||
export NSS_USE_SYSTEM_SQLITE=1
|
||||
export NSDISTMODE=copy
|
||||
export FREEBL_NO_DEPEND=1
|
||||
export FREEBL_LOWHASH=1
|
||||
export NSS_SEED_ONLY_DEV_URANDOM=1
|
||||
export USE_SYSTEM_ZLIB=1
|
||||
export ZLIB_LIBS=-lz
|
||||
export ASFLAGS=""
|
||||
# Fix build failure on arm64
|
||||
export NS_USE_GCC=1
|
||||
# Detect compiler type and set proper environment value
|
||||
if tc-is-gcc; then
|
||||
export CC_IS_GCC=1
|
||||
elif tc-is-clang; then
|
||||
export CC_IS_CLANG=1
|
||||
fi
|
||||
|
||||
local d
|
||||
|
||||
# Build the host tools first.
|
||||
LDFLAGS="${BUILD_LDFLAGS}" \
|
||||
XCFLAGS="${BUILD_CFLAGS}" \
|
||||
NSPR_LIB_DIR="${T}/fakedir" \
|
||||
emake -j1 -C coreconf \
|
||||
CC="$(tc-getBUILD_CC)" \
|
||||
${buildbits-${mybits}}
|
||||
makeargs+=( NSINSTALL="${PWD}/$(find -type f -name nsinstall)" )
|
||||
|
||||
# Then build the target tools.
|
||||
for d in . lib/dbm ; do
|
||||
CPPFLAGS="${myCPPFLAGS}" \
|
||||
XCFLAGS="${CFLAGS} ${CPPFLAGS}" \
|
||||
NSPR_LIB_DIR="${T}/fakedir" \
|
||||
emake -j1 "${makeargs[@]}" -C ${d} OS_TEST="$(nssarch)"
|
||||
done
|
||||
}
|
||||
|
||||
# Altering these 3 libraries breaks the CHK verification.
|
||||
# All of the following cause it to break:
|
||||
# - stripping
|
||||
# - prelink
|
||||
# - ELF signing
|
||||
# http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn6.html
|
||||
# Either we have to NOT strip them, or we have to forcibly resign after
|
||||
# stripping.
|
||||
#local_libdir="$(get_libdir)"
|
||||
#export STRIP_MASK="
|
||||
# */${local_libdir}/libfreebl3.so*
|
||||
# */${local_libdir}/libnssdbm3.so*
|
||||
# */${local_libdir}/libsoftokn3.so*"
|
||||
|
||||
export NSS_CHK_SIGN_LIBS="freebl3 nssdbm3 softokn3"
|
||||
|
||||
generate_chk() {
|
||||
local shlibsign="$1"
|
||||
local libdir="$2"
|
||||
einfo "Resigning core NSS libraries for FIPS validation"
|
||||
shift 2
|
||||
local i
|
||||
for i in ${NSS_CHK_SIGN_LIBS} ; do
|
||||
local libname=lib${i}.so
|
||||
local chkname=lib${i}.chk
|
||||
"${shlibsign}" \
|
||||
-i "${libdir}"/${libname} \
|
||||
-o "${libdir}"/${chkname}.tmp \
|
||||
&& mv -f \
|
||||
"${libdir}"/${chkname}.tmp \
|
||||
"${libdir}"/${chkname} \
|
||||
|| die "Failed to sign ${libname}"
|
||||
done
|
||||
}
|
||||
|
||||
cleanup_chk() {
|
||||
local libdir="$1"
|
||||
shift 1
|
||||
local i
|
||||
for i in ${NSS_CHK_SIGN_LIBS} ; do
|
||||
local libfname="${libdir}/lib${i}.so"
|
||||
# If the major version has changed, then we have old chk files.
|
||||
[ ! -f "${libfname}" -a -f "${libfname}.chk" ] \
|
||||
&& rm -f "${libfname}.chk"
|
||||
done
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
pushd dist >/dev/null || die
|
||||
|
||||
dodir /usr/$(get_libdir)
|
||||
cp -L */lib/*$(get_libname) "${ED}"/usr/$(get_libdir) || die "copying shared libs failed"
|
||||
local i
|
||||
for i in crmf freebl nssb nssckfw ; do
|
||||
cp -L */lib/lib${i}.a "${ED}"/usr/$(get_libdir) || die "copying libs failed"
|
||||
done
|
||||
|
||||
# Install nss-config and pkgconfig file
|
||||
dodir /usr/bin
|
||||
cp -L */bin/nss-config "${ED}"/usr/bin || die
|
||||
dodir /usr/$(get_libdir)/pkgconfig
|
||||
cp -L */lib/pkgconfig/nss.pc "${ED}"/usr/$(get_libdir)/pkgconfig || die
|
||||
|
||||
# create an nss-softokn.pc from nss.pc for libfreebl and some private headers
|
||||
# bug 517266
|
||||
sed -e 's#Libs:#Libs: -lfreebl#' \
|
||||
-e 's#Cflags:#Cflags: -I${includedir}/private#' \
|
||||
*/lib/pkgconfig/nss.pc >"${ED}"/usr/$(get_libdir)/pkgconfig/nss-softokn.pc \
|
||||
|| die "could not create nss-softokn.pc"
|
||||
|
||||
# all the include files
|
||||
insinto /usr/include/nss
|
||||
doins public/nss/*.{h,api}
|
||||
insinto /usr/include/nss/private
|
||||
doins private/nss/{blapi,alghmac,cmac}.h
|
||||
|
||||
popd >/dev/null || die
|
||||
|
||||
local f nssutils
|
||||
# Always enabled because we need it for chk generation.
|
||||
nssutils=( shlibsign )
|
||||
|
||||
if multilib_is_native_abi ; then
|
||||
if use utils; then
|
||||
# The tests we do not need to install.
|
||||
#nssutils_test="bltest crmftest dbtest dertimetest
|
||||
#fipstest remtest sdrtest"
|
||||
# checkcert utils has been removed in nss-3.22:
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1187545
|
||||
# https://hg.mozilla.org/projects/nss/rev/df1729d37870
|
||||
# certcgi has been removed in nss-3.36:
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1426602
|
||||
nssutils+=(
|
||||
addbuiltin
|
||||
atob
|
||||
baddbdir
|
||||
btoa
|
||||
certutil
|
||||
cmsutil
|
||||
conflict
|
||||
crlutil
|
||||
derdump
|
||||
digest
|
||||
makepqg
|
||||
mangle
|
||||
modutil
|
||||
multinit
|
||||
nonspr10
|
||||
ocspclnt
|
||||
oidcalc
|
||||
p7content
|
||||
p7env
|
||||
p7sign
|
||||
p7verify
|
||||
pk11mode
|
||||
pk12util
|
||||
pp
|
||||
rsaperf
|
||||
selfserv
|
||||
signtool
|
||||
signver
|
||||
ssltap
|
||||
strsclnt
|
||||
symkeyutil
|
||||
tstclnt
|
||||
vfychain
|
||||
vfyserv
|
||||
)
|
||||
# install man-pages for utils (bug #516810)
|
||||
doman doc/nroff/*.1
|
||||
fi
|
||||
pushd dist/*/bin >/dev/null || die
|
||||
for f in ${nssutils[@]}; do
|
||||
dobin ${f}
|
||||
done
|
||||
popd >/dev/null || die
|
||||
fi
|
||||
|
||||
# Prelink breaks the CHK files. We don't have any reliable way to run
|
||||
# shlibsign after prelink.
|
||||
dodir /etc/prelink.conf.d
|
||||
printf -- "-b ${EPREFIX}/usr/$(get_libdir)/lib%s.so\n" ${NSS_CHK_SIGN_LIBS} \
|
||||
> "${ED}"/etc/prelink.conf.d/nss.conf
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
multilib_pkg_postinst() {
|
||||
# We must re-sign the libraries AFTER they are stripped.
|
||||
local shlibsign="${EROOT}/usr/bin/shlibsign"
|
||||
# See if we can execute it (cross-compiling & such). #436216
|
||||
"${shlibsign}" -h >&/dev/null
|
||||
if [[ $? -gt 1 ]] ; then
|
||||
shlibsign="shlibsign"
|
||||
fi
|
||||
generate_chk "${shlibsign}" "${EROOT}"/usr/$(get_libdir)
|
||||
}
|
||||
|
||||
multilib_foreach_abi multilib_pkg_postinst
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
multilib_pkg_postrm() {
|
||||
cleanup_chk "${EROOT}"/usr/$(get_libdir)
|
||||
}
|
||||
|
||||
multilib_foreach_abi multilib_pkg_postrm
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
DIST pugixml-1.10.tar.gz 381990 BLAKE2B ea446d11fe5213a5250b7e737a9e80a3976454724e1a1c326b689214ad4d3e183abd417a7782b3d5c68a0aabce42228e121352e4d2dd33f5f2bb2334f6c72c27 SHA512 bfc80661005d0a0fb82ca6d5299e5efdd1bb468e11ee52d7ee9367e15776d28efb60266ce03842715cd43aae023afc2b369797bb3cbecd6d6a65c3ae3903e469
|
||||
DIST pugixml-1.11.1.tar.gz 386133 BLAKE2B d3a83a8be1b3e6605d7c9a6dcd48e4d467b44c2070238a01d1f0a511d2936a7a01efb26b080a4beceec7f02869e10392c3023c62d3e84eb94949ebefaceb73f9 SHA512 ab8da8744c4594a947d731a876717287892b64195d44d6e1c518bee5fb712a45b23ac763b12af0ad20c6f2cb74f6b1bae1a68fa90f786851aa6d3f139a32eda6
|
||||
DIST pugixml-1.11.2.tar.gz 386166 BLAKE2B 21dee2f04e8f9d962cd6f0ebf54d608fb0434ed815a13807f5939dea47e98128009b6b918a761b80566b959f1c0651c4b771028515fd9e8b8b51a0e4e592d3dd SHA512 403ef9f642fba6aff2d642399516886c0cda44ca19c58eeb05594aa7220562afbee939a5edab0c85263596834c5bdaea82a346dd8ee00a712e97b564f0d1e52d
|
||||
EBUILD pugixml-1.10.ebuild 571 BLAKE2B 882d1cf798f1b6f033d26204059fef59169588d7f939620f8a61dbbfe582d9c6888bc9918b657841cef5eba110dee6a977dab63a5a2c731ceb2d9a329635d447 SHA512 eefcb601ccfe5aa7c529ab220a1e21faaf3fdf4dfbac06f847e268ec6b784d7f6d3962d57d53b92c0645d735529d7f8ed56009ddbcecedc0f640b5f5f20420ef
|
||||
EBUILD pugixml-1.11.1.ebuild 576 BLAKE2B 03902967dd711c63b01b8e11c1769f769f7b4df57dd889b87f23c316abe8bf746339058de220644decefaf133d8032c45c480cfcf4d51addc164e8894543c800 SHA512 71bc00b077502f5592e41f36ab6faea344caaff4a8e5787c5ddf88f0ff151bc313811594d0ce83e6506a60879c2f8009c7e4c1f49532f2c8ba3a5f6b1499ec28
|
||||
EBUILD pugixml-1.11.2.ebuild 628 BLAKE2B ac10e059167ea8ee686ef044b02da02c14844c9417c34b6362f6338ed01abf002fe1a1e5d47bcc0075c34ae95267654da651cd3db5694a1622aca4649882f43a SHA512 dfc4cb2782e8ee803195b53a3bda79c03a07e858e52867f1b2b8b57f18c1ba2c457cf81e4b344a024415e0d151b65692c9f850077cd634d1b6d987355a2ea297
|
||||
EBUILD pugixml-9999.ebuild 569 BLAKE2B 353fb5e610b766647e1e3bd921a05390dec00f185d193437f96d7a8cf0bbfda8813168243dc80bf0b3cc1fd8c4e1c9e8e83b27590e1a3018f3a5ef1947f66e41 SHA512 248a298f4cde950be75592de172fc89fd36d979fcd76684c63e652456a60cd84a6bc0f2312248de003e4bc0771ce3bf2c9b28ff5c72087be245c202af50fbc99
|
||||
MISC metadata.xml 346 BLAKE2B 68e81d68ef327995169a33c1716bf546958902854870095704000abc97634073a87945a54968a1e167bb94b845032b5ab3d8822b1663e7fb3fdfdb5abaf0d789 SHA512 90152b3b666bf26a6b0be0a411aff980d340ab1b38e2068a170b809c883e7a1c29de6adc0c8aef90b5702682a8fe548ba59e2bf077cc3ad145f9d1e3699afcaa
|
||||
|
Binary file not shown.
@ -1,4 +1,4 @@
|
||||
DIST LuaBitOp-1.0.2.tar.gz 23127 BLAKE2B 97b2ded135903f7bf2165a03d611fc2864336929706eb67097b5d67d0a0ec156c855a1637bc309d8dd03cb68beeda350b33eed7678b82540da54502cf981333a SHA512 a652050ea5c6fbeb8a28b05e2bc4a3550c854cc45f7f42c8c1b0a81f5b76773cdf061e6a839cdb339614118169e578b6e3efa5a3efbe59a2f01874b2fa2b4f2e
|
||||
EBUILD LuaBitOp-1.0.2-r101.ebuild 1631 BLAKE2B 2c52919195e7da8c81e2b6427fbb693af05318f8077f0272d12589d40bd806ef02e113d708df689c7bab9aa2aca036a6bfe8ed6006c40d203605a3ed31a4648c SHA512 f073997ad8187b8ae4594a12c37475d0923dec5b497354065648ef0ab35fef39f7b94945642224686f8b2974fbec72e349bb9be55a449cec0716e8b9170d94cc
|
||||
EBUILD LuaBitOp-1.0.2-r102.ebuild 1314 BLAKE2B c269057aea56127df9ee08cb46684933089116797df3dc110621a50fd389cdc15a7460fa84971ab839d7f78156ccb36867f4cb429cbf5baf43f423c15ce2cb2f SHA512 7c6856d1f1c484832398f6a1bfbbcc144c7474953e31eb069f8f4b5a20ee1062a1f3b67872f39d36be80dcf5d181fc58b27c07806e4910214d1afb6d5f5d1251
|
||||
EBUILD LuaBitOp-1.0.2-r2.ebuild 917 BLAKE2B 704b906d79e32b01ec82e5fddeb95cabd2edddc1fcb9069f893a34a088bb198c8b277b42e748bfcf5893f5cf6c8b39662b5548f5c0b01807e7c331dca74a6ed3 SHA512 b1cb3b831bc3a60f5dbb840158100c97b91c0cc9fc0f902f60921852c93296116b3977f1d197fa61aac0f562cc4c76f1290ba711e2ef03dadde8eef2336197fb
|
||||
MISC metadata.xml 359 BLAKE2B 79db34737be833f5be7d7cfcfbee74d93b016909b64a8cfeeac382b70f1ef9487630c5dc64dde58d37ae98a16d0ee96f4dbff8667d125f4d0af4a97275a72b78 SHA512 21a61aecfde180a1f2d721eefc332780f6fcabadcecf5d19a00534e65c84e8c538c988239bfc938e4c7c6a60a5915f6f685b882314067521f7c293f37197b96a
|
||||
|
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
DIST luasec-0.9.tar.gz 52163 BLAKE2B fa95ae63b36f138f923dc412f527ff527e4f7562ad177ca7f450ef889e75c204d1bfec3773523fb68865c3846a0edc583cbf903db5233ff080074147f33bfb30 SHA512 ea601016328232ca0ff12be72897eeedac88a78834a63e1c36d2828a3187039665a2c60597b5af1fa6917b6fe87cd292fbcdfabcd67bab968f587e038d52a933
|
||||
EBUILD luasec-0.9-r102.ebuild 1569 BLAKE2B b1b658be0eea29ee65475958bc0de8460df7b2986322b37c71be4fba912d963dcc11e973dd891501fd2e1d596d10174e4289c5c7fa8a8575440a865e42c10ebd SHA512 02c167d22737553543c7a17cc5acc2fd256f4976185f371f15046ef46b8334576566b5dce7d3504bda8bb760c03b3c22dc7ade18b8c95d63f821efbcab5ab638
|
||||
EBUILD luasec-0.9-r102.ebuild 1579 BLAKE2B f92dab9a7a7823ae8c738dfc03449ac9f2f22434db28042ca823ebe79c94dc89a375d9ccbcd11bbe3da8b17d216150d3b71ea56594b0726c98855963589718c8 SHA512 3713916efb58a7989c9728322a9f5996f93d9aff1d87f47c9df7e15936ee50d532fe58b23a0f166e2512da13ab11bc8a3dfd8877b379561d8035f3483d9aedca
|
||||
EBUILD luasec-0.9.ebuild 997 BLAKE2B 5e7ce2c2a4a1168fb844890fc586b6ee5a3d87651910b8d5c70bd3309cd8ae8796b1b77f9ea3a6c42accd4c912048b9de7ed320c2e2147ed000d1aa9a70260af SHA512 ca19f37bc58becf4f8b592f223c5588146cec6821f6c5ca0c9689419ca57795b6fa4b636841bf9f44efaec4aa751230a9f695d9faabb20e1e9acc7f7d25764b2
|
||||
EBUILD luasec-9999.ebuild 1103 BLAKE2B 8d32013bb83b774b57beaeebcdd2687c769c34672be5cbf343155954417850592071591b985fd1771fa7633888a2977c0d92326f5e31732ff7ea141b43f55c3d SHA512 c6c9f13f1b8e62b3f1b4ae06374cdfdd6a99fedbcc61fb4bce8911254e9d295fbdd0f7637ef220a0acc2250a7658e29fb91e0182bc50542e49de51b03bc0cc60
|
||||
MISC metadata.xml 566 BLAKE2B 2a450b74b0f44833f841b701e215721f4055b44a66e43f649e69a4f1c9757985a09a99f8798e7f219349c190f2614733aad757d81e11f610885dbc0fe08b6e6e SHA512 f02b7d7234f4a6d93cd9c734c1b8a8a09b48fb73998d240925329357a6e9dac590aff6ccde697d18698fdbd6f2c69e4d6f5e983affba91b5a84f4f3108e3d660
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue