Merge pull request #564 from dm0-/meson

Add meson
This commit is contained in:
David Michael 2017-07-25 17:30:52 -07:00 committed by GitHub
commit 0ab9dae0d6
2457 changed files with 9311 additions and 11596 deletions

View File

@ -1,7 +1,8 @@
AUX 3.5-secondary-targets.patch 506 SHA256 c8d9a9b1cd71c290a7a2eb7a5a221317732fad763a7c52a80f164df0d43b7678 SHA512 22afcf07040df79b8da32759047be104fc6f47e73ed670bb15e217f1efb0dd9026ccbfe90083561da08aeb1c64c538dc751d03cba7bad172a7c6105c898fb2bc WHIRLPOOL a2e4e125907c20ed67bc382d12896164fc6aea182f1d4f1211163a95ddf81e1f080784f21caa021cd4c8e9f560ec2d94f9d881ce953d59193b10c0cafd354dc3
AUX 3.5.1-cross-compile.patch 2544 SHA256 e735e4a78c3ee39816ba150ef298c5c74070d65afe3b41fd04e0b4fe4f0a9f12 SHA512 9b1adadb3589e42324c9fcd2d2964308943fa25d32992f0cf2e14fbca52d835030ddb91cc43537ae98142347a29c0f93a5eae8406bd46b6f3d4fd6634f2ae82a WHIRLPOOL bbde19e273ac96f007da42083313baadc8969b3591dc724b5d2cc193e9961113ab0841181d12523ce82d76b4193e918bf203ce87fa843e8492217bb61006b032
AUX pydoc.conf 176 SHA256 7a617b3e705d14c30e9c1d49cf88df3985e50d97990f08520d0a67e4afadb6e8 SHA512 d26e3f59d05d68fb7fe330029afbf0b46361bb6b5ca1e5051ecf2a82439885514a3d1faddf939c83c8b58b23d8e16b1c0c8027a1f897c3a7ee2cc8719665b622 WHIRLPOOL 2ae620030dfe06704aa01d7d1e97eabd5d58d53a5439350c9261327e256cb0a7907e2c1d6989a6483bae532967bf23b740064f7725ca149889bc192f11d5142a
AUX pydoc.init 615 SHA256 646d633d8afc9b3aa2305d2fe25908dab5d581aad381375d991fb93de6860c5e SHA512 95a474183870257c63a1a114bd2cacbb3a93738cd2387e4b31d2f62c54207d1f19a7bf2989d2c92a64e34efaf7bb24a097b4a8e6d816e85211668976e4372515 WHIRLPOOL 0e9069cc42a9d002d09ff29b1c49d77ef23543767836f6e6242d35c081a819bb5300e2000f3e7a982c00ef1173abd294fb270f24f07153b0b8afdfd7e9e89e02
AUX 3.6.1-test_socket-AEAD.patch 3501 SHA256 7fcb14190cfb840c76fb2085ac3dfbd5c71cfaceda2d94f8a624ee3e85e87ccf SHA512 7c813ea3c9eb45f50164b58fd4908e6ccf48eba7d027f252a2c13dab09662a52c4d950c4c7583d50a8752848f52e0854e6974d8c2ebbb38a38fedaa97878bc28 WHIRLPOOL d65f5deda806637b51007aa5ae1ab4f628611bfa0fe8fbe39cc2dd8aeb7235c69f9e4a91fee8629edaf7ff18d97e525bafcf5435353fa2fabbaf342cbd4e9054
AUX pydoc.conf 169 SHA256 d6da332ae6d37f5539d8fc8411884a6c251b3769953e884463a622c751aee9a9 SHA512 30d0776a4004cd641e6f283658c3c24915a21ea15fe40e506ff2c3a5f95936aa00c9490b04ab25f29e9b7ac65cd88fd54ca0b08e000e73820b13c7c57c0bf5b2 WHIRLPOOL 672dc72d60180affe13e069094a50476eaeb22a00344accb78d338cad7eaf1b995e8a0595e109cb52a317f41554b5f9cc9e88811b3e63dbd7e30538ae677376b
AUX pydoc.init 600 SHA256 433a5cafa48afced9c37e245e4574d143255535d7eec08be68e11d3aaea00df5 SHA512 9e71ad53486b6882a8441b24225c602195ee33d29dd1b60df27febbc6b752e79929be356152a489f893dcfb11f9c066b999787bc27a8ac61062c86e67a69e87a WHIRLPOOL c75ab03c5b8c37e5723c77f67b998931c0a096ee77a5886288aacdce1e0d59947d351be5d525bec8b812c1dc4fc5247120d69a92c32e7b4b68ba94c4c016f09c
AUX python-2.7.10-cross-compile-warn-test.patch 775 SHA256 d5574b08e9ba7612971565c7a8e9881e4a0a07c63e79c2ca056a51ed1cf2badd SHA512 652941239541f6139ee3580ec0ea5240baf07ae1afb786f76a69b1d748de1f4dda2740a95c28866e9b0b59023410f8a1e86507642595991c0d90d187519cb758 WHIRLPOOL 95c9c404e9788fdbd7a202b7ff6df4010b6c035b097c20d6183919320a794bede013c938a6806365f9bdabd73917576f6ef0a07b20dd4d168fdc294facbfdccf
AUX python-2.7.10-system-libffi.patch 1232 SHA256 d119def22ac8b15da95486981d9ddb2b19199dfeeed364de223c6321d592cdc9 SHA512 3c888638180edc81b98a869478085de63741668ea62bdb919a60708fd64cb394e60f44a3730e2ccf3e41d1d61b72b469242fe2ccd20dc61bc2064b3e759c52bd WHIRLPOOL bf69573ae6b804d44338a64c727f4b4ebde60964b89d546f4ca45d6d03619d84c69c88cc4e72975514c24cd9be31ee7fd9c3ea3cda9bce6384fa5a10cf28b2bd
AUX python-2.7.5-nonfatal-compileall.patch 750 SHA256 3f5a137602f1b3f0522f561c168a740f0080b29c2c888cb3a8dbbcc4407c2d9e SHA512 d2e93e2a6fcd55d516df0ddaca31af97faed677ea6b4be282eb99e7864f8a7399b5ca11139844a4b3c264832183483b0f4c8c9865c05de0e8520e6d2c8f1dbc6 WHIRLPOOL ab576e3a4e67f881d6d5c705503230ace125fe94d907d7f69bb573dd492070b8b34078a2b1205f315eb45244fbae8855c0f15ce35158f1d356f1bd4acf83b3c2
@ -11,17 +12,23 @@ AUX python-3.4.3-ncurses-pkg-config.patch 302 SHA256 43e704d8dc96606d96c5eee82ec
AUX python-3.4.5-cross.patch 494 SHA256 d658fa5c080c5a466668f53c7f0a42cd7d33fc3dcb2318d1d9b4733d423514f8 SHA512 66c387fa873d9aec0aa7ba2d2c6468c315dd44e96434ce6519f79de5ad820928b1b926b0a2e3a94c73d919b8f2d80c3e71964dc6870d2c7e05844a9e3b1866b8 WHIRLPOOL 81f4d23f8d1d2b07219efc3ea1527d9edcb21d8b97dd5fd8a72aec620dfa4701b6df3db9cdaa4e812f11591c95acae8b9d89370562063928c1e8acfa2309800b
AUX python-3.5-distutils-OO-build.patch 3667 SHA256 fc552ecaee8f2b10d96f51d60ad88d13a2593b086f54e8f8fc12766976fc5021 SHA512 5e25d46a7d11b16a7183aaecf82f914506fae552aaaa3d69aca6445c131dff39d4cf13588fa109ce16d41e43355539bee8390a2c454f3696df5a06edb6a5ca77 WHIRLPOOL 9aa810ab40c195a3f62d23439e9b2c49c0873cde6b54f934c54a59756eb4fcaceb30d7692d95f1c65691e8a7c4909b90a910f54cc04d50c859985576fe25c41c
DIST Python-2.7.12.tar.xz 12390820 SHA256 d7837121dd5652a05fef807c361909d255d173280c4e1a4ded94d73d80a1f978 SHA512 6ddbbce47cc49597433d98ca05c2f62f07ed1070807b645602a8e9e9b996adc6fa66fa20a33cd7d23d4e7e925e25071d7301d288149fbe4e8c5f06d5438dda1f WHIRLPOOL fe4224f4c3dc8dc5c49005051da0069922c86f39880a0072c09fac422e1913d924ac695e22be11603a961329dd8c17b1cf7696b31b62ef93398e42745a6446d6
DIST Python-2.7.13.tar.xz 12495628 SHA256 35d543986882f78261f97787fd3e06274bfa6df29fac9b4a94f73930ff98f731 SHA512 f37c9a28ce129d01e63c84d7db627a06402854578f62d17927334ea21ede318e04bbf66e890e3f47c85333e6b19f6e5581fb3f3e27efd24be27017d1b6529c4b WHIRLPOOL 6bb6ad867c856bcaea97d5ad85882d990f5c8169a2450685cb77645f674bead83970c67a6a689ce0807856e366f320a0230250d2239f005f2a64cc32505507a5
DIST Python-3.4.5.tar.xz 14516820 SHA256 ee64b1c8a47461009abf25252332d29a4e587cb4f0c1c96aa793a3732e9d898a SHA512 b548a5338d141b3086dea372fa2cc245ba5350ee9f0d1304ef6222dc45380b66d380b092e547d54206d56ca68563b95036f445f97f72bb0ef1d48f81a74a3d4c WHIRLPOOL 43e0aed0177d46148964447b4fb24475c4c736afb2ba84ec393fbf55db3da3f192308f9c8f236deaa7a608dac56946ee7755970fadaa82bf406c910a05f36883
DIST Python-3.5.2.tar.xz 15222676 SHA256 0010f56100b9b74259ebcd5d4b295a32324b58b517403a10d1a2aa7cb22bca40 SHA512 c07c3366f1c81e214241444bb9da6db9d11da32ad66bfa29cdad5a3b2e34e4d870bda6d4ce3c3910b582942e91f1d8c8a1c1a7b9464cc147b83c9e0007012742 WHIRLPOOL cf55d67f362b6a7529d43bb5aa8014c8349be190c6d4dae9d48de1679ab8623087478f41686cdced981cf18bb3d107052732cd437ff31ba5de2cc06b04ec2289
DIST Python-3.6.0.tar.xz 16805836 SHA256 b0c5f904f685e32d9232f7bdcbece9819a892929063b6e385414ad2dd6a23622 SHA512 9d06bee9172bc0bfd2d280fd1c27ea712f3258cfbfd2e2aeb734d0a6710998d5deeefc5d6e72251750dd9493d35461511ceaa187a29dea700ca238ff6ac1dbb2 WHIRLPOOL 4fbe3b971ff6fca4349c74ca07ade0406ae70e0d201cb7689e95744a6f39d1bcc010eb426f4e02aa8f692828aa996aa5c7656b8031503b342b9b4a42beeb7827
DIST Python-3.4.6.tar.xz 14473592 SHA256 f13428bbe6aa9e3b9b6499502dc488c26096349ed7a21f7a0c1db90911115f40 SHA512 f6785cf6a99a8a27823baefe59cc20e34cbec01bb444c8600e7f49b5437159d5137f9d80fce26e219846d71bfe98f68bc6f0c87719a34db0050a4eaca95959ac WHIRLPOOL d76c18cd247a953ff836cea1ead6f9fb71637938f8bdc91376f06841069944863ac3f6fa536fd0102279e828149c3280b48a48c8d0eaca70df2941a3f38a18ed
DIST Python-3.5.3.tar.xz 15213396 SHA256 eefe2ad6575855423ab630f5b51a8ef6e5556f774584c06beab4926f930ddbb0 SHA512 bbcc20e315c63dbc8901d7e7bfa29d4dbdad9335720757d8d679730319fd1d9fcfdb55cf62d620c9b052134170f162c28d653a8af60923185b8932524d827864 WHIRLPOOL 8aecc4dd97342d23b61cbef686f8324d4e9ee970e40745f88027bca63cf144cfa454e4d88ac52d508126c26f1ddb18617d0ff37f036438f08842998ed9e06066
DIST Python-3.6.1.tar.xz 16872064 SHA256 a01810ddfcec216bcdb357a84bfaafdfaa0ca42bbdaa4cb7ff74f5a9961e4041 SHA512 8605fb7019386fec227d4b06d06f00ae500a8a89df289bfe6141bb56196c75483a60cc0ee553930742b31cefce68add5ccf226e0f27b7b915f5026d597e1ac29 WHIRLPOOL 94309888496431e974463c42375df5eb067321687d47e81efebd36aac322d44bb76f274c0595c7e9de2ea35ead594d0b261e1be2ec31914a812e654c71fff105
DIST python-gentoo-patches-2.7.12-0.tar.xz 13576 SHA256 cd842eec7202df57c153adc1fbb81e70b26ef651f8e9346e065d8577b93f343b SHA512 8bf530fca15c47fa5d9bc958e433b35943a12c98e4172806a45aa60dc85ec92f8ab6ffcd90f752dc5bf8ffc711414894c15820c4b6ef72dbcedc2808119fb1f6 WHIRLPOOL 54b8ca6a4371d460dadccfdffcc096c12930d58714eef95117a658d7a1337ea89c45c69553b5b993017211faaa0f8d670e09a8452e53c0fb176be3e908524ee6
DIST python-gentoo-patches-2.7.13-0.tar.xz 13292 SHA256 271835eb36125d09cc5e904ef23a5263acd8e5f513202a8d4f8a9a0f64fc80a8 SHA512 d70f6baba1a465a752c515e33dfdee2a5cc75400fadfb8ea0bd1e82d50089abdf02d7726c697850dc47de2054aa494bbdc08de2673c260b54e609f29dab259ad WHIRLPOOL 6a6d8b099fa814839bf5b3455b3889205c649ef522b35c3a501831d63d0e916d7747b83ac9b8991f8f8c34b328478d84cf7a12a32161ce0fec37204f9c019e2d
DIST python-gentoo-patches-3.4.5-0.tar.xz 12044 SHA256 84ee7630670a1dac4bbbc55fabf5f99b5b29007de4f140ad956e93d2e7aba8fa SHA512 108a4845667ecdf4001fcbeffab0cfbbac87439a449a7351428b0f3e2f159e3848ee0c0dfa45c9fba893b9f9584b33722fc8bb0bd7485a1d0909c3a35ede6ed8 WHIRLPOOL f0248faa0b4ce5679e37381bba90f8a4d361a49db792787bffc06a54a4bc82fea4d53255120f10e6dbf51b99e12417fc1b469be9624e73508fa3a212a38e7352
DIST python-gentoo-patches-3.5.2-0.tar.xz 12008 SHA256 eb898fb448bd40f086ae2910e94c608faa932eb377fe40bd34f4390b4c37aac1 SHA512 e2ef1b8f10f9ea849bf52a0be65d48f7cfecf07bdf151cbbd7e3a1c9428a8d96e901650496c4ae7fd0093af8cc90de8df674dc1a4c66ad21916a4ee45a81efc8 WHIRLPOOL 66b99c7c50e3eaca783f773349b3e8a357f706a7da6a66bd2e0a53946bc81d965ac99d8fd4c50ba7e42052aa84508c8aede5eacedbb95f040a48cf1a5de6b6b0
DIST python-gentoo-patches-3.4.6-0.tar.xz 11728 SHA256 93e7c8487deefc36c612403fb6c82e495c46846a1952f9ed85f82af41840be4a SHA512 41c22dc8f1db8800fc0b97eed2b27bf1873e5de1369bd4aecf7a7a91e609a78e45a4b56fc89d575317f33a7704c0c1cad1494e8a993415a198f256e8338f49ab WHIRLPOOL 851945e7ccea985a88bcbd71bc404bc34c27a0e335386e9ed15fa9876aab3285ff559936fb2dcadf7ac0594a7cb03ac3a9e4135b67b350c5fdf33e9a44ca0654
DIST python-gentoo-patches-3.5.3-0.tar.xz 11740 SHA256 34e83921697c31a5470afc09b8601b4f54466ac75b3b8ed3ed71af218af10d1c SHA512 16357e49573ea6abe6f106327c0f733312653c68726c4c3f0d1ec21df6d22bc69e512a28131b3a81eb2261e32376811a839b16604e72c7fb5abb7a692840228d WHIRLPOOL 99d3eb0a132f674b998e467a5d89e73d26cf547613034938ad255ccad9d34852b6b18a3da39659c8164b196788bdc90bf2e8ebc5c8c0c4f6fb6fc45fcdd406f5
DIST python-gentoo-patches-3.6.0-0.tar.xz 10680 SHA256 ecf78d292f2fef1116b41c3884f492d41ea716a14f0a21755ba2f8d76aefe1a7 SHA512 f340643cf338c693ce315fab705ba888040a2989b0887686d43886319419245c24bb46ebb71cea422644f1f3beaf64289b773e72db3377187bf11a83f9313a90 WHIRLPOOL 4a4d12ea0dbb03b5d2730db40b5aebe4c1c937cfe63341c775431dc06a3b60552b9390fdf9b7fff5e50024a93d11b269ef80a95afcf308327943f7003dd4c379
EBUILD python-2.7.12.ebuild 10634 SHA256 9c45ec690cf99c3cd29ce91e2f7cc79a34775f7fdb543e7c472d18ff2f49c32c SHA512 b3ca79edefe521f85fe4c229512429cf8126a84a648baaaee4d09f40502f3e0e13b0c9292dbcbf8c139b8226cc68d57d0ce50ca9b5d5ab940511654e0220aa44 WHIRLPOOL cde0aafe095699b3c9d58a791a8eb61433d11c58b1b177e178505d7d903e78f82aa39765aa7317a0cafe1ee3bb24f791cb0fa4d18bbe1a45bb23f719b83f2c97
EBUILD python-3.4.5.ebuild 10498 SHA256 acf174c385afe5b7f963081197f095dc6f4c23b4e9776614d1bc2c1db4fa02bb SHA512 ee8d5eeec1b0ab61c3c6d223feeadaf60229597d1f524d27ac305e6c386f99d563a83fd0c5a48ef8b824ca17540fc66471e09e3d569b2e55897ee1928e1b79f8 WHIRLPOOL 63c639168395155a8b2fc1d444220c9aaf56850750a0c86aceeb7b07af999a25de18bdd29e88f31a522c3dbb857de20b6a56f1c1368f68c4a5ea9fed3a08b07d
EBUILD python-3.5.2.ebuild 10621 SHA256 aa9cfc02188bc3505cab1bc48fbeb1775f12002431cac70b60f7df4e8999bb0b SHA512 2d55613564238b30da7b25cba3fab72eeb548726f7b9e691eea7c19c1636990a2bec20ce1b7202dcd072fc4dac3f68c4995c681d8e0ee83b8baa9eb3a8a057e4 WHIRLPOOL 95983e4a2aae4cf1377329bebcf27f851abcb651993ea91bb4e9e2658bc447e27b1f2bac3b4680b478edc8459c806f40db3396e6a563fda0c4a5bf961f37b4ca
EBUILD python-3.6.0.ebuild 9959 SHA256 a60eaf0737f776efa37f0331172c6076031dfeba6cb2356427209baae667e4c7 SHA512 5a4a2235bc14abdf3575006f77efc12dd8123434bff3054ce41c288d715f485612c54544c696cf471d94a87da6e1ae8ba7f27dbfb43d36fb79c9bb830b9048e2 WHIRLPOOL 7f07e025c6d8226546ef02ba4acd5205d06688cbafd1f46452a247d6bc6a4f9e688157545564b6303e167bdbe41351ef8e905c5bccb6485aa6b620ca92fb49bd
EBUILD python-2.7.12.ebuild 10749 SHA256 223bd5f6858be3f3f0afe5b202aac28706f0a4a6e52f0a2dbc1354a6e1ef0ee3 SHA512 13559cffb1c4aec2f5f1a13f138c321c57b384910a2e4a7d499ec25a2275918173f391fcd947574da6f41f0d64ed324591ed348d1299af22cae507d04c732e1b WHIRLPOOL 01458e08197fb83ebfa48ef2732f504a6152814235a70efe3bafa82c6cb624a4cf9e7788e3bc9a2605cd9bce34d60d2d4cda5f0daa5cb314e70351ed2acc34c9
EBUILD python-2.7.13.ebuild 10759 SHA256 8ef2c03dee74179a2818cce7234ed83c9a4dacbc543d6c0f34ab5f98c534a6e9 SHA512 602d65b49f232e1801e493993bc849948222208e9175472b8a1ec7dd6b802cc77878b047716a452c81899f5a12fad046011e89bc0ab46095dc702280ce160e3e WHIRLPOOL 47832f73d58e7f789b1b0f2b920e3ff9186a6cb137b63a889ca9f80de54b88f3dbcad6a96aa7b52e8f77c03e57b1c7d62f7b9a56e1e0b9a426d36da954155e9a
EBUILD python-3.4.5.ebuild 10491 SHA256 651d9917afde4802377f47cb4ade1653e7343ba49122d21d0702b5368dbccf89 SHA512 da67e6ff2c14404a51f9e39dd07caafdc83148298c75f1fe675d491a18d51ac543e2ae97330794c98bfc36f7cb666dd59bc89afd49c456617e28cdfe4a238857 WHIRLPOOL 05838edb2eb85480a29c5ee124632d7f2590058f7b97432a23e9d97da6e2d1709a38965279236306e99cbeb2f6c07bf62c0e2f633adfa95fbdf07e151b3fa9a2
EBUILD python-3.4.6.ebuild 10504 SHA256 4171b8462674a50332dea2bc64428ab6d70009abe5922f858432929e29c51198 SHA512 f748d2234fc6494a1a5b94808bb7947fd3a45e800f1ddae5e1d9ad53752a498ec0020d9e91b44642e8fdeb577dc673a891458fd295ac9ed9123af2f117b770e6 WHIRLPOOL 94aba89be90b1b01abbf7b95066a57f767a6cafe02a71de9519322d0ee80b5f6bfb332981649428a5311b6b18f443bf597e1848b87addd22d5d4f42b23f81be0
EBUILD python-3.5.3.ebuild 10614 SHA256 f99ed7346db3aa18325cef9a2525916f493cac48f6476150edb2660ac6e7871d SHA512 cbadd86af7dad5e2303c115114e14dcb7af03eb616638888bf3f8c08d70d515e6b328c884b985d29f2c044a80218869f4c577bfb9c0af75cea0791cb26ac48a0 WHIRLPOOL 65d3c93af52689e28dfa9f80b1b9014f129a165d7db25674ab5416cc6979ecb874c71d5a95edbfaa7c9dfd08698a053f6b0534f04fe0fff2197c9009aa838a5f
EBUILD python-3.6.1-r1.ebuild 10060 SHA256 d79be2c4e76671c81391be1e2a24850fc9c45be9745592fc61405d7138814c2e SHA512 41220a98e9ef6165c157bc3134a239e53e38e6393ec064de4e91befc62da413306a9719a03a59a8e6edc03b392a07ff8ab62485c5269a253dabbf6b0b5c69b55 WHIRLPOOL 638eee74858b02da97e070567d307de2124bcd2608eef604224c0455216c73639a32ec071ced383d3eac5ea85c4f7bc29d7807f26069e5c8921b6134fa267ba4
MISC ChangeLog 26323 SHA256 942a60afe8ad4d69f054645a4220ad8dc2eae24225f3c25acb6f71dead64fb82 SHA512 77a389f32babcce473a772076c963471c07c5c6dd6587d6df9c8a24384076b384ffcc3483848a08fa34032e61845bdfc17ddd2e15073cc68a66db8563470fc76 WHIRLPOOL 89485d421006e31d992195eb23af7cf0ddb37788550741b8f38a5fef97d003b59802f55c950128c06404d777a5dbf7a87e01eabe6554e19c17ada4bb713c696b
MISC ChangeLog-2011 100599 SHA256 23129cb47321b2a6b1cb9323f1815d0cd11d6f30c3893908ed51575c270a0cc8 SHA512 4181ba9d965139ba58218da5b960c87b7a611b27606a1ab1ce1b4c3c9255b4e0e2947307cbfffc531f0f8b6b545ee11e083fcb29dc7b2b7ba31c6bb40b8ab128 WHIRLPOOL 4ceebb6a6ed58b906d3a7331795748ac6e4fe2e1401bcccae9024a8e81e2c444aebc5fec610398cfe6002354ad3b10487484598da5091867874727f07e239c56
MISC ChangeLog-2015 40926 SHA256 f5d1dfa6038a588334062ea3e00e9ef9647ef13c7d667a0288a0cec4958aaa85 SHA512 36477f494cfe71e85401b97f1bf5035ebe255e4995886b74a2d535c9d77ca287d324adf239a3213e3be010793835d88f3f513b869bbeee57feb3cb2737549530 WHIRLPOOL b80dc69c8fa4666dbeb71e13c801ed332fbb80141076dc31e1e5b91f34531727f9b2004bee04b2415ad709c77e0be23318e96f4a7219c05dec79f99c22ffc853

View File

@ -0,0 +1,75 @@
From 4ac01f0ff3e3c9c02f5cc8c55f2fbe4639808f5e Mon Sep 17 00:00:00 2001
From: Mariatta <Mariatta@users.noreply.github.com>
Date: Thu, 16 Mar 2017 20:58:42 -0700
Subject: [PATCH] update test_socket AEAD test for kernel 4.9 and up (GH-133)
(GH-548)
(cherry picked from commit 9764c151c51480a7ca6042b1ccd69be2620ff360)
---
Lib/test/test_socket.py | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index 5315d475df..1508f20c9f 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -5479,7 +5479,7 @@ class LinuxKernelCryptoAPI(unittest.TestCase):
self.assertEqual(len(dec), msglen * multiplier)
self.assertEqual(dec, msg * multiplier)
- @support.requires_linux_version(4, 3) # see test_aes_cbc
+ @support.requires_linux_version(4, 9) # see issue29324
def test_aead_aes_gcm(self):
key = bytes.fromhex('c939cc13397c1d37de6ae0e1cb7c423c')
iv = bytes.fromhex('b3d8cc017cbb89b39e0f67e2')
@@ -5502,8 +5502,7 @@ class LinuxKernelCryptoAPI(unittest.TestCase):
op.sendmsg_afalg(op=socket.ALG_OP_ENCRYPT, iv=iv,
assoclen=assoclen, flags=socket.MSG_MORE)
op.sendall(assoc, socket.MSG_MORE)
- op.sendall(plain, socket.MSG_MORE)
- op.sendall(b'\x00' * taglen)
+ op.sendall(plain)
res = op.recv(assoclen + len(plain) + taglen)
self.assertEqual(expected_ct, res[assoclen:-taglen])
self.assertEqual(expected_tag, res[-taglen:])
@@ -5511,7 +5510,7 @@ class LinuxKernelCryptoAPI(unittest.TestCase):
# now with msg
op, _ = algo.accept()
with op:
- msg = assoc + plain + b'\x00' * taglen
+ msg = assoc + plain
op.sendmsg_afalg([msg], op=socket.ALG_OP_ENCRYPT, iv=iv,
assoclen=assoclen)
res = op.recv(assoclen + len(plain) + taglen)
@@ -5522,7 +5521,7 @@ class LinuxKernelCryptoAPI(unittest.TestCase):
pack_uint32 = struct.Struct('I').pack
op, _ = algo.accept()
with op:
- msg = assoc + plain + b'\x00' * taglen
+ msg = assoc + plain
op.sendmsg(
[msg],
([socket.SOL_ALG, socket.ALG_SET_OP, pack_uint32(socket.ALG_OP_ENCRYPT)],
@@ -5530,7 +5529,7 @@ class LinuxKernelCryptoAPI(unittest.TestCase):
[socket.SOL_ALG, socket.ALG_SET_AEAD_ASSOCLEN, pack_uint32(assoclen)],
)
)
- res = op.recv(len(msg))
+ res = op.recv(len(msg) + taglen)
self.assertEqual(expected_ct, res[assoclen:-taglen])
self.assertEqual(expected_tag, res[-taglen:])
@@ -5540,8 +5539,8 @@ class LinuxKernelCryptoAPI(unittest.TestCase):
msg = assoc + expected_ct + expected_tag
op.sendmsg_afalg([msg], op=socket.ALG_OP_DECRYPT, iv=iv,
assoclen=assoclen)
- res = op.recv(len(msg))
- self.assertEqual(plain, res[assoclen:-taglen])
+ res = op.recv(len(msg) - taglen)
+ self.assertEqual(plain, res[assoclen:])
@support.requires_linux_version(4, 3) # see test_aes_cbc
def test_drbg_pr_sha256(self):
--
2.12.2

View File

@ -1,5 +1,4 @@
# /etc/init.d/pydoc.conf
# $Id$
# This file contains the configuration for pydoc's internal webserver.

View File

@ -1,7 +1,6 @@
#!/sbin/openrc-run
# Copyright 1999-2016 Gentoo Technologies, Inc.
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public Licence v2
# $Id$
start() {
local pydoc_port="${@PYDOC_PORT_VARIABLE@-${PYDOC_PORT}}"

View File

@ -1,6 +1,5 @@
# Copyright 1999-2016 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="5"
WANT_LIBTOOL="none"
@ -240,6 +239,11 @@ src_test() {
mv "${S}"/Lib/test/test_${test}.py "${T}"
done
# 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="$?"

View File

@ -0,0 +1,365 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="5"
WANT_LIBTOOL="none"
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
MY_P="Python-${PV}"
PATCHSET_VERSION="2.7.13-0"
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
HOMEPAGE="http://www.python.org/"
SRC_URI="https://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz
https://dev.gentoo.org/~floppym/python/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz"
LICENSE="PSF-2"
SLOT="2.7"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
IUSE="-berkdb build doc 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:0=
>=sys-libs/zlib-1.1.3:0=
virtual/libffi
virtual/libintl
berkdb? ( || (
sys-libs/db:5.3
sys-libs/db:5.2
sys-libs/db:5.1
sys-libs/db:5.0
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:0=[berkdb] )
ncurses? (
>=sys-libs/ncurses-5.2:0=
readline? ( >=sys-libs/readline-4.1:0= )
)
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
ssl? (
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl:= )
)
tk? (
>=dev-lang/tcl-8.0:0=
>=dev-lang/tk-8.0:0=
dev-tcltk/blt:0=
dev-tcltk/tix
)
xml? ( >=dev-libs/expat-2.1 )
!!<sys-apps/portage-2.1.9"
DEPEND="${RDEPEND}
virtual/pkgconfig
>=sys-devel/autoconf-2.65
!sys-devel/gcc[libffi(-)]"
RDEPEND+=" !build? ( app-misc/mime-types )
doc? ( dev-python/python-docs:${SLOT} )"
PDEPEND=">=app-eselect/eselect-python-20140125-r1"
S="${WORKDIR}/${MY_P}"
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 -r Modules/expat || die
rm -r Modules/_ctypes/libffi* || die
rm -r Modules/zlib || die
if tc-is-cross-compiler; then
local EPATCH_EXCLUDE="*_regenerate_platform-specific_modules.patch"
fi
EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
# Fix for cross-compiling.
epatch "${FILESDIR}/python-2.7.5-nonfatal-compileall.patch"
epatch "${FILESDIR}/python-2.7.9-ncurses-pkg-config.patch"
epatch "${FILESDIR}/python-2.7.10-cross-compile-warn-test.patch"
epatch "${FILESDIR}/python-2.7.10-system-libffi.patch"
epatch_user
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"
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
BUILD_DIR="${WORKDIR}/${CHOST}"
mkdir -p "${BUILD_DIR}" || die
cd "${BUILD_DIR}" || die
ECONF_SOURCE="${S}" OPT="" \
econf \
--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
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() {
# Avoid invoking pgen for cross-compiles.
touch Include/graminit.h Python/graminit.c
cd "${BUILD_DIR}" || die
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
cd "${BUILD_DIR}" || die
# Skip failing tests.
local skipped_tests="distutils gdb"
for test in ${skipped_tests}; do
mv "${S}"/Lib/test/test_${test}.py "${T}"
done
# 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${SLOT}/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${SLOT}
cd "${BUILD_DIR}" || die
emake DESTDIR="${D}" altinstall
sed -e "s/\(LDFLAGS=\).*/\1/" -i "${libdir}/config/Makefile" || die "sed failed"
# Fix collisions between different slots of Python.
mv "${ED}usr/bin/2to3" "${ED}usr/bin/2to3-${SLOT}"
mv "${ED}usr/bin/pydoc" "${ED}usr/bin/pydoc${SLOT}"
mv "${ED}usr/bin/idle" "${ED}usr/bin/idle${SLOT}"
rm -f "${ED}usr/bin/smtpd.py"
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${SLOT}" "${libdir}/"{idlelib,lib-tk} || die
use elibc_uclibc && rm -fr "${libdir}/"{bsddb/test,test}
use threads || rm -r "${libdir}/multiprocessing" || die
use wininst || rm -r "${libdir}/distutils/command/"wininst-*.exe || die
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS}
if use examples; then
insinto /usr/share/doc/${PF}/examples
doins -r "${S}"/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-${SLOT}
newinitd "${FILESDIR}/pydoc.init" pydoc-${SLOT}
sed \
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${SLOT/./_}_PORT:" \
-e "s:@PYDOC@:pydoc${SLOT}:" \
-i "${ED}etc/conf.d/pydoc-${SLOT}" "${ED}etc/init.d/pydoc-${SLOT}" || die "sed failed"
# for python-exec
local vars=( EPYTHON PYTHON_SITEDIR PYTHON_SCRIPTDIR )
# 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}:}.
else
vars=( PYTHON "${vars[@]}" )
fi
python_export "python${SLOT}" "${vars[@]}"
echo "EPYTHON='${EPYTHON}'" > epython.py || die
python_domodule epython.py
# python-exec wrapping support
local pymajor=${SLOT%.*}
mkdir -p "${D}${PYTHON_SCRIPTDIR}" || die
# python and pythonX
ln -s "../../../bin/python${SLOT}" \
"${D}${PYTHON_SCRIPTDIR}/python${pymajor}" || die
ln -s "python${pymajor}" \
"${D}${PYTHON_SCRIPTDIR}/python" || die
# python-config and pythonX-config
ln -s "../../../bin/python${SLOT}-config" \
"${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" || die
ln -s "python${pymajor}-config" \
"${D}${PYTHON_SCRIPTDIR}/python-config" || die
# 2to3, pydoc, pyvenv
ln -s "../../../bin/2to3-${SLOT}" \
"${D}${PYTHON_SCRIPTDIR}/2to3" || die
ln -s "../../../bin/pydoc${SLOT}" \
"${D}${PYTHON_SCRIPTDIR}/pydoc" || die
# idle
if use tk; then
ln -s "../../../bin/idle${SLOT}" \
"${D}${PYTHON_SCRIPTDIR}/idle" || die
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
}
pkg_postrm() {
eselect_python_update
}

View File

@ -1,6 +1,5 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="5"
WANT_LIBTOOL="none"

View File

@ -0,0 +1,356 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="5"
WANT_LIBTOOL="none"
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
MY_P="Python-${PV/_/}"
PATCHSET_VERSION="3.4.6-0"
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
HOMEPAGE="http://www.python.org/"
SRC_URI="http://www.python.org/ftp/python/${PV%_rc*}/${MY_P}.tar.xz
https://dev.gentoo.org/~floppym/python/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz"
LICENSE="PSF-2"
SLOT="3.4/3.4m"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
IUSE="build elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl +threads tk 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:0=
app-arch/xz-utils:0=
>=sys-libs/zlib-1.1.3:0=
virtual/libffi
virtual/libintl
gdbm? ( sys-libs/gdbm:0=[berkdb] )
ncurses? (
>=sys-libs/ncurses-5.2:0=
readline? ( >=sys-libs/readline-4.1:0= )
)
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
ssl? (
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl:= )
)
tk? (
>=dev-lang/tcl-8.0:0=
>=dev-lang/tk-8.0:0=
dev-tcltk/blt:0=
dev-tcltk/tix
)
xml? ( >=dev-libs/expat-2.1:0= )
!!<sys-apps/sandbox-2.6-r1"
DEPEND="${RDEPEND}
virtual/pkgconfig
>=sys-devel/autoconf-2.65
!sys-devel/gcc[libffi(-)]"
RDEPEND+=" !build? ( app-misc/mime-types )"
PDEPEND=">=app-eselect/eselect-python-20140125-r1"
S="${WORKDIR}/${MY_P}"
PYVER=${SLOT%/*}
src_prepare() {
# Ensure that internal copies of expat, libffi and zlib are not used.
rm -fr Modules/expat
rm -fr Modules/_ctypes/libffi*
rm -fr Modules/zlib
if tc-is-cross-compiler; then
# Invokes BUILDPYTHON, which is built for the host arch
local EPATCH_EXCLUDE="*_regenerate_platform-specific_modules.patch"
fi
EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
epatch "${FILESDIR}/${PN}-3.4.3-ncurses-pkg-config.patch"
epatch "${FILESDIR}/${PN}-3.4.5-cross.patch"
epatch_user
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
configure.ac \
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() {
local disable
use gdbm || disable+=" gdbm"
use ncurses || disable+=" _curses _curses_panel"
use readline || disable+=" readline"
use sqlite || disable+=" _sqlite3"
use ssl || export PYTHON_DISABLE_SSL="1"
use tk || disable+=" _tkinter"
use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
export PYTHON_DISABLE_MODULES="${disable}"
if ! use xml; then
ewarn "You have configured Python without XML support."
ewarn "This is NOT a recommended configuration as you"
ewarn "may face problems parsing any XML documents."
fi
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
fi
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
# 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 -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
BUILD_DIR="${WORKDIR}/${CHOST}"
mkdir -p "${BUILD_DIR}" || die
cd "${BUILD_DIR}" || die
ECONF_SOURCE="${S}" OPT="" \
econf \
--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 \
--with-system-expat \
--with-system-ffi \
--without-ensurepip
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 || die
cd "${BUILD_DIR}" || die
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
cd "${BUILD_DIR}" || die
# Skip failing tests.
local skipped_tests="gdb"
for test in ${skipped_tests}; do
mv "${S}"/Lib/test/test_${test}.py "${T}"
done
local -x PYTHONDONTWRITEBYTECODE=
emake test EXTRATESTOPTS="-u-network" 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}
cd "${BUILD_DIR}" || die
emake DESTDIR="${D}" altinstall
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 -f "${ED}usr/$(get_libdir)/libpython3.so"
# 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
use elibc_uclibc && rm -fr "${libdir}/test"
use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*}
use tk || rm -fr "${ED}usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*}
use threads || rm -fr "${libdir}/multiprocessing"
use wininst || rm -f "${libdir}/distutils/command/"wininst-*.exe
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS}
if use examples; then
insinto /usr/share/doc/${PF}/examples
find "${S}"/Tools -name __pycache__ -print0 | xargs -0 rm -fr
doins -r "${S}"/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"
# for python-exec
local vars=( EPYTHON PYTHON_SITEDIR PYTHON_SCRIPTDIR )
# 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}:}.
else
vars=( PYTHON "${vars[@]}" )
fi
python_export "python${PYVER}" "${vars[@]}"
echo "EPYTHON='${EPYTHON}'" > epython.py || die
python_domodule epython.py
# python-exec wrapping support
local pymajor=${PYVER%.*}
mkdir -p "${D}${PYTHON_SCRIPTDIR}" || die
# python and pythonX
ln -s "../../../bin/${abiver}" \
"${D}${PYTHON_SCRIPTDIR}/python${pymajor}" || die
ln -s "python${pymajor}" \
"${D}${PYTHON_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 > "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" <<-EOF || die
#!/bin/sh
exec "${abiver}-config" "\${@}"
EOF
chmod +x "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" || die
ln -s "python${pymajor}-config" \
"${D}${PYTHON_SCRIPTDIR}/python-config" || die
# 2to3, pydoc, pyvenv
ln -s "../../../bin/2to3-${PYVER}" \
"${D}${PYTHON_SCRIPTDIR}/2to3" || die
ln -s "../../../bin/pydoc${PYVER}" \
"${D}${PYTHON_SCRIPTDIR}/pydoc" || die
ln -s "../../../bin/pyvenv-${PYVER}" \
"${D}${PYTHON_SCRIPTDIR}/pyvenv" || die
# idle
if use tk; then
ln -s "../../../bin/idle${PYVER}" \
"${D}${PYTHON_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
}

View File

@ -1,6 +1,5 @@
# Copyright 1999-2016 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="5"
WANT_LIBTOOL="none"
@ -8,7 +7,7 @@ WANT_LIBTOOL="none"
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs
MY_P="Python-${PV/_/}"
PATCHSET_VERSION="3.5.2-0"
PATCHSET_VERSION="3.5.3-0"
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
HOMEPAGE="http://www.python.org/"

View File

@ -1,6 +1,5 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="5"
WANT_LIBTOOL="none"
@ -64,6 +63,8 @@ src_prepare() {
rm -fr Modules/zlib
EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
epatch "${FILESDIR}/${PN}-3.5-distutils-OO-build.patch"
epatch "${FILESDIR}/3.6.1-test_socket-AEAD.patch"
epatch_user

View File

@ -1,167 +0,0 @@
# ChangeLog for dev-libs/yajl
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-libs/yajl/ChangeLog,v 1.39 2014/06/22 10:01:32 mgorny Exp $
*yajl-1.0.11-r1 (22 Jun 2014)
22 Jun 2014; Michał Górny <mgorny@gentoo.org> +yajl-1.0.11-r1.ebuild:
Enable multilib support on yajl-1, needed by app-admin/elektra.
*yajl-2.0.4-r3 (16 Jun 2014)
16 Jun 2014; Julian Ospald <hasufell@gentoo.org> +yajl-2.0.4-r3.ebuild,
+files/yajl-2.0.4-pkgconfig_multilib.patch:
fix .pc install destination wrt #480598
26 Jun 2013; Michael Weber <xmw@gentoo.org>
-files/yajl-2.0.4-remove_static_lib.patch, yajl-2.0.4-r2.ebuild:
fix USE=-static-libs (patch did not work, just remove .a after build/install,
bug 474814 by patrick), fix src_test.
*yajl-2.0.4-r2 (23 Jun 2013)
23 Jun 2013; Michael Weber <xmw@gentoo.org>
+files/yajl-2.0.4-remove_static_lib.patch, +yajl-2.0.4-r2.ebuild,
-yajl-1.0.11-r1.ebuild, -yajl-2.0.2.ebuild, -yajl-2.0.4.ebuild:
Revbump, USE=static-libs (bug 447376, thanks ago), fix multilib test (bug
467808, thanks Alphat-PC). Drop old.
*yajl-2.0.4-r1 (25 Apr 2013)
25 Apr 2013; Michael Weber <xmw@gentoo.org> +yajl-2.0.4-r1.ebuild,
metadata.xml:
revbump to cmake-multilib, add myself as maint (bug 466820)
13 Apr 2013; Agostino Sarubbo <ago@gentoo.org> yajl-2.0.3.ebuild:
Stable for sparc, wrt bug #464112
12 Apr 2013; Agostino Sarubbo <ago@gentoo.org> yajl-2.0.3.ebuild:
Stable for ia64, wrt bug #464112
12 Apr 2013; Agostino Sarubbo <ago@gentoo.org> yajl-2.0.3.ebuild:
Stable for alpha, wrt bug #464112
06 Jan 2013; Agostino Sarubbo <ago@gentoo.org> yajl-2.0.4.ebuild:
Add ~sparc, wrt bug #449220
01 Jan 2013; Agostino Sarubbo <ago@gentoo.org> yajl-2.0.4.ebuild:
Add ~alpha, wrt bug #449220
01 Jan 2013; Agostino Sarubbo <ago@gentoo.org> yajl-2.0.4.ebuild:
Add ~ia64, wrt bug #449220
29 May 2012; Brent Baude <ranger@gentoo.org> yajl-2.0.3.ebuild:
Marking yajl-2.0.3 ppc64 for bug 402287
29 May 2012; Michael Weber <xmw@gentoo.org> yajl-2.0.3.ebuild:
ppc stable (bug 402287)
18 May 2012; Alexis Ballier <aballier@gentoo.org> yajl-2.0.4.ebuild:
keyword ~amd64-fbsd
12 May 2012; Markus Meier <maekke@gentoo.org> yajl-2.0.3.ebuild:
arm stable, bug #402287
08 May 2012; Jeroen Roovers <jer@gentoo.org> yajl-2.0.3.ebuild:
Stable for HPPA (bug #402287).
06 May 2012; Agostino Sarubbo <ago@gentoo.org> yajl-2.0.3.ebuild:
Stable for amd64, wrt bug #402287
*yajl-2.0.4 (06 May 2012)
06 May 2012; Hans de Graaff <graaff@gentoo.org> +yajl-2.0.4.ebuild:
Version bump. Closes bug 414759, thanks to Johan Bergström for reporting.
05 May 2012; Markus Meier <maekke@gentoo.org> yajl-2.0.3.ebuild:
x86 stable, bug #402287
12 Mar 2012; Samuli Suominen <ssuominen@gentoo.org> yajl-2.0.3.ebuild:
If we build static libraries, we should also install them.
07 Mar 2012; Naohiro Aota <naota@gentoo.org> yajl-2.0.3.ebuild:
Add ~x86-fbsd.
31 Dec 2011; Fabian Groffen <grobian@gentoo.org> yajl-2.0.3.ebuild:
Add Prefix keywords, bug #396547
*yajl-2.0.3 (25 Dec 2011)
25 Dec 2011; Diego E. Pettenò <flameeyes@gentoo.org> +yajl-2.0.3.ebuild:
Version bump, thanks to Johan Bergström in bug #394985. Also shorten src_test
and avoid setting S which is supposedly read-only in phases in EAPI=4 and
later.
23 Oct 2011; Tomáš Chvátal <scarabeus@gentoo.org> yajl-2.0.2.ebuild:
Make static libs optional
18 Oct 2011; Samuli Suominen <ssuominen@gentoo.org> yajl-1.0.11.ebuild:
ppc/ppc64 stable wrt #382641
17 Oct 2011; Markus Meier <maekke@gentoo.org> yajl-1.0.11.ebuild,
yajl-2.0.2.ebuild:
arm stable, bug #382641
17 Oct 2011; Jeroen Roovers <jer@gentoo.org> yajl-1.0.11.ebuild:
Stable for HPPA (bug #382641).
13 Sep 2011; Tomáš Chvátal <scarabeus@gentoo.org> yajl-2.0.2.ebuild:
Bump to eapi4.
07 Jul 2011; Hans de Graaff <graaff@gentoo.org> yajl-2.0.2.ebuild:
Move back into the normal slot since this package is not designed for
parallel installation.
*yajl-2.0.2 (07 Jul 2011)
07 Jul 2011; Hans de Graaff <graaff@gentoo.org> +yajl-2.0.2.ebuild:
Version bump as reported by Johan Bergström in bug 373929. Added new slot
since this version is not fully backward compatible.
*yajl-1.0.11-r1 (11 Feb 2011)
11 Feb 2011; Tomáš Chvátal <scarabeus@gentoo.org> yajl-1.0.11.ebuild,
+yajl-1.0.11-r1.ebuild, +files/yajl-fix_static_linking.patch:
Fix static linking and tests per Diego's request.
03 Feb 2011; Kacper Kowalik <xarthisius@gentoo.org> yajl-1.0.11.ebuild:
Added ~ppc/~ppc64 wrt #341149
23 Jan 2011; Thomas Kahle <tomka@gentoo.org> yajl-1.0.11.ebuild:
x86 stable per bug 352279
22 Jan 2011; Markos Chandras <hwoarang@gentoo.org> yajl-1.0.11.ebuild:
Stable on amd64 wrt bug #352279
27 Oct 2010; Markus Meier <maekke@gentoo.org> yajl-1.0.11.ebuild:
add ~arm, bug #341149
20 Oct 2010; Jeroen Roovers <jer@gentoo.org> yajl-1.0.11.ebuild:
Marked ~hppa (bug #341149).
*yajl-1.0.11 (15 Oct 2010)
15 Oct 2010; Samuli Suominen <ssuominen@gentoo.org> +yajl-1.0.11.ebuild:
Version bump.
*yajl-1.0.9-r1 (23 May 2010)
23 May 2010; Diego E. Pettenò <flameeyes@gentoo.org>
+yajl-1.0.9-r1.ebuild, +files/yajl-fix_cmakelists.patch,
+files/yajl-fix_tests.patch, +metadata.xml:
Initial import in main tree of yajl, needed for yajl-ruby which is in turn
optionally used by the new Rails. Assigned to ruby herd for now. Thanks to
the Sunrise people for the ebuild.
04 Apr 2010; Tomáš Chvátal <scarabeus@gentoo.org> yajl-1.0.9.ebuild,
+files/yajl-fix_cmakelists.patch, +files/yajl-fix_tests.patch:
Fixup yajl cmakelist files.
26 Mar 2010; Ondrej Sukup (mimi_vx) <mimi.vx@gmail.com> +yajl-9999.ebuild:
Add live ebuild. Thx chithead
*yajl-1.0.9 (18 Mar 2010)
18 Mar 2010; Ondrej Sukup (mimi_vx) <mimi.vx@gmail.com>
+yajl-1.0.9.ebuild, +metadata.xml:
initial commit of yajl , thanks to scarabeus and Tommy[D]

View File

@ -1,36 +0,0 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
AUX yajl-2.0.4-pkgconfig_multilib.patch 1584 SHA256 c3751b4868087ca4b837a2e54b270c41e7bcf203d2231d9c8c7dcbab5a4616f5 SHA512 fc0a4d508e48bc8e005e0ad50fb44f3a0dbdd5e8e4eca4784e29a11498a480bd8ffe5558b512be9d54cd2b22bed53399f277796c413230e7c49abbd0dd98530f WHIRLPOOL f5f3a3bf77c4c09c42ca6183792306a4f80adb54eabfcfa7a0a82005018e93dfab4c84f80e0d86ea3b29d97d59b6505d3e82724fb29f4b20aece190e3b4e0529
AUX yajl-fix_static_linking.patch 1019 SHA256 0a32becf97f2ac4cf14f977dfe0301411583cbb74570a7682632a2e11af99f72 SHA512 14e2708d979b59dd5764757f26ad4008a6229fa571c8b40e1fb2b5a4a6a68c5308d97aa78e1e06b274672cbbf6d07195d2d8291d78452c61738585af8142e32b WHIRLPOOL a3bebd09d5b1257d29008f0b30f43d9093a3194f08d9ca32cb290e530e70504dc43afbde91529e7dee97f1d7877ee57c966274acbf05fa9c2498899c86e7a27b
AUX yajl-fix_tests.patch 696 SHA256 90a5239c9fc5424ca2837c4d7c1cf83e6d7de589daef80f2431fe35758045429 SHA512 13234c6aa089e09083e15c5be9d2f854a3449373e90c452bd8d39308def000aeabb0e844c345ec4871ec39b1b7f96e962d623ce425bec3354614f10c63d0f6ff WHIRLPOOL 5bbd5b303ebf1f5447cabcee2f7ee07aa4a091d837f542d5fcd2929d47d9239c4fc17fe64553a98ac773c406a32ab0401f11b21a7028f07e715bb0cc8c8f504f
DIST yajl-1.0.11.tar.gz 53705 SHA256 1e98e03b927a8ec466baea527647f5e243f56f71bdec48cdab1c875f0f8b96a9 SHA512 6ab0e5052da45be327f1987818037b89b37b382c095a9e64043422425759c4819e46eb6c43919677b6020d10c042d077655ad50809d13733f781bee7db8babf0 WHIRLPOOL 28cf0723b65cbdea8d177d4326322fe24d335fc9ff84482b363f797e622ca9f683b1d21c50e1cb8289ac4895906da833e6229a903431c04691c5fd50aa926f57
DIST yajl-2.0.3.tar.gz 82544 SHA256 606ee384f288b6ad4f17c9c57b8868f8db525d542790fd1071139c9636e71952 SHA512 cef6e895ad169aac9e729f8bde006367d39456c6c1a62e1984d097f2f237cc5e317ddfef4d90c36242f772c867cee220082313f6d324a57e58a56d3e51ae0f85 WHIRLPOOL e9f3b37358d904f3e0aadad256fa7829b97170af5f9c3c3605c54f216cd1ac7958a281eb39f7e5cf5a0af2dce6120f900c3489ac50eeaef154b7ee4c50dd2d8b
DIST yajl-2.0.4.tar.gz 82814 SHA256 c19b9691cf15f22e74d903cd06ac9ba5e1e216e6a1b82bfe787c3b48a25bc118 SHA512 ab99fdd6b7e6f7add5530fff2d3ac6171ed3698267016d6cd23449742d36c9d848f065ba920dc2abb934488239e11e4ceda571c05fa472ab5d3f0480e9033a13 WHIRLPOOL ed821d07f5c06e4722d9de9648d4929fe6a5bcc13d2bd3bb6bcddce60a9817612d59f14963cc46b43b002345fc56813230194d997098de77f4d9075cf64dd85b
EBUILD yajl-1.0.11-r1.ebuild 634 SHA256 baba7da235e5b234e64024c538eba8177fc4f6c028df2536c50472b0766cce6f SHA512 6fd820a09414247854cd0bd8399813795a2dfb9758ffca27ae035245bc8a7cb3f93dfc211e01f05f7c233265acd26ecde53d89c01b75671adc6aab4a0896b0dd WHIRLPOOL 4fee172b33ffdd83c8fd177075becc3944afb70593fc84072dc88f2595725eb57dc6ce1d833a34fce939484971664ae00c25c840e239d2dd19fd729036fbeb1b
EBUILD yajl-1.0.11.ebuild 647 SHA256 fa17720bf216f7c3e330f707907152ecb13b85bfb8f83332ff09e1dddbd7c985 SHA512 0ea2f92eae9e94542e3d0975061c95a4c8863131118d982270413d5ea75a94d40118cef1fa7ff2bd68296eebff838f168be149581da6287f3569c1366513eb7b WHIRLPOOL d305d75bf513bb4d7ee4d6f38d24e5816569966eaf37a0d0b47fef2603d8ffb7aab53dd7a34c9c2abd9428edd0bb7a8831e9562573fa9812d4f899f49ddf7cb3
EBUILD yajl-2.0.3.ebuild 850 SHA256 6aea8216158656515441be45691ea09341f6435006a83ad45a11ab2e6f89a9ac SHA512 8f3476212aef836f03e4c0d20f4391f71d5d110dab2182462820292fdb879f487ef8b3d284b964d8669a3e730536e658f50c3b3289a4fa3da24b0098a5ef5e1d WHIRLPOOL cc181ceb1d237d983b80c002225004f40664fb94236c849343c4b22223a3275216afb85eeedb325b99d005c4310cbef1d0bcfb08711e3398ba4f7e790c61e1cb
EBUILD yajl-2.0.4-r1.ebuild 830 SHA256 eb1ee93825dc6be03394c61af637fd62fc1f45938a4d3e7ec5652724102888e8 SHA512 3f6459c5f357c840fbf6c5c58eb6c388161b932be1ac408791ee379e45afdcb69a78d17577052d475f841ae39de6fad6a647339d4e3dbcdf8386be514017eb7d WHIRLPOOL 784fcf9793027462ddbc2d17133ea6fc31c8e57b944a39cf94c700877c6c83dacdf3bdfdead7b3871593e5e6923b565212ac86398fac4b18ce73338c20f1e27e
EBUILD yajl-2.0.4-r2.ebuild 1018 SHA256 71d8264d7c4b857df0f042f31911d39edae5221a1be314f765427a69ce670afa SHA512 c55bea6b737fd89729aa938ab4c8f44a41e7e8549e1e848d5e0e872c8e1e5bbe78d50109323a49de6dd7f07cc5ae3f2701d9b2563047e97849e2b240b0516427 WHIRLPOOL 16cab42cd1b42ebd959fc6feef50cfaf190ef8598119317f31b8a2317e083cd1e55d84cfd313239ef0862cc0c7cc4f824679eca2a2328dc7b54269f3f6cfb87e
EBUILD yajl-2.0.4-r3.ebuild 1071 SHA256 312caafc108617a716594e161f50fb4f04b91b96c063a443119d58d71f72e937 SHA512 e8588392cc0b0d9493a64d21563db0b408ab5160e34c83e84efaac22936eb96c6763f9f1afac1f21eb0b3a71f221e928283e19258e15d6669fa126bf28d7591a WHIRLPOOL 81f458a5a044742eca43347a99691f6deb43d0e0504b013147876d6ab31059058729cd14c2dd236f070b9aaf9b8264d3a1c85fb132a7dac379f5271dca3ba589
MISC ChangeLog 5976 SHA256 eea251ded407a096ee971f31c8ad925cd9514b0673275d911fb8b565eca242b9 SHA512 0e5d5ec808fa9ebedfcf9a2414d94b0560761158fe4d15ae54d5b0e079393f221b2b6a97f4dd56a9ba2a4b39e7ba05bc87dc87ea27d188e990f54e96b62d0bd1 WHIRLPOOL 600e0309b259d488a51df465497f1b229f0ba9b076ec91b2b5c8bce36544c42c416f401d75f23adb488b3cbc0b097e5be3c8231808e61e868c850ee97a505cef
MISC metadata.xml 243 SHA256 c6a73a4f1467a2fb881fe3bf391e72dc518cfa52863fc71f9e4d2c8fb9923e5d SHA512 e4c766d1ba677f2aa37e86ac1016cf3bf36a4aabb432594f103bf57ca36b2db273be18ec09d38982251452d748512ca00ea652a6335e2f2ac775b5a7d5a5eac7 WHIRLPOOL c5dd222916a26d80b068f132d9358e65abac7585c3ecce0f9c4de0f795dee831be73b6c9a2d8d62313b3c9454d557f88a2881575db58d65d165cea550960786b
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQJ8BAEBCABmBQJTpql9XxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ2REJCMDdDQzRGMERBRDA2RUEwQUZFNDFC
MDdBMUFFQUVGQjQ0NjRFAAoJELB6GurvtEZOUCoQALzdsAdOL/nA4HYhGWQhShFA
/zkI071EFjcf6AhkqFu3a57COJNOGWsn/KTVzpCwUXyQSJlMe9oDN35tGX+Ov9qr
v8+0crGpiUkvzKcKY4K5GJk9sX+OirD7MqnTmtN5/w1o3q487XH6ux8v1VeSeRPy
d6ioQ0MxttqMghDzu/DOLCy8c/WQ1C3mCRDpl7gKR8RwaSv+ViemRLldNLWnJmXX
Nc+xk02QdzPSA2eAl6fagrlQi5FN57ErNF7XBay9fgaJsFeQoqo6wCcg8M5C5M6b
Uq/PlgZfaAZVutCuCR0c0yH5gpAuUA7CRH7907Fqhj02biYv11o5gzmcU/3RLv5V
XFcswnOgvqOQfVNo4mRglQQuoii7yOSzhTogO2m4WRJeXOvDKqtxjH5S/lOeioF6
4Cjusc8IPh57ev1fj6ttlgny3amzKHuslZnjFRLLKJ4mbboxL6D9oVbL01NoM3uk
0dUcq0+cMlFEgHcHRVhsXSK9Rv+CpthFeQ1ggdU6gBeqaLbsWILN1TsVqTtcW9ad
kSz5M5JaEM9fulpwN2IKvsPWB4S5N1JKuqne1QSct7MP8Sqn2HutYBARN7Iw1vlA
S+tRjtUiK3fwf8n1UjwfWXrgOAOlsBHTtYYaOEJWGccJqRv6VXfsO7/j6YqmiVbK
KrRkRjUrc7QVO2fBPla6
=k5mx
-----END PGP SIGNATURE-----

View File

@ -1,40 +0,0 @@
From 409098e97292aa1698ddff7f34dd8099db41a550 Mon Sep 17 00:00:00 2001
From: ksergey <inndie@gmail.com>
Date: Tue, 28 Jan 2014 00:35:36 -0500
Subject: [PATCH] fixed pkgconfig file path
---
src/CMakeLists.txt | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index e36b736..27b7c7d 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -30,7 +30,7 @@ ADD_DEFINITIONS(-DYAJL_BUILD)
# set up some paths
SET (libDir ${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/lib)
SET (incDir ${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/include/yajl)
-SET (shareDir ${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/share/pkgconfig)
+SET (pkgConfigDir ${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/lib/pkgconfig)
# set the output path for libraries
SET(LIBRARY_OUTPUT_PATH ${libDir})
@@ -61,7 +61,7 @@ FILE(MAKE_DIRECTORY ${incDir})
# generate build-time source
SET(dollar $)
CONFIGURE_FILE(api/yajl_version.h.cmake ${incDir}/yajl_version.h)
-CONFIGURE_FILE(yajl.pc.cmake ${shareDir}/yajl.pc)
+CONFIGURE_FILE(yajl.pc.cmake ${pkgConfigDir}/yajl.pc)
# copy public headers to output directory
FOREACH (header ${PUB_HDRS})
@@ -82,5 +82,5 @@ IF(NOT WIN32)
INSTALL(TARGETS yajl_s ARCHIVE DESTINATION lib${LIB_SUFFIX})
INSTALL(FILES ${PUB_HDRS} DESTINATION include/yajl)
INSTALL(FILES ${incDir}/yajl_version.h DESTINATION include/yajl)
- INSTALL(FILES ${shareDir}/yajl.pc DESTINATION share/pkgconfig)
+ INSTALL(FILES ${pkgConfigDir}/yajl.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig)
ENDIF()
--
1.8.5.5

View File

@ -1,24 +0,0 @@
diff -urN lloyd-yajl-f4baae0.old//reformatter/CMakeLists.txt lloyd-yajl-f4baae0//reformatter/CMakeLists.txt
--- lloyd-yajl-f4baae0.old//reformatter/CMakeLists.txt 2010-07-22 00:12:15.000000000 +0200
+++ lloyd-yajl-f4baae0//reformatter/CMakeLists.txt 2011-02-11 19:28:40.006756997 +0100
@@ -42,7 +42,7 @@
ADD_EXECUTABLE(json_reformat ${SRCS})
-TARGET_LINK_LIBRARIES(json_reformat yajl_s)
+TARGET_LINK_LIBRARIES(json_reformat yajl)
# copy the binary into the output directory
GET_TARGET_PROPERTY(binPath json_reformat LOCATION)
diff -urN lloyd-yajl-f4baae0.old//verify/CMakeLists.txt lloyd-yajl-f4baae0//verify/CMakeLists.txt
--- lloyd-yajl-f4baae0.old//verify/CMakeLists.txt 2010-07-22 00:12:15.000000000 +0200
+++ lloyd-yajl-f4baae0//verify/CMakeLists.txt 2011-02-11 19:28:58.296756998 +0100
@@ -42,7 +42,7 @@
ADD_EXECUTABLE(json_verify ${SRCS})
-TARGET_LINK_LIBRARIES(json_verify yajl_s)
+TARGET_LINK_LIBRARIES(json_verify yajl)
# copy in the binary
GET_TARGET_PROPERTY(binPath json_verify LOCATION)

View File

@ -1,15 +0,0 @@
diff -urN lloyd-yajl-9c15d72.old/test/run_tests.sh lloyd-yajl-9c15d72//test/run_tests.sh
--- lloyd-yajl-9c15d72.old/test/run_tests.sh 2010-04-04 23:59:51.000000000 +0200
+++ lloyd-yajl-9c15d72//test/run_tests.sh 2010-04-05 00:00:26.000000000 +0200
@@ -8,9 +8,9 @@
# find test binary on both platforms. allow the caller to force a
# particular test binary (useful for non-cmake build systems).
if [ -z "$testBin" ]; then
- testBin="../build/test/Debug/yajl_test.exe"
+ testBin="./yajl_test.exe"
if [[ ! -x $testBin ]] ; then
- testBin="../build/test/yajl_test"
+ testBin="./yajl_test"
if [[ ! -x $testBin ]] ; then
echo "cannot execute test binary: '$testBin'"
exit 1;

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>ruby</herd>
<maintainer>
<email>xmw@gentoo.org</email>
<name>Michael Weber</name>
</maintainer>
</pkgmetadata>

View File

@ -1,27 +0,0 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-libs/yajl/yajl-1.0.11-r1.ebuild,v 1.3 2014/06/22 10:01:32 mgorny Exp $
EAPI=5
inherit cmake-multilib vcs-snapshot
DESCRIPTION="Small event-driven (SAX-style) JSON parser"
HOMEPAGE="http://lloyd.github.com/yajl/"
SRC_URI="http://github.com/lloyd/yajl/tarball/${PV} -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
IUSE=""
src_prepare() {
epatch "${FILESDIR}"/${PN}-fix_tests.patch
cmake-utils_src_prepare
}
multilib_src_test() {
emake test
}

View File

@ -1,30 +0,0 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-libs/yajl/yajl-1.0.11.ebuild,v 1.10 2011/10/18 16:51:28 ssuominen Exp $
EAPI=2
inherit cmake-utils
DESCRIPTION="Small event-driven (SAX-style) JSON parser"
HOMEPAGE="http://lloyd.github.com/yajl/"
SRC_URI="http://github.com/lloyd/yajl/tarball/${PV} -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 arm hppa ppc ppc64 x86"
IUSE=""
CMAKE_IN_SOURCE_BUILD="1"
src_prepare() {
cd "${WORKDIR}"/lloyd-${PN}-*
S=$(pwd)
epatch "${FILESDIR}"/${PN}-fix_tests.patch
}
src_test() {
emake test
}

View File

@ -1,33 +0,0 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-libs/yajl/yajl-2.0.3.ebuild,v 1.13 2013/04/13 08:15:05 ago Exp $
EAPI=4
inherit base cmake-utils
DESCRIPTION="Small event-driven (SAX-style) JSON parser"
HOMEPAGE="http://lloyd.github.com/yajl/"
SRC_URI="http://github.com/lloyd/yajl/tarball/${PV} -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE=""
PATCHES=(
"${FILESDIR}"/${PN}-fix_static_linking.patch
)
src_unpack() {
unpack ${A}
mv "${WORKDIR}"/lloyd-${PN}-* "${S}"
}
src_test() {
emake -C "${CMAKE_BUILD_DIR}" test
}
src_install() {
cmake-utils_src_install
}

View File

@ -1,29 +0,0 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-libs/yajl/yajl-2.0.4-r1.ebuild,v 1.1 2013/04/25 19:38:48 xmw Exp $
EAPI=5
inherit base cmake-multilib
DESCRIPTION="Small event-driven (SAX-style) JSON parser"
HOMEPAGE="http://lloyd.github.com/yajl/"
SRC_URI="http://github.com/lloyd/yajl/tarball/${PV} -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE=""
PATCHES=(
"${FILESDIR}"/${PN}-fix_static_linking.patch
)
src_unpack() {
unpack ${A}
mv "${WORKDIR}"/lloyd-${PN}-* "${S}"
}
src_test() {
emake -C ${CMAKE_BUILD_DIR} test
}

View File

@ -1,37 +0,0 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-libs/yajl/yajl-2.0.4-r2.ebuild,v 1.2 2013/06/26 10:28:11 xmw Exp $
EAPI=5
inherit eutils cmake-multilib vcs-snapshot
DESCRIPTION="Small event-driven (SAX-style) JSON parser"
HOMEPAGE="http://lloyd.github.com/yajl/"
SRC_URI="http://github.com/lloyd/yajl/tarball/${PV} -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="static-libs"
src_prepare() {
epatch "${FILESDIR}"/${PN}-fix_static_linking.patch
multilib_copy_sources
}
src_test() {
run_test() {
cd "${BUILD_DIR}"/test
./run_tests.sh ./yajl_test || die
}
multilib_parallel_foreach_abi run_test
}
src_install() {
cmake-multilib_src_install
use static-libs || \
find "${D}" -name libyajl_s.a -delete
}

View File

@ -1,38 +0,0 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-libs/yajl/yajl-2.0.4-r3.ebuild,v 1.1 2014/06/16 18:30:53 hasufell Exp $
EAPI=5
inherit eutils cmake-multilib vcs-snapshot
DESCRIPTION="Small event-driven (SAX-style) JSON parser"
HOMEPAGE="http://lloyd.github.com/yajl/"
SRC_URI="http://github.com/lloyd/yajl/tarball/${PV} -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="static-libs"
src_prepare() {
epatch "${FILESDIR}"/${PN}-fix_static_linking.patch \
"${FILESDIR}"/${P}-pkgconfig_multilib.patch
multilib_copy_sources
}
src_test() {
run_test() {
cd "${BUILD_DIR}"/test
./run_tests.sh ./yajl_test || die
}
multilib_parallel_foreach_abi run_test
}
src_install() {
cmake-multilib_src_install
use static-libs || \
find "${D}" -name libyajl_s.a -delete
}

View File

@ -0,0 +1,9 @@
DIST meson-0.40.1.tar.gz 584630 SHA256 9b26838a62c449d6a48f24e4ebd1ab0cd69687f95d93a0e70882c1c169cc2392 SHA512 06c6e703439a33a0175302a11591f849fc5fbd4afb3d1ab67db10e4967c50567a1883512eb7c298fe2b25fb38285588cb3a41b93f75b8f3621575feb2173ec5e WHIRLPOOL 1f14d452695d74557dd9dcfbc19855efb665fb8c98364bb48217a9ee61cdebb7649597c24236b8c96a20a45282d683b570d74aba55e4122f5ae43334e4798885
DIST meson-0.41.0.tar.gz 1012258 SHA256 705c1651af9835b51f7f111107c360f9bd76b8a5502a97ed8ef2331f96557ae5 SHA512 ec323f74abccecc0aea3ab60dc0ff01b81f8035df400eab2f7701cd4d38de82174e23af8024de11fbc9085f216e38b36e299c47696288afbb6eca9860ce4adfc WHIRLPOOL c95e9398b8b46ac37edde6a7ab4e7a7ae8f95621a09623215691e8d165c34e879623277f5a877d59ca3620997933bec8011374d120412023a6befa20ed91e969
DIST meson-0.41.1.tar.gz 1012886 SHA256 df57b79494a310d02791e3b24527536c0bcfcf8df32b30a6e4b4e071ec94ddb4 SHA512 f70735052cc898b284ed2b926de5a80ecbe1c0388749c9963c4bf428bba4ef362e20c2b1dc8556b043c34eb8f5e933501333d6cdd2e511759cf01814f147814f WHIRLPOOL 8263f13713370e85ebc44943baba907dcfb99a15638c43c985e077e81552e783b66da8cefe04cbd4ee315951a896f511934b94f1bfda9c4747a576ed4cb0d17b
EBUILD meson-0.40.1.ebuild 634 SHA256 63723c4d1d947588c47aa652cd17756e139e11cbf49dcf98433fed1d885bc839 SHA512 28b5a291d62b56de22579da9f33c9fe990a6fe0025b42ddbcc06fc741ad6fce3c9a0acfc90740e2cb6bdef29586d730675557253f66fd1e303919da165c676d5 WHIRLPOOL f6a69bd1ff04afbd0d8946a9deb02414665378be00fbb4916f3ca7e77d630c3e8d22dd54548e7ea8ad03930c520c0423e6051e4075a1c9e823d31ee8a6c6e529
EBUILD meson-0.41.0.ebuild 597 SHA256 d12a10764adfb4865f5e570c1c3186e437a6c9fbf44d3dbf3313a2cbb15f3fb2 SHA512 4e8b52f2836c2fcc5181ad2fbae2663ba8981b4e46c683e97d112af62a0b2c21b2e65fa6ee010962519d62f256c6b4f6407d5ad9fc70f5ad68a536c91b222369 WHIRLPOOL f4b45932c2061840a8afe0c58a67870d491274a79a5733777101c0251a7f396977df898c2e68a1a8b88a279adaf42fb39e26cab34ae98b370b7a666a8ca8b9bb
EBUILD meson-0.41.1.ebuild 610 SHA256 f165d944c6d61eeb5fb10514cde583a704f0fbde5fb8746150e4c867b6b9da23 SHA512 3e94295686b93f3a515627e82dc870ebec9c8d87557ebc6ac6b53750b7087f9f1591f8553c4c8fa282de9c0036464ab15e7071aaf91c3edacd7acb48de63d1c1 WHIRLPOOL 2e15e7ad74881e24e58aa5a492e959e2447d53f3c32a63230692723d4be04857dfc9e74997593a74fd5effa4c51c9c805ba11997058f6b2ce97df65506b8bf5a
EBUILD meson-9999.ebuild 597 SHA256 d12a10764adfb4865f5e570c1c3186e437a6c9fbf44d3dbf3313a2cbb15f3fb2 SHA512 4e8b52f2836c2fcc5181ad2fbae2663ba8981b4e46c683e97d112af62a0b2c21b2e65fa6ee010962519d62f256c6b4f6407d5ad9fc70f5ad68a536c91b222369 WHIRLPOOL f4b45932c2061840a8afe0c58a67870d491274a79a5733777101c0251a7f396977df898c2e68a1a8b88a279adaf42fb39e26cab34ae98b370b7a666a8ca8b9bb
MISC ChangeLog 1644 SHA256 16a9aa8ce1a9add714323002885f3199f679aff35cba65edc21bbc1ba636ed85 SHA512 8ada51de63f366d4c33e0d08a66687fa37df2ff56bf4767a8f201efac0ef73a5685a13437115e4eb09479a415da6ffc065e412dd38dab8a1e83ecc3349ea3f0b WHIRLPOOL 1fb093e733adccf5923a1a85909042cf083ae69139f8e3ecddd10e8c8f132e42fc4074a916f51c1a27cbfaf7c83abe12726604376f5e534771b4f47e18592c52
MISC metadata.xml 443 SHA256 741f4eeccedf2aee465c65859a709a21ef5c833e7a804fecddc83d6b6b6907c2 SHA512 acc217d18494f1f968d25b52e58fa268d6a1931c5ecd03350e84ed8094ce5d0a708ba536688dfdd267ca6bfad103a2bffcfece5bb5bd9a34f4853b5f1f655826 WHIRLPOOL 66ed2ff4475484a36ce9f65439abc1bb324f4b0be1c2f3e56f913d609fb96313d81fd574ad9591f3dc1ba49edc2ef1d56fdf2749596564c7b489bcc6fb78f5e0

View File

@ -0,0 +1,32 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python3_{4,5,6} )
if [[ ${PV} = *9999* ]]; then
EGIT_REPO_URI="https://github.com/mesonbuild/meson"
inherit git-r3
else
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
KEYWORDS="amd64 x86"
fi
inherit distutils-r1
DESCRIPTION="Open source build system"
HOMEPAGE="http://mesonbuild.com/"
LICENSE="Apache-2.0"
SLOT="0"
IUSE=""
RESTRICT="test"
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
RDEPEND=""
DOCS=( authors.txt contributing.txt )
python_test() {
${EPYTHON} run_tests.py || die
}

View File

@ -0,0 +1,30 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python3_{4,5,6} )
if [[ ${PV} = *9999* ]]; then
EGIT_REPO_URI="https://github.com/mesonbuild/meson"
inherit git-r3
else
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
inherit distutils-r1
DESCRIPTION="Open source build system"
HOMEPAGE="http://mesonbuild.com/"
LICENSE="Apache-2.0"
SLOT="0"
IUSE=""
RESTRICT="test"
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
RDEPEND=""
python_test() {
${EPYTHON} run_tests.py || die
}

View File

@ -0,0 +1,30 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python3_{4,5,6} )
if [[ ${PV} = *9999* ]]; then
EGIT_REPO_URI="https://github.com/mesonbuild/meson"
inherit git-r3
else
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
KEYWORDS="~alpha ~amd64 ~ia64 ~x86"
fi
inherit distutils-r1
DESCRIPTION="Open source build system"
HOMEPAGE="http://mesonbuild.com/"
LICENSE="Apache-2.0"
SLOT="0"
IUSE=""
RESTRICT="test"
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
RDEPEND=""
python_test() {
${EPYTHON} run_tests.py || die
}

View File

@ -0,0 +1,30 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python3_{4,5,6} )
if [[ ${PV} = *9999* ]]; then
EGIT_REPO_URI="https://github.com/mesonbuild/meson"
inherit git-r3
else
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
inherit distutils-r1
DESCRIPTION="Open source build system"
HOMEPAGE="http://mesonbuild.com/"
LICENSE="Apache-2.0"
SLOT="0"
IUSE=""
RESTRICT="test"
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
RDEPEND=""
python_test() {
${EPYTHON} run_tests.py || die
}

View File

@ -0,0 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>williamh@gentoo.org</email>
<name>William Hubbs</name>
</maintainer>
<maintainer type="project">
<email>gstreamer@gentoo.org</email>
<name>GStreamer package maintainers</name>
</maintainer>
<upstream>
<remote-id type="pypi">meson</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1,11 @@
AUX ninja-uclibc.patch 526 SHA256 5864494d956310fbc8abf6d7dd7cd8968eb483a1da046870b943ab6ac76af16a SHA512 180c3390001a6bb49deef4f459d42fd7141a5cf68a7077cfe3b5b1384f7b40911f9e4d871ffce07f51b347deb2c2568c266c5a5d1d113010090cd4f65eebeb6e WHIRLPOOL 6a6e849902348ea0714733baf9ad9e729c99408ac9d8f28c4f6ef9227d4a3747d87ff6e2e6b3fa72c2b8a0d94e4e41ac437e8cf558021897fdd59e75fb5a8e46
DIST ninja-1.6.0.tar.gz 174501 SHA256 b43e88fb068fe4d92a3dfd9eb4d19755dae5c33415db2e9b7b61b4659009cde7 SHA512 551a9e14b95c2d2ddad6bee0f939a45614cce86719748dc580192dd122f3671e3d95fd6a6fb3facb2d314ba100d61a004af4df77f59df119b1b95c6fe8c38875 WHIRLPOOL 74d10df3d112c6cbd524f802978f1a56d2643767d947cff33a276a29f89485576f7d6b40597f9eac1db1446ae22c7f2c73c9d1f7795132e0254fa970df37063b
DIST ninja-1.7.1.tar.gz 179717 SHA256 51581de53cf4705b89eb6b14a85baa73288ad08bff256e7d30d529155813be19 SHA512 6c7bea92942c48d2a810b1edb0187a3b0230eee3a1ce0013e9dcc8dd41d99215f18f0f85be789173e590ee24f517969fd159099541cacd7eb0ba69e50d296f40 WHIRLPOOL ece2737adb37438aa822bab97d3784c7220fd6eb613bfc4852a33ecf26d6e04f5309aec3be558cb072e38a77538c46b38e2f009567d98cc79747bb4cfdc94576
DIST ninja-1.7.2.tar.gz 180611 SHA256 2edda0a5421ace3cf428309211270772dd35a91af60c96f93f90df6bc41b16d9 SHA512 29900d07364d87ad8b9614b82bc1b0afda5ca6522563ab73fb228f206ed6b29b70cf034a3caf5a9b2c0b105d1e076c6b425d93b5d14aa3ca3730d75611212a64 WHIRLPOOL 43623778d3f96a87efb4bfd272075b257ebba3760d315c5650fa74493e2193699401c9b6d35d679e7c5235456d48674ac7e913fe1d45b5b98c2542c3b0a72e44
EBUILD ninja-1.6.0.ebuild 2590 SHA256 147e7135b810c732a8b238edfdd1472ead7c097b17fe6e6bd52f311fae02417d SHA512 78b6431cb816139631086236f8923b1a1e93f8545cd9d378e6cdf19e6c468e2bcacdd04a75020b84de75b7531af97c92f71b4742dd6ed6edb9cb300a861afe7f WHIRLPOOL c3ddc76c5568cc460a177f4c1197dfa12033a4245f07dbf331e41ea15ce8aef580543abda7bf1997e039c1b27dbd868d944b31b3e0f3bf8eae4612d39f6eed91
EBUILD ninja-1.7.1.ebuild 2607 SHA256 3e838f88e296336e1f59a674ef5f1ac9be521ee5dd53da8bbe2bf3595cae95f3 SHA512 7b9bd72b465f7775ef3e73f75cee8370a04eb42fbbabc3fa5c968c5dc529421f9ca4073e7831de0fbf041fe80641e4a04488e1cc0738584777d609b9e9f2610d WHIRLPOOL 8811a6ffd5dac9bca3ba6d83de913c59424b9c6656d3ce5af6e8191226171072f14fff2e5cb54e0f08dc326b752b0337bf45138259e1c565e9683acb6ecf33fe
EBUILD ninja-1.7.2.ebuild 2650 SHA256 e6c3272e7015613af1c8c31393b978b7d8041c20bcf3c2d53af47800b113c5e8 SHA512 d6361c96539b5fc391a041647bb3d275b8274b3bd8475d78d8eee56eb6011d44d885e83370eb1804f3132ed1aaed25287bdc03827ccd63dc64f9c3c38ca481f9 WHIRLPOOL d8bae0db0a78deb7981c70cbd3c26cc80aa92cf108d6d30944b24cc41fd44f9ea51e7e958f7c0263a08ee2e7e4d440d1c53c7ec683860382e4b7dbe5078059a7
EBUILD ninja-9999.ebuild 2607 SHA256 c3b64fbb51840b2895fb1a53842753d9b4d46fdee33ad6b00ef3f239d1d329a4 SHA512 8a6b9335b209042fbda6546e3829599d9889ae2a27d388b8abbaa5870344df8b4a66cb8024b8994d4812947fd4013d374096482a6675477eeb318305f645931f WHIRLPOOL beae39ea99f54a8004fe115da6122ae9063e805eae1d925d83dd53f3c54f9fc66162f12e982b589754f16acba8864ecd63e979e79ae0912928bef08dfda54da4
MISC ChangeLog 5535 SHA256 06426d51846a9e0a803d92040f79bfde06554f00ff4999f8311e482d5305b62b SHA512 f2fffa79fb37ee24f392afe8a55e9cdcccf3b91a0191ff0573ca05b6b5e737ae16c367ed33e830ba70590829809f89ff45eff90f9d50bcd1a14b59f73bcabdcf WHIRLPOOL f11e09e4eff52d5b0e76e759005b5d2eed7153d679664bea5cd919dc3ad9515d711dde733da6c8ddeaf57476f341844ad1cafe45971bb32d029ed71e99a6bcea
MISC ChangeLog-2015 6583 SHA256 bddeb0e9007198ddea2c83fa3d9fedfeaac320a7bcb78d75c7e272d3705f2d44 SHA512 62420fba29520829755b371c15d3e5abda58e62bbfbfef9c5ef81843fbb4053ad50f68c2919ec54ea9d32a1a7ecfd444ddab92a219ef19b8b95b8ef03e016e1f WHIRLPOOL 7819fc4209a88659bc3c1a202453a8d153a81ff78373924c0baff929689c3f1815fd7b9acfea04692fb747e116b4b77fa50aeb88fd0548057022defd6f04e373
MISC metadata.xml 340 SHA256 d4ea7033a3239b8c560458035ff44cb72a37f69603c88c3e32704bcd6b84291c SHA512 4b78365b98eb9b8a1ef27115261dbf426942cccb7be03c8264e2728e60dedfec8fa51ee3f43488043be5af21b28a74c1c81f4767bcc58574873c2223172447b2 WHIRLPOOL 6003e6562e4f56c68af6818dc4d9e1b58233fbb30b40d0de8d930498a5687d931be5252a536e775d73ec3a99382d3efa4f8f9e04005bedb0b7c767932a4c6843

View File

@ -0,0 +1,18 @@
diff --git a/src/util.cc b/src/util.cc
index e31fd1f..1caa1ce 100644
--- a/src/util.cc
+++ b/src/util.cc
@@ -585,6 +585,13 @@ double GetLoadAverage() {
// Calculation taken from comment in libperfstats.h
return double(cpu_stats.loadavg[0]) / double(1 << SBITS);
}
+#elif defined(__UCLIBC__)
+double GetLoadAverage() {
+ struct sysinfo si;
+ if (sysinfo(&si) != 0)
+ return -0.0f;
+ return 1.0 / (1 << SI_LOAD_SHIFT) * si.loads[0];
+}
#else
double GetLoadAverage() {
double loadavg[3] = { 0.0f, 0.0f, 0.0f };

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>chromium@gentoo.org</email>
<name>Chromium in Gentoo Project</name>
</maintainer>
<upstream>
<remote-id type="github">martine/ninja</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1,127 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
PYTHON_COMPAT=( python{2_7,3_4,3_5} )
inherit bash-completion-r1 elisp-common python-any-r1 toolchain-funcs
if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/martine/ninja.git"
else
SRC_URI="https://github.com/martine/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="alpha amd64 arm arm64 ia64 ~m68k ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
fi
DESCRIPTION="A small build system similar to make"
HOMEPAGE="https://ninja-build.org/"
LICENSE="Apache-2.0"
SLOT="0"
IUSE="doc emacs test vim-syntax zsh-completion"
DEPEND="
${PYTHON_DEPS}
dev-util/re2c
doc? (
app-text/asciidoc
app-doc/doxygen
dev-libs/libxslt
)
test? ( dev-cpp/gtest )
"
RDEPEND="
emacs? ( virtual/emacs )
vim-syntax? (
|| (
app-editors/vim
app-editors/gvim
)
)
zsh-completion? ( app-shells/zsh )
!<net-irc/ninja-1.5.9_pre14-r1" #436804
run_for_build() {
if tc-is-cross-compiler; then
local -x AR=$(tc-getBUILD_AR)
local -x CXX=$(tc-getBUILD_CXX)
local -x CFLAGS=${BUILD_CXXFLAGS}
local -x LDFLAGS=${BUILD_LDFLAGS}
fi
"$@"
}
src_compile() {
tc-export AR CXX
# configure.py uses CFLAGS instead of CXXFLAGS
export CFLAGS=${CXXFLAGS}
run_for_build "${PYTHON}" configure.py --bootstrap --verbose || die
if tc-is-cross-compiler; then
mv ninja ninja-build || die
"${PYTHON}" configure.py || die
./ninja-build -v ninja || die
else
ln ninja ninja-build || die
fi
if use doc; then
./ninja-build -v doxygen manual || die
fi
if use emacs; then
elisp-compile misc/ninja-mode.el || die
fi
}
src_test() {
if ! tc-is-cross-compiler; then
# Bug 485772
ulimit -n 2048
./ninja-build -v ninja_test || die
./ninja_test || die
fi
}
src_install() {
dodoc README HACKING.md
if use doc; then
dohtml -r doc/doxygen/html/*
dohtml doc/manual.html
fi
dobin ninja
newbashcomp misc/bash-completion "${PN}"
if use vim-syntax; then
insinto /usr/share/vim/vimfiles/syntax/
doins misc/"${PN}".vim
echo 'au BufNewFile,BufRead *.ninja set ft=ninja' > "${T}/${PN}.vim"
insinto /usr/share/vim/vimfiles/ftdetect
doins "${T}/${PN}.vim"
fi
if use zsh-completion; then
insinto /usr/share/zsh/site-functions
newins misc/zsh-completion _ninja
fi
if use emacs; then
cd misc || die
elisp-install ${PN} ninja-mode.el* || die
fi
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}

View File

@ -0,0 +1,127 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
PYTHON_COMPAT=( python{2_7,3_4,3_5} )
inherit bash-completion-r1 elisp-common python-any-r1 toolchain-funcs
if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/ninja-build/ninja.git"
else
SRC_URI="https://github.com/ninja-build/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
fi
DESCRIPTION="A small build system similar to make"
HOMEPAGE="https://ninja-build.org/"
LICENSE="Apache-2.0"
SLOT="0"
IUSE="doc emacs test vim-syntax zsh-completion"
DEPEND="
${PYTHON_DEPS}
dev-util/re2c
doc? (
app-text/asciidoc
app-doc/doxygen
dev-libs/libxslt
)
test? ( dev-cpp/gtest )
"
RDEPEND="
emacs? ( virtual/emacs )
vim-syntax? (
|| (
app-editors/vim
app-editors/gvim
)
)
zsh-completion? ( app-shells/zsh )
!<net-irc/ninja-1.5.9_pre14-r1" #436804
run_for_build() {
if tc-is-cross-compiler; then
local -x AR=$(tc-getBUILD_AR)
local -x CXX=$(tc-getBUILD_CXX)
local -x CFLAGS=${BUILD_CXXFLAGS}
local -x LDFLAGS=${BUILD_LDFLAGS}
fi
"$@"
}
src_compile() {
tc-export AR CXX
# configure.py uses CFLAGS instead of CXXFLAGS
export CFLAGS=${CXXFLAGS}
run_for_build "${PYTHON}" configure.py --bootstrap --verbose || die
if tc-is-cross-compiler; then
mv ninja ninja-build || die
"${PYTHON}" configure.py || die
./ninja-build -v ninja || die
else
ln ninja ninja-build || die
fi
if use doc; then
./ninja-build -v doxygen manual || die
fi
if use emacs; then
elisp-compile misc/ninja-mode.el || die
fi
}
src_test() {
if ! tc-is-cross-compiler; then
# Bug 485772
ulimit -n 2048
./ninja-build -v ninja_test || die
./ninja_test || die
fi
}
src_install() {
dodoc README HACKING.md
if use doc; then
dohtml -r doc/doxygen/html/*
dohtml doc/manual.html
fi
dobin ninja
newbashcomp misc/bash-completion "${PN}"
if use vim-syntax; then
insinto /usr/share/vim/vimfiles/syntax/
doins misc/"${PN}".vim
echo 'au BufNewFile,BufRead *.ninja set ft=ninja' > "${T}/${PN}.vim"
insinto /usr/share/vim/vimfiles/ftdetect
doins "${T}/${PN}.vim"
fi
if use zsh-completion; then
insinto /usr/share/zsh/site-functions
newins misc/zsh-completion _ninja
fi
if use emacs; then
cd misc || die
elisp-install ${PN} ninja-mode.el* || die
fi
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}

View File

@ -0,0 +1,131 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python{2_7,3_4,3_5} )
inherit bash-completion-r1 elisp-common python-any-r1 toolchain-funcs
if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/ninja-build/ninja.git"
else
SRC_URI="https://github.com/ninja-build/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~m68k ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
fi
DESCRIPTION="A small build system similar to make"
HOMEPAGE="https://ninja-build.org/"
LICENSE="Apache-2.0"
SLOT="0"
IUSE="doc emacs test vim-syntax zsh-completion"
DEPEND="
${PYTHON_DEPS}
dev-util/re2c
doc? (
app-text/asciidoc
app-doc/doxygen
dev-libs/libxslt
)
test? ( dev-cpp/gtest )
"
RDEPEND="
emacs? ( virtual/emacs )
vim-syntax? (
|| (
app-editors/vim
app-editors/gvim
)
)
zsh-completion? ( app-shells/zsh )
!<net-irc/ninja-1.5.9_pre14-r1" #436804
PATCHES=(
"${FILESDIR}/${PN}-uclibc.patch"
)
run_for_build() {
if tc-is-cross-compiler; then
local -x AR=$(tc-getBUILD_AR)
local -x CXX=$(tc-getBUILD_CXX)
local -x CFLAGS=${BUILD_CXXFLAGS}
local -x LDFLAGS=${BUILD_LDFLAGS}
fi
"$@"
}
src_compile() {
tc-export AR CXX
# configure.py uses CFLAGS instead of CXXFLAGS
export CFLAGS=${CXXFLAGS}
run_for_build "${PYTHON}" configure.py --bootstrap --verbose || die
if tc-is-cross-compiler; then
mv ninja ninja-build || die
"${PYTHON}" configure.py || die
./ninja-build -v ninja || die
else
ln ninja ninja-build || die
fi
if use doc; then
./ninja-build -v doxygen manual || die
fi
if use emacs; then
elisp-compile misc/ninja-mode.el || die
fi
}
src_test() {
if ! tc-is-cross-compiler; then
# Bug 485772
ulimit -n 2048
./ninja-build -v ninja_test || die
./ninja_test || die
fi
}
src_install() {
dodoc README HACKING.md
if use doc; then
dohtml -r doc/doxygen/html/*
dohtml doc/manual.html
fi
dobin ninja
newbashcomp misc/bash-completion "${PN}"
if use vim-syntax; then
insinto /usr/share/vim/vimfiles/syntax/
doins misc/"${PN}".vim
echo 'au BufNewFile,BufRead *.ninja set ft=ninja' > "${T}/${PN}.vim"
insinto /usr/share/vim/vimfiles/ftdetect
doins "${T}/${PN}.vim"
fi
if use zsh-completion; then
insinto /usr/share/zsh/site-functions
newins misc/zsh-completion _ninja
fi
if use emacs; then
cd misc || die
elisp-install ${PN} ninja-mode.el* || die
fi
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}

View File

@ -0,0 +1,127 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python{2_7,3_4,3_5} )
inherit bash-completion-r1 elisp-common python-any-r1 toolchain-funcs
if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/ninja-build/ninja.git"
else
SRC_URI="https://github.com/ninja-build/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
fi
DESCRIPTION="A small build system similar to make"
HOMEPAGE="https://ninja-build.org/"
LICENSE="Apache-2.0"
SLOT="0"
IUSE="doc emacs test vim-syntax zsh-completion"
DEPEND="
${PYTHON_DEPS}
dev-util/re2c
doc? (
app-text/asciidoc
app-doc/doxygen
dev-libs/libxslt
)
test? ( dev-cpp/gtest )
"
RDEPEND="
emacs? ( virtual/emacs )
vim-syntax? (
|| (
app-editors/vim
app-editors/gvim
)
)
zsh-completion? ( app-shells/zsh )
!<net-irc/ninja-1.5.9_pre14-r1" #436804
run_for_build() {
if tc-is-cross-compiler; then
local -x AR=$(tc-getBUILD_AR)
local -x CXX=$(tc-getBUILD_CXX)
local -x CFLAGS=${BUILD_CXXFLAGS}
local -x LDFLAGS=${BUILD_LDFLAGS}
fi
"$@"
}
src_compile() {
tc-export AR CXX
# configure.py uses CFLAGS instead of CXXFLAGS
export CFLAGS=${CXXFLAGS}
run_for_build "${PYTHON}" configure.py --bootstrap --verbose || die
if tc-is-cross-compiler; then
mv ninja ninja-build || die
"${PYTHON}" configure.py || die
./ninja-build -v ninja || die
else
ln ninja ninja-build || die
fi
if use doc; then
./ninja-build -v doxygen manual || die
fi
if use emacs; then
elisp-compile misc/ninja-mode.el || die
fi
}
src_test() {
if ! tc-is-cross-compiler; then
# Bug 485772
ulimit -n 2048
./ninja-build -v ninja_test || die
./ninja_test || die
fi
}
src_install() {
dodoc README HACKING.md
if use doc; then
dohtml -r doc/doxygen/html/*
dohtml doc/manual.html
fi
dobin ninja
newbashcomp misc/bash-completion "${PN}"
if use vim-syntax; then
insinto /usr/share/vim/vimfiles/syntax/
doins misc/"${PN}".vim
echo 'au BufNewFile,BufRead *.ninja set ft=ninja' > "${T}/${PN}.vim"
insinto /usr/share/vim/vimfiles/ftdetect
doins "${T}/${PN}.vim"
fi
if use zsh-completion; then
insinto /usr/share/zsh/site-functions
newins misc/zsh-completion _ninja
fi
if use emacs; then
cd misc || die
elisp-install ${PN} ninja-mode.el* || die
fi
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}

View File

@ -0,0 +1,19 @@
DIST re2c-0.13.5.tar.gz 782725 SHA256 f3a995139af475e80a30207d02728b1e0065b0caade7375e974cb1b14861668c SHA512 56101bf01aea6f0c082b85382be34acada51d70036252581cd76ac4b2bdbc144633b97c63a94bfdba434ffb80884e11299a38853e2d805dc7ce6cf9d452c81c8 WHIRLPOOL 31e462704e3ab72fce92b62ce0bca73b256c98e48f302f6f90392c26a7235e86786f2bc5f43faedbaa60f9614098ac5d734a61abed394cd71135dd3639704210
DIST re2c-0.13.6.tar.gz 844623 SHA256 8e463039aa8799a2957bfc00c9936232bb63b4fcb24d6ea6316170a67e5076c0 SHA512 dca2654de5f596fbaf519396b2f2c58690996c62dec32436599332b79107b5bf07c87b46630a224032ff44dc02d2c1861e16a920fbdc9251f4a538008709ceba WHIRLPOOL af810c4d8e41eb01cb4b06c86932fda6da86d1690a17cd626f3a864087a378cf685a9ae6ab170cb7581c696e08ca4474f128b51bff1d1284f2a9d2252d60f226
DIST re2c-0.13.7.5.tar.gz 2347921 SHA256 d58afd50579e4564c9fc4218aec860d41b88583ace2ae0a23497b49108f1b461 SHA512 71abaec58ac02de6f13cfffec6965d3443c44a72425c4ce8873915daddf077f7f484c2dc702e6533bab2d2f0ca72b34e354771120a4788d9a456b3b3393b6e22 WHIRLPOOL 1d5f8b4822c04d7e84d79601194568810f4b4053ca55386fc7d216bdaf402ab0282994c823ba5001e558d40f78aa9f7b4ee704b43015046d4ccdb8d6118fde0e
DIST re2c-0.14.2.tar.gz 2554944 SHA256 a702eb63977af4715555edb41eba3b47bbfdcdb44b566d146869a7db022f1c30 SHA512 25e682aafe434f838c41f01588f69b4979c73bab8562f56d1b1db656753c43a606b13eeb0e6542f793cdb73d001c304c61811630f7001131edd3eb76248a0a60 WHIRLPOOL 5f6864b800b7838177badf37b7ff5e7bcca73474da4f180319a9cf860694ab1191b14f913af919fa2fcce60f7bfdd85c3e6b87c91a5060260026520a8d059bd6
DIST re2c-0.14.3.tar.gz 2576859 SHA256 1c6806df599f3aef0804b576cfdf64bdba5ad590626dfca2d44e473460917e84 SHA512 c1fa20c9c1e69d085415dde3177cb03688f8a9314dd4854241812f479a2b1e4306c3abbb8f9f31763918afbd1f7a821e7337551a898f6ae57f814c66e59e2382 WHIRLPOOL dd08d837c93737d9a4dd8fd9f01de721e26b569b2686a2d066636e130f6eb82a8b8b71e8b5d84fcf44993998250effc17c2c3dbc1fd6e1651c5b5ba18a36e8fe
DIST re2c-0.15.2.tar.gz 4074407 SHA256 fe708c3477d908f02f2ab1646ac194d88b5dbfd92912b020a2b7a5bdfb778889 SHA512 6e46e45b55665a0898354b2684326ca91ff3fb50d2f52e7a7cba59658876c743cb141c827f3d3c77c1d44089c16a4207cb48e97f5af383ac1c95bc063388ba73 WHIRLPOOL 9f5f5636e19d7e9cb136b9f18a0059569ca6f1562f2c1302bc0212386e61f5be8eb866c4513e91231cfc4bf6ac3eeb24a672cd81675155dce244a48152b7ea3a
DIST re2c-0.15.3.tar.gz 4881197 SHA256 f9d2a96c60a8c60d9c6c70e10590cbceaf0776d3115e7b3b35c7d7240cc1613b SHA512 eebe372543b8c8fafa5d1a206c5fc5e92ea36e78da3ac5cd2e52d2710435cc83c8604bfb5397b48abef1d6ba241b9ed8a15119b436236b116bc81579a8dd9247 WHIRLPOOL 3bb18924d008762f49c78c98f7678b6f81295f86e4a69a884c86763a3b7855870adfcafe5912f8cbd81672ca7c38c00ffd51e5d5e8f4935fd0ac842f394128f9
DIST re2c-0.16.tar.gz 4892417 SHA256 48c12564297641cceb5ff05aead57f28118db6277f31e2262437feba89069e84 SHA512 d4fb8078d9566a1fa177331b649cac79e2e45cc9558a22a2212503f6c77c9e6b4238aa01c85c66b86fa4831cdc669cedf8b430d395be6a0c6cfabfb7c61cf8a3 WHIRLPOOL de28f65acac11ea36aad72eb8ba8f63949dcc10e9712ac84be91a66cd4216c01dee9eb360bf95db1c32de79cf9aa7ad2a1656eb877c52d44dd95a45e2b24253a
EBUILD re2c-0.13.5-r1.ebuild 712 SHA256 58b5eefb88530dbc262d2d90a30dece27114fbe1d219167be3633c10f380bd4a SHA512 446a7fe4ff39783c7172ae3110200e896955cf36bb2fa26133a671adc6394ca4efb92f012b074e3cf2dd392d27b4ee6bfbf43a86755b4b6edebb8fe77e395f86 WHIRLPOOL 6e9b9a47ebfaf9e32c8d0c630e3d1de01be98f7c76b166470e3b3ed7a92eb36bd4c139062ee56d0e376d5114d2366517eb30c1e7f0160b0d777dc3204b7ab5b0
EBUILD re2c-0.13.6.ebuild 603 SHA256 797a9b3de47d02e6476be9dc1523eb91ebd1ef92e9b42b44604ecab4cf398cec SHA512 dc860d1bd649834c9d6ad8d357226d4c55c4260be9a020d516b2c92dd0a84863018fd208ee0c23e219d36926c06f9a63571e0a479f86a57b67156ed48ae1f438 WHIRLPOOL f59769c00b8db2f4d34dbb1695f0afa3f31f70731e11fd8dbe1f56bb7f82e9142d826ddaddba4ee38c79ca38a90ec5cc8b8456cecbd0f4e631d92e110453fe7b
EBUILD re2c-0.13.7.5.ebuild 711 SHA256 3fdbcb83cc81ce74a26faee94e6fe1b6798b7665aa55b32fd577776b2f26a32b SHA512 63f13e7d95b0d7dea342504d0bd562107cb5432c28fcc722c66ab7fff2008c79545a268a36abfe33d858b036b238bc6c8ffce7ff60f8b5edc04e960787db4f6e WHIRLPOOL 1ad796b7e0bd8b438dc3bfe2d561fc35305906041239559475a8d44c8253abfec6c5d9212b3ff7a86800e6568deda905ba620d33c6980965f8c9ebb891a31f80
EBUILD re2c-0.14.2.ebuild 646 SHA256 db6b1214dfaea399b05667186940cd3419f59e4b6710bdf89789bdc51a13ca78 SHA512 2dfabb462b6742241e299ef84dacc25c91554712bfa21e9a5a6fd43ec4dcd5931a46ae9a99c22814c5c775131b507d352ff741fd14ef2c1f5ee5e0f0a96d00d6 WHIRLPOOL 4fcd8701dd43a9ba627dd72a3518eb31aeab2ca3a5e0b9c2c967102b399d402fad6d838e5b6d5882c204056fbea409f2d980791571ca2730ddeacee1a9449bf2
EBUILD re2c-0.14.3.ebuild 658 SHA256 df08e1f060c2eed01753003988e596309746188a73d952f1f3fc40052d73edbf SHA512 d0d071fb1627c110e85d5d737ef8bb50f62e7ab588db27755e199f0d5656548350ae2258607ce25189d62d78c073846c02a9efa0272dbd9e499ebb216c8d1549 WHIRLPOOL 47f84a54257000952e4a48674113458aeb2c0d40153d4f3a72a349d05715931e6914f07737e3f7e5970a9bd7697e8a70f42d4b638afaf4bf2e4774def1d989b9
EBUILD re2c-0.15.2.ebuild 764 SHA256 f2dd17b119ba7ae22fd63e19047baf29b9abaf04cfa9f539dcdb218ce520fdb3 SHA512 98c2132537d0bfcfdfab9d720b89b08ad1951c95e61e6c3d3eda065508f47eeb51e686c806c6d5585d467c1fe0a84943b41736ab4f62bf4a5b5c55876a4a001a WHIRLPOOL 968389e0e2950b700e4be6b2750638161dc41ca5d027d36ad825d561389c16a20d3e1598b0609dda046f3429c75f9a8a0a9054a70fd0d3c62f8988bd2b489010
EBUILD re2c-0.15.3.ebuild 764 SHA256 f2dd17b119ba7ae22fd63e19047baf29b9abaf04cfa9f539dcdb218ce520fdb3 SHA512 98c2132537d0bfcfdfab9d720b89b08ad1951c95e61e6c3d3eda065508f47eeb51e686c806c6d5585d467c1fe0a84943b41736ab4f62bf4a5b5c55876a4a001a WHIRLPOOL 968389e0e2950b700e4be6b2750638161dc41ca5d027d36ad825d561389c16a20d3e1598b0609dda046f3429c75f9a8a0a9054a70fd0d3c62f8988bd2b489010
EBUILD re2c-0.16.ebuild 755 SHA256 647b7d33c4a11670844122e5df9ab5db53f2634320381fef1468f648158b16e9 SHA512 8bd63d72cb9bd092ce626def2946ee5167d98c91ced9497f8fa895115c868fb199b2afe4173fd0f5fa14f0aacd763170f72817e4cf2444a2bebbccf307a45653 WHIRLPOOL 4a12c146f133f78320149cd526760e6fb0e3ffdfc4a6f169c3ec4dc937eb4e6af4ed6ae509f63e83a159006b1c46ba7adfbed2c979859b1e3b2ef2b3c3ef5675
MISC ChangeLog 4634 SHA256 9720b96cb59c7a752579116a5722cb5c078ff090ce339847b533ae35f43facf6 SHA512 db2448c60fe672933c2f848d2146af8fe6db82fa318da52f940fc6eb6fc6e57dd5327b95a95d6138d536f490862471050829d5d39baa07450b9b8e69be0b69a9 WHIRLPOOL 58ee96416a2079052ddf3a8fa962c9f68afa4a0e9a94a74b2c2360b553ebb0520ffb0a404761d52f91050a2f73c08505ee2fbf09d03fc43dfd81fa17bf57872b
MISC ChangeLog-2015 11944 SHA256 83231e58dc4d3c7ca92d55dceb7a7b62e997299156a828be942176ad30cb904d SHA512 a8c6ab17ba21b7c6b8e3a6e99c88f8e74edbe223efe323d4af025a4f54ae6dd9108308328939e268168685e80a4d76fe6fe86d13908f2b0dc935d031bf7c76f7 WHIRLPOOL 8f1fed9dfc047924eab55b3bae15e8a74eb46dab0ac03e433cf4bbb93a93376b4f6f946c20c3a20f44ef601c6819e1f0b83b70761daf04df2290f64c2c0ee5ff
MISC metadata.xml 423 SHA256 405af3772ed2ee867686c5c204eb602475dee4f0b8ef16dd31888c813b28cde1 SHA512 997590e1de3136f7f87181746d9dccfd8c34a12e570d15a29a8abd4b4163bfa98405d928e932255c962d4af79e9913de563453891155590bff309d764c2b5bd9 WHIRLPOOL 8105f64cb55da72e78651ed400e537ae31e5b1980a1fbfa9de4760a78de11295da1d56027c33d90a695e8f7a07f4d4211ec60d3d1ac6cacf24a36169557295d3

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>robbat2@gentoo.org</email>
</maintainer>
<maintainer type="person">
<email>slyfox@gentoo.org</email>
</maintainer>
<upstream>
<remote-id type="sourceforge">re2c</remote-id>
<remote-id type="github">skvadrik/re2c</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1,29 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=4
inherit eutils
DESCRIPTION="tool for generating C-based recognizers from regular expressions"
HOMEPAGE="http://re2c.sourceforge.net/"
MY_PV="${PV/_/.}"
MY_P="${PN}-${MY_PV}"
SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
LICENSE="public-domain"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris"
IUSE=""
RDEPEND=""
DEPEND="${RDEPEND}"
S="${WORKDIR}/${MY_P}"
src_install() {
dobin re2c
doman re2c.1
dodoc README CHANGELOG doc/*
docinto examples
dodoc examples/*.c examples/*.re
}

View File

@ -0,0 +1,20 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
DESCRIPTION="tool for generating C-based recognizers from regular expressions"
HOMEPAGE="http://re2c.sourceforge.net/"
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
LICENSE="public-domain"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris"
src_install() {
dobin re2c
doman re2c.1
dodoc README CHANGELOG doc/*
docinto examples
dodoc examples/*.c examples/*.re
}

View File

@ -0,0 +1,31 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
inherit eutils
DESCRIPTION="tool for generating C-based recognizers from regular expressions"
HOMEPAGE="http://re2c.sourceforge.net/"
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
LICENSE="public-domain"
SLOT="0"
KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
src_prepare() {
epatch_user
}
src_compile() {
touch re2c.1 # don't require asciidoc for mans
emake
}
src_install() {
default
dodoc README CHANGELOG doc/*
docinto examples
dodoc examples/*.c examples/*.re
}

View File

@ -0,0 +1,26 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
inherit eutils
DESCRIPTION="tool for generating C-based recognizers from regular expressions"
HOMEPAGE="http://re2c.sourceforge.net/"
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
LICENSE="public-domain"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
src_prepare() {
epatch_user
}
src_install() {
default
dodoc README CHANGELOG doc/*
docinto examples
dodoc examples/*.c examples/*.re
}

View File

@ -0,0 +1,26 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
inherit eutils
DESCRIPTION="tool for generating C-based recognizers from regular expressions"
HOMEPAGE="http://re2c.sourceforge.net/"
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
LICENSE="public-domain"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
src_prepare() {
epatch_user
}
src_install() {
default
dodoc README CHANGELOG doc/*
docinto examples
dodoc examples/*.c examples/*.re
}

View File

@ -0,0 +1,28 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
inherit eutils
DESCRIPTION="tool for generating C-based recognizers from regular expressions"
HOMEPAGE="http://re2c.org/"
SRC_URI="https://github.com/skvadrik/re2c/releases/download/${PV}/${P}.tar.gz"
LICENSE="public-domain"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
src_prepare() {
epatch_user
export ac_cv_path_BISON="no"
}
src_install() {
default
docompress -x /usr/share/doc/${PF}/{examples,paper}
dodoc -r README CHANGELOG examples
docinto paper
dodoc doc/loplas.ps doc/sample.bib
}

View File

@ -0,0 +1,28 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
inherit eutils
DESCRIPTION="tool for generating C-based recognizers from regular expressions"
HOMEPAGE="http://re2c.org/"
SRC_URI="https://github.com/skvadrik/re2c/releases/download/${PV}/${P}.tar.gz"
LICENSE="public-domain"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
src_prepare() {
epatch_user
export ac_cv_path_BISON="no"
}
src_install() {
default
docompress -x /usr/share/doc/${PF}/{examples,paper}
dodoc -r README CHANGELOG examples
docinto paper
dodoc doc/loplas.ps doc/sample.bib
}

View File

@ -0,0 +1,28 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
inherit eutils
DESCRIPTION="tool for generating C-based recognizers from regular expressions"
HOMEPAGE="http://re2c.org/"
SRC_URI="https://github.com/skvadrik/re2c/releases/download/${PV}/${P}.tar.gz"
LICENSE="public-domain"
SLOT="0"
KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
src_prepare() {
epatch_user
export ac_cv_path_BISON="no"
}
src_install() {
default
docompress -x /usr/share/doc/${PF}/{examples,paper}
dodoc -r README CHANGELOG examples
docinto paper
dodoc doc/loplas.ps doc/sample.bib
}

View File

@ -171,6 +171,10 @@ setup_mpm() {
eerror "You have selected a non-threaded MPM but USE=threads is enabled"
die "invalid use flag combination"
fi
if [[ "${PV}" != 2.2* ]] && [[ "${MY_MPM}" = *prefork* ]] && use apache2_modules_http2 ; then
die "http2 does not work with prefork MPM."
fi
}
# @VARIABLE: MODULE_CRITICAL

View File

@ -1,80 +0,0 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# @DEAD
# Removal on 2017-05-01.
# @ECLASS: aspell-dict.eclass
# @MAINTAINER:
# maintainer-needed@gentoo.org
# @AUTHOR:
# Original author: Seemant Kulleen
# @BLURB: An eclass to streamline the construction of ebuilds for new aspell dicts
# @DESCRIPTION:
# The aspell-dict eclass is designed to streamline the construction of
# ebuilds for the new aspell dictionaries (from gnu.org) which support
# aspell-0.50. Support for aspell-0.60 has been added by Sergey Ulanov.
# @ECLASS-VARIABLE: ASPELL_LANG
# @REQUIRED
# @DESCRIPTION:
# Which language is the dictionary for? It's used for the DESCRIPTION of the
# package.
# @ECLASS-VARIABLE: ASPOSTFIX
# @REQUIRED
# @DESCRIPTION:
# What major version of aspell is this dictionary for?
case ${EAPI} in
0|1) EXPORT_FUNCTIONS src_compile src_install ;;
*) EXPORT_FUNCTIONS src_configure src_compile src_install ;;
esac
#MY_P=${PN}-${PV%.*}-${PV#*.*.}
MY_P=${P%.*}-${PV##*.}
MY_P=aspell${ASPOSTFIX}-${MY_P/aspell-/}
SPELLANG=${PN/aspell-/}
S="${WORKDIR}/${MY_P}"
DESCRIPTION="${ASPELL_LANG} language dictionary for aspell"
HOMEPAGE="http://aspell.net"
SRC_URI="mirror://gnu/aspell/dict/${SPELLANG}/${MY_P}.tar.bz2"
IUSE=""
SLOT="0"
if [ x${ASPOSTFIX} = x6 ] ; then
RDEPEND=">=app-text/aspell-0.60"
DEPEND="${RDEPEND}"
else
RDEPEND=">=app-text/aspell-0.50"
DEPEND="${RDEPEND}"
fi
# @FUNCTION: aspell-dict_src_configure
# @DESCRIPTION:
# The aspell-dict src_configure function which is exported.
aspell-dict_src_configure() {
./configure || die
}
# @FUNCTION: aspell-dict_src_compile
# @DESCRIPTION:
# The aspell-dict src_compile function which is exported.
aspell-dict_src_compile() {
case ${EAPI} in
0|1) aspell-dict_src_configure ;;
esac
emake || die
}
# @FUNCTION: aspell-dict_src_install
# @DESCRIPTION:
# The aspell-dict src_install function which is exported.
aspell-dict_src_install() {
make DESTDIR="${D}" install || die
for doc in README info ; do
[ -s "$doc" ] && dodoc $doc
done
}

View File

@ -3,7 +3,7 @@
# @ECLASS: bsdmk.eclass
# @MAINTAINER:
# maintainer-needed@gentoo.org
# bsd@gentoo.org
# @BLURB: Some functions for BSDmake
inherit toolchain-funcs portability flag-o-matic

View File

@ -1,63 +1,55 @@
# Copyright 1999-2012 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: cannadic.eclass
# @MAINTAINER:
# cjk@gentoo.org
# @AUTHOR:
# Original author: Mamoru KOMACHI <usata@gentoo.org>
# Mamoru KOMACHI <usata@gentoo.org>
# @BLURB: Function for Canna compatible dictionaries
# @DESCRIPTION:
# The cannadic eclass is used for installation and setup of Canna
# compatible dictionaries within the Portage system.
inherit eutils
EXPORT_FUNCTIONS src_install pkg_setup pkg_postinst pkg_postrm
EXPORT_FUNCTIONS pkg_setup pkg_postinst pkg_postrm src_install
IUSE=""
HOMEPAGE="http://canna.sourceforge.jp/" # you need to change this!
HOMEPAGE="http://canna.osdn.jp/" # you need to change this!
SRC_URI="mirror://gentoo/${P}.tar.gz"
LICENSE="public-domain"
SLOT="0"
S="${WORKDIR}"
DICSDIRFILE="${FILESDIR}/*.dics.dir"
CANNADICS="${CANNADICS}" # (optional)
DOCS="README*"
# You don't need to modify these
#local cannadir dicsdir
cannadir="${ROOT}/var/lib/canna/dic/canna"
dicsdir="${ROOT}/var/lib/canna/dic/dics.d"
CANNADIC_CANNA_DIR="${EROOT:-${ROOT}}"var/lib/canna/dic/canna
CANNADIC_DICS_DIR="${EROOT:-${ROOT}}"var/lib/canna/dic/dics.d
readonly CANNADIC_CANNA_DIR CANNADIC_DICS_DIR
# @FUNCTION: cannadic_pkg_setup
# @DESCRIPTION:
# Sets up cannadic dir
# Sets up ${CANNADIC_CANNA_DIR}
cannadic_pkg_setup() {
keepdir $cannadir
fowners bin:bin $cannadir
fperms 0775 $cannadir
keepdir "${CANNADIC_CANNA_DIR}"
fowners bin:bin "${CANNADIC_CANNA_DIR}"
fperms 0775 "${CANNADIC_CANNA_DIR}"
}
# @FUNCTION: cannadic-install
# @DESCRIPTION:
# Installs dictionaries to cannadir
# Installs dictionaries to ${CANNADIC_CANNA_DIR}
cannadic-install() {
insinto $cannadir
insopts -m0664 -o bin -g bin
doins "$@"
insinto "${CANNADIC_CANNA_DIR}"
insopts -m 0664 -o bin -g bin
doins "${@}"
}
# @FUNCTION: dicsdir-install
# @DESCRIPTION:
# Installs dics.dir from ${DICSDIRFILE}
dicsdir-install() {
insinto ${dicsdir}
doins ${DICSDIRFILE}
insinto "${CANNADIC_DICS_DIR}"
doins "${DICSDIRFILE}"
}
# @FUNCTION: cannadic_src_install
@ -65,14 +57,16 @@ dicsdir-install() {
# Installs all dictionaries under ${WORKDIR}
# plus dics.dir and docs
cannadic_src_install() {
for f in *.c[btl]d *.t ; do
cannadic-install $f
done 2>/dev/null
local f
for f in *.c[btl]d *.t; do
if [[ -s "${f}" ]]; then
cannadic-install "${f}"
fi
done 2> /dev/null
dicsdir-install || die
dodoc ${DOCS}
einstalldocs
}
# @FUNCTION: update-cannadic-dir
@ -84,24 +78,24 @@ cannadic_src_install() {
# Licensed under the GNU General Public License, version 2. See the file
# /usr/portage/license/GPL-2 or <http://www.gnu.org/copyleft/gpl.txt>.
update-cannadic-dir() {
einfo
einfo "Updating dics.dir for Canna ..."
einfo
# write new dics.dir file in case we are interrupted
cat >${cannadir}/dics.dir.update-new<<-EOF
cat <<-EOF > "${CANNADIC_CANNA_DIR}"/dics.dir.update-new
# dics.dir -- automatically generated file by Portage.
# DO NOT EDIT BY HAND.
EOF
for file in ${dicsdir}/*.dics.dir ; do
echo "# $file" >> ${cannadir}/dics.dir.update-new
cat $file >> ${cannadir}/dics.dir.update-new
einfo "Added $file."
local f
for f in "${CANNADIC_DICS_DIR}"/*.dics.dir; do
echo "# ${f}" >> "${CANNADIC_CANNA_DIR}"/dics.dir.update-new
cat "${f}" >> "${CANNADIC_CANNA_DIR}"/dics.dir.update-new
einfo "Added ${f}."
done
mv ${cannadir}/dics.dir.update-new ${cannadir}/dics.dir
mv "${CANNADIC_CANNA_DIR}"/dics.dir.update-new "${CANNADIC_CANNA_DIR}"/dics.dir
einfo
einfo "Done."
@ -113,15 +107,14 @@ update-cannadic-dir() {
# Updates dics.dir and print out notice after install
cannadic_pkg_postinst() {
update-cannadic-dir
einfo
einfo "Please restart cannaserver to fit the changes."
einfo "You need to modify your config file (~/.canna) to enable dictionaries."
if [ -n "${CANNADICS}" ] ; then
einfo "e.g) add $(for d in ${CANNADICS}; do
echo -n "\"$d\" "
done)to section use-dictionary()."
einfo "For details, see documents under /usr/share/doc/${PF}"
if [[ -n "${CANNADICS}" ]]; then
einfo "e.g) add $(for d in ${CANNADICS}; do echo -n "\"${d}\" "; done)to section use-dictionary()."
einfo "For details, see documents under /usr/share/doc/${PF}."
fi
einfo "If you do not have ~/.canna, you can find sample files in /usr/share/canna."
@ -135,14 +128,13 @@ cannadic_pkg_postinst() {
# Updates dics.dir and print out notice after uninstall
cannadic_pkg_postrm() {
update-cannadic-dir
einfo
einfo "Please restart cannaserver to fit changes."
einfo "and modify your config file (~/.canna) to disable dictionary."
if [ -n "${CANNADICS}" ] ; then
einfo "e.g) delete $(for d in ${CANNADICS}; do
echo -n "\"$d\" "
done)from section use-dictionary()."
if [[ -n "${CANNADICS}" ]]; then
einfo "e.g) delete $(for d in ${CANNADICS}; do echo -n "\"${d}\" "; done)from section use-dictionary()."
fi
einfo

View File

@ -29,12 +29,13 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo"
# @DESCRIPTION:
# Generates the URIs to put in SRC_URI to help fetch dependencies.
cargo_crate_uris() {
for crate in $*; do
local crate
for crate in "$@"; do
local name version url
name="${crate%-*}"
version="${crate##*-}"
url="https://crates.io/api/v1/crates/${name}/${version}/download -> ${crate}.crate"
echo $url
echo "${url}"
done
}
@ -93,7 +94,7 @@ cargo_src_unpack() {
cargo_gen_config() {
debug-print-function ${FUNCNAME} "$@"
cat <<- EOF > ${ECARGO_HOME}/config
cat <<- EOF > "${ECARGO_HOME}/config"
[source.gentoo]
directory = "${ECARGO_VENDOR}"

View File

@ -281,7 +281,7 @@ _cdrom_glob_match() {
shopt -s extglob nocaseglob nullglob || die
# The first person to make this work without an eval wins a
# cookie. It breaks without it when spaces are present.
eval "ARRAY=( ${p} )"
eval "ARRAY=( ${p%\?()} )"
echo ${ARRAY[0]}
)
}

View File

@ -32,7 +32,8 @@ chromium_suid_sandbox_check_kernel_config() {
# (bug #552576, bug #556286).
ERROR_ADVISE_SYSCALLS="CONFIG_ADVISE_SYSCALLS is required for the renderer (bug #552576)"
ERROR_COMPAT_VDSO="CONFIG_COMPAT_VDSO causes segfaults (bug #556286)"
CONFIG_CHECK="~PID_NS ~NET_NS ~SECCOMP_FILTER ~USER_NS ~ADVISE_SYSCALLS ~!COMPAT_VDSO"
ERROR_GRKERNSEC="CONFIG_GRKERNSEC breaks sandbox (bug #613668)"
CONFIG_CHECK="~PID_NS ~NET_NS ~SECCOMP_FILTER ~USER_NS ~ADVISE_SYSCALLS ~!COMPAT_VDSO ~!GRKERNSEC"
check_extra_config
fi
}

View File

@ -87,23 +87,6 @@ _CMAKE_UTILS_ECLASS=1
# but not used. Might give false-positives.
# "no" to disable (default) or anything else to enable.
# @ECLASS-VARIABLE: PREFIX
# @DESCRIPTION:
# Eclass respects PREFIX variable, though it's not recommended way to set
# install/lib/bin prefixes.
# Use -DCMAKE_INSTALL_PREFIX=... CMake variable instead.
: ${PREFIX:=/usr}
# @ECLASS-VARIABLE: WANT_CMAKE
# @DESCRIPTION:
# Specify if cmake-utils eclass should depend on cmake optionally or not.
# This is useful when only part of application is using cmake build system.
# Valid values are: always [default], optional (where the value is the useflag
# used for optionality)
#
# This is banned in EAPI 6 and later.
: ${WANT_CMAKE:=always}
# @ECLASS-VARIABLE: CMAKE_EXTRA_CACHE_FILE
# @DESCRIPTION:
# Specifies an extra cache file to pass to cmake. This is the analog of EXTRA_ECONF
@ -111,32 +94,25 @@ _CMAKE_UTILS_ECLASS=1
# Should be set by user in a per-package basis in /etc/portage/package.env.
case ${EAPI} in
2|4|5) : ${CMAKE_WARN_UNUSED_CLI:=no} ;;
5) : ${CMAKE_WARN_UNUSED_CLI:=no} ;;
6) : ${CMAKE_WARN_UNUSED_CLI:=yes} ;;
*) die "EAPI=${EAPI:-0} is not supported" ;;
esac
inherit toolchain-funcs multilib flag-o-matic eutils multiprocessing versionator
inherit toolchain-funcs multilib ninja-utils flag-o-matic eutils \
multiprocessing versionator
EXPORT_FUNCTIONS src_prepare src_configure src_compile src_test src_install
CMAKEDEPEND=""
case ${WANT_CMAKE} in
always)
;;
*)
[[ ${EAPI} == [2345] ]] || die "WANT_CMAKE is banned in EAPI 6 and later"
IUSE+=" ${WANT_CMAKE}"
CMAKEDEPEND+="${WANT_CMAKE}? ( "
;;
esac
[[ ${WANT_CMAKE} ]] && eqawarn "\${WANT_CMAKE} has been removed and is a no-op now"
[[ ${PREFIX} ]] && die "\${PREFIX} has been removed and is a no-op now"
case ${CMAKE_MAKEFILE_GENERATOR} in
emake)
CMAKEDEPEND+=" sys-devel/make"
DEPEND="sys-devel/make"
;;
ninja)
CMAKEDEPEND+=" dev-util/ninja"
DEPEND="dev-util/ninja"
;;
*)
eerror "Unknown value for \${CMAKE_MAKEFILE_GENERATOR}"
@ -145,14 +121,9 @@ case ${CMAKE_MAKEFILE_GENERATOR} in
esac
if [[ ${PN} != cmake ]]; then
CMAKEDEPEND+=" >=dev-util/cmake-${CMAKE_MIN_VERSION}"
DEPEND+=" >=dev-util/cmake-${CMAKE_MIN_VERSION}"
fi
[[ ${WANT_CMAKE} = always ]] || CMAKEDEPEND+=" )"
DEPEND="${CMAKEDEPEND}"
unset CMAKEDEPEND
# Internal functions used by cmake-utils_use_*
_cmake_use_me_now() {
debug-print-function ${FUNCNAME} "$@"
@ -160,7 +131,7 @@ _cmake_use_me_now() {
local arg=$2
[[ ! -z $3 ]] && arg=$3
[[ ${EAPI} == [2345] ]] || die "${FUNCNAME[1]} is banned in EAPI 6 and later: use -D$1<related_CMake_variable>=\"\$(usex $2)\" instead"
[[ ${EAPI} == 5 ]] || die "${FUNCNAME[1]} is banned in EAPI 6 and later: use -D$1<related_CMake_variable>=\"\$(usex $2)\" instead"
local uper capitalised x
[[ -z $2 ]] && die "cmake-utils_use-$1 <USE flag> [<flag name>]"
@ -182,7 +153,7 @@ _cmake_use_me_now_inverted() {
local arg=$2
[[ ! -z $3 ]] && arg=$3
if [[ ${EAPI} != [2345] && "${FUNCNAME[1]}" != cmake-utils_use_find_package ]] ; then
if [[ ${EAPI} != 5 && "${FUNCNAME[1]}" != cmake-utils_use_find_package ]] ; then
die "${FUNCNAME[1]} is banned in EAPI 6 and later: use -D$1<related_CMake_variable>=\"\$(usex $2)\" instead"
fi
@ -282,7 +253,7 @@ cmake_comment_add_subdirectory() {
# Comment out an add_subdirectory call in CMakeLists.txt in the current directory
# Banned in EAPI 6 and later - use cmake_comment_add_subdirectory instead.
comment_add_subdirectory() {
[[ ${EAPI} == [2345] ]] || die "comment_add_subdirectory is banned in EAPI 6 and later - use cmake_comment_add_subdirectory instead"
[[ ${EAPI} == 5 ]] || die "comment_add_subdirectory is banned in EAPI 6 and later - use cmake_comment_add_subdirectory instead"
cmake_comment_add_subdirectory "$@"
}
@ -314,7 +285,7 @@ cmake-utils_use_enable() { _cmake_use_me_now ENABLE_ "$@" ; }
# if foo is enabled and -DCMAKE_DISABLE_FIND_PACKAGE_LibFoo=ON if it is disabled.
# This can be used to make find_package optional.
cmake-utils_use_find_package() {
if [[ ${EAPI} != [2345] && "$#" != 2 ]] ; then
if [[ ${EAPI} != 5 && "$#" != 2 ]] ; then
die "Usage: cmake-utils_use_find_package <USE flag> <package name>"
fi
@ -450,12 +421,15 @@ _cmake_cleanup_cmake() {
_cmake_modify-cmakelists
}
enable_cmake-utils_src_prepare() {
# @FUNCTION: cmake-utils_src_prepare
# @DESCRIPTION:
# Apply ebuild and user patches.
cmake-utils_src_prepare() {
debug-print-function ${FUNCNAME} "$@"
pushd "${S}" > /dev/null || die
if [[ ${EAPI} != [2345] ]]; then
if [[ ${EAPI} != 5 ]]; then
default_src_prepare
_cmake_cleanup_cmake
else
@ -484,10 +458,14 @@ enable_cmake-utils_src_prepare() {
# }
# @CODE
enable_cmake-utils_src_configure() {
# @FUNCTION: cmake-utils_src_configure
# @DESCRIPTION:
# General function for configuring with cmake. Default behaviour is to start an
# out-of-source build.
cmake-utils_src_configure() {
debug-print-function ${FUNCNAME} "$@"
[[ ${EAPI} == [2345] ]] && _cmake_cleanup_cmake
[[ ${EAPI} == 5 ]] && _cmake_cleanup_cmake
_cmake_check_build_dir
@ -575,8 +553,6 @@ enable_cmake-utils_src_configure() {
fi
fi
[[ ${EAPI} == 2 ]] && ! use prefix && local EPREFIX=
if [[ ${EPREFIX} ]]; then
cat >> "${build_rules}" <<- _EOF_ || die
# in Prefix we need rpath and must ensure cmake gets our default linker path
@ -588,13 +564,13 @@ enable_cmake-utils_src_configure() {
ELSE ()
SET(CMAKE_PREFIX_PATH "${EPREFIX}${PREFIX}" CACHE STRING "" FORCE)
SET(CMAKE_PREFIX_PATH "${EPREFIX}/usr" CACHE STRING "" FORCE)
SET(CMAKE_SKIP_BUILD_RPATH OFF CACHE BOOL "" FORCE)
SET(CMAKE_SKIP_RPATH OFF CACHE BOOL "" FORCE)
SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE CACHE BOOL "")
SET(CMAKE_INSTALL_RPATH "${EPREFIX}${PREFIX}/lib;${EPREFIX}/usr/${CHOST}/lib/gcc;${EPREFIX}/usr/${CHOST}/lib;${EPREFIX}/usr/$(get_libdir);${EPREFIX}/$(get_libdir)" CACHE STRING "" FORCE)
SET(CMAKE_INSTALL_RPATH "${EPREFIX}/usr/lib;${EPREFIX}/usr/${CHOST}/lib/gcc;${EPREFIX}/usr/${CHOST}/lib;${EPREFIX}/usr/$(get_libdir);${EPREFIX}/$(get_libdir)" CACHE STRING "" FORCE)
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE CACHE BOOL "" FORCE)
SET(CMAKE_INSTALL_NAME_DIR "${EPREFIX}${PREFIX}/lib" CACHE STRING "" FORCE)
SET(CMAKE_INSTALL_NAME_DIR "${EPREFIX}/usr/lib" CACHE STRING "" FORCE)
ENDIF (NOT APPLE)
_EOF_
@ -611,7 +587,7 @@ enable_cmake-utils_src_configure() {
[[ "${NOCOLOR}" = true || "${NOCOLOR}" = yes ]] && echo 'SET (CMAKE_COLOR_MAKEFILE OFF CACHE BOOL "pretty colors during make" FORCE)' >> "${common_config}"
# Wipe the default optimization flags out of CMake
if [[ ${CMAKE_BUILD_TYPE} != Gentoo ]] && ! has "${EAPI}" 2 3 4 5; then
if [[ ${CMAKE_BUILD_TYPE} != Gentoo && ${EAPI} != 5 ]]; then
cat >> ${common_config} <<- _EOF_ || die
SET (CMAKE_ASM_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "")
SET (CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "")
@ -630,7 +606,7 @@ enable_cmake-utils_src_configure() {
local mycmakeargstype=$(declare -p mycmakeargs 2>&-)
if [[ "${mycmakeargstype}" != "declare -a mycmakeargs="* ]]; then
if [[ -n "${mycmakeargstype}" ]] ; then
if [[ ${EAPI} == [2345] ]]; then
if [[ ${EAPI} == 5 ]]; then
eqawarn "Declaring mycmakeargs as a variable is deprecated. Please use an array instead."
else
die "Declaring mycmakeargs as a variable is banned in EAPI=${EAPI}. Please use an array instead."
@ -654,10 +630,10 @@ enable_cmake-utils_src_configure() {
${warn_unused_cli}
-C "${common_config}"
-G "$(_cmake_generator_to_use)"
-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}"
-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr"
"${mycmakeargs_local[@]}"
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}"
$([[ ${EAPI} == [2345] ]] && echo -DCMAKE_INSTALL_DO_STRIP=OFF)
$([[ ${EAPI} == 5 ]] && echo -DCMAKE_INSTALL_DO_STRIP=OFF)
-DCMAKE_USER_MAKE_RULES_OVERRIDE="${build_rules}"
-DCMAKE_TOOLCHAIN_FILE="${toolchain_file}"
"${MYCMAKEARGS}"
@ -674,50 +650,16 @@ enable_cmake-utils_src_configure() {
popd > /dev/null || die
}
enable_cmake-utils_src_compile() {
# @FUNCTION: cmake-utils_src_compile
# @DESCRIPTION:
# General function for compiling with cmake.
# Automatically detects the build type. All arguments are passed to emake.
cmake-utils_src_compile() {
debug-print-function ${FUNCNAME} "$@"
cmake-utils_src_make "$@"
}
_ninjaopts_from_makeopts() {
if [[ ${NINJAOPTS+set} == set ]]; then
return 0
fi
local ninjaopts=()
set -- ${MAKEOPTS}
while (( $# )); do
case $1 in
-j|-l)
if [[ $# -eq 1 || $2 == -* ]]; then
if [[ $1 == -j ]]; then
# absurdly high job limit
ninjaopts+=( $1 9999 )
else # -l
# remove load limit (like make does for -l)
ninjaopts+=( $1 0 )
fi
shift 1
else
ninjaopts+=( $1 $2 )
shift 2
fi
;;
-j*|-l*)
ninjaopts+=( $1 )
shift 1
;;
-k)
# -k 0 = any number of tasks can fail
ninjaopts+=( $1 0 )
shift 1
;;
*) shift ;;
esac
done
export NINJAOPTS="${ninjaopts[*]}"
}
# @FUNCTION: _cmake_ninja_src_make
# @INTERNAL
# @DESCRIPTION:
@ -727,16 +669,7 @@ _cmake_ninja_src_make() {
[[ -e build.ninja ]] || die "build.ninja not found. Error during configure stage."
_ninjaopts_from_makeopts
if [[ "${CMAKE_VERBOSE}" != "OFF" ]]; then
set -- ninja ${NINJAOPTS} -v "$@"
else
set -- ninja ${NINJAOPTS} "$@"
fi
echo "$@"
"$@" || die
eninja "$@"
}
# @FUNCTION: _cmake_emake_src_make
@ -771,7 +704,10 @@ cmake-utils_src_make() {
popd > /dev/null || die
}
enable_cmake-utils_src_test() {
# @FUNCTION: cmake-utils_src_test
# @DESCRIPTION:
# Function for testing the package. Automatically detects the build type.
cmake-utils_src_test() {
debug-print-function ${FUNCNAME} "$@"
_cmake_check_build_dir
@ -804,7 +740,10 @@ enable_cmake-utils_src_test() {
fi
}
enable_cmake-utils_src_install() {
# @FUNCTION: cmake-utils_src_install
# @DESCRIPTION:
# Function for installing the package. Automatically detects the build type.
cmake-utils_src_install() {
debug-print-function ${FUNCNAME} "$@"
_cmake_check_build_dir
@ -817,51 +756,4 @@ enable_cmake-utils_src_install() {
popd > /dev/null || die
}
# @FUNCTION: cmake-utils_src_prepare
# @DESCRIPTION:
# Apply ebuild and user patches.
cmake-utils_src_prepare() {
_cmake_execute_optionally "src_prepare" "$@"
}
# @FUNCTION: cmake-utils_src_configure
# @DESCRIPTION:
# General function for configuring with cmake. Default behaviour is to start an
# out-of-source build.
cmake-utils_src_configure() {
_cmake_execute_optionally "src_configure" "$@"
}
# @FUNCTION: cmake-utils_src_compile
# @DESCRIPTION:
# General function for compiling with cmake.
# Automatically detects the build type. All arguments are passed to emake.
cmake-utils_src_compile() {
_cmake_execute_optionally "src_compile" "$@"
}
# @FUNCTION: cmake-utils_src_test
# @DESCRIPTION:
# Function for testing the package. Automatically detects the build type.
cmake-utils_src_test() {
_cmake_execute_optionally "src_test" "$@"
}
# @FUNCTION: cmake-utils_src_install
# @DESCRIPTION:
# Function for installing the package. Automatically detects the build type.
cmake-utils_src_install() {
_cmake_execute_optionally "src_install" "$@"
}
# Optionally executes phases based on WANT_CMAKE variable/USE flag.
_cmake_execute_optionally() {
local phase="$1" ; shift
if [[ ${WANT_CMAKE} = always ]]; then
enable_cmake-utils_${phase} "$@"
else
use ${WANT_CMAKE} && enable_cmake-utils_${phase} "$@"
fi
}
fi

View File

@ -1,4 +1,4 @@
# Copyright 1999-2010 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: common-lisp-3.eclass

View File

@ -1,14 +1,17 @@
# Copyright 1999-2012 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
#
# Author Matthew Kennedy <mkennedy@gentoo.org>
#
# Sundry code common to many Common Lisp related ebuilds.
# Some handy constants
# @ECLASS: common-lisp-common.eclass
# @MAINTAINER:
# Common Lisp project <common-lisp@gentoo.org>
# @AUTHOR: Matthew Kennedy <mkennedy@gentoo.org>
# @BLURB: eclass for installing Common Lisp packages.
# @DESCRIPTION:
# Sundry code common to many Common Lisp related ebuilds.
inherit eutils multilib
# Some handy constants
CLFASLROOT=/usr/$(get_libdir)/common-lisp/
CLSOURCEROOT=/usr/share/common-lisp/source/
CLSYSTEMROOT=/usr/share/common-lisp/systems/

View File

@ -1,8 +1,12 @@
# Copyright 1999-2011 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
#
# Author Matthew Kennedy <mkennedy@gentoo.org>
#
# @ECLASS: common-lisp.eclass
# @MAINTAINER:
# Common Lisp project <common-lisp@gentoo.org>
# @AUTHOR: Matthew Kennedy <mkennedy@gentoo.org>
# @BLURB: eclass for installing Common Lisp packages.
# @DESCRIPTION:
# This eclass supports the common-lisp-controller installation of many
# Common Lisp libraries

View File

@ -1,6 +1,15 @@
# Copyright 1999-2012 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# @DEAD
# Michał Górny <mgorny@gentoo.org> (30 Jun 2017)
# This eclass is no longer useful. Most of it has been superseded by
# new EAPI features such as REQUIRED_USE and USE dependencies.
# The remaining functions are very specialized (probably to PHP)
# and were not used for a long time. The last consumer is now redundant
# to a new stable version and will be removed soon.
# The eclass will be removed in 30 days.
# @ECLASS: confutils.eclass
# @MAINTAINER:
# No maintainer <maintainer-needed@gentoo.org>

View File

@ -1,4 +1,4 @@
# Copyright 1999-2016 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: distutils-r1.eclass
@ -191,6 +191,12 @@ fi
# (allowing any implementation). If multiple values are specified,
# implementations matching any of the patterns will be accepted.
#
# The patterns can be either fnmatch-style patterns (matched via bash
# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
# appropriately all enabled Python 2/3 implementations (alike
# python_is_python3). Remember to escape or quote the fnmatch patterns
# to prevent accidental shell filename expansion.
#
# If the restriction needs to apply conditionally to a USE flag,
# the variable should be set conditionally as well (e.g. in an early
# phase function or other convenient location).
@ -666,23 +672,20 @@ distutils-r1_run_phase() {
_distutils-r1_run_common_phase() {
local DISTUTILS_ORIG_BUILD_DIR=${BUILD_DIR}
if [[ ! ${DISTUTILS_SINGLE_IMPL} ]]; then
local best_impl patterns=( "${DISTUTILS_ALL_SUBPHASE_IMPLS[@]-*}" )
_distutils_try_impl() {
local pattern
for pattern in "${patterns[@]}"; do
if [[ ${EPYTHON} == ${pattern} ]]; then
best_impl=${MULTIBUILD_VARIANT}
fi
done
}
python_foreach_impl _distutils_try_impl
unset -f _distutils_try_impl
if [[ ${DISTUTILS_SINGLE_IMPL} ]]; then
# reuse the dedicated code branch
_distutils-r1_run_foreach_impl "${@}"
else
local -x EPYTHON PYTHON
local -x PATH=${PATH} PKG_CONFIG_PATH=${PKG_CONFIG_PATH}
python_setup "${DISTUTILS_ALL_SUBPHASE_IMPLS[@]}"
local PYTHON_COMPAT=( "${best_impl}" )
local MULTIBUILD_VARIANTS=( "${EPYTHON/./_}" )
# store for restoring after distutils-r1_run_phase.
local _DISTUTILS_INITIAL_CWD=${PWD}
multibuild_foreach_variant \
distutils-r1_run_phase "${@}"
fi
_distutils-r1_run_foreach_impl "${@}"
}
# @FUNCTION: _distutils-r1_run_foreach_impl
@ -693,15 +696,6 @@ _distutils-r1_run_common_phase() {
_distutils-r1_run_foreach_impl() {
debug-print-function ${FUNCNAME} "${@}"
if [[ ${DISTUTILS_NO_PARALLEL_BUILD} ]]; then
[[ ${EAPI} == [45] ]] || die "DISTUTILS_NO_PARALLEL_BUILD is banned in EAPI ${EAPI}"
eqawarn "DISTUTILS_NO_PARALLEL_BUILD is no longer meaningful. Now all builds"
eqawarn "are non-parallel. Please remove it from the ebuild."
unset DISTUTILS_NO_PARALLEL_BUILD # avoid repeated warnings
fi
# store for restoring after distutils-r1_run_phase.
local _DISTUTILS_INITIAL_CWD=${PWD}
set -- distutils-r1_run_phase "${@}"
@ -770,10 +764,14 @@ distutils-r1_src_compile() {
fi
}
_clean_egg_info() {
# Work around for setuptools test behavior (bug 534058).
# https://bitbucket.org/pypa/setuptools/issue/292
rm -rf "${BUILD_DIR}"/lib/*.egg-info
# @FUNCTION: _distutils-r1_clean_egg_info
# @INTERNAL
# @DESCRIPTION:
# Clean up potential stray egg-info files left by setuptools test phase.
# Those files ended up being unversioned, and caused issues:
# https://bugs.gentoo.org/534058
_distutils-r1_clean_egg_info() {
rm -rf "${BUILD_DIR}"/lib/*.egg-info || die
}
distutils-r1_src_test() {
@ -781,7 +779,7 @@ distutils-r1_src_test() {
if declare -f python_test >/dev/null; then
_distutils-r1_run_foreach_impl python_test
_distutils-r1_run_foreach_impl _clean_egg_info
_distutils-r1_run_foreach_impl _distutils-r1_clean_egg_info
fi
if declare -f python_test_all >/dev/null; then
@ -789,6 +787,33 @@ distutils-r1_src_test() {
fi
}
# @FUNCTION: _distutils-r1_check_namespace_pth
# @INTERNAL
# @DESCRIPTION:
# Check if any *-nspkg.pth files were installed (by setuptools)
# and warn about the policy non-conformance if they were.
_distutils-r1_check_namespace_pth() {
local f pth=()
while IFS= read -r -d '' f; do
pth+=( "${f}" )
done < <(find "${ED}" -name '*-nspkg.pth' -print0)
if [[ ${pth[@]} ]]; then
ewarn "The following *-nspkg.pth files were found installed:"
ewarn
for f in "${pth[@]}"; do
ewarn " ${f#${ED%/}}"
done
ewarn
ewarn "The presence of those files may break namespaces in Python 3.5+. Please"
ewarn "read our documentation on reliable handling of namespaces and update"
ewarn "the ebuild accordingly:"
ewarn
ewarn " https://wiki.gentoo.org/wiki/Project:Python/Namespace_packages"
fi
}
distutils-r1_src_install() {
debug-print-function ${FUNCNAME} "${@}"
@ -812,6 +837,8 @@ distutils-r1_src_install() {
"${cmd}" "QA: python_install_all() didn't call distutils-r1_python_install_all"
fi
_distutils-r1_check_namespace_pth
}
# -- distutils.eclass functions --

View File

@ -1,459 +0,0 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# @DEAD
# Removal on 2017-03-24.
# Author: George Shapovalov <george@gentoo.org>
# No maintainer <maintainer-needed@gentoo.org>
#
# This eclass provides the framework for ada lib installation with the split and
# SLOTted gnat compilers (gnat-xxx, gnatbuild.eclass). Each lib gets built once
# for every installed gnat compiler. Activation of a particular bunary module is
# performed by eselect-gnat, when the active compiler gets switched
#
# The ebuilds should define the lib_compile and lib_install functions that are
# called from the (exported) gnat_src_compile function of eclass. These
# functions should operate similarly to the starndard src_compile and
# src_install. The only difference, that they should use $SL variable instead of
# $S (this is where the working copy of source is held) and $DL instead of $D as
# its installation point.
inherit flag-o-matic eutils multilib
# The environment is set locally in src_compile and src_install functions
# by the common code sourced here and in gnat-eselect module.
# This is the standard location for this code (belongs to eselect-gnat,
# since eselect should work even in the absense of portage tree and we can
# guarantee to some extent presence of gnat-eselect when anything gnat-related
# gets processed. See #192505)
#
# Note!
# It may not be safe to source this at top level. Only source inside local
# functions!
GnatCommon="/usr/share/gnat/lib/gnat-common.bash"
# !!NOTE!!
# src_install should not be exported!
# Instead gnat_src_install should be explicitly called from within src_install.
EXPORT_FUNCTIONS pkg_setup pkg_postinst src_compile
DESCRIPTION="Common procedures for building Ada libs using split gnat compilers"
# make sure we have an appropriately recent eselect-gnat installed, as we are
# using some common code here.
DEPEND=">=app-eselect/eselect-gnat-1.3"
# ----------------------------------
# Globals
# Lib install locations
#
# Gnat profile dependent files go under ${LibTop}/${Gnat_Profile}/${PN}
# and common files go under SpecsDir, DataDir..
# In order not to pollute PATH and LDPATH attempt should be mabe to install
# binaries and what makes sence for individual packages under
# ${AdalibLibTop}/${Gnat_Profile}/bin
PREFIX=/usr
AdalibSpecsDir=${PREFIX}/include/ada
AdalibDataDir=${PREFIX}/share/ada
AdalibLibTop=${PREFIX}/$(get_libdir)/ada
# build-time locations
# SL is a "localized" S, - location where sources are copied for
#bi profile-specific build
SL=${WORKDIR}/LocalSource
# DL* are "localized destinations" where ARCH/SLOT dependent stuff should be
# installed in lib_install. There are three:
#
DL=${WORKDIR}/LocalDest
# a generic location for the lib (.a, .so) files
#
DLbin=${WORKDIR}/LocalBinDest
# binaries that should be in the PATH, will be moved to common Ada bin dir
#
DLgpr=${WORKDIR}/LocalGPRDest
# gpr's should go here.
# file containing environment formed by gnat-eselect (build-time)
BuildEnv=${WORKDIR}/BuildEnv
# environment for installed lib. Profile-specific stuff should use %DL% as a top
# of their location. This (%DL%) will be substituted with a proper location upon
# install
LibEnv=${WORKDIR}/LibEnv
# env file prepared by gnat.eselect only lists new settings for env vars
# we need to change that to prepend, rather than replace action..
# Takes one argument - the file to expand. This file should contain only
# var=value like lines.. (commenst are Ok)
expand_BuildEnv() {
local line
for line in $(cat $1); do
EnvVar=$(echo ${line}|cut -d"=" -f1)
if [[ "${EnvVar}" == "PATH" ]] ; then
echo "export ${line}:\${${EnvVar}}" >> $1.tmp
else
echo "export ${line}" >> $1.tmp
fi
done
mv $1.tmp $1
}
# ------------------------------------
# Dependency processing related stuff
# A simple wrapper to get the relevant part of the DEPEND
# params:
# $1 - should contain dependency specification analogous to DEPEND,
# if omitted, DEPEND is processed
get_ada_dep() {
[[ -z "$1" ]] && DEP="${DEPEND}" || DEP="$1"
local TempStr
for fn in $DEP; do # here $DEP should *not* be in ""
[[ $fn =~ "virtual/ada" ]] && TempStr=${fn/*virtual\//}
# above match should be to full virtual/ada, as simply "ada" is a common
# part of ${PN}, even for some packages under dev-ada
done
# debug-print-function $FUNCNAME "TempStr=${TempStr:0:8}"
[[ -n ${TempStr} ]] && echo ${TempStr:0:8}
}
# This function is used to check whether the requested gnat profile matches the
# requested Ada standard
# !!ATTN!!
# This must match dependencies as specified in virtual/ada !!!
#
# params:
# $1 - the requested gnat profile in usual form (e.g. x86_64-pc-linux-gnu-gnat-gcc-4.1)
# $2 - Ada standard specification, as would be specified in DEPEND.
# Valid values: ada-1995, ada-2005, ada
#
# This used to treat ada-1995 and ada alike, but some packages (still
# requested by users) no longer compile with new compilers (not the
# standard issue, but rather compiler becoming stricter most of the time).
# Plus there are some "intermediary versions", not fully 2005 compliant
# but already causing problems. Therefore, now we do exact matching.
belongs_to_standard() {
# debug-print-function $FUNCNAME $*
. ${GnatCommon} || die "failed to source gnat-common lib"
local GnatSlot=$(get_gnat_SLOT $1)
local ReducedSlot=${GnatSlot//\./}
#
if [[ $2 == 'ada' ]] ; then
# debug-print-function "ada or ada-1995 match"
return 0 # no restrictions imposed
elif [[ "$2" == 'ada-1995' ]] ; then
if [[ $(get_gnat_Pkg $1) == "gcc" ]]; then
# debug-print-function "got gcc profile, GnatSlot=${ReducedSlot}"
[[ ${ReducedSlot} -le "42" ]] && return 0 || return 1
elif [[ $(get_gnat_Pkg $1) == "gpl" ]]; then
# debug-print-function "got gpl profile, GnatSlot=${ReducedSlot}"
[[ ${ReducedSlot} -lt "41" ]] && return 0 || return 1
else
return 1 # unknown compiler encountered
fi
elif [[ "$2" == 'ada-2005' ]] ; then
if [[ $(get_gnat_Pkg $1) == "gcc" ]]; then
# debug-print-function "got gcc profile, GnatSlot=${ReducedSlot}"
[[ ${ReducedSlot} -ge "43" ]] && return 0 || return 1
elif [[ $(get_gnat_Pkg $1) == "gpl" ]]; then
# debug-print-function "got gpl profile, GnatSlot=${ReducedSlot}"
[[ ${ReducedSlot} -ge "41" ]] && return 0 || return 1
else
return 1 # unknown compiler encountered
fi
else
return 1 # unknown standard requested, check spelling!
fi
}
# ------------------------------------
# Helpers
#
# The purpose of this one is to remove all parts of the env entry specific to a
# given lib. Usefull when some lib wants to act differently upon detecting
# itself installed..
#
# params:
# $1 - name of env var to process
# $2 (opt) - name of the lib to filter out (defaults to ${PN})
filter_env_var() {
local entries=(${!1//:/ })
local libName=${2:-${PN}}
local env_str
for entry in ${entries[@]} ; do
# this simply checks if $libname is a substring of the $entry, should
# work fine with all the present libs
if [[ ${entry/${libName}/} == ${entry} ]] ; then
env_str="${env_str}:${entry}"
fi
done
echo ${env_str}
}
# A simpler helper, for the libs that need to extract active gnat location
# Returns a first entry for a specified env var. Relies on the (presently true)
# convention that first gnat's entries are listed and then of the other
# installed libs.
#
# params:
# $1 - name of env var to process
get_gnat_value() {
local entries=(${!1//:/ })
echo ${entries[0]}
}
# Returns a name of active gnat profile. Performs some validity checks. No input
# parameters, analyzes the system setup directly.
get_active_profile() {
# get common code and settings
. ${GnatCommon} || die "failed to source gnat-common lib"
local profiles=( $(get_env_list) )
if [[ ${profiles[@]} == "${MARKER}*" ]]; then
return
# returning empty string
fi
if (( 1 == ${#profiles[@]} )); then
local active=${profiles[0]#${MARKER}}
else
die "${ENVDIR} contains multiple gnat profiles, please cleanup!"
fi
if [[ -f ${SPECSDIR}/${active} ]]; then
echo ${active}
else
die "The profile active in ${ENVDIR} does not correspond to any installed gnat!"
fi
}
# ------------------------------------
# Functions
# Checks the gnat backend SLOT and filters flags correspondingly
# To be called from scr_compile for each profile, before actual compilation
# Parameters:
# $1 - gnat profile, e.g. x86_64-pc-linux-gnu-gnat-gcc-3.4
gnat_filter_flags() {
debug-print-function $FUNCNAME $*
# We only need to filter so severely if backends < 3.4 is detected, which
# means basically gnat-3.15
GnatProfile=$1
if [ -z ${GnatProfile} ]; then
# should not get here!
die "please specify a valid gnat profile for flag stripping!"
fi
local GnatSLOT="${GnatProfile//*-/}"
if [[ ${GnatSLOT} < 3.4 ]] ; then
filter-mfpmath sse 387
filter-flags -mmmx -msse -mfpmath -frename-registers \
-fprefetch-loop-arrays -falign-functions=4 -falign-jumps=4 \
-falign-loops=4 -msse2 -frerun-loop-opt -maltivec -mabi=altivec \
-fsigned-char -fno-strict-aliasing -pipe
export ADACFLAGS=${ADACFLAGS:-${CFLAGS}}
export ADACFLAGS=${ADACFLAGS//-Os/-O2}
export ADACFLAGS=${ADACFLAGS//pentium-mmx/i586}
export ADACFLAGS=${ADACFLAGS//pentium[234]/i686}
export ADACFLAGS=${ADACFLAGS//k6-[23]/k6}
export ADACFLAGS=${ADACFLAGS//athlon-tbird/i686}
export ADACFLAGS=${ADACFLAGS//athlon-4/i686}
export ADACFLAGS=${ADACFLAGS//athlon-[xm]p/i686}
# gcc-2.8.1 has no amd64 support, so the following two are safe
export ADACFLAGS=${ADACFLAGS//athlon64/i686}
export ADACFLAGS=${ADACFLAGS//athlon/i686}
else
export ADACFLAGS=${ADACFLAGS:-${CFLAGS}}
fi
export ADAMAKEFLAGS=${ADAMAKEFLAGS:-"-cargs ${ADACFLAGS} -margs"}
export ADABINDFLAGS=${ADABINDFLAGS:-""}
}
gnat_pkg_setup() {
debug-print-function $FUNCNAME $*
# check whether all the primary compilers are installed
. ${GnatCommon} || die "failed to source gnat-common lib"
for fn in $(cat ${PRIMELIST}); do
if [[ ! -f ${SPECSDIR}/${fn} ]]; then
elog "The ${fn} Ada compiler profile is specified as primary, but is not installed."
elog "Please rectify the situation before emerging Ada library!"
elog "Please either install again all the missing compilers listed"
elog "as primary, or edit /etc/ada/primary_compilers and update the"
elog "list of primary compilers there."
einfo ""
ewarn "If you do the latter, please don't forget to rebuild all"
ewarn "affected libs!"
die "Primary compiler is missing"
fi
done
export ADAC=${ADAC:-gnatgcc}
export ADAMAKE=${ADAMAKE:-gnatmake}
export ADABIND=${ADABIND:-gnatbind}
}
gnat_pkg_postinst() {
einfo "Updating gnat configuration to pick up ${PN} library..."
eselect gnat update
elog "The environment has been set up to make gnat automatically find files"
elog "for the installed library. In order to immediately activate these"
elog "settings please run:"
elog
#elog "env-update"
elog "source /etc/profile"
einfo
einfo "Otherwise the settings will become active next time you login"
}
# standard lib_compile plug. Adapted from base.eclass
lib_compile() {
debug-print-function $FUNCNAME $*
[ -z "$1" ] && lib_compile all
cd ${SL}
while [ "$1" ]; do
case $1 in
configure)
debug-print-section configure
econf || die "died running econf, $FUNCNAME:configure"
;;
make)
debug-print-section make
emake || die "died running emake, $FUNCNAME:make"
;;
all)
debug-print-section all
lib_compile configure make
;;
esac
shift
done
}
# Cycles through installed gnat profiles and calls lib_compile and then
# lib_install in turn.
# Use this function to build/install profile-specific binaries. The code
# building/installing common stuff (docs, etc) can go before/after, as needed,
# so that it is called only once..
#
# lib_compile and lib_install are passed the active gnat profile name - may be used or
# discarded as needed..
gnat_src_compile() {
debug-print-function $FUNCNAME $*
# We source the eselect-gnat module and use its functions directly, instead of
# duplicating code or trying to violate sandbox in some way..
. ${GnatCommon} || die "failed to source gnat-common lib"
compilers=( $(find_primary_compilers ) )
if [[ -n ${compilers[@]} ]] ; then
local i
local AdaDep=$(get_ada_dep)
for (( i = 0 ; i < ${#compilers[@]} ; i = i + 1 )) ; do
if $(belongs_to_standard ${compilers[${i}]} ${AdaDep}); then
einfo "compiling for gnat profile ${compilers[${i}]}"
# copy sources
mkdir "${DL}" "${DLbin}" "${DLgpr}"
cp -dpR "${S}" "${SL}"
# setup environment
# As eselect-gnat also manages the libs, this will ensure the right
# lib profiles are activated too (in case we depend on some Ada lib)
generate_envFile ${compilers[${i}]} ${BuildEnv} && \
expand_BuildEnv "${BuildEnv}" && \
. "${BuildEnv}" || die "failed to switch to ${compilers[${i}]}"
# many libs (notably xmlada and gtkada) do not like to see
# themselves installed. Need to strip them from ADA_*_PATH
# NOTE: this should not be done in pkg_setup, as we setup
# environment right above
export ADA_INCLUDE_PATH=$(filter_env_var ADA_INCLUDE_PATH)
export ADA_OBJECTS_PATH=$(filter_env_var ADA_OBJECTS_PATH)
# call compilation callback
cd "${SL}"
gnat_filter_flags ${compilers[${i}]}
lib_compile ${compilers[${i}]} || die "failed compiling for ${compilers[${i}]}"
# call install callback
cd "${SL}"
lib_install ${compilers[${i}]} || die "failed installing profile-specific part for ${compilers[${i}]}"
# move installed and cleanup
mv "${DL}" "${DL}-${compilers[${i}]}"
mv "${DLbin}" "${DLbin}-${compilers[${i}]}"
mv "${DLgpr}" "${DLgpr}-${compilers[${i}]}"
rm -rf "${SL}"
else
einfo "skipping gnat profile ${compilers[${i}]}"
fi
done
else
ewarn "Please note!"
elog "Treatment of installed Ada compilers has recently changed!"
elog "Libs are now being built only for \"primary\" compilers."
elog "Please list gnat profiles (as reported by \"eselect gnat list\")"
elog "that you want to regularly use (i.e., not just for testing)"
elog "in ${PRIMELIST}, one per line."
die "please make sure you have at least one gnat compiler installed and set as primary!"
fi
}
# This function simply moves gnat-profile-specific stuff into proper locations.
# Use src_install in ebuild to install the rest of the package
gnat_src_install() {
debug-print-function $FUNCNAME $*
# prep lib specs directory
. ${GnatCommon} || die "failed to source gnat-common lib"
dodir ${SPECSDIR}/${PN}
compilers=( $(find_primary_compilers) )
if [[ -n ${compilers[@]} ]] ; then
local i
local AdaDep=$(get_ada_dep)
for (( i = 0 ; i < ${#compilers[@]} ; i = i + 1 )) ; do
if $(belongs_to_standard ${compilers[${i}]} ${AdaDep}); then
debug-print-section "installing for gnat profile ${compilers[${i}]}"
local DLlocation=${AdalibLibTop}/${compilers[${i}]}
dodir ${DLlocation}
cp -dpR "${DL}-${compilers[${i}]}" "${D}/${DLlocation}/${PN}"
cp -dpR "${DLbin}-${compilers[${i}]}" "${D}/${DLlocation}"/bin
cp -dpR "${DLgpr}-${compilers[${i}]}" "${D}/${DLlocation}"/gpr
# create profile-specific specs file
cp ${LibEnv} "${D}/${SPECSDIR}/${PN}/${compilers[${i}]}"
sed -i -e "s:%DL%:${DLlocation}/${PN}:g" "${D}/${SPECSDIR}/${PN}/${compilers[${i}]}"
sed -i -e "s:%DLbin%:${DLlocation}/bin:g" "${D}/${SPECSDIR}/${PN}/${compilers[${i}]}"
sed -i -e "s:%DLgpr%:${DLlocation}/gpr:g" "${D}/${SPECSDIR}/${PN}/${compilers[${i}]}"
else
einfo "skipping gnat profile ${compilers[${i}]}"
fi
done
else
die "please make sure you have at least one gnat compiler installed!"
fi
}

View File

@ -22,7 +22,7 @@ if [[ -z ${_GOLANG_BASE} ]]; then
_GOLANG_BASE=1
DEPEND=">=dev-lang/go-1.7:="
DEPEND=">=dev-lang/go-1.8"
# Do not complain about CFLAGS etc since go projects do not use them.
QA_FLAGS_IGNORED='.*'

View File

@ -1,114 +0,0 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: gpe.eclass
# @MAINTAINER:
# gpe@gentoo.org
# @AUTHOR:
# Original Authors:
# Rene Wagner <rw@handhelds.org>
# Ned Ludd <solar@gentoo.org>
# Angelo Arrifano <miknix@gentoo.org>
# EAPI->EAPI2 patch: loki_val
# multiple suggestions: Betelgeuse
# Based on gnome2.eclass and gpe.bbclass (the latter from OpenEmbedded)
# @BLURB: Provides common functionality for the G Palmtop Environment.
inherit libtool toolchain-funcs
case "${EAPI:-0}" in
0|1)
EXPORT_FUNCTIONS src_unpack src_compile src_install
;;
*)
EXPORT_FUNCTIONS src_unpack src_prepare src_configure src_compile src_install
;;
esac
# @ECLASS-VARIABLE: ELTCONF
# @DESCRIPTION:
# Extra options passed to elibtoolize on gnome2 eclass.
ELTCONF=""
# @ECLASS-VARIABLE: GPE_DOCS
# @DESCRIPTION:
# Documentation files to be installed with dodoc.
GPE_DOCS=""
[[ -z "${GPE_MIRROR}" ]] && GPE_MIRROR="http://gpe.linuxtogo.org/download/source"
[[ -z "${GPE_TARBALL_SUFFIX}" ]] && GPE_TARBALL_SUFFIX="gz"
SRC_URI="${GPE_MIRROR}/${P}.tar.${GPE_TARBALL_SUFFIX}"
HOMEPAGE="http://gpe.linuxtogo.org"
IUSE="nls"
GPECONF="${GPECONF} --enable-debug=no --disable-debug"
RDEPEND=""
DEPEND="
>=dev-util/intltool-0.29
virtual/pkgconfig"
# @FUNCTION: gpe_src_unpack
# @DESCRIPTION:
# Unpacks and applies some required patches for GPE.
gpe_src_unpack() {
unpack ${A}
cd "${S}"
has "${EAPI:-0}" 0 1 && gpe_src_prepare "$@"
}
# Do not call, use gpe_src_unpack() instead.
gpe_src_prepare() {
# let portage handle stripping.
# sort is needed, see #272161 .
for file in $(find . -name 'Makefile*' | sort) ; do
sed -i -e s/'install -s'/'install'/g \
-e s/'install -Ds'/'install -D'/g \
-e 's/$(INSTALL) -s/$(INSTALL) /g' \
-e 's;strip ;#strip ;g' \
${file} \
||die "Sedding ${file} failed."
done
[[ -f configure ]] && elibtoolize
}
# @FUNCTION: gpe_src_configure
# @DESCRIPTION:
# Configures a GPE package in a cross-compile aware environment.
gpe_src_configure() {
tc-export CC
[[ -f configure ]] && econf "$@" ${GPECONF}
}
# @FUNCTION: gpe_src_compile
# @DESCRIPTION:
# (Cross-)Compiles a GPE package.
gpe_src_compile() {
tc-export CC
has "${EAPI:-0}" 0 1 && gpe_src_configure "$@"
emake PREFIX=/usr || die "emake failed"
}
# @FUNCTION: gpe_src_install
# @DESCRIPTION:
# Installs a GPE package in the correct way.
gpe_src_install() {
local use_nls=yes
use nls || use_nls=no
if [ -f configure ]; then
einstall "$@" || die "einstall failed"
else
emake STRIP=true DESTDIR=${D} PREFIX=/usr \
ENABLE_NLS=${use_nls} "$@" install || die "emake install failed"
fi
use nls || rm -rf ${D}/usr/share/locale
# manual document installation
if [[ "${GPE_DOCS}" ]]; then
dodoc ${GPE_DOCS} || die "dodoc failed"
fi
}

View File

@ -1,42 +0,0 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: gst-plugins10-bad.eclass
# @MAINTAINER:
# gstreamer@gentoo.org
# @AUTHOR:
# Gilles Dartiguelongue <eva@gentoo.org>
# Saleem Abdulrasool <compnerd@gentoo.org>
# foser <foser@gentoo.org>
# zaheerm <zaheerm@gentoo.org>
# @BLURB: Manages build for invididual ebuild for gst-plugins-bad.
# @DESCRIPTION:
# See gst-plugins10.eclass documentation.
GST_ORG_MODULE="gst-plugins-bad"
inherit eutils gst-plugins10
case "${EAPI:-0}" in
1|2|3|4|5)
;;
0)
die "EAPI=\"${EAPI}\" is not supported anymore"
;;
*)
die "EAPI=\"${EAPI}\" is not supported yet"
;;
esac
if [[ ${PN} != ${GST_ORG_MODULE} ]]; then
# -bad-0.10.20 uses orc optionally instead of liboil unconditionally.
# While <0.10.20 configure always check for liboil, it is used only by
# non-split plugins in gst/ (legacyresample and mpegdemux), so we only
# builddep for all old packages, and have a RDEPEND in old versions of
# media-libs/gst-plugins-bad
if [[ ${SLOT} = "0.10" ]] && ! version_is_at_least "0.10.20"; then
DEPEND="${DEPEND} >=dev-libs/liboil-0.3.8"
fi
fi

View File

@ -1,30 +0,0 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: gst-plugins-base.eclass
# @MAINTAINER:
# gstreamer@gentoo.org
# @AUTHOR:
# Gilles Dartiguelongue <eva@gentoo.org>
# Saleem Abdulrasool <compnerd@gentoo.org>
# foser <foser@gentoo.org>
# zaheerm <zaheerm@gentoo.org>
# @BLURB: Manages build for invididual ebuild for gst-plugins-base.
# @DESCRIPTION:
# See gst-plugins10.eclass documentation.
GST_ORG_MODULE="gst-plugins-base"
inherit gst-plugins10
case "${EAPI:-0}" in
1|2|3|4|5)
;;
0)
die "EAPI=\"${EAPI}\" is not supported anymore"
;;
*)
die "EAPI=\"${EAPI}\" is not supported yet"
;;
esac

View File

@ -1,41 +0,0 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: gst-plugins-good.eclass
# @MAINTAINER:
# gstreamer@gentoo.org
# @AUTHOR:
# Gilles Dartiguelongue <eva@gentoo.org>
# Saleem Abdulrasool <compnerd@gentoo.org>
# foser <foser@gentoo.org>
# zaheerm <zaheerm@gentoo.org>
# @BLURB: Manages build for invididual ebuild for gst-plugins-good.
# @DESCRIPTION:
# See gst-plugins10.eclass documentation.
GST_ORG_MODULE="gst-plugins-good"
inherit eutils gst-plugins10
case "${EAPI:-0}" in
1|2|3|4|5)
;;
0)
die "EAPI=\"${EAPI}\" is not supported anymore"
;;
*)
die "EAPI=\"${EAPI}\" is not supported yet"
;;
esac
if [[ ${PN} != ${GST_ORG_MODULE} ]]; then
# -good-0.10.24 uses orc optionally instead of liboil unconditionally.
# While <0.10.24 configure always checks for liboil, it is linked to only by
# non-split plugins in gst/, so we only builddep for all old packages, and have
# a RDEPEND in old versions of media-libs/gst-plugins-good
if [[ ${SLOT} = "0.10" ]] && ! version_is_at_least "0.10.24"; then
DEPEND="${DEPEND} >=dev-libs/liboil-0.3.8"
fi
fi

View File

@ -1,30 +0,0 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: gst-plugins-ugly.eclass
# @MAINTAINER:
# gstreamer@gentoo.org
# @AUTHOR:
# Gilles Dartiguelongue <eva@gentoo.org>
# Saleem Abdulrasool <compnerd@gentoo.org>
# foser <foser@gentoo.org>
# zaheerm <zaheerm@gentoo.org>
# @BLURB: Manages build for invididual ebuild for gst-plugins-ugly.
# @DESCRIPTION:
# See gst-plugins10.eclass documentation.
GST_ORG_MODULE="gst-plugins-ugly"
inherit gst-plugins10
case "${EAPI:-0}" in
1|2|3|4|5)
;;
0)
die "EAPI=\"${EAPI}\" is not supported anymore"
;;
*)
die "EAPI=\"${EAPI}\" is not supported yet"
;;
esac

View File

@ -1,298 +0,0 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: gst-plugins10.eclass
# @MAINTAINER:
# gstreamer@gentoo.org
# @AUTHOR:
# Gilles Dartiguelongue <eva@gentoo.org>
# Saleem Abdulrasool <compnerd@gentoo.org>
# foser <foser@gentoo.org>
# zaheerm <zaheerm@gentoo.org>
# @BLURB: Manages build for invididual ebuild for gst-plugins.
# @DESCRIPTION:
# Eclass to make external gst-plugins emergable on a per-plugin basis and
# to solve the problem with gst-plugins generating far too much unneeded
# dependancies.
#
# GStreamer consuming applications should depend on the specific plugins they
# need as defined in their source code.
#
# In case of spider usage, obtain recommended plugins to use from Gentoo
# developers responsible for gstreamer <gstreamer@gentoo.org> or the application
# developer.
inherit eutils multilib toolchain-funcs versionator
GST_EXPF=""
case "${EAPI:-0}" in
2|3|4|5)
GST_EXPF="src_configure src_compile src_install"
;;
1)
GST_EXPF="src_compile src_install"
;;
0)
die "EAPI=\"${EAPI:-0}\" is not supported anymore"
;;
*)
die "EAPI=\"${EAPI}\" is not supported yet"
;;
esac
EXPORT_FUNCTIONS ${GST_EXPF}
# @ECLASS-VARIABLE: GST_LA_PUNT
# @DESCRIPTION:
# Should we delete all the .la files?
# NOT to be used without due consideration.
# Defaults to no for EAPI < 5.
if has "${EAPI:-0}" 0 1 2 3; then
: ${GST_LA_PUNT:="no"}
else
: ${GST_LA_PUNT:="yes"}
fi
# @ECLASS-VARIABLE: GST_PLUGINS_BUILD
# @DESCRIPTION:
# Defines the plugins to be built.
# May be set by an ebuild and contain more than one indentifier, space
# seperated (only src_configure can handle mutiple plugins at this time).
: ${GST_PLUGINS_BUILD:=${PN/gst-plugins-/}}
# @ECLASS-VARIABLE: GST_PLUGINS_BUILD_DIR
# @DESCRIPTION:
# Actual build directory of the plugin.
# Most often the same as the configure switch name.
: ${GST_PLUGINS_BUILD_DIR:=${PN/gst-plugins-/}}
# @ECLASS-VARIABLE: GST_TARBALL_SUFFIX
# @DESCRIPTION:
# Most projects hosted on gstreamer.freedesktop.org mirrors provide tarballs as
# tar.bz2 or tar.xz. This eclass defaults to bz2 for EAPI 0, 1, 2, 3 and
# defaults to xz for everything else. This is because the gstreamer mirrors
# are moving to only have xz tarballs for new releases.
if has "${EAPI:-0}" 0 1 2 3; then
: ${GST_TARBALL_SUFFIX:="bz2"}
else
: ${GST_TARBALL_SUFFIX:="xz"}
fi
# Even though xz-utils are in @system, they must still be added to DEPEND; see
# https://archives.gentoo.org/gentoo-dev/msg_a0d4833eb314d1be5d5802a3b710e0a4.xml
if [[ ${GST_TARBALL_SUFFIX} == "xz" ]]; then
DEPEND="${DEPEND} app-arch/xz-utils"
fi
# @ECLASS-VARIABLE: GST_ORG_MODULE
# @DESCRIPTION:
# Name of the module as hosted on gstreamer.freedesktop.org mirrors.
# Leave unset if package name matches module name.
: ${GST_ORG_MODULE:=$PN}
# @ECLASS-VARIABLE: GST_ORG_PVP
# @INTERNAL
# @DESCRIPTION:
# Major and minor numbers of the version number.
: ${GST_ORG_PVP:=$(get_version_component_range 1-2)}
DESCRIPTION="${BUILD_GST_PLUGINS} plugin for gstreamer"
HOMEPAGE="https://gstreamer.freedesktop.org/"
SRC_URI="https://gstreamer.freedesktop.org/src/${GST_ORG_MODULE}/${GST_ORG_MODULE}-${PV}.tar.${GST_TARBALL_SUFFIX}"
LICENSE="GPL-2"
case ${GST_ORG_PVP} in
0.10) SLOT="0.10" ;;
1.*) SLOT="1.0" ;;
*) die "Unkown gstreamer release."
esac
S="${WORKDIR}/${GST_ORG_MODULE}-${PV}"
RDEPEND="
>=dev-libs/glib-2.6:2
media-libs/gstreamer:${SLOT}
"
DEPEND="
>=sys-apps/sed-4
virtual/pkgconfig
"
if [[ ${PN} != ${GST_ORG_MODULE} ]]; then
# Do not run test phase for invididual plugin ebuilds.
RESTRICT="test"
RDEPEND="${RDEPEND} >=media-libs/${GST_ORG_MODULE}-${PV}:${SLOT}"
else
IUSE="nls"
DEPEND="${DEPEND} nls? ( >=sys-devel/gettext-0.17 )"
fi
#if [[ ${SLOT} == "0.10" ]]; then
# XXX: verify with old ebuilds.
# DEPEND="${DEPEND} dev-libs/liboil"
#fi
DEPEND="${DEPEND} ${RDEPEND}"
# @FUNCTION: gst-plugins10_get_plugins
# @INTERNAL
# @DESCRIPTION:
# Get the list of plugins requiring external dependencies.
gst-plugins10_get_plugins() {
# Must be called from src_prepare/src_configure
GST_PLUGINS_LIST=$(sed -rn 's/^AG_GST_CHECK_FEATURE\((\w+),.*/ \1 /p' \
"${S}"/configure.* | LC_ALL='C' tr '[:upper:]' '[:lower:]')
}
# @FUNCTION: gst-plugins10_find_plugin_dir
# @USAGE: gst-plugins10_find_plugin_dir [<build_dir>]
# @INTERNAL
# @DESCRIPTION:
# Finds plugin build directory and cd to it.
# Defaults to ${GST_PLUGINS_BUILD_DIR} if argument is not provided
gst-plugins10_find_plugin_dir() {
local build_dir=${1:-${GST_PLUGINS_BUILD_DIR}}
if [[ ! -d ${S}/ext/${build_dir} ]]; then
if [[ ! -d ${S}/sys/${build_dir} ]]; then
ewarn "No such plugin directory"
die
fi
einfo "Building system plugin in ${build_dir}..."
cd "${S}"/sys/${build_dir}
else
einfo "Building external plugin in ${build_dir}..."
cd "${S}"/ext/${build_dir}
fi
}
# @FUNCTION: gst-plugins10_system_link
# @USAGE: gst-plugins10_system_link gst-libs/gst/audio:gstreamer-audio [...]
# @DESCRIPTION:
# Walks through makefiles in order to make sure build will link against system
# librairies.
# Takes a list of path fragments and corresponding pkgconfig libraries
# separated by colon (:). Will replace the path fragment by the output of
# pkgconfig.
gst-plugins10_system_link() {
local directory libs pkgconfig pc tuple
pkgconfig=$(tc-getPKG_CONFIG)
for plugin_dir in ${GST_PLUGINS_BUILD_DIR} ; do
gst-plugins10_find_plugin_dir ${plugin_dir}
for tuple in $@ ; do
directory="$(echo ${tuple} | cut -f1 -d':')"
pc="$(echo ${tuple} | cut -f2 -d':')-${SLOT}"
libs="$(${pkgconfig} --libs-only-l ${pc})"
sed -e "s:\$(top_builddir)/${directory}/.*\.la:${libs}:" \
-i Makefile.am Makefile.in || die
done
done
}
# @FUNCTION: gst-plugins10_remove_unversioned_binaries
# @INTERNAL
# @DESCRIPTION:
# Remove the unversioned binaries gstreamer provides to prevent file collision
# with other slots. DEPRECATED
gst-plugins10_remove_unversioned_binaries() {
cd "${D}"/usr/bin
local gst_bins
for gst_bins in *-${SLOT} ; do
[[ -e ${gst_bins} ]] || continue
rm ${gst_bins/-${SLOT}/}
einfo "Removed ${gst_bins/-${SLOT}/}"
done
}
# @FUNCTION: gst-plugins10_src_configure
# @DESCRIPTION:
# Handles logic common to configuring gstreamer plugins
gst-plugins10_src_configure() {
local plugin gst_conf
if has ${EAPI:-0} 0 1 2 3 ; then
gst_conf="${gst_conf} --disable-dependency-tracking"
fi
if has ${EAPI:-0} 0 1 2 3 4 ; then
gst_conf="${gst_conf} --disable-silent-rules"
fi
gst-plugins10_get_plugins
for plugin in ${GST_PLUGINS_LIST} ; do
if has ${plugin} ${GST_PLUGINS_BUILD} ; then
gst_conf="${gst_conf} --enable-${plugin}"
else
gst_conf="${gst_conf} --disable-${plugin}"
fi
done
if grep -q "ORC_CHECK" configure.* ; then
if in_iuse orc ; then
gst_conf="${gst_conf} $(use_enable orc)"
else
gst_conf="${gst_conf} --disable-orc"
fi
fi
if grep -q "AM_MAINTAINER_MODE" configure.* ; then
gst_conf="${gst_conf} --disable-maintainer-mode"
fi
if grep -q "disable-schemas-compile" configure ; then
gst_conf="${gst_conf} --disable-schemas-compile"
fi
if [[ ${PN} == ${GST_ORG_MODULE} ]]; then
gst_conf="${gst_conf} $(use_enable nls)"
fi
einfo "Configuring to build ${GST_PLUGINS_BUILD} plugin(s) ..."
econf \
--with-package-name="Gentoo GStreamer ebuild" \
--with-package-origin="https://www.gentoo.org" \
${gst_conf} $@
}
# @FUNCTION: gst-plugins10_src_compile
# @DESCRIPTION:
# Compiles requested gstreamer plugin.
gst-plugins10_src_compile() {
local plugin_dir
has ${EAPI:-0} 0 1 && gst-plugins10_src_configure "$@"
for plugin_dir in ${GST_PLUGINS_BUILD_DIR} ; do
gst-plugins10_find_plugin_dir ${plugin_dir}
if has "${EAPI:-0}" 0 1 2 3 ; then
emake || die
else
default
fi
done
}
# @FUNCTION: gst-plugins10_src_install
# @DESCRIPTION:
# Installs requested gstreamer plugin.
gst-plugins10_src_install() {
local plugin_dir
for plugin_dir in ${GST_PLUGINS_BUILD_DIR} ; do
gst-plugins10_find_plugin_dir ${plugin_dir}
if has "${EAPI:-0}" 0 1 2 3 ; then
emake install DESTDIR="${D}" || die
[[ -e README ]] && dodoc README
else
default
fi
done
[[ ${GST_LA_PUNT} = "yes" ]] && prune_libtool_files --modules
}

View File

@ -479,6 +479,8 @@ _calculate_src_uri() {
4.14.11*)
# KDEPIM 4.14 snapshot with Gentoo patches
SRC_URI="https://dev.gentoo.org/~asturm/distfiles/${_kmname_pv}.tar.xz" ;;
16.12.3)
SRC_URI="mirror://kde/Attic/applications/16.12.3/src/${_kmname_pv}.tar.xz" ;;
??.?.[6-9]? | ??.??.[4-9]?)
# Unstable KDE Applications releases
SRC_URI="mirror://kde/unstable/applications/${PV}/src/${_kmname}-${PV}.tar.xz" ;;

View File

@ -184,9 +184,6 @@ kde4-meta_src_extract() {
if [[ ${PV} =~ 4.4.11 ]]; then
postfix="bz2"
KMTARPARAMS+=" --bzip2"
elif [[ ${PV} =~ _pre20160211 ]]; then
postfix="gz"
KMTARPARAMS+=" --gz"
else
postfix="xz"
KMTARPARAMS+=" --xz"
@ -200,9 +197,6 @@ kde4-meta_src_extract() {
# Detect real toplevel dir from tarball name - it will be used upon extraction
# and in _list_needed_subdirectories
topdir="${tarball%.tar.*}/"
if [[ ${topdir} =~ _pre20160211 ]]; then
topdir="${topdir%-$PV*}/"
fi
ebegin "Unpacking parts of ${tarball} to ${WORKDIR}"

View File

@ -35,21 +35,12 @@ case ${CATEGORY} in
[[ ${KDE_BUILD_TYPE} = live ]] && : ${FRAMEWORKS_MINIMAL:=9999}
;;
kde-plasma)
if [[ $(get_version_component_range 2) -ge 9 ]]; then
: ${QT_MINIMAL:=5.7.1}
fi
if ! [[ $(get_version_component_range 2) -le 9 && $(get_version_component_range 3) -lt 50 ]]; then
: ${FRAMEWORKS_MINIMAL:=5.34.0}
fi
: ${QT_MINIMAL:=5.7.1}
if [[ ${KDE_BUILD_TYPE} = live && $(get_version_component_range 2) -ne 8 ]]; then
: ${FRAMEWORKS_MINIMAL:=9999}
: ${QT_MINIMAL:=5.7.1}
fi
;;
kde-apps)
if [[ $(get_version_component_range 1) -ge 17 ]]; then
: ${FRAMEWORKS_MINIMAL:=5.32.0}
fi
if [[ ${KDE_BUILD_TYPE} = live ]]; then
: ${QT_MINIMAL:=5.7.1}
fi
@ -64,12 +55,12 @@ esac
# @ECLASS-VARIABLE: FRAMEWORKS_MINIMAL
# @DESCRIPTION:
# Minimal Frameworks version to require for the package.
: ${FRAMEWORKS_MINIMAL:=5.29.0}
: ${FRAMEWORKS_MINIMAL:=5.34.0}
# @ECLASS-VARIABLE: PLASMA_MINIMAL
# @DESCRIPTION:
# Minimal Plasma version to require for the package.
: ${PLASMA_MINIMAL:=5.4.1}
: ${PLASMA_MINIMAL:=5.9.5}
# @ECLASS-VARIABLE: KDE_APPS_MINIMAL
# @DESCRIPTION:

View File

@ -79,6 +79,17 @@ EXPORT_FUNCTIONS pkg_setup pkg_nofetch src_unpack src_prepare src_configure src_
# Defaults to "doc". Otherwise, use alternative KDE handbook path.
: ${KDE_DOC_DIR:=doc}
# @ECLASS-VARIABLE: KDE_QTHELP
# @DESCRIPTION:
# If set to "false", do nothing.
# Otherwise, add "doc" to IUSE, add the appropriate dependency, generate
# and install Qt compressed help files with -DBUILD_QCH=ON when USE=doc.
if [[ ${CATEGORY} = kde-frameworks && ( $(get_version_component_range 2) -ge 36 || ${KDE_BUILD_TYPE} = live ) ]]; then
: ${KDE_QTHELP:=true}
else
: ${KDE_QTHELP:=false}
fi
# @ECLASS-VARIABLE: KDE_TEST
# @DESCRIPTION:
# If set to "false", do nothing.
@ -131,7 +142,7 @@ KDE_UNRELEASED=( )
if [[ ${KDEBASE} = kdevelop ]]; then
HOMEPAGE="https://www.kdevelop.org/"
elif [[ ${KDEBASE} = kdel10n ]]; then
HOMEPAGE="http://l10n.kde.org"
HOMEPAGE="https://l10n.kde.org"
elif [[ ${KMNAME} = kdepim ]]; then
HOMEPAGE="https://www.kde.org/applications/office/kontact/"
else
@ -223,6 +234,18 @@ case ${KDE_HANDBOOK} in
;;
esac
case ${KDE_QTHELP} in
false) ;;
*)
IUSE+=" doc"
COMMONDEPEND+=" doc? ( $(add_qt_dep qt-docs) )"
DEPEND+=" doc? (
$(add_qt_dep qthelp)
>=app-doc/doxygen-1.8.13-r1
)"
;;
esac
case ${KDE_TEST} in
false) ;;
*)
@ -294,6 +317,8 @@ _calculate_src_uri() {
case ${CATEGORY} in
kde-apps)
case ${PV} in
16.12.3)
SRC_URI="mirror://kde/Attic/applications/16.12.3/src/${_kmname}-${PV}.tar.xz" ;;
??.?.[6-9]? | ??.??.[6-9]? )
SRC_URI="mirror://kde/unstable/applications/${PV}/src/${_kmname}-${PV}.tar.xz"
RESTRICT+=" mirror"
@ -536,6 +561,7 @@ kde5_src_prepare() {
if [[ ${KDE_HANDBOOK} = forceoptional ]] ; then
punt_bogus_dep KF5 DocTools
sed -i -e "/kdoctools_install/ s/^/#DONT/" CMakeLists.txt || die
fi
fi
@ -557,17 +583,18 @@ kde5_src_prepare() {
pushd ${po} > /dev/null || die
local lang
for lang in *; do
if [[ -d ${lang} ]] && ! has ${lang} ${LINGUAS} ; then
rm -r ${lang} || die
if [[ -e ${lang} ]] && ! has ${lang/.po/} ${LINGUAS} ; then
case ${lang} in
cmake_modules | \
CMakeLists.txt | \
${PN}.pot) ;;
*) rm -r ${lang} || die ;;
esac
if [[ -e CMakeLists.txt ]] ; then
cmake_comment_add_subdirectory ${lang}
sed -e "/add_subdirectory([[:space:]]*${lang}\/.*[[:space:]]*)/d" \
-i CMakeLists.txt || die
fi
elif [[ -f ${lang} ]] && ! has ${lang/.po/} ${LINGUAS} ; then
if [[ ${lang} != CMakeLists.txt && ${lang} != ${PN}.pot ]] ; then
rm ${lang} || die
fi
fi
done
popd > /dev/null || die
@ -643,6 +670,10 @@ kde5_src_configure() {
cmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Designer=ON )
fi
if [[ ${KDE_QTHELP} != false ]]; then
cmakeargs+=( -DBUILD_QCH=$(usex doc) )
fi
# install mkspecs in the same directory as qt stuff
cmakeargs+=(-DKDE_INSTALL_USE_QT_SYS_PATHS=ON)
@ -700,10 +731,18 @@ kde5_src_install() {
cmake-utils_src_install
# We don't want ${PREFIX}/share/doc/HTML to be compressed,
# We don't want QCH and tags files to be compressed, because then
# cmake can't find the tags and qthelp viewers can't find the docs
local p=$(best_version dev-qt/qtcore:5)
local pv=$(echo ${p/%-r[0-9]*/} | rev | cut -d - -f 1 | rev)
if [[ -d ${ED%/}/usr/share/doc/qt-${pv} ]]; then
docompress -x /usr/share/doc/qt-${pv}
fi
# We don't want /usr/share/doc/HTML to be compressed,
# because then khelpcenter can't find the docs
if [[ -d ${ED}/${PREFIX}/share/doc/HTML ]]; then
docompress -x ${PREFIX}/share/doc/HTML
if [[ -d ${ED%/}/usr/share/doc/HTML ]]; then
docompress -x /usr/share/doc/HTML
fi
}
@ -735,14 +774,6 @@ kde5_pkg_postinst() {
einfo "Use it at your own risk."
einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!"
fi
# for kf5-based applications tell user that he SHOULD NOT be using kde-plasma/plasma-workspace:4
if [[ ${KDEBASE} != kde-base || ${CATEGORY} = kde-apps ]] && \
has_version 'kde-plasma/plasma-workspace:4'; then
echo
ewarn "WARNING! Your system configuration still contains \"kde-plasma/plasma-workspace:4\","
ewarn "indicating a Plasma 4 setup. With this setting you are unsupported by KDE team."
ewarn "Please consider upgrading to Plasma 5."
fi
fi
}

View File

@ -506,10 +506,20 @@ detect_version() {
OKV_DICT=(["2"]="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))" ["3"]="2.6.39" ["4"]="3.19")
if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then
OKV=${K_BASE_VER:-$OKV_DICT["${KV_MAJOR}"]}
KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.xz
${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.xz"
# as of 12/5/2017, the rc patch is no longer offered as a compressed
# file, and no longer is it mirrored on kernel.org
if [[ ${KV_MAJOR} -ge 4 ]] && [[ ${KV_PATCH} -ge 12 ]]; then
KERNEL_URI="https://git.kernel.org/torvalds/p/v${KV_FULL}/v${OKV} -> patch-${KV_FULL}.patch
${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.patch"
else
KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.xz
${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.xz"
fi
fi
if [[ ${RELEASETYPE} == -git ]]; then

View File

@ -3,6 +3,8 @@
# @ECLASS: l10n.eclass
# @MAINTAINER:
# Ulrich Müller <ulm@gentoo.org>
# @AUTHOR:
# Ben de Groot <yngwin@gentoo.org>
# @BLURB: convenience functions to handle localizations
# @DESCRIPTION:

View File

@ -139,11 +139,11 @@ latex-package_src_doinstall() {
do
[ -n "${LATEX_PACKAGE_SKIP}" ] && has ${i##*/} ${LATEX_PACKAGE_SKIP} && continue
einfo "Making documentation: $i"
if pdflatex ${LATEX_DOC_ARGUMENTS} --interaction=batchmode $i &> /dev/null ; then
pdflatex ${LATEX_DOC_ARGUMENTS} --interaction=batchmode $i &> /dev/null || die
if pdflatex ${LATEX_DOC_ARGUMENTS} --halt-on-error --interaction=nonstopmode $i ; then
pdflatex ${LATEX_DOC_ARGUMENTS} --halt-on-error --interaction=nonstopmode $i || die
else
einfo "pdflatex failed, trying texi2dvi"
texi2dvi -q -c --language=latex $i &> /dev/null || die
texi2dvi -q -c --language=latex $i || die
fi
done
fi
@ -205,7 +205,7 @@ latex-package_src_compile() {
for i in `find \`pwd\` -maxdepth 1 -type f -name "*.ins"`
do
einfo "Extracting from $i"
latex --interaction=batchmode $i &> /dev/null || die
latex --halt-on-error --interaction=nonstopmode $i || die
done
}

View File

@ -4,7 +4,6 @@
# @ECLASS: mercurial.eclass
# @MAINTAINER:
# Christoph Junghans <junghans@gentoo.org>
# Dirkjan Ochtman <djc@gentoo.org>
# @AUTHOR:
# Next gen author: Krzysztof Pawlik <nelchael@gentoo.org>
# Original author: Aron Griffis <agriffis@gentoo.org>

View File

@ -0,0 +1,192 @@
# Copyright 2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: meson.eclass
# @MAINTAINER:
# William Hubbs <williamh@gentoo.org>
# Mike Gilbert <floppym@gentoo.org>
# @BLURB: common ebuild functions for meson-based packages
# @DESCRIPTION:
# This eclass contains the default phase functions for packages which
# use the meson build system.
#
# @EXAMPLE:
# Typical ebuild using meson.eclass:
#
# @CODE
# EAPI=6
#
# inherit meson
#
# ...
#
# src_configure() {
# local emesonargs=(
# -Dqt4=$(usex qt4 true false)
# -Dthreads=$(usex threads true false)
# -Dtiff=$(usex tiff true false)
# )
# meson_src_configure
# }
#
# ...
#
# @CODE
case ${EAPI:-0} in
6) ;;
*) die "EAPI=${EAPI} is not supported" ;;
esac
if [[ -z ${_MESON_ECLASS} ]]; then
inherit ninja-utils python-utils-r1 toolchain-funcs
fi
EXPORT_FUNCTIONS src_configure src_compile src_test src_install
if [[ -z ${_MESON_ECLASS} ]]; then
_MESON_ECLASS=1
DEPEND=">=dev-util/meson-0.40.0
>=dev-util/ninja-1.7.2"
# @ECLASS-VARIABLE: BUILD_DIR
# @DEFAULT_UNSET
# @DESCRIPTION:
# Build directory, location where all generated files should be placed.
# If this isn't set, it defaults to ${WORKDIR}/${P}-build.
# @ECLASS-VARIABLE: EMESON_SOURCE
# @DEFAULT_UNSET
# @DESCRIPTION:
# The location of the source files for the project; this is the source
# directory to pass to meson.
# If this isn't set, it defaults to ${S}
# @VARIABLE: emesonargs
# @DEFAULT_UNSET
# @DESCRIPTION:
# Optional meson arguments as Bash array; this should be defined before
# calling meson_src_configure.
# @FUNCTION: _meson_create_cross_file
# @INTERNAL
# @DESCRIPTION:
# Creates a cross file. meson uses this to define settings for
# cross-compilers. This function is called from meson_src_configure.
_meson_create_cross_file() {
# Reference: http://mesonbuild.com/Cross-compilation.html
# system roughly corresponds to uname -s (lowercase)
local system=unknown
case ${CHOST} in
*-aix*) system=aix ;;
*-cygwin*) system=cygwin ;;
*-darwin*) system=darwin ;;
*-freebsd*) system=freebsd ;;
*-linux*) system=linux ;;
*-solaris*) system=sunos ;;
esac
local cpu_family=$(tc-arch)
case ${cpu_family} in
amd64) cpu_family=x86_64 ;;
arm64) cpu_family=aarch64 ;;
esac
# This may require adjustment based on CFLAGS
local cpu=${CHOST%%-*}
cat > "${T}/meson.${CHOST}" <<-EOF
[binaries]
ar = '${AR}'
c = '${CC}'
cpp = '${CXX}'
strip = '${STRIP}'
[host_machine]
system = '${system}'
cpu_family = '${cpu_family}'
cpu = '${cpu}'
endian = '$(tc-endian)'
EOF
}
# @FUNCTION: meson_src_configure
# @DESCRIPTION:
# This is the meson_src_configure function.
meson_src_configure() {
debug-print-function ${FUNCNAME} "$@"
# Common args
local mesonargs=(
--buildtype plain
--libdir "$(get_libdir)"
--localstatedir "${EPREFIX}/var/lib"
--prefix "${EPREFIX}/usr"
--sysconfdir "${EPREFIX}/etc"
--wrap-mode nodownload
)
# Both meson(1) and _meson_create_cross_file need these
local -x AR=$(tc-getAR)
local -x CC=$(tc-getCC)
local -x CXX=$(tc-getCXX)
local -x STRIP=$(tc-getSTRIP)
if tc-is-cross-compiler; then
_meson_create_cross_file || die "unable to write meson cross file"
mesonargs+=(
--cross-file "${T}/meson.${CHOST}"
)
# In cross mode, meson uses these as the native/build programs
AR=$(tc-getBUILD_AR)
CC=$(tc-getBUILD_CC)
CXX=$(tc-getBUILD_CXX)
STRIP=$(tc-getBUILD_STRIP)
fi
# https://bugs.gentoo.org/625396
python_export_utf8_locale
# Append additional arguments from ebuild
mesonargs+=("${emesonargs[@]}")
BUILD_DIR="${BUILD_DIR:-${WORKDIR}/${P}-build}"
set -- meson "${mesonargs[@]}" "$@" \
"${EMESON_SOURCE:-${S}}" "${BUILD_DIR}"
echo "$@"
"$@" || die
}
# @FUNCTION: meson_src_compile
# @DESCRIPTION:
# This is the meson_src_compile function.
meson_src_compile() {
debug-print-function ${FUNCNAME} "$@"
eninja -C "${BUILD_DIR}"
}
# @FUNCTION: meson_src_test
# @DESCRIPTION:
# This is the meson_src_test function.
meson_src_test() {
debug-print-function ${FUNCNAME} "$@"
eninja -C "${BUILD_DIR}" test
}
# @FUNCTION: meson_src_install
# @DESCRIPTION:
# This is the meson_src_install function.
meson_src_install() {
debug-print-function ${FUNCNAME} "$@"
DESTDIR="${D}" eninja -C "${BUILD_DIR}" install
einstalldocs
}
fi

View File

@ -26,7 +26,7 @@ case ${EAPI} in
;;
esac
inherit flag-o-matic toolchain-funcs mozcoreconf-v4
inherit flag-o-matic toolchain-funcs mozcoreconf-v5
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_WIFI
# @DESCRIPTION:

View File

@ -1,7 +1,7 @@
# Copyright 1999-2015 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
#
# @ECLASS: mozconfig-v6.52.eclass
# @ECLASS: mozconfig-v6.53.eclass
# @MAINTAINER:
# mozilla team <mozilla@gentoo.org>
# @BLURB: the new mozilla common configuration eclass for FF33 and newer, v6
@ -26,7 +26,7 @@ case ${EAPI} in
;;
esac
inherit flag-o-matic toolchain-funcs mozcoreconf-v4
inherit flag-o-matic toolchain-funcs mozcoreconf-v5
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_WIFI
# @DESCRIPTION:

View File

@ -0,0 +1,280 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
#
# @ECLASS: mozcoreconf-v5.eclass
# @MAINTAINER:
# Mozilla team <mozilla@gentoo.org>
# @BLURB: core options and configuration functions for mozilla
# @DESCRIPTION:
#
# inherit mozconfig-v6.* or above for mozilla configuration support
# @ECLASS-VARIABLE: MOZILLA_FIVE_HOME
# @DESCRIPTION:
# This is an eclass-generated variable that defines the rpath that the mozilla
# product will be installed in. Read-only
if [[ ! ${_MOZCORECONF} ]]; then
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE='ncurses,sqlite,ssl,threads'
inherit multilib toolchain-funcs flag-o-matic python-any-r1 versionator
IUSE="${IUSE} custom-cflags custom-optimization"
DEPEND="virtual/pkgconfig
${PYTHON_DEPS}"
# @FUNCTION: mozconfig_annotate
# @DESCRIPTION:
# add an annotated line to .mozconfig
#
# Example:
# mozconfig_annotate "building on ultrasparc" --enable-js-ultrasparc
# => ac_add_options --enable-js-ultrasparc # building on ultrasparc
mozconfig_annotate() {
declare reason=$1 x ; shift
[[ $# -gt 0 ]] || die "mozconfig_annotate missing flags for ${reason}\!"
for x in ${*}; do
echo "ac_add_options ${x} # ${reason}" >>.mozconfig
done
}
# @FUNCTION: mozconfig_use_enable
# @DESCRIPTION:
# add a line to .mozconfig based on a USE-flag
#
# Example:
# mozconfig_use_enable truetype freetype2
# => ac_add_options --enable-freetype2 # +truetype
mozconfig_use_enable() {
declare flag=$(use_enable "$@")
mozconfig_annotate "$(use $1 && echo +$1 || echo -$1)" "${flag}"
}
# @FUNCTION mozconfig_use_with
# @DESCRIPTION
# add a line to .mozconfig based on a USE-flag
#
# Example:
# mozconfig_use_with kerberos gss-api /usr/$(get_libdir)
# => ac_add_options --with-gss-api=/usr/lib # +kerberos
mozconfig_use_with() {
declare flag=$(use_with "$@")
mozconfig_annotate "$(use $1 && echo +$1 || echo -$1)" "${flag}"
}
# @FUNCTION mozconfig_use_extension
# @DESCRIPTION
# enable or disable an extension based on a USE-flag
#
# Example:
# mozconfig_use_extension gnome gnomevfs
# => ac_add_options --enable-extensions=gnomevfs
mozconfig_use_extension() {
declare minus=$(use $1 || echo -)
mozconfig_annotate "${minus:-+}$1" --enable-extensions=${minus}${2}
}
moz_pkgsetup() {
# Ensure we use C locale when building
export LANG="C"
export LC_ALL="C"
export LC_MESSAGES="C"
export LC_CTYPE="C"
# Ensure we use correct toolchain
export HOST_CC="$(tc-getBUILD_CC)"
export HOST_CXX="$(tc-getBUILD_CXX)"
tc-export CC CXX LD PKG_CONFIG
# Ensure that we have a sane build enviroment
export MOZILLA_CLIENT=1
export BUILD_OPT=1
export NO_STATIC_LIB=1
export USE_PTHREADS=1
export ALDFLAGS=${LDFLAGS}
# ensure MOZCONFIG is not defined
eval unset MOZCONFIG
# set MOZILLA_FIVE_HOME
export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
# nested configure scripts in mozilla products generate unrecognized options
# false positives when toplevel configure passes downwards.
export QA_CONFIGURE_OPTIONS=".*"
if [[ $(gcc-major-version) -eq 3 ]]; then
ewarn "Unsupported compiler detected, DO NOT file bugs for"
ewarn "outdated compilers. Bugs opened with gcc-3 will be closed"
ewarn "invalid."
fi
python-any-r1_pkg_setup
}
# @FUNCTION: mozconfig_init
# @DESCRIPTION:
# Initialize mozilla configuration and populate with core settings.
# This should be called in src_configure before any other mozconfig_* functions.
mozconfig_init() {
declare enable_optimize pango_version myext x
declare XUL=$([[ ${PN} == xulrunner ]] && echo true || echo false)
declare FF=$([[ ${PN} == firefox ]] && echo true || echo false)
declare SM=$([[ ${PN} == seamonkey ]] && echo true || echo false)
declare TB=$([[ ${PN} == thunderbird ]] && echo true || echo false)
####################################
#
# Setup the initial .mozconfig
# See http://www.mozilla.org/build/configure-build.html
#
####################################
case ${PN} in
*xulrunner)
cp xulrunner/config/mozconfig .mozconfig \
|| die "cp xulrunner/config/mozconfig failed" ;;
*firefox)
cp browser/config/mozconfig .mozconfig \
|| die "cp browser/config/mozconfig failed" ;;
seamonkey)
# Must create the initial mozconfig to enable application
: >.mozconfig || die "initial mozconfig creation failed"
mozconfig_annotate "" --enable-application=suite ;;
*thunderbird)
# Must create the initial mozconfig to enable application
: >.mozconfig || die "initial mozconfig creation failed"
mozconfig_annotate "" --enable-application=mail ;;
esac
####################################
#
# CFLAGS setup and ARCH support
#
####################################
# Set optimization level
if [[ $(gcc-major-version) -ge 7 ]]; then
mozconfig_annotate "Workaround known breakage" --enable-optimize=-O2
elif [[ ${ARCH} == hppa ]]; then
mozconfig_annotate "more than -O0 causes a segfault on hppa" --enable-optimize=-O0
elif [[ ${ARCH} == x86 ]]; then
mozconfig_annotate "less then -O2 causes a segfault on x86" --enable-optimize=-O2
elif use custom-optimization || [[ ${ARCH} =~ (alpha|ia64) ]]; then
# Set optimization level based on CFLAGS
if is-flag -O0; then
mozconfig_annotate "from CFLAGS" --enable-optimize=-O0
elif [[ ${ARCH} == ppc ]] && has_version '>=sys-libs/glibc-2.8'; then
mozconfig_annotate "more than -O1 segfaults on ppc with glibc-2.8" --enable-optimize=-O1
elif is-flag -O4; then
mozconfig_annotate "from CFLAGS" --enable-optimize=-O4
elif is-flag -O3; then
mozconfig_annotate "from CFLAGS" --enable-optimize=-O3
elif is-flag -O1; then
mozconfig_annotate "from CFLAGS" --enable-optimize=-O1
elif is-flag -Os; then
mozconfig_annotate "from CFLAGS" --enable-optimize=-Os
else
mozconfig_annotate "Gentoo's default optimization" --enable-optimize=-O2
fi
else
# Enable Mozilla's default
mozconfig_annotate "mozilla default" --enable-optimize
fi
# Strip optimization so it does not end up in compile string
filter-flags '-O*'
# Strip over-aggressive CFLAGS
use custom-cflags || strip-flags
# Additional ARCH support
case "${ARCH}" in
arm)
# Reduce the memory requirements for linking
append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
;;
alpha)
# Historically we have needed to add -fPIC manually for 64-bit.
# Additionally, alpha should *always* build with -mieee for correct math
# operation
append-flags -fPIC -mieee
;;
ia64)
# Historically we have needed to add this manually for 64-bit
append-flags -fPIC
;;
ppc64)
append-flags -fPIC -mminimal-toc
# Reduce the memory requirements for linking
append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
;;
esac
# We need to append flags for gcc-6 support
if [[ $(gcc-major-version) -ge 6 ]]; then
append-cxxflags -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2
fi
# Go a little faster; use less RAM
append-flags "$MAKEEDIT_FLAGS"
# Use the MOZILLA_FIVE_HOME for the rpath
append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
# Set MOZILLA_FIVE_HOME in mozconfig
mozconfig_annotate '' --with-default-mozilla-five-home=${MOZILLA_FIVE_HOME}
####################################
#
# mozconfig setup
#
####################################
mozconfig_annotate disable_update_strip \
--disable-updater \
--disable-strip \
--disable-install-strip
# jemalloc won't build with older glibc
! has_version ">=sys-libs/glibc-2.4" && mozconfig_annotate "we have old glibc" --disable-jemalloc
}
# @FUNCTION: mozconfig_final
# @DESCRIPTION:
# Apply EXTRA_ECONF values to .mozconfig
# Display a table describing all configuration options paired
# with reasons, then clean up extensions list.
# This should be called in src_configure at the end of all other mozconfig_* functions.
mozconfig_final() {
declare ac opt hash reason
# Apply EXTRA_ECONF entries to .mozconfig
if [[ -n ${EXTRA_ECONF} ]]; then
IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
for opt in "${ac[@]}"; do
mozconfig_annotate "EXTRA_ECONF" --${opt#--}
done
fi
echo
echo "=========================================================="
echo "Building ${PF} with the following configuration"
grep ^ac_add_options .mozconfig | while read ac opt hash reason; do
[[ -z ${hash} || ${hash} == \# ]] \
|| die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
done
echo "=========================================================="
echo
# Resolve multiple --enable-extensions down to one
declare exts=$(sed -n 's/^ac_add_options --enable-extensions=\([^ ]*\).*/\1/p' \
.mozconfig | xargs)
sed -i '/^ac_add_options --enable-extensions/d' .mozconfig
echo "ac_add_options --enable-extensions=${exts// /,}" >> .mozconfig
}
_MOZCORECONF=1
fi

View File

@ -450,6 +450,11 @@ multilib_toolchain_setup() {
done
export _DEFAULT_ABI_SAVED="true"
# Set CBUILD only if not cross-compiling.
if [[ ${CBUILD} == "${CHOST}" ]]; then
export CBUILD=$(get_abi_CHOST $1)
fi
# Set the CHOST native first so that we pick up the native
# toolchain and not a cross-compiler by accident #202811.
export CHOST=$(get_abi_CHOST ${DEFAULT_ABI})
@ -459,7 +464,6 @@ multilib_toolchain_setup() {
export FC="$(tc-getFC) $(get_abi_CFLAGS)"
export LD="$(tc-getLD) $(get_abi_LDFLAGS)"
export CHOST=$(get_abi_CHOST $1)
export CBUILD=$(get_abi_CHOST $1)
export PKG_CONFIG_LIBDIR=${EPREFIX}/usr/$(get_libdir)/pkgconfig
export PKG_CONFIG_PATH=${EPREFIX}/usr/share/pkgconfig
fi

View File

@ -1,7 +1,7 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: mysql-multilib.eclass
# @ECLASS: mysql-multilib-r1.eclass
# @MAINTAINER:
# Maintainers:
# - MySQL Team <mysql-bugs@gentoo.org>
@ -406,6 +406,7 @@ multilib_src_configure() {
# The build forces this to be defined when cross-compiling. We pass it
# all the time for simplicity and to make sure it is actually correct.
-DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1)
-DPKG_CONFIG_EXECUTABLE="${EPREFIX}/usr/bin/$(tc-getPKG_CONFIG)"
)
if use test ; then
@ -414,10 +415,6 @@ multilib_src_configure() {
mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' )
fi
if in_iuse systemd ; then
mycmakeargs+=( -DWITH_SYSTEMD=$(usex systemd) )
fi
if use openssl || use libressl ; then
mycmakeargs+=( -DWITH_SSL=system )
else
@ -447,6 +444,12 @@ multilib_src_configure() {
mycmakeargs+=( -DWITH_EDITLINE=bundled )
if multilib_is_native_abi && use server ; then
# systemd is only linked to for server notification
if in_iuse systemd ; then
mycmakeargs+=( -DWITH_SYSTEMD=$(usex systemd) )
fi
if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]]; then
ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}"
ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}."
@ -505,6 +508,7 @@ multilib_src_configure() {
-DWITHOUT_EMBEDDED_SERVER=1
-DEXTRA_CHARSETS=none
-DINSTALL_SQLBENCHDIR=
-DWITH_SYSTEMD=NO
)
fi

View File

@ -227,9 +227,9 @@ if [[ ${PN} == "mariadb" || ${PN} == "mariadb-galera" ]]; then
# 5.5.33 and 10.0.5 add TokuDB. Authors strongly recommend jemalloc or perfomance suffers
mysql_version_is_at_least "10.0.5" && IUSE="${IUSE} odbc xml"
if [[ ${HAS_TOOLS_PATCH} ]] ; then
REQUIRED_USE="${REQUIRED_USE} !server? ( !oqgraph !sphinx ) tokudb? ( jemalloc )"
REQUIRED_USE="${REQUIRED_USE} !server? ( !oqgraph !sphinx ) tokudb? ( jemalloc !tcmalloc )"
else
REQUIRED_USE="${REQUIRED_USE} minimal? ( !oqgraph !sphinx ) tokudb? ( jemalloc )"
REQUIRED_USE="${REQUIRED_USE} minimal? ( !oqgraph !sphinx ) tokudb? ( jemalloc !tcmalloc )"
fi
# MariaDB 10.1 introduces InnoDB/XtraDB compression with external libraries
# Choices are bzip2, lz4, lzma, lzo. bzip2 and lzma enabled by default as they are system libraries
@ -265,7 +265,7 @@ fi
REQUIRED_USE="
${REQUIRED_USE} tcmalloc? ( !jemalloc ) jemalloc? ( !tcmalloc )
static? ( yassl )"
static? ( yassl !openssl !libressl )"
#
# DEPENDENCIES:

View File

@ -240,9 +240,9 @@ if [[ ${PN} == "mariadb" || ${PN} == "mariadb-galera" ]]; then
mysql_version_is_at_least "5.2.10" && IUSE="${IUSE} pam"
# 5.5.33 and 10.0.5 add TokuDB. Authors strongly recommend jemalloc or perfomance suffers
mysql_version_is_at_least "10.0.5" && IUSE="${IUSE} tokudb odbc xml" && \
REQUIRED_USE="${REQUIRED_USE} odbc? ( extraengine ) xml? ( extraengine ) tokudb? ( jemalloc )"
REQUIRED_USE="${REQUIRED_USE} odbc? ( extraengine ) xml? ( extraengine ) tokudb? ( jemalloc !tcmalloc )"
mysql_check_version_range "5.5.33 to 5.5.99" && IUSE="${IUSE} tokudb" && \
REQUIRED_USE="${REQUIRED_USE} tokudb? ( jemalloc )"
REQUIRED_USE="${REQUIRED_USE} tokudb? ( jemalloc !tcmalloc )"
fi
if mysql_version_is_at_least "5.5"; then

View File

@ -0,0 +1,57 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: ninja-utils.eclass
# @MAINTAINER:
# Michał Górny <mgorny@gentoo.org>
# Mike Gilbert <floppym@gentoo.org>
# @AUTHOR:
# Michał Górny <mgorny@gentoo.org>
# Mike Gilbert <floppym@gentoo.org>
# @BLURB: common bits to run dev-util/ninja builder
# @DESCRIPTION:
# This eclass provides a single function -- eninja -- that can be used
# to run the ninja builder alike emake. It does not define any
# dependencies, you need to depend on dev-util/ninja yourself. Since
# ninja is rarely used stand-alone, most of the time this eclass will
# be used indirectly by the eclasses for other build systems (CMake,
# Meson).
if [[ -z ${_NINJA_UTILS_ECLASS} ]]; then
case ${EAPI:-0} in
0|1|3) die "EAPI=${EAPI:-0} is not supported (too old)";;
# copied from cmake-utils
2|4|5|6) ;;
*) die "EAPI=${EAPI} is not yet supported" ;;
esac
# @ECLASS-VARIABLE: NINJAOPTS
# @DEFAULT_UNSET
# @DESCRIPTION:
# The default set of options to pass to Ninja. Similar to MAKEOPTS,
# supposed to be set in make.conf. If unset, eninja() will convert
# MAKEOPTS instead.
inherit multiprocessing
# @FUNCTION: eninja
# @USAGE: [<args>...]
# @DESCRIPTION:
# Call Ninja, passing the NINJAOPTS (or converted MAKEOPTS), followed
# by the supplied arguments. This function dies if ninja fails. Starting
# with EAPI 6, it also supports being called via 'nonfatal'.
eninja() {
local nonfatal_args=()
[[ ${EAPI:-0} != [245] ]] && nonfatal_args+=( -n )
if [[ -z ${NINJAOPTS+set} ]]; then
NINJAOPTS="-j$(makeopts_jobs) -l$(makeopts_loadavg "${MAKEOPTS}" 0)"
fi
set -- ninja -v ${NINJAOPTS} "$@"
echo "$@" >&2
"$@" || die "${nonfatal_args[@]}" "${*} failed"
}
_NINJA_UTILS_ECLASS=1
fi

View File

@ -15,7 +15,7 @@
# This eclass provides a unified interface for compiling and installing standalone
# PHP extensions (modules).
inherit flag-o-matic autotools multilib eutils
inherit autotools multilib
EXPORT_FUNCTIONS src_unpack src_prepare src_configure src_compile src_install

View File

@ -1,97 +0,0 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: php-pear-lib-r1.eclass
# @MAINTAINER:
# Gentoo PHP team <php-bugs@gentoo.org>
# @AUTHOR:
# Author: Luca Longinotti <chtekk@gentoo.org>
# @BLURB: Provides means for an easy installation of PEAR-based libraries.
# @DESCRIPTION:
# This class provides means for an easy installation of PEAR-based libraries,
# such as Creole, Jargon, Phing etc., while retaining the functionality to put
# the libraries into version-dependant directories.
inherit multilib
EXPORT_FUNCTIONS pkg_setup src_install
# Silence repoman warnings
case "${EAPI:-0}" in
5)
PHP_DEPEND="dev-lang/php:*"
;;
*)
PHP_DEPEND="dev-lang/php"
;;
esac
DEPEND="${PHP_DEPEND}
>=dev-php/pear-1.9.0"
RDEPEND="${DEPEND}"
if [[ -n $PHP_PEAR_CHANNEL ]] ; then
PHP_PEAR_PV=${PV/_rc/RC}
[[ -z ${PHP_PEAR_PN} ]] && die "Missing PHP_PEAR_PN. Please notify the maintainer"
PHP_PEAR_P=${PHP_PEAR_PN}-${PHP_PEAR_PV}
S="${WORKDIR}/${PHP_PEAR_P}"
SRC_URI="http://${PHP_PEAR_URI}/get/${PHP_PEAR_P}.tgz"
fi
# @FUNCTION: php-pear-lib-r1_pkg_setup
# @DESCRIPTION:
# Adds required PEAR channel if necessary
php-pear-lib-r1_pkg_setup() {
if [[ -n $PHP_PEAR_CHANNEL ]] ; then
if [[ -f $PHP_PEAR_CHANNEL ]]; then
pear channel-add $PHP_PEAR_CHANNEL || einfo "Ignore any errors about existing channels"
else
die "Could not find channel file $PHP_PEAR_CHANNEL"
fi
fi
}
# @FUNCTION: php-pear-lib-r1_src_install
# @DESCRIPTION:
# Takes care of standard install for PEAR-based libraries.
php-pear-lib-r1_src_install() {
# SNMP support
addpredict /usr/share/snmp/mibs/.index
addpredict /var/lib/net-snmp/
addpredict /var/lib/net-snmp/mib_indexes
addpredict /session_mm_cli0.sem
PHP_BIN="/usr/bin/php"
cd "${S}"
# metadata_dir needs to be set relative to ${D} for >=dev-php/PEAR-PEAR-1.10
if [[ -f "${WORKDIR}"/package2.xml ]] ; then
mv -f "${WORKDIR}/package2.xml" "${S}"
local WWW_DIR="/usr/share/webapps/${PN}/${PVR}/htdocs"
peardev -d php_bin="${PHP_BIN}" -d www_dir="${WWW_DIR}" -d metadata_dir="/usr/share/php" \
install --force --loose --nodeps --offline --packagingroot="${D}" \
"${S}/package2.xml" || die "Unable to install PEAR package"
else
mv -f "${WORKDIR}/package.xml" "${S}"
local WWW_DIR="/usr/share/webapps/${PN}/${PVR}/htdocs"
peardev -d php_bin="${PHP_BIN}" -d www_dir="${WWW_DIR}" -d metadata_dir="/usr/share/php" \
install --force --loose --nodeps --offline --packagingroot="${D}" \
"${S}/package.xml" || die "Unable to install PEAR package"
fi
rm -Rf "${D}/usr/share/php/.channels" \
"${D}/usr/share/php/.depdblock" \
"${D}/usr/share/php/.depdb" \
"${D}/usr/share/php/.filemap" \
"${D}/usr/share/php/.lock" \
"${D}/usr/share/php/.registry"
einfo
einfo "Installing to /usr/share/php ..."
einfo
}

View File

@ -97,9 +97,10 @@ php-pear-r2_src_install() {
php-pear-r2_pkg_postinst() {
# Add unknown channels
if [[ -f "${EROOT}usr/share/php/.packagexml/${PEAR_P}-channel.xml" ]] ; then
if "${EROOT}usr/bin/peardev" channel-info "${PHP_PEAR_DOMAIN}" &> /dev/null; then
"${EROOT}usr/bin/peardev" channel-info "${PHP_PEAR_DOMAIN}" &> /dev/null
if [[ $? -ne 0 ]]; then
"${EROOT}usr/bin/peardev" channel-add \
"${EROOT}usr/share/php/.packagexml/${PEAR_PN}-channel.xml" \
"${EROOT}usr/share/php/.packagexml/${PEAR_P}-channel.xml" \
|| einfo "Ignore any errors about existing channels"
fi
fi

View File

@ -0,0 +1,175 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
inherit multibuild postgres
EXPORT_FUNCTIONS pkg_setup src_prepare src_compile src_install src_test
# @ECLASS: postgres-multi.eclass
# @MAINTAINER:
# PostgreSQL <pgsql-bugs@gentoo.org>
# @AUTHOR: Aaron W. Swenson <titanofold@gentoo.org>
# @BLURB: An eclass to build PostgreSQL-related packages against multiple slots
# @DESCRIPTION:
# postgres-multi enables ebuilds, particularly PostgreSQL extensions, to
# build and install for one or more PostgreSQL slots as specified by
# POSTGRES_TARGETS use flags.
case ${EAPI:-0} in
5|6) ;;
*) die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}" ;;
esac
# @ECLASS-VARIABLE: POSTGRES_COMPAT
# @REQUIRED
# @DESCRIPTION:
# A Bash array containing a list of compatible PostgreSQL slots as
# defined by the developer. Must be declared before inheriting this
# eclass. Example: POSTGRES_COMPAT=( 9.4 9.{5,6} )
if ! declare -p POSTGRES_COMPAT &>/dev/null; then
die 'Required variable POSTGRES_COMPAT not declared.'
fi
# @ECLASS-VARIABLE: _POSTGRES_INTERSECT_SLOTS
# @INTERNAL
# @DESCRIPTION:
# A Bash array containing the intersect of POSTGRES_TARGETS and
# POSTGRES_COMPAT.
export _POSTGRES_INTERSECT_SLOTS=( )
# @FUNCTION: _postgres-multi_multibuild_wrapper
# @INTERNAL
# @USAGE: _postgres-multi_multibuild_wrapper <command> [<arg> ...]
# @DESCRIPTION:
# For the given variant, set the values of the PG_SLOT, PG_CONFIG, and
# PKG_CONFIG_PATH environment variables accordingly and replace any
# appearance of @PG_SLOT@ in the command and arguments with value of
# ${PG_SLOT}.
_postgres-multi_multibuild_wrapper() {
debug-print-function ${FUNCNAME} "${@}"
export PG_SLOT=${MULTIBUILD_VARIANT}
export PG_CONFIG=$(which pg_config${MULTIBUILD_VARIANT//./})
if [[ -n ${PKG_CONFIG_PATH} ]] ; then
PKG_CONFIG_PATH="$(${PG_CONFIG} --libdir)/pkgconfig:${PKG_CONFIG_PATH}"
else
PKG_CONFIG_PATH="$(${PG_CONFIG} --libdir)/pkgconfig"
fi
export PKG_CONFIG_PATH
$(echo "${@}" | sed "s/@PG_SLOT@/${PG_SLOT}/g")
}
# @FUNCTION: postgres-multi_foreach
# @USAGE: postgres-multi_foreach <command> <arg> [<arg> ...]
# @DESCRIPTION:
# Run the given command in the package's build directory for each
# PostgreSQL slot in the intersect of POSTGRES_TARGETS and
# POSTGRES_COMPAT and user-enabled slots. The PG_CONFIG and
# PKG_CONFIG_PATH environment variables are updated on each iteration to
# point to the matching pg_config command and pkg-config metadata files,
# respectively, for the current slot. Any appearance of @PG_SLOT@ in the
# command or arguments will be substituted with the slot (e.g., 9.5) of
# the current iteration.
postgres-multi_foreach() {
local MULTIBUILD_VARIANTS=("${_POSTGRES_INTERSECT_SLOTS[@]}")
multibuild_foreach_variant \
_postgres-multi_multibuild_wrapper run_in_build_dir ${@}
}
# @FUNCTION: postgres-multi_forbest
# @USAGE: postgres-multi_forbest <command> <arg> [<arg> ...]
# @DESCRIPTION:
# Run the given command in the package's build directory for the highest
# slot in the intersect of POSTGRES_COMPAT and POSTGRES_TARGETS. The
# PG_CONFIG and PKG_CONFIG_PATH environment variables are set to the
# matching pg_config command and pkg-config metadata files,
# respectively. Any appearance of @PG_SLOT@ in the command or arguments
# will be substituted with the matching slot (e.g., 9.5).
postgres-multi_forbest() {
# POSTGRES_COMPAT is reverse sorted once in postgres.eclass so
# element 0 has the highest slot version.
local MULTIBUILD_VARIANTS=("${_POSTGRES_INTERSECT_SLOTS[0]}")
multibuild_foreach_variant \
_postgres-multi_multibuild_wrapper run_in_build_dir ${@}
}
# @FUNCTION: postgres-multi_pkg_setup
# @USAGE: postgres-multi_pkg_setup
# @DESCRIPTION:
# Initialize internal environment variable(s). This is required if
# pkg_setup() is declared in the ebuild.
postgres-multi_pkg_setup() {
local user_slot
for user_slot in "${POSTGRES_COMPAT[@]}"; do
use "postgres_targets_postgres${user_slot/\./_}" && \
_POSTGRES_INTERSECT_SLOTS+=( "${user_slot}" )
done
if [[ "${#_POSTGRES_INTERSECT_SLOTS[@]}" -eq "0" ]]; then
die "One of the postgres_targets_postgresSL_OT use flags must be enabled"
fi
einfo "Multibuild variants: ${_POSTGRES_INTERSECT_SLOTS[@]}"
}
# @FUNCTION: postgres-multi_src_prepare
# @USAGE: postgres-multi_src_prepare
# @DESCRIPTION:
# Calls eapply_user then copies ${S} into a build directory for each
# intersect of POSTGRES_TARGETS and POSTGRES_COMPAT.
postgres-multi_src_prepare() {
if [[ "${#_POSTGRES_INTERSECT_SLOTS[@]}" -eq "0" ]]; then
eerror "Internal array _POSTGRES_INTERSECT_SLOTS is empty."
die "Did you forget to call postgres-multi_pkg_setup?"
fi
# Check that the slot has been emerged (Should be prevented by
# Portage, but won't be caught by /usr/bin/ebuild)
local slot
for slot in ${_POSTGRES_INTERSECT_SLOTS[@]} ; do
if [[ -z $(which pg_config${slot/.} 2> /dev/null) ]] ; then
eerror
eerror "postgres_targets_postgres${slot/.} use flag is enabled, but hasn't been emerged."
eerror
die "a postgres_targets use flag is enabled, but not emerged"
fi
done
case ${EAPI:-0} in
0|1|2|3|4|5) epatch_user ;;
6) eapply_user ;;
esac
local MULTIBUILD_VARIANT
local MULTIBUILD_VARIANTS=("${_POSTGRES_INTERSECT_SLOTS[@]}")
multibuild_copy_sources
}
# @FUNCTION: postgres-multi_src_compile
# @USAGE: postgres-multi_src_compile
# @DESCRIPTION:
# Runs `emake' in each build directory
postgres-multi_src_compile() {
postgres-multi_foreach emake
}
# @FUNCTION: postgres-multi_src_install
# @USAGE: postgres-multi_src_install
# @DESCRIPTION:
# Runs `emake install DESTDIR="${D}"' in each build directory.
postgres-multi_src_install() {
postgres-multi_foreach emake install DESTDIR="${D}"
}
# @FUNCTION: postgres-multi_src_test
# @USAGE: postgres-multi_src_test
# @DESCRIPTION:
# Runs `emake installcheck' in each build directory.
postgres-multi_src_test() {
postgres-multi_foreach emake installcheck
}

View File

@ -0,0 +1,159 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
inherit user
EXPORT_FUNCTIONS pkg_setup
# @ECLASS: postgres.eclass
# @MAINTAINER:
# PostgreSQL <pgsql-bugs@gentoo.org>
# @AUTHOR: Aaron W. Swenson <titanofold@gentoo.org>
# @BLURB: An eclass for PostgreSQL-related packages
# @DESCRIPTION:
# This eclass provides common utility functions that many
# PostgreSQL-related packages perform, such as checking that the
# currently selected PostgreSQL slot is within a range, adding a system
# user to the postgres system group, and generating dependencies.
case ${EAPI:-0} in
5|6) ;;
*) die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}" ;;
esac
# @ECLASS-VARIABLE: POSTGRES_COMPAT
# @DEFAULT_UNSET
# @DESCRIPTION:
# A Bash array containing a list of compatible PostgreSQL slots as
# defined by the developer. If declared, must be declared before
# inheriting this eclass. Example: POSTGRES_COMPAT=( 9.4 9.{5,6} )
# @ECLASS-VARIABLE: POSTGRES_USEDEP
# @DEFAULT_UNSET
# @DESCRIPTION:
# Add the 2-Style and/or 4-Style use dependencies without brackets to be used
# for POSTGRES_DEP. If declared, must be done before inheriting this eclass.
# @ECLASS-VARIABLE: POSTGRES_DEP
# @DESCRIPTION:
# An automatically generated dependency string suitable for use in
# DEPEND and RDEPEND declarations.
# @ECLASS-VARIABLE: POSTGRES_REQ_USE
# @DESCRIPTION:
# An automatically generated REQUIRED_USE-compatible string built upon
# POSTGRES_COMPAT. REQUIRED_USE="... ${POSTGRES_REQ_USE}" is only
# required if the package must build against one of the PostgreSQL slots
# declared in POSTGRES_COMPAT.
if declare -p POSTGRES_COMPAT &> /dev/null ; then
# Reverse sort the given POSTGRES_COMPAT so that the most recent
# slot is preferred over an older slot.
# -- do we care if dependencies are deterministic by USE flags?
readarray -t POSTGRES_COMPAT < <(printf '%s\n' "${POSTGRES_COMPAT[@]}" | sort -nr)
POSTGRES_DEP=""
POSTGRES_REQ_USE=" || ("
for slot in "${POSTGRES_COMPAT[@]}" ; do
POSTGRES_DEP+=" postgres_targets_postgres${slot/\./_}? ( dev-db/postgresql:${slot}="
declare -p POSTGRES_USEDEP &>/dev/null && \
POSTGRES_DEP+="[${POSTGRES_USEDEP}]"
POSTGRES_DEP+=" )"
IUSE+=" postgres_targets_postgres${slot/\./_}"
POSTGRES_REQ_USE+=" postgres_targets_postgres${slot/\./_}"
done
POSTGRES_REQ_USE+=" )"
else
POSTGRES_DEP="dev-db/postgresql:="
declare -p POSTGRES_USEDEP &>/dev/null && \
POSTGRES_DEP+="[${POSTGRES_USEDEP}]"
fi
# @FUNCTION: postgres_check_slot
# @DESCRIPTION:
# Verify that the currently selected PostgreSQL slot is set to one of
# the slots defined in POSTGRES_COMPAT. Automatically dies unless a
# POSTGRES_COMPAT slot is selected. Should be called in pkg_pretend().
postgres_check_slot() {
if ! declare -p POSTGRES_COMPAT &>/dev/null; then
die 'POSTGRES_COMPAT not declared.'
fi
# Don't die because we can't run postgresql-config during pretend.
[[ "$EBUILD_PHASE" = "pretend" && -z "$(which postgresql-config 2> /dev/null)" ]] \
&& return 0
if has $(postgresql-config show 2> /dev/null) "${POSTGRES_COMPAT[@]}"; then
return 0
else
eerror "PostgreSQL slot must be set to one of: "
eerror " ${POSTGRES_COMPAT[@]}"
die "Incompatible PostgreSQL slot eselected"
fi
}
# @FUNCTION: postgres_new_user
# @DESCRIPTION:
# Creates the "postgres" system group and user -- which is separate from
# the database user -- in addition to the developer defined user. Takes
# the same arguments as "enewuser".
postgres_new_user() {
enewgroup postgres 70
enewuser postgres 70 /bin/bash /var/lib/postgresql postgres
if [[ $# -gt 0 ]] ; then
if [[ "$1" = "postgres" ]] ; then
ewarn "Username 'postgres' implied, skipping"
else
local groups=$5
[[ -n "${groups}" ]] && groups+=",postgres" || groups="postgres"
enewuser "$1" "${2:--1}" "${3:--1}" "${4:--1}" "${groups}"
fi
fi
}
# @FUNCTION: postgres_pkg_setup
# @USAGE: postgres_pkg_setup
# @DESCRIPTION:
# Initialize environment variable(s) according to the best
# installed version of PostgreSQL that is also in POSTGRES_COMPAT. This
# is required if pkg_setup() is declared in the ebuild.
# Exports PG_SLOT, PG_CONFIG, and PKG_CONFIG_PATH.
postgres_pkg_setup() {
debug-print-function ${FUNCNAME} "${@}"
local compat_slot
local best_slot
for compat_slot in "${POSTGRES_COMPAT[@]}"; do
if use "postgres_targets_postgres${compat_slot/\./_}"; then
best_slot="${compat_slot}"
break
fi
done
if [[ -z "${best_slot}" ]]; then
local flags f
for f in "${POSTGRES_COMPAT[@]}"; do
flags+=" postgres${f/./_}"
done
eerror "POSTGRES_TARGETS must contain at least one of:"
eerror " ${flags}"
die "No suitable POSTGRES_TARGETS enabled."
fi
export PG_SLOT=${best_slot}
export PG_CONFIG=$(which pg_config${best_slot//./})
local pg_pkg_config_path="$(${PG_CONFIG} --libdir)/pkgconfig"
if [[ -n "${PKG_CONFIG_PATH}" ]]; then
export PKG_CONFIG_PATH="${pg_pkg_config_path}:${PKG_CONFIG_PATH}"
else
export PKG_CONFIG_PATH="${pg_pkg_config_path}"
fi
elog "PostgreSQL Target: ${best_slot}"
}

View File

@ -224,7 +224,7 @@ python_gen_any_dep() {
local depstr=${1}
[[ ${depstr} ]] || die "No dependency string provided"
local PYTHON_PKG_DEP out=
local i PYTHON_PKG_DEP out=
for i in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do
local PYTHON_USEDEP="python_targets_${i}(-),python_single_target_${i}(+)"
python_export "${i}" PYTHON_PKG_DEP

View File

@ -231,7 +231,7 @@ _python_set_globals() {
PYTHON_DEPS=${deps}
PYTHON_REQUIRED_USE=${requse}
PYTHON_USEDEP=${usedep}
readonly PYTHON_DEPS PYTHON_REQUIRED_USE PYTHON_USEDEP
readonly PYTHON_DEPS PYTHON_REQUIRED_USE
fi
}
_python_set_globals
@ -242,10 +242,25 @@ if [[ ! ${_PYTHON_R1} ]]; then
# @FUNCTION: _python_validate_useflags
# @INTERNAL
# @DESCRIPTION:
# Enforce the proper setting of PYTHON_TARGETS.
# Enforce the proper setting of PYTHON_TARGETS, if PYTHON_COMPAT_OVERRIDE
# is not in effect. If it is, just warn that the flags will be ignored.
_python_validate_useflags() {
debug-print-function ${FUNCNAME} "${@}"
if [[ ${PYTHON_COMPAT_OVERRIDE} ]]; then
if [[ ! ${_PYTHON_COMPAT_OVERRIDE_WARNED} ]]; then
ewarn "WARNING: PYTHON_COMPAT_OVERRIDE in effect. The following Python"
ewarn "implementations will be enabled:"
ewarn
ewarn " ${PYTHON_COMPAT_OVERRIDE}"
ewarn
ewarn "Dependencies won't be satisfied, and PYTHON_TARGETS will be ignored."
_PYTHON_COMPAT_OVERRIDE_WARNED=1
fi
# we do not use flags with PCO
return
fi
local i
for i in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do
@ -267,8 +282,11 @@ _python_validate_useflags() {
# are both in PYTHON_COMPAT and match any of the patterns passed
# as parameters to the function.
#
# Remember to escape or quote the patterns to prevent shell filename
# expansion.
# The patterns can be either fnmatch-style patterns (matched via bash
# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
# appropriately all enabled Python 2/3 implementations (alike
# python_is_python3). Remember to escape or quote the fnmatch patterns
# to prevent accidental shell filename expansion.
#
# When all implementations are requested, please use ${PYTHON_USEDEP}
# instead. Please also remember to set an appropriate REQUIRED_USE
@ -287,19 +305,15 @@ _python_validate_useflags() {
python_gen_usedep() {
debug-print-function ${FUNCNAME} "${@}"
local impl pattern
local matches=()
local impl matches=()
for impl in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do
for pattern; do
if [[ ${impl} == ${pattern} ]]; then
matches+=(
"python_targets_${impl}(-)?"
"-python_single_target_${impl}(-)"
)
break
fi
done
if _python_impl_matches "${impl}" "${@}"; then
matches+=(
"python_targets_${impl}(-)?"
"-python_single_target_${impl}(-)"
)
fi
done
[[ ${matches[@]} ]] || die "No supported implementations match python_gen_usedep patterns: ${@}"
@ -315,6 +329,12 @@ python_gen_usedep() {
# are both in PYTHON_COMPAT and match any of the patterns passed
# as parameters to the function.
#
# The patterns can be either fnmatch-style patterns (matched via bash
# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
# appropriately all enabled Python 2/3 implementations (alike
# python_is_python3). Remember to escape or quote the fnmatch patterns
# to prevent accidental shell filename expansion.
#
# Example:
# @CODE
# PYTHON_COMPAT=( python{2_7,3_4} )
@ -328,16 +348,12 @@ python_gen_usedep() {
python_gen_useflags() {
debug-print-function ${FUNCNAME} "${@}"
local impl pattern
local matches=()
local impl matches=()
for impl in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do
for pattern; do
if [[ ${impl} == ${pattern} ]]; then
matches+=( "python_targets_${impl}" )
break
fi
done
if _python_impl_matches "${impl}" "${@}"; then
matches+=( "python_targets_${impl}" )
fi
done
echo "${matches[@]}"
@ -350,6 +366,12 @@ python_gen_useflags() {
# of Python implementations which are both in PYTHON_COMPAT and match
# any of the patterns passed as the remaining parameters.
#
# The patterns can be either fnmatch-style patterns (matched via bash
# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
# appropriately all enabled Python 2/3 implementations (alike
# python_is_python3). Remember to escape or quote the fnmatch patterns
# to prevent accidental shell filename expansion.
#
# In order to enforce USE constraints on the packages, verbatim
# '${PYTHON_USEDEP}' (quoted!) may be placed in the dependency
# specification. It will get expanded within the function into a proper
@ -372,27 +394,22 @@ python_gen_useflags() {
python_gen_cond_dep() {
debug-print-function ${FUNCNAME} "${@}"
local impl pattern
local matches=()
local impl matches=()
local dep=${1}
shift
for impl in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do
for pattern; do
if [[ ${impl} == ${pattern} ]]; then
# substitute ${PYTHON_USEDEP} if used
# (since python_gen_usedep() will not return ${PYTHON_USEDEP}
# the code is run at most once)
if [[ ${dep} == *'${PYTHON_USEDEP}'* ]]; then
local usedep=$(python_gen_usedep "${@}")
dep=${dep//\$\{PYTHON_USEDEP\}/${usedep}}
fi
matches+=( "python_targets_${impl}? ( ${dep} )" )
break
if _python_impl_matches "${impl}" "${@}"; then
# substitute ${PYTHON_USEDEP} if used
# (since python_gen_usedep() will not return ${PYTHON_USEDEP}
# the code is run at most once)
if [[ ${dep} == *'${PYTHON_USEDEP}'* ]]; then
local usedep=$(python_gen_usedep "${@}")
dep=${dep//\$\{PYTHON_USEDEP\}/${usedep}}
fi
done
matches+=( "python_targets_${impl}? ( ${dep} )" )
fi
done
echo "${matches[@]}"
@ -407,6 +424,12 @@ python_gen_cond_dep() {
# patterns are passed, the output dependencies will be generated only
# for the implementations matching them.
#
# The patterns can be either fnmatch-style patterns (matched via bash
# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
# appropriately all enabled Python 2/3 implementations (alike
# python_is_python3). Remember to escape or quote the fnmatch patterns
# to prevent accidental shell filename expansion.
#
# Use this function when you need to request different USE flags
# on the Python interpreter depending on package's USE flags. If you
# only need a single set of interpreter USE flags, just set
@ -429,27 +452,102 @@ python_gen_cond_dep() {
python_gen_impl_dep() {
debug-print-function ${FUNCNAME} "${@}"
local impl pattern
local matches=()
local impl matches=()
local PYTHON_REQ_USE=${1}
shift
local patterns=( "${@-*}" )
for impl in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do
for pattern in "${patterns[@]}"; do
if [[ ${impl} == ${pattern} ]]; then
local PYTHON_PKG_DEP
python_export "${impl}" PYTHON_PKG_DEP
matches+=( "python_targets_${impl}? ( ${PYTHON_PKG_DEP} )" )
break
fi
done
if _python_impl_matches "${impl}" "${patterns[@]}"; then
local PYTHON_PKG_DEP
python_export "${impl}" PYTHON_PKG_DEP
matches+=( "python_targets_${impl}? ( ${PYTHON_PKG_DEP} )" )
fi
done
echo "${matches[@]}"
}
# @FUNCTION: python_gen_any_dep
# @USAGE: <dependency-block> [<impl-pattern>...]
# @DESCRIPTION:
# Generate an any-of dependency that enforces a version match between
# the Python interpreter and Python packages. <dependency-block> needs
# to list one or more dependencies with verbatim '${PYTHON_USEDEP}'
# references (quoted!) that will get expanded inside the function.
# Optionally, patterns may be specified to restrict the dependency
# to a subset of Python implementations supported by the ebuild.
#
# The patterns can be either fnmatch-style patterns (matched via bash
# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
# appropriately all enabled Python 2/3 implementations (alike
# python_is_python3). Remember to escape or quote the fnmatch patterns
# to prevent accidental shell filename expansion.
#
# This should be used along with an appropriate python_check_deps()
# that checks which of the any-of blocks were matched, and python_setup
# call that enables use of the matched implementation.
#
# Example use:
# @CODE
# DEPEND="$(python_gen_any_dep '
# dev-python/foo[${PYTHON_USEDEP}]
# || ( dev-python/bar[${PYTHON_USEDEP}]
# dev-python/baz[${PYTHON_USEDEP}] )' -2)"
#
# python_check_deps() {
# has_version "dev-python/foo[${PYTHON_USEDEP}]" \
# && { has_version "dev-python/bar[${PYTHON_USEDEP}]" \
# || has_version "dev-python/baz[${PYTHON_USEDEP}]"; }
# }
#
# src_compile() {
# python_foreach_impl usual_code
#
# # some common post-build task that requires Python 2
# python_setup -2
# emake frobnicate
# }
# @CODE
#
# Example value:
# @CODE
# || (
# (
# dev-lang/python:2.7
# dev-python/foo[python_targets_python2_7(-)?,python_single_target_python2_7(+)?]
# || ( dev-python/bar[python_targets_python2_7(-)?,python_single_target_python2_7(+)?]
# dev-python/baz[python_targets_python2_7(-)?,python_single_target_python2_7(+)?] )
# )
# (
# dev-lang/python:3.3
# dev-python/foo[python_targets_python3_3(-)?,python_single_target_python3_3(+)?]
# || ( dev-python/bar[python_targets_python3_3(-)?,python_single_target_python3_3(+)?]
# dev-python/baz[python_targets_python3_3(-)?,python_single_target_python3_3(+)?] )
# )
# )
# @CODE
python_gen_any_dep() {
debug-print-function ${FUNCNAME} "${@}"
local depstr=${1}
[[ ${depstr} ]] || die "No dependency string provided"
shift
local i PYTHON_PKG_DEP out=
for i in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do
if _python_impl_matches "${i}" "${@-*}"; then
local PYTHON_USEDEP="python_targets_${i}(-),python_single_target_${i}(+)"
python_export "${i}" PYTHON_PKG_DEP
local i_depstr=${depstr//\$\{PYTHON_USEDEP\}/${PYTHON_USEDEP}}
# note: need to strip '=' slot operator for || deps
out="( ${PYTHON_PKG_DEP%=} ${i_depstr} ) ${out}"
fi
done
echo "|| ( ${out})"
}
# @ECLASS-VARIABLE: BUILD_DIR
# @DESCRIPTION:
# The current build directory. In global scope, it is supposed to
@ -487,23 +585,13 @@ python_copy_sources() {
# @DESCRIPTION:
# Set up the enabled implementation list.
_python_obtain_impls() {
if [[ ${PYTHON_COMPAT_OVERRIDE} ]]; then
if [[ ! ${_PYTHON_COMPAT_OVERRIDE_WARNED} ]]; then
ewarn "WARNING: PYTHON_COMPAT_OVERRIDE in effect. The following Python"
ewarn "implementations will be enabled:"
ewarn
ewarn " ${PYTHON_COMPAT_OVERRIDE}"
ewarn
ewarn "Dependencies won't be satisfied, and PYTHON_TARGETS will be ignored."
_PYTHON_COMPAT_OVERRIDE_WARNED=1
fi
_python_validate_useflags
if [[ ${PYTHON_COMPAT_OVERRIDE} ]]; then
MULTIBUILD_VARIANTS=( ${PYTHON_COMPAT_OVERRIDE} )
return
fi
_python_validate_useflags
MULTIBUILD_VARIANTS=()
local impl
@ -552,59 +640,63 @@ python_foreach_impl() {
multibuild_foreach_variant _python_multibuild_wrapper "${@}"
}
# @FUNCTION: python_parallel_foreach_impl
# @USAGE: <command> [<args>...]
# @DESCRIPTION:
# Run the given command for each of the enabled Python implementations.
# If additional parameters are passed, they will be passed through
# to the command.
#
# The function will return 0 status if all invocations succeed.
# Otherwise, the return code from first failing invocation will
# be returned.
#
# For each command being run, EPYTHON, PYTHON and BUILD_DIR are set
# locally, and the former two are exported to the command environment.
#
# This command used to be the parallel variant of python_foreach_impl.
# However, the parallel run support has been removed to simplify
# the eclasses and make them more predictable and therefore it is now
# only a deprecated alias to python_foreach_impl.
python_parallel_foreach_impl() {
debug-print-function ${FUNCNAME} "${@}"
[[ ${EAPI} == [45] ]] || die "${FUNCNAME} is banned in EAPI ${EAPI}"
if [[ ! ${_PYTHON_PARALLEL_WARNED} ]]; then
eqawarn "python_parallel_foreach_impl() is no longer meaningful. All runs"
eqawarn "are non-parallel now. Please replace the call with python_foreach_impl."
_PYTHON_PARALLEL_WARNED=1
fi
local MULTIBUILD_VARIANTS
_python_obtain_impls
multibuild_foreach_variant _python_multibuild_wrapper "${@}"
}
# @FUNCTION: python_setup
# @USAGE: [<impl-pattern>...]
# @DESCRIPTION:
# Find the best (most preferred) Python implementation that is enabled
# and matches at least one of the patterns passed (or '*' if no patterns
# passed). Set the Python build environment up for that implementation.
# Find the best (most preferred) Python implementation that is suitable
# for running common Python code. Set the Python build environment up
# for that implementation. This function has two modes of operation:
# pure and any-of dep.
#
# The pure mode is used if python_check_deps() function is not declared.
# In this case, an implementation is considered suitable if it is
# supported (in PYTHON_COMPAT), enabled (via USE flags) and matches
# at least one of the patterns passed (or '*' if no patterns passed).
#
# Implementation restrictions in the pure mode need to be accompanied
# by appropriate REQUIRED_USE constraints. Otherwise, the eclass may
# fail at build time due to unsatisfied dependencies.
#
# The any-of dep mode is used if python_check_deps() is declared.
# In this mode, an implementation is considered suitable if it is
# supported, matches at least one of the patterns and python_check_deps()
# has successful return code. USE flags are not considered.
#
# The python_check_deps() function in the any-of mode needs to be
# accompanied by appropriate any-of dependencies.
#
# The patterns can be either fnmatch-style patterns (matched via bash
# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
# appropriately all enabled Python 2/3 implementations (alike
# python_is_python3). Remember to escape or quote the fnmatch patterns
# to prevent accidental shell filename expansion.
#
# This function needs to be used when Python is being called outside
# of python_foreach_impl calls (e.g. for shared processes like doc
# building). python_foreach_impl sets up the build environment itself.
#
# If the specific commands support only a subset of Python
# implementations, patterns need to be passed to restrict the allowed
# implementations.
#
# Example:
# Pure mode example:
# @CODE
# DEPEND="doc? ( dev-python/epydoc[$(python_gen_usedep 'python2*')] )"
# REQUIRED_USE="doc? ( $(python_gen_useflags 'python2*') )"
#
# src_compile() {
# #...
# if use doc; then
# python_setup 'python2*'
# make doc
# fi
# }
# @CODE
#
# Any-of mode example:
# @CODE
# DEPEND="doc? (
# $(python_gen_any_dep 'dev-python/epydoc[${PYTHON_USEDEP}]' 'python2*') )"
#
# python_check_deps() {
# has_version "dev-python/epydoc[${PYTHON_USEDEP}]"
# }
#
# src_compile() {
# #...
@ -617,19 +709,48 @@ python_parallel_foreach_impl() {
python_setup() {
debug-print-function ${FUNCNAME} "${@}"
local best_impl patterns=( "${@-*}" )
_python_try_impl() {
local pattern
for pattern in "${patterns[@]}"; do
if [[ ${EPYTHON} == ${pattern} ]]; then
best_impl=${EPYTHON}
fi
done
}
python_foreach_impl _python_try_impl
unset -f _python_try_impl
_python_validate_useflags
local pycompat=( "${PYTHON_COMPAT[@]}" )
if [[ ${PYTHON_COMPAT_OVERRIDE} ]]; then
pycompat=( ${PYTHON_COMPAT_OVERRIDE} )
fi
if [[ ! ${best_impl} ]]; then
local has_check_deps
declare -f python_check_deps >/dev/null && has_check_deps=1
# (reverse iteration -- newest impl first)
local found
for (( i = ${#_PYTHON_SUPPORTED_IMPLS[@]} - 1; i >= 0; i-- )); do
local impl=${_PYTHON_SUPPORTED_IMPLS[i]}
# check PYTHON_COMPAT[_OVERRIDE]
has "${impl}" "${pycompat[@]}" || continue
# match USE flags only if override is not in effect
# and python_check_deps() is not defined
if [[ ! ${PYTHON_COMPAT_OVERRIDE} && ! ${has_check_deps} ]]; then
use "python_targets_${impl}" || continue
fi
# check patterns
_python_impl_matches "${impl}" "${@-*}" || continue
python_export "${impl}" EPYTHON PYTHON
# if python_check_deps() is declared, switch into any-of mode
if [[ ${has_check_deps} ]]; then
# first check if the interpreter is installed
python_is_installed "${impl}" || continue
# then run python_check_deps
local PYTHON_USEDEP="python_targets_${impl}(-),python_single_target_${impl}(+)"
python_check_deps || continue
fi
found=1
break
done
if [[ ! ${found} ]]; then
eerror "${FUNCNAME}: none of the enabled implementation matched the patterns."
eerror " patterns: ${@-'(*)'}"
eerror "Likely a REQUIRED_USE constraint (possibly USE-conditional) is missing."
@ -638,7 +759,6 @@ python_setup() {
die "${FUNCNAME}: no enabled implementation satisfy requirements"
fi
python_export "${best_impl}" EPYTHON PYTHON
python_wrapper_setup
}

View File

@ -271,8 +271,11 @@ if [[ ! ${_PYTHON_SINGLE_R1} ]]; then
# are both in PYTHON_COMPAT and match any of the patterns passed
# as parameters to the function.
#
# Remember to escape or quote the patterns to prevent shell filename
# expansion.
# The patterns can be either fnmatch-style patterns (matched via bash
# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
# appropriately all enabled Python 2/3 implementations (alike
# python_is_python3). Remember to escape or quote the fnmatch patterns
# to prevent accidental shell filename expansion.
#
# When all implementations are requested, please use ${PYTHON_USEDEP}
# instead. Please also remember to set an appropriate REQUIRED_USE
@ -291,19 +294,15 @@ if [[ ! ${_PYTHON_SINGLE_R1} ]]; then
python_gen_usedep() {
debug-print-function ${FUNCNAME} "${@}"
local impl pattern
local matches=()
local impl matches=()
for impl in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do
for pattern; do
if [[ ${impl} == ${pattern} ]]; then
matches+=(
"python_targets_${impl}(-)?"
"python_single_target_${impl}(+)?"
)
break
fi
done
if _python_impl_matches "${impl}" "${@}"; then
matches+=(
"python_targets_${impl}(-)?"
"python_single_target_${impl}(+)?"
)
fi
done
[[ ${matches[@]} ]] || die "No supported implementations match python_gen_usedep patterns: ${@}"
@ -319,6 +318,12 @@ python_gen_usedep() {
# are both in PYTHON_COMPAT and match any of the patterns passed
# as parameters to the function.
#
# The patterns can be either fnmatch-style patterns (matched via bash
# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
# appropriately all enabled Python 2/3 implementations (alike
# python_is_python3). Remember to escape or quote the fnmatch patterns
# to prevent accidental shell filename expansion.
#
# Example:
# @CODE
# PYTHON_COMPAT=( python{2_7,3_4} )
@ -332,8 +337,7 @@ python_gen_usedep() {
python_gen_useflags() {
debug-print-function ${FUNCNAME} "${@}"
local flag_prefix impl pattern
local matches=()
local flag_prefix impl matches=()
if [[ ${#_PYTHON_SUPPORTED_IMPLS[@]} -eq 1 ]]; then
flag_prefix=python_targets
@ -342,12 +346,9 @@ python_gen_useflags() {
fi
for impl in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do
for pattern; do
if [[ ${impl} == ${pattern} ]]; then
matches+=( "${flag_prefix}_${impl}" )
break
fi
done
if _python_impl_matches "${impl}" "${@}"; then
matches+=( "${flag_prefix}_${impl}" )
fi
done
echo "${matches[@]}"
@ -360,6 +361,12 @@ python_gen_useflags() {
# of Python implementations which are both in PYTHON_COMPAT and match
# any of the patterns passed as the remaining parameters.
#
# The patterns can be either fnmatch-style patterns (matched via bash
# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
# appropriately all enabled Python 2/3 implementations (alike
# python_is_python3). Remember to escape or quote the fnmatch patterns
# to prevent accidental shell filename expansion.
#
# In order to enforce USE constraints on the packages, verbatim
# '${PYTHON_USEDEP}' (quoted!) may be placed in the dependency
# specification. It will get expanded within the function into a proper
@ -382,8 +389,7 @@ python_gen_useflags() {
python_gen_cond_dep() {
debug-print-function ${FUNCNAME} "${@}"
local flag_prefix impl pattern
local matches=()
local flag_prefix impl matches=()
if [[ ${#_PYTHON_SUPPORTED_IMPLS[@]} -eq 1 ]]; then
flag_prefix=python_targets
@ -395,20 +401,17 @@ python_gen_cond_dep() {
shift
for impl in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do
for pattern; do
if [[ ${impl} == ${pattern} ]]; then
# substitute ${PYTHON_USEDEP} if used
# (since python_gen_usedep() will not return ${PYTHON_USEDEP}
# the code is run at most once)
if [[ ${dep} == *'${PYTHON_USEDEP}'* ]]; then
local usedep=$(python_gen_usedep "${@}")
dep=${dep//\$\{PYTHON_USEDEP\}/${usedep}}
fi
matches+=( "${flag_prefix}_${impl}? ( ${dep} )" )
break
if _python_impl_matches "${impl}" "${@}"; then
# substitute ${PYTHON_USEDEP} if used
# (since python_gen_usedep() will not return ${PYTHON_USEDEP}
# the code is run at most once)
if [[ ${dep} == *'${PYTHON_USEDEP}'* ]]; then
local usedep=$(python_gen_usedep "${@}")
dep=${dep//\$\{PYTHON_USEDEP\}/${usedep}}
fi
done
matches+=( "${flag_prefix}_${impl}? ( ${dep} )" )
fi
done
echo "${matches[@]}"
@ -423,6 +426,12 @@ python_gen_cond_dep() {
# patterns are passed, the output dependencies will be generated only
# for the implementations matching them.
#
# The patterns can be either fnmatch-style patterns (matched via bash
# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
# appropriately all enabled Python 2/3 implementations (alike
# python_is_python3). Remember to escape or quote the fnmatch patterns
# to prevent accidental shell filename expansion.
#
# Use this function when you need to request different USE flags
# on the Python interpreter depending on package's USE flags. If you
# only need a single set of interpreter USE flags, just set
@ -459,14 +468,11 @@ python_gen_impl_dep() {
local patterns=( "${@-*}" )
for impl in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do
for pattern in "${patterns[@]}"; do
if [[ ${impl} == ${pattern} ]]; then
local PYTHON_PKG_DEP
python_export "${impl}" PYTHON_PKG_DEP
matches+=( "${flag_prefix}_${impl}? ( ${PYTHON_PKG_DEP} )" )
break
fi
done
if _python_impl_matches "${impl}" "${patterns[@]}"; then
local PYTHON_PKG_DEP
python_export "${impl}" PYTHON_PKG_DEP
matches+=( "${flag_prefix}_${impl}? ( ${PYTHON_PKG_DEP} )" )
fi
done
echo "${matches[@]}"

View File

@ -47,6 +47,18 @@ _PYTHON_ALL_IMPLS=(
)
readonly _PYTHON_ALL_IMPLS
# @ECLASS-VARIABLE: PYTHON_COMPAT_NO_STRICT
# @INTERNAL
# @DESCRIPTION:
# Set to a non-empty value in order to make eclass tolerate (ignore)
# unknown implementations in PYTHON_COMPAT.
#
# This is intended to be set by the user when using ebuilds that may
# have unknown (newer) implementations in PYTHON_COMPAT. The assumption
# is that the ebuilds are intended to be used within multiple contexts
# which can involve revisions of this eclass that support a different
# set of Python implementations.
# @FUNCTION: _python_impl_supported
# @USAGE: <impl>
# @INTERNAL
@ -79,6 +91,7 @@ _python_impl_supported() {
fi
;;
*)
[[ ${PYTHON_COMPAT_NO_STRICT} ]] && return 1
die "Invalid implementation in PYTHON_COMPAT: ${impl}"
esac
}
@ -149,6 +162,40 @@ _python_set_impls() {
fi
}
# @FUNCTION: _python_impl_matches
# @USAGE: <impl> <pattern>...
# @INTERNAL
# @DESCRIPTION:
# Check whether the specified <impl> matches at least one
# of the patterns following it. Return 0 if it does, 1 otherwise.
#
# <impl> can be in PYTHON_COMPAT or EPYTHON form. The patterns can be
# either:
# a) fnmatch-style patterns, e.g. 'python2*', 'pypy'...
# b) '-2' to indicate all Python 2 variants (= !python_is_python3)
# c) '-3' to indicate all Python 3 variants (= python_is_python3)
_python_impl_matches() {
[[ ${#} -ge 2 ]] || die "${FUNCNAME}: takes at least 2 parameters"
local impl=${1} pattern
shift
for pattern; do
if [[ ${pattern} == -2 ]]; then
! python_is_python3 "${impl}"
return
elif [[ ${pattern} == -3 ]]; then
python_is_python3 "${impl}"
return
# unify value style to allow lax matching
elif [[ ${impl/./_} == ${pattern/./_} ]]; then
return 0
fi
done
return 1
}
# @ECLASS-VARIABLE: PYTHON
# @DEFAULT_UNSET
# @DESCRIPTION:
@ -810,11 +857,19 @@ python_newscript() {
# The <new-path> can either be an absolute target system path (in which
# case it needs to start with a slash, and ${ED} will be prepended to
# it) or relative to the implementation's site-packages directory
# (then it must not start with a slash).
# (then it must not start with a slash). The relative path can be
# specified either using the Python package notation (separated by dots)
# or the directory notation (using slashes).
#
# When not set explicitly, the modules are installed to the top
# site-packages directory.
#
# In the relative case, the exact path is determined directly
# by each python_doscript/python_newscript function. Therefore,
# python_moduleinto can be safely called before establishing the Python
# interpreter and/or a single call can be used to set the path correctly
# for multiple implementations, as can be seen in the following example.
#
# Example:
# @CODE
# src_install() {
@ -823,12 +878,6 @@ python_newscript() {
# python_foreach_impl python_domodule baz.py
# }
# @CODE
# Set the current module root. The new value will be stored
# in the 'python_moduleroot' environment variable. The new value need
# be relative to the site-packages root.
#
# Alternatively, you can set the variable directly.
python_moduleinto() {
debug-print-function ${FUNCNAME} "${@}"
@ -867,7 +916,7 @@ python_domodule() {
local PYTHON_SITEDIR=${PYTHON_SITEDIR}
[[ ${PYTHON_SITEDIR} ]] || python_export PYTHON_SITEDIR
d=${PYTHON_SITEDIR#${EPREFIX}}/${python_moduleroot}
d=${PYTHON_SITEDIR#${EPREFIX}}/${python_moduleroot//.//}
fi
(
@ -994,7 +1043,7 @@ python_wrapper_setup() {
for x in "${nonsupp[@]}"; do
cat >"${workdir}"/bin/${x} <<-_EOF_ || die
#!/bin/sh
echo "${x} is not supported by ${EPYTHON}" >&2
echo "${ECLASS}: ${FUNCNAME}: ${x} is not supported by ${EPYTHON} (PYTHON_COMPAT)" >&2
exit 127
_EOF_
chmod +x "${workdir}"/bin/${x} || die

View File

@ -16,8 +16,8 @@
if [[ -z ${_QMAKE_UTILS_ECLASS} ]]; then
_QMAKE_UTILS_ECLASS=1
[[ ${EAPI:-0} == [012345] ]] && inherit multilib
inherit eutils toolchain-funcs
[[ ${EAPI:-0} == [012345] ]] && inherit eutils multilib
inherit estack toolchain-funcs
# @FUNCTION: qt4_get_bindir
# @DESCRIPTION:
@ -184,7 +184,7 @@ eqmake4() {
# Make sure the CONFIG variable is correctly set for both release and debug builds.
local config_add=release
local config_remove=debug
if use_if_iuse debug; then
if in_iuse debug && use debug; then
config_add=debug
config_remove=release
fi

View File

@ -85,12 +85,7 @@ case ${PV} in
# official stable release
QT5_BUILD_TYPE="release"
MY_P=${QT5_MODULE}-opensource-src-${PV}
# bug 586646
if [[ ${PV} = 5.6.1 ]]; then
SRC_URI="https://download.qt.io/official_releases/qt/${PV%.*}/${PV}-1/submodules/${MY_P}-1.tar.xz"
else
SRC_URI="https://download.qt.io/official_releases/qt/${PV%.*}/${PV}/submodules/${MY_P}.tar.xz"
fi
SRC_URI="https://download.qt.io/official_releases/qt/${PV%.*}/${PV}/submodules/${MY_P}.tar.xz"
S=${WORKDIR}/${MY_P}
;;
esac

View File

@ -42,35 +42,24 @@ if [ "${PV#9999}" != "${PV}" ] ; then
SCM="git-r3"
fi
# @ECLASS-VARIABLE: PYTHON_COMPAT
# @DESCRIPTION:
# Tells the eclass the package has python code and forwards it to python-r1.eclass.
PYTHON_ECLASS=""
CATKIN_PYTHON_USEDEP=""
if [ -n "${PYTHON_COMPAT}" ] ; then
PYTHON_ECLASS="python-r1"
fi
# This should be temporary. ROS only really works with one global python
# version. The idea here is to have a ROS_COMPAT in the same vein as
# PYTHON_COMPAT where packages would define what distro they can work on, then
# we'd have ros_distro_gentoo_python_2_7 & co plus the OSRF ones (lunar, etc.).
# Note that this uncondtionally pulls python but in the ROS world there will
# most certainly be something pulling python anyway.
PYTHON_COMPAT=( python2_7 )
inherit ${SCM} ${PYTHON_ECLASS} cmake-utils flag-o-matic
inherit ${SCM} python-r1 cmake-utils flag-o-matic
CATKIN_DO_PYTHON_MULTIBUILD=""
if [ -n "${PYTHON_COMPAT}" ] ; then
CATKIN_PYTHON_USEDEP="[${PYTHON_USEDEP}]"
CATKIN_DO_PYTHON_MULTIBUILD="yes"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
fi
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
IUSE="test"
RDEPEND="
dev-util/catkin${CATKIN_PYTHON_USEDEP}
dev-python/empy${CATKIN_PYTHON_USEDEP}
RDEPEND="${PYTHON_DEPS}"
DEPEND="${RDEPEND}
dev-util/catkin[${PYTHON_USEDEP}]
dev-python/empy[${PYTHON_USEDEP}]
"
DEPEND="${RDEPEND}"
if [ -n "${CATKIN_DO_PYTHON_MULTIBUILD}" ] ; then
RDEPEND="${RDEPEND} ${PYTHON_DEPS}"
DEPEND="${DEPEND} ${PYTHON_DEPS}"
fi
# @ECLASS-VARIABLE: CATKIN_HAS_MESSAGES
# @DESCRIPTION:
@ -85,16 +74,16 @@ fi
if [ -n "${CATKIN_HAS_MESSAGES}" ] ; then
IUSE="${IUSE} +ros_messages_python +ros_messages_cxx ros_messages_eus ros_messages_lisp ros_messages_nodejs"
RDEPEND="${RDEPEND}
ros_messages_cxx? ( dev-ros/gencpp:=${CATKIN_PYTHON_USEDEP} )
ros_messages_eus? ( dev-ros/geneus:=${CATKIN_PYTHON_USEDEP} )
ros_messages_python? ( dev-ros/genpy:=${CATKIN_PYTHON_USEDEP} )
ros_messages_lisp? ( dev-ros/genlisp:=${CATKIN_PYTHON_USEDEP} )
ros_messages_nodejs? ( dev-ros/gennodejs:=${CATKIN_PYTHON_USEDEP} )
ros_messages_cxx? ( dev-ros/gencpp:= dev-ros/gencpp[${PYTHON_USEDEP}] )
ros_messages_eus? ( dev-ros/geneus:= dev-ros/geneus[${PYTHON_USEDEP}] )
ros_messages_python? ( dev-ros/genpy:= dev-ros/genpy[${PYTHON_USEDEP}] )
ros_messages_lisp? ( dev-ros/genlisp:= dev-ros/genlisp[${PYTHON_USEDEP}] )
ros_messages_nodejs? ( dev-ros/gennodejs:= dev-ros/gennodejs[${PYTHON_USEDEP}] )
dev-ros/message_runtime
"
DEPEND="${DEPEND} ${RDEPEND}
dev-ros/message_generation
dev-ros/genmsg${CATKIN_PYTHON_USEDEP}
dev-ros/genmsg[${PYTHON_USEDEP}]
"
if [ -n "${CATKIN_MESSAGES_TRANSITIVE_DEPS}" ] ; then
for i in ${CATKIN_MESSAGES_TRANSITIVE_DEPS} ; do
@ -147,7 +136,7 @@ HOMEPAGE="http://wiki.ros.org/${PN}"
# by installing a recursive CMakeLists.txt to handle bundles.
ros-catkin_src_prepare() {
# If no multibuild, just use cmake IN_SOURCE support
[ -n "${CATKIN_IN_SOURCE_BUILD}" ] && [ -z "${CATKIN_DO_PYTHON_MULTIBUILD}" ] && export CMAKE_IN_SOURCE_BUILD=yes
[ -n "${CATKIN_IN_SOURCE_BUILD}" ] && export CMAKE_IN_SOURCE_BUILD=yes
cmake-utils_src_prepare
@ -155,31 +144,20 @@ ros-catkin_src_prepare() {
catkin_init_workspace || die
fi
# If python multibuild, copy the sources
[ -n "${CATKIN_IN_SOURCE_BUILD}" ] && [ -n "${CATKIN_DO_PYTHON_MULTIBUILD}" ] && python_copy_sources
# Most packages require C++11 these days. Do it here, in src_prepare so that
# ebuilds can override it in src_configure.
append-cxxflags '-std=c++11'
}
# @FUNCTION: ros-catkin_src_configure_internal
# @FUNCTION: ros-catkin_python_setup
# @DESCRIPTION:
# Internal decoration of cmake-utils_src_configure to handle multiple python installs.
ros-catkin_src_configure_internal() {
if [ -n "${CATKIN_DO_PYTHON_MULTIBUILD}" ] ; then
local sitedir="$(python_get_sitedir)"
local mycmakeargs=(
"${mycmakeargs[@]}"
-DPYTHON_EXECUTABLE="${PYTHON}"
-DPYTHON_INSTALL_DIR="${sitedir#${EPREFIX}/usr/}"
)
python_export PYTHON_SCRIPTDIR
if [ -n "${CATKIN_IN_SOURCE_BUILD}" ] ; then
export CMAKE_USE_DIR="${BUILD_DIR}"
fi
fi
cmake-utils_src_configure "${@}"
# Sets up python environment for ROS packages.
ros-catkin_python_setup() {
# Todo: Need to match this with ros distro.
local pyimpl="${PYTHON_COMPAT[0]}"
python_export "${pyimpl}" EPYTHON PYTHON
python_wrapper_setup
python_export PYTHON_SCRIPTDIR
}
# @VARIABLE: mycatkincmakeargs
@ -192,6 +170,8 @@ ros-catkin_src_configure_internal() {
# @DESCRIPTION:
# Configures a catkin-based package.
ros-catkin_src_configure() {
ros-catkin_python_setup
export CATKIN_PREFIX_PATH="${EPREFIX}/usr"
export ROS_ROOT="${EPREFIX}/usr/share/ros"
if [ -n "${CATKIN_HAS_MESSAGES}" ] ; then
@ -203,38 +183,42 @@ ros-catkin_src_configure() {
use ros_messages_nodejs || ROS_LANG_DISABLE="${ROS_LANG_DISABLE}:gennodejs"
export ROS_LANG_DISABLE
fi
local mycmakeargs=(
"$(cmake-utils_use test CATKIN_ENABLE_TESTING)"
"-DCATKIN_BUILD_BINARY_PACKAGE=ON"
"-DCATKIN_PREFIX_PATH=${SYSROOT:-${EROOT}}/usr"
"${mycatkincmakeargs[@]}"
)
if [ -n "${CATKIN_DO_PYTHON_MULTIBUILD}" ] ; then
python_foreach_impl ros-catkin_src_configure_internal "${@}"
else
ros-catkin_src_configure_internal "${@}"
local sitedir="$(python_get_sitedir)"
mycmakeargs+=(
-DPYTHON_EXECUTABLE="${PYTHON}"
-DPYTHON_INSTALL_DIR="${sitedir#${EPREFIX}/usr/}"
)
if [ -n "${CATKIN_IN_SOURCE_BUILD}" ] ; then
export CMAKE_USE_DIR="${BUILD_DIR}"
fi
cmake-utils_src_configure "${@}"
}
# @FUNCTION: ros-catkin_src_compile
# @DESCRIPTION:
# Builds a catkin-based package.
ros-catkin_src_compile() {
if [ -n "${CATKIN_DO_PYTHON_MULTIBUILD}" ] ; then
if [ -n "${CATKIN_IN_SOURCE_BUILD}" ] ; then
export CMAKE_USE_DIR="${BUILD_DIR}"
fi
python_foreach_impl cmake-utils_src_compile "${@}"
else
cmake-utils_src_compile "${@}"
fi
ros-catkin_python_setup
cmake-utils_src_compile "${@}"
}
# @FUNCTION: ros-catkin_src_test_internal
# @FUNCTION: ros-catkin_src_test
# @DESCRIPTION:
# Decorator around cmake-utils_src_test to ensure tests are built before running them.
ros-catkin_src_test_internal() {
# Run the tests of a catkin-based package.
ros-catkin_src_test() {
cd "${BUILD_DIR}" || die
ros-catkin_python_setup
# Regenerate env for tests, PYTHONPATH is not set properly otherwise...
if [ -f catkin_generated/generate_cached_setup.py ] ; then
einfo "Regenerating setup_cached.sh for tests"
@ -248,25 +232,16 @@ ros-catkin_src_test_internal() {
cmake-utils_src_test "${@}"
}
# @FUNCTION: ros-catkin_src_test
# @FUNCTION: ros-catkin_src_install
# @DESCRIPTION:
# Run the tests of a catkin-based package.
ros-catkin_src_test() {
if [ -n "${CATKIN_DO_PYTHON_MULTIBUILD}" ] ; then
python_foreach_impl ros-catkin_src_test_internal "${@}"
else
ros-catkin_src_test_internal "${@}"
fi
}
# Installs a catkin-based package.
ros-catkin_src_install() {
ros-catkin_python_setup
# @FUNCTION: ros-catkin_src_install_with_python
# @DESCRIPTION:
# Decorator around cmake-utils_src_install to ensure python scripts are properly handled w.r.t. python-exec2.
ros-catkin_src_install_with_python() {
python_export PYTHON_SCRIPTDIR
if [ -n "${CATKIN_IN_SOURCE_BUILD}" ] ; then
export CMAKE_USE_DIR="${BUILD_DIR}"
fi
cmake-utils_src_install "${@}"
if [ ! -f "${T}/.catkin_python_symlinks_generated" -a -d "${D}/${PYTHON_SCRIPTDIR}" ]; then
dodir /usr/bin
@ -277,15 +252,4 @@ ros-catkin_src_install_with_python() {
fi
}
# @FUNCTION: ros-catkin_src_install
# @DESCRIPTION:
# Installs a catkin-based package.
ros-catkin_src_install() {
if [ -n "${CATKIN_DO_PYTHON_MULTIBUILD}" ] ; then
python_foreach_impl ros-catkin_src_install_with_python "${@}"
else
cmake-utils_src_install "${@}"
fi
}
EXPORT_FUNCTIONS src_prepare src_configure src_compile src_test src_install

View File

@ -336,7 +336,7 @@ ruby_fakegem_binwrapper() {
# calling the script by default (see for instance the
# JRuby-specific commands).
local rubycmd=
for implementation in ${USE_RUBY}; do
for implementation in $(_ruby_get_all_impls); do
# ignore non-enabled implementations
use ruby_targets_${implementation} || continue
if [ -z $rubycmd ]; then
@ -505,7 +505,7 @@ all_fakegem_install() {
[[ -d ${dir} ]] || continue
pushd ${dir} &>/dev/null || die
dohtml -r * || die "failed to install documentation"
dodoc -r * || die "failed to install documentation"
popd &>/dev/null || die
done
fi

View File

@ -14,13 +14,10 @@
# and their incorporation into the Gentoo Linux system.
#
# Currently available targets are:
# * ruby19 - Ruby (MRI) 1.9.x
# * ruby20 - Ruby (MRI) 2.0.x
# * ruby21 - Ruby (MRI) 2.1.x
# * ruby22 - Ruby (MRI) 2.2.x
# * ruby23 - Ruby (MRI) 2.3.x
# * ruby24 - Ruby (MRI) 2.4.x
# * jruby - JRuby
# * rbx - Rubinius
#
# This eclass does not define the implementation of the configure,
@ -109,6 +106,24 @@ ruby_implementation_depend() {
_ruby_implementation_depend $1
}
# @FUNCTION: _ruby_get_all_impls
# @INTERNAL
# @RETURN: list of valid values in USE_RUBY
# Return a list of valid implementations in USE_RUBY, skipping the old
# implementations that are no longer supported.
_ruby_get_all_impls() {
local i
for i in ${USE_RUBY}; do
case ${i} in
# removed implementations
ruby19|ruby20|jruby)
;;
*)
echo ${i};;
esac
done
}
# @FUNCTION: ruby_samelib
# @RETURN: use flag string with current ruby implementations
# @DESCRIPTION:
@ -118,7 +133,7 @@ ruby_implementation_depend() {
# more complex dependencies.
ruby_samelib() {
local res=
for _ruby_implementation in $USE_RUBY; do
for _ruby_implementation in $(_ruby_get_all_impls); do
has -${_ruby_implementation} $@ || \
res="${res}ruby_targets_${_ruby_implementation}?,"
done
@ -159,7 +174,7 @@ ruby_implementation_command() {
_ruby_atoms_samelib() {
local atoms=$(_ruby_atoms_samelib_generic "$*")
for _ruby_implementation in $USE_RUBY; do
for _ruby_implementation in $(_ruby_get_all_impls); do
echo "${atoms//RUBYTARGET/ruby_targets_${_ruby_implementation}}"
done
}
@ -243,7 +258,7 @@ ruby_add_bdepend() {
# Gets an array of ruby use targets enabled by the user
ruby_get_use_implementations() {
local i implementation
for implementation in ${USE_RUBY}; do
for implementation in $(_ruby_get_all_impls); do
use ruby_targets_${implementation} && i+=" ${implementation}"
done
echo $i
@ -254,7 +269,7 @@ ruby_get_use_implementations() {
# Gets an array of ruby use targets that the ebuild sets
ruby_get_use_targets() {
local t implementation
for implementation in ${USE_RUBY}; do
for implementation in $(_ruby_get_all_impls); do
t+=" ruby_targets_${implementation}"
done
echo $t
@ -278,7 +293,7 @@ ruby_get_use_targets() {
# RDEPEND="${DEPEND}"
ruby_implementations_depend() {
local depend
for _ruby_implementation in ${USE_RUBY}; do
for _ruby_implementation in $(_ruby_get_all_impls); do
depend="${depend}${depend+ }ruby_targets_${_ruby_implementation}? ( $(ruby_implementation_depend $_ruby_implementation) )"
done
echo "${depend}"
@ -358,7 +373,7 @@ _ruby_invoke_environment() {
_ruby_each_implementation() {
local invoked=no
for _ruby_implementation in ${USE_RUBY}; do
for _ruby_implementation in $(_ruby_get_all_impls); do
# only proceed if it's requested
use ruby_targets_${_ruby_implementation} || continue
@ -374,7 +389,7 @@ _ruby_each_implementation() {
if [[ ${invoked} == "no" ]]; then
eerror "You need to select at least one compatible Ruby installation target via RUBY_TARGETS in make.conf."
eerror "Compatible targets for this package are: ${USE_RUBY}"
eerror "Compatible targets for this package are: $(_ruby_get_all_impls)"
eerror
eerror "See https://www.gentoo.org/proj/en/prog_lang/ruby/index.xml#doc_chap3 for more information."
eerror

View File

@ -27,10 +27,10 @@ if [[ ! ${_RUBY_UTILS} ]]; then
# provide for a better first installation experience.
# All RUBY_TARGETS
RUBY_TARGETS_PREFERENCE="ruby21 "
RUBY_TARGETS_PREFERENCE="ruby22 ruby21 "
# All other active ruby targets
RUBY_TARGETS_PREFERENCE+="ruby22 ruby23 ruby24"
RUBY_TARGETS_PREFERENCE+="ruby23 ruby24"
_ruby_implementation_depend() {

View File

@ -1,4 +1,4 @@
# Copyright 1999-2014 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: ssl-cert.eclass
@ -66,7 +66,8 @@ gen_cnf() {
# These can be overridden in the ebuild
SSL_DAYS="${SSL_DAYS:-730}"
SSL_BITS="${SSL_BITS:-1024}"
SSL_BITS="${SSL_BITS:-4096}"
SSL_MD="${SSL_MD:-sha256}"
SSL_COUNTRY="${SSL_COUNTRY:-US}"
SSL_STATE="${SSL_STATE:-California}"
SSL_LOCALITY="${SSL_LOCALITY:-Santa Barbara}"
@ -166,6 +167,7 @@ gen_crt() {
if [ "${1}" ] ; then
ebegin "Generating self-signed X.509 Certificate for CA"
openssl x509 -extfile "${SSL_CONF}" \
-${SSL_MD} \
-days ${SSL_DAYS} -req -signkey "${base}.key" \
-in "${base}.csr" -out "${base}.crt" &>/dev/null
else
@ -173,7 +175,7 @@ gen_crt() {
ebegin "Generating authority-signed X.509 Certificate"
openssl x509 -extfile "${SSL_CONF}" \
-days ${SSL_DAYS} -req -CAserial "${SSL_SERIAL}" \
-CAkey "${ca}.key" -CA "${ca}.crt" \
-CAkey "${ca}.key" -CA "${ca}.crt" -${SSL_MD} \
-in "${base}.csr" -out "${base}.crt" &>/dev/null
fi
eend $?

View File

@ -178,12 +178,12 @@ systemd_newuserunit() {
}
# @FUNCTION: systemd_install_serviced
# @USAGE: <conf-file> [<service.d>]
# @USAGE: <conf-file> [<service>]
# @DESCRIPTION:
# Install the file <conf-file> as service.d/00gentoo.conf template.
# The <service.d> argument specifies the configured service name.
# If not specified, the configuration file name will be used with .conf
# suffix stripped (e.g. foo.service.conf -> foo.service).
# Install <conf-file> as the template <service>.d/00gentoo.conf.
# If <service> is not specified
# <conf-file> with the .conf suffix stripped is used
# (e.g. foo.service.conf -> foo.service.d/00gentoo.conf).
systemd_install_serviced() {
debug-print-function ${FUNCNAME} "${@}"

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