From 441d1370330332b7d78f238d2f5e13f7aed5e4e0 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Fri, 25 Dec 2020 23:06:25 +0000 Subject: gentoo christmass resync : 25.12.2020 --- dev-lang/Manifest.gz | Bin 17007 -> 17003 bytes dev-lang/ghc/Manifest | 8 +- dev-lang/ghc/ghc-8.10.2.ebuild | 4 +- dev-lang/ghc/ghc-8.10.3.ebuild | 797 +++++++++++++++++++++ dev-lang/julia-bin/Manifest | 23 +- dev-lang/julia-bin/julia-bin-1.2.0.ebuild | 44 -- dev-lang/julia-bin/julia-bin-1.3.0.ebuild | 47 -- dev-lang/julia-bin/julia-bin-1.4.0.ebuild | 46 -- dev-lang/julia-bin/julia-bin-1.5.2.ebuild | 1 + dev-lang/julia-bin/julia-bin-1.5.3.ebuild | 51 ++ dev-lang/julia/Manifest | 19 +- dev-lang/julia/julia-1.2.0.ebuild | 200 ------ dev-lang/julia/julia-1.3.0.ebuild | 201 ------ dev-lang/julia/julia-1.4.0-r1.ebuild | 192 ----- dev-lang/julia/julia-1.4.0-r2.ebuild | 208 ------ dev-lang/julia/julia-1.5.2-r1.ebuild | 208 ++++++ dev-lang/julia/julia-1.5.2.ebuild | 205 ------ dev-lang/julia/julia-1.5.3.ebuild | 212 ++++++ dev-lang/lua/Manifest | 8 +- dev-lang/lua/lua-5.1.5-r105.ebuild | 4 +- dev-lang/lua/lua-5.2.4-r2.ebuild | 4 +- dev-lang/lua/lua-5.3.6-r1.ebuild | 4 +- dev-lang/lua/lua-5.4.1-r1.ebuild | 4 +- dev-lang/mujs/Manifest | 6 +- dev-lang/mujs/metadata.xml | 1 - dev-lang/mujs/mujs-1.0.6.ebuild | 58 -- dev-lang/mujs/mujs-1.0.7.ebuild | 58 -- dev-lang/php/Manifest | 3 +- .../files/php-7.2.34-use-after-free-bug76047.patch | 174 +++++ dev-lang/php/php-7.2.34-r1.ebuild | 764 ++++++++++++++++++++ dev-lang/php/php-7.2.34.ebuild | 759 -------------------- dev-lang/python/Manifest | 4 +- dev-lang/python/python-2.7.18-r5.ebuild | 2 +- dev-lang/python/python-3.8.7.ebuild | 355 +++++++++ dev-lang/ruby/Manifest | 6 - dev-lang/ruby/ruby-2.6.6-r1.ebuild | 232 ------ dev-lang/ruby/ruby-2.6.6.ebuild | 232 ------ dev-lang/ruby/ruby-2.7.1-r1.ebuild | 235 ------ dev-lang/ruby/ruby-2.7.1-r2.ebuild | 237 ------ dev-lang/ruby/ruby-2.7.1.ebuild | 235 ------ dev-lang/rust/Manifest | 2 +- dev-lang/rust/rust-1.48.0.ebuild | 4 +- dev-lang/spidermonkey/Manifest | 8 +- dev-lang/spidermonkey/spidermonkey-78.4.1.ebuild | 303 -------- dev-lang/spidermonkey/spidermonkey-78.5.0.ebuild | 303 -------- dev-lang/spidermonkey/spidermonkey-78.6.0.ebuild | 20 +- dev-lang/vala/Manifest | 6 +- dev-lang/vala/vala-0.48.12.ebuild | 49 ++ dev-lang/vala/vala-0.50.1.ebuild | 49 -- dev-lang/vala/vala-0.50.2.ebuild | 49 ++ 50 files changed, 2729 insertions(+), 3915 deletions(-) create mode 100644 dev-lang/ghc/ghc-8.10.3.ebuild delete mode 100644 dev-lang/julia-bin/julia-bin-1.2.0.ebuild delete mode 100644 dev-lang/julia-bin/julia-bin-1.3.0.ebuild delete mode 100644 dev-lang/julia-bin/julia-bin-1.4.0.ebuild create mode 100644 dev-lang/julia-bin/julia-bin-1.5.3.ebuild delete mode 100644 dev-lang/julia/julia-1.2.0.ebuild delete mode 100644 dev-lang/julia/julia-1.3.0.ebuild delete mode 100644 dev-lang/julia/julia-1.4.0-r1.ebuild delete mode 100644 dev-lang/julia/julia-1.4.0-r2.ebuild create mode 100644 dev-lang/julia/julia-1.5.2-r1.ebuild delete mode 100644 dev-lang/julia/julia-1.5.2.ebuild create mode 100644 dev-lang/julia/julia-1.5.3.ebuild delete mode 100644 dev-lang/mujs/mujs-1.0.6.ebuild delete mode 100644 dev-lang/mujs/mujs-1.0.7.ebuild create mode 100644 dev-lang/php/files/php-7.2.34-use-after-free-bug76047.patch create mode 100644 dev-lang/php/php-7.2.34-r1.ebuild delete mode 100644 dev-lang/php/php-7.2.34.ebuild create mode 100644 dev-lang/python/python-3.8.7.ebuild delete mode 100644 dev-lang/ruby/ruby-2.6.6-r1.ebuild delete mode 100644 dev-lang/ruby/ruby-2.6.6.ebuild delete mode 100644 dev-lang/ruby/ruby-2.7.1-r1.ebuild delete mode 100644 dev-lang/ruby/ruby-2.7.1-r2.ebuild delete mode 100644 dev-lang/ruby/ruby-2.7.1.ebuild delete mode 100644 dev-lang/spidermonkey/spidermonkey-78.4.1.ebuild delete mode 100644 dev-lang/spidermonkey/spidermonkey-78.5.0.ebuild create mode 100644 dev-lang/vala/vala-0.48.12.ebuild delete mode 100644 dev-lang/vala/vala-0.50.1.ebuild create mode 100644 dev-lang/vala/vala-0.50.2.ebuild (limited to 'dev-lang') diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz index 1ad1d606c7bf..d28e39ce5028 100644 Binary files a/dev-lang/Manifest.gz and b/dev-lang/Manifest.gz differ diff --git a/dev-lang/ghc/Manifest b/dev-lang/ghc/Manifest index 8ff2cfe6f8eb..34aae95b2afb 100644 --- a/dev-lang/ghc/Manifest +++ b/dev-lang/ghc/Manifest @@ -49,6 +49,8 @@ DIST ghc-8.10.1-src.tar.xz 19781652 BLAKE2B 61ff73d3a895cfa0c836e25a684d7a31cf09 DIST ghc-8.10.1-testsuite.tar.xz 2091988 BLAKE2B 88796f0fb6ea2bdd749161c84ec88768f3bf87063d2224a083db24f69282e615227626fe3c7b41d4abec10883e22042abed6a231582bab4ea530feffd683ed0b SHA512 35147f98301c5bfb6c939e108de48b2a1133adc1028aaa720ce49d60faa06a4b486a9eded658295e3f203731b4dd53475b57e8213491c45b05959430030be269 DIST ghc-8.10.2-src.tar.xz 21880680 BLAKE2B 0c1b67c1576cfd1067d11838301f96041cabf66b94cfd546cfe6bef57babe940fc3814918ff9327e59fe73a8e230fa1d62d7816d7c6cae274dd8c53de6e81736 SHA512 6c3f1311feab3665419a301b17fcb09d303ec822f8eb8c4021edfacff00d9b52e71895bed0e58f11d8f7970415bd8c6f95ffde1294afe795e15607199b20cefc DIST ghc-8.10.2-testsuite.tar.xz 2101788 BLAKE2B 0d4528223471dfd68cadcda47931d53508c9eafa415716ca5990ea519eb89bfa2bdd444280057be33467382dd3d178887262d54ef633aa8ce88ea91eb9d58ece SHA512 043faaf2f0dc34a868c481b284b94afd78aa1ec1a4056d1f3c97ca3f7dadb3e9cff0517a4cfb378fe5187389db7c9027763bf066328e7dcfd264b737f6d09e41 +DIST ghc-8.10.3-src.tar.xz 19872356 BLAKE2B 043f41a21becc826b3cd13ee81b138cf2edfa18484f98361dc85b12f784df85571522347d5fafe40a19ea8ddf12390cd766db8fc21cf4971e797bc61404304cc SHA512 6f3248e728d3677dfddf2f02609167c67a194750418f2a5e34ed68f1135960761c5a5768255bfc8b2ef5640395609424878375184d2dde8e2d69021a3baf9ec8 +DIST ghc-8.10.3-testsuite.tar.xz 2261376 BLAKE2B cd03d569c30637d531d9a13fa926a28f854a37d48ef0d4e2fde684664ae000f3c941b5113ccafd42fec019428bafb5344b1ddf8f84a71b21bca8831ed4784907 SHA512 4c9d20a27ed71eb7c73bd86c1049ea5adcc8a0b12040386b7d0dddb46b3cf704c52a3392e19ae4ff1c76b8868665c599391d47e47dba516fcadf8abbc30e28df DIST ghc-8.2.1-src.tar.xz 10736016 BLAKE2B 60993cfc9569e83b0c383591ef30a7280e0138fbb7bd696ad62d87e68dcbccf31c0b8ba211b6647922b8595c7aec2c783648f12c67da53e0766b71c7d7c923fc SHA512 d9aa2aa7f9414db8f4e51d6c275694b46df515e68331a1a2b6018256333a2c63ebd877b75ee90407ecce5be672ec9afc6bebd62aadbf8ae06b94f1760d1736be DIST ghc-8.2.2-src.tar.xz 10753272 BLAKE2B 6fd792390d3df20f84836466705c3f3c931ba2d594dcbe2b808ea0ae284460000b443df8aae74903eabf05ff9064d68a303086cf888ea68222eb1c60959c8f21 SHA512 6549416f470b599973d409fa45f59c25b07e6a94798cef1a19ad432547dc225338cf4dbc4a4793114b4a417798a3b59b122b92b020251074405c5302b7ffe799 DIST ghc-8.4.1-src.tar.xz 11301528 BLAKE2B 6dcf467d04cace856b68315c85b80f19b517dcbc8ae6e2a08c60afa141c9e0261e012738452c9ca208f9fc40c48bd1a0817e5e0fe9f4737383cd7b44ca65c8d9 SHA512 f8ae11f498bf2911fb92635534c6906c96f1fbe5072c7b7447bd3f69e408026b674564515af02a8aaddc57ee6905ce78d10005b12478a39c220580aaec13a9f7 @@ -89,7 +91,10 @@ DIST ghc-bin-8.0.2-ppc64.tbz2 117432068 BLAKE2B cae202f0d6e825127d543996b2fe7ae0 DIST ghc-bin-8.0.2-x86_64-pc-linux-gnu.tbz2 130852973 BLAKE2B 24d2032bbfc664d924800c1a317334e2342c8ec1e529178f9d1bb99bb4772a9cc100603bf70111b8cfafa715c1cccc643f115c77cf6adcdfb17d1f1735ee6682 SHA512 c36e0e2600fc7c284562a323d396a03062cb6e8fa63c353e672be61e76d2ec5c7698485e3a370a57cf512db9e5ba6a68338fff2ab404d9fe67b1a468ed72638f DIST ghc-bin-8.10.1-i686-pc-linux-gnu.tbz2 123398571 BLAKE2B 3650f9dbaaa5af684abad589953bcef5b1684a91a4cc2695d0ef735536057bb031231fe3d73dd74bc38a199f0890ef91764b551e5e158c120affc0d7bc3175b7 SHA512 52cc172de08ef30d6e89384e86eda1b8bbdef2bbff526041eb47d85d77b70ab49314ac7f33f18b40864c16fa546256f1b4c7964e65aa5d3cfbb7f9cbec505dc9 DIST ghc-bin-8.10.1-x86_64-pc-linux-gnu.tbz2 122227601 BLAKE2B 84340866c70044eb1444a70b0cbed6814808037b697db28f567d2b14bb791cbe7d9bf2a327cc47ae85ce3c4970ba039854b4a6df44eb85cdc18040c5a4d15f4f SHA512 81df9de95aec47d60ad8d699756ad323eb525c3a16536fac8c6717e1754272061bd8d7d70cd38f5c509a2fc323305333e4f898c9b6dc27645521bb29ee218bdb +DIST ghc-bin-8.10.2-i686-pc-linux-gnu.tbz2 123683156 BLAKE2B a486076ea6e67f124c850e037be0e63a873181c3fd746f437861f7367a968e0df6723afc934c966432274a55936c0fe48a9a43a48199840b37636843da4caccc SHA512 29cc1703bbdbfcbef8aa2a5a563b83b0663970f5902a1fc70230515a128ef47e27a3a6df2b47a01009c3976b4936cf8e64e5da4dfdda0c1bcf73ab7ea5ac0b6d DIST ghc-bin-8.10.2-x86_64-pc-linux-gnu.tbz2 122818630 BLAKE2B 030a68e2aca0eb0a273e0d48a3e180d92b219b2d1826d1d58fa133d0a6cae1316b3ccceadb55a4fa5870f87c3df85df2998e7611b93dbc1fea592437748b2daf SHA512 23bf47ee45fae54a843de9e6991b67fccb79c14ad8d08eff9f38a68a3530496c8ce4bc8cae8a731bb690ddd6cd0bf36d6d5bf37eb68ddae8ce646a0bf3916d8f +DIST ghc-bin-8.10.3-i686-pc-linux-gnu.tbz2 123802832 BLAKE2B a770dd43bee7a1d60fec2eb9aaa7de715eed01c19d9514e04678801827879977a5c91f5e191d026ca83aa5e5fc5f518593053b2e78b27b08df64b39058dbaec3 SHA512 f810432a56ddcd773e6118f038cdacd2f5e3a508d87bfa468ee861aef0cfc434ec5766a8a74360d8cec6cb9c664928290901c025496100e7c8465408635227f5 +DIST ghc-bin-8.10.3-x86_64-pc-linux-gnu.tbz2 122993247 BLAKE2B e3395ebc7e87b4ae8f66dbbd9441c214c4d9535e55bfb14f78ebb92d30b1e100efc4893b3cdc65564d47bd53a21cb30106572b3fce13be022946171112c3218e SHA512 2ea4295bcaf6e3fd0db54ba67465e979cd85d3370c6c49f2381478ae9824ad89df53d7d93ccf06bdff5f4849f14306c9f50c13e6f6ba45f79e5b8c13ad63ae4f DIST ghc-bin-8.2.1-i686-pc-linux-gnu.tbz2 96157437 BLAKE2B 2b9608845db8cea78db07209fa054b3b05085d5c3ac07cbe3de02a93c87fb0cff12b1820f08757221c59c8a0a9e7a5563c44266b181525d916825e5cf5bac34c SHA512 e891e76557fa61853e28829b8bedc4a6abb92954f90cc1ebcf22a13cc137556bbe9262e7398b7e1aedbabeb997916b008bf1561a52f16a569f3d58ea9404f41e DIST ghc-bin-8.2.1-x86_64-pc-linux-gnu.tbz2 97490496 BLAKE2B 3666ea70cb8b3645db071040d2069fe244042c11954b34e5d92aaa90132d2316c0ee8c176cd4e674772bea3b99df150404f62bd8745c046cdaf102ecf0a0fa54 SHA512 52630a185d0eab56bce0469a612a54109895bfee041ec362ced59a9b35ba3b9c185e86bc7dbf0a5939081d3626baa19fbb3306e36d1857530248a7b9bfc100bb DIST ghc-bin-8.2.2-i686-pc-linux-gnu.tbz2 96638908 BLAKE2B b470f838e77330969f162196b0f1035fa764f5d123687fbf67c14323280bfe55216af0e16f8b79c62f290905d96abc8bfafee650f8d27c81608853e78329b2c9 SHA512 15b1525890477539878385efc15ce5f1cf2f126cc785c42923be958cabe3298cebe73526a2370cf4c630124160a7ca0f0f9062aebbf035dce807a0374eaddd14 @@ -120,7 +125,8 @@ EBUILD ghc-7.10.3.ebuild 21673 BLAKE2B 9bddf804dbe6e8ee1ab8a21e8d31c50ed40c4b264 EBUILD ghc-7.8.4.ebuild 19808 BLAKE2B ce921fa76b8f089e80a2766c46939e0b11bf1ba992aa23bb91cf1ad03adb7cae222c2690c4273dd4f9b47912d678bdd6484df2c1f26643b0221a0b70792c6de6 SHA512 ddb849f7682d5e9a98745227c99bfcd54555b0740802641ec444e3933f8ecb9a2f26e0a4c41d532eb7a6643d42d932028120424efcfac771ddf17bb7230e6294 EBUILD ghc-8.0.2.ebuild 21608 BLAKE2B 7cfbdaf9fa3f2fc2771e48a32d235c50aad5f7db427df443d141c5b32cee52c80a216a0e856eae57bdbf1d115bd1e15056516412172b95757f7f904c15d2a26e SHA512 aa48e12a06818945fed9f4b13a25bd287d988b7fb8aedde7cb32ec35ffbf2f9780c4ea9285fe9b0ff71486467c4fcaf7f97f2455955d8373e7393902a85bf869 EBUILD ghc-8.10.1.ebuild 25824 BLAKE2B 9c925cb8412805abe8c90c09dfabb50239bf48e76d5a10434f8dc076229230a08a46be0d093f809426997baa20adc96816558d32d120f61538060a34c3c5c8bb SHA512 78f98718c8a2de96932012be35b8bbb14e0eb64b2b76539d6e88978620d1812ae186f391b248e5493ffcaddc4f78f8c9445f890c29cec0bcf0d2cbf07c1a2c7d -EBUILD ghc-8.10.2.ebuild 25851 BLAKE2B 6c598decf2e2e737cb2683189f867d6925bc33d3cd98bf410e85dea46010acf68dd17ede42af0687c7239b88d66ec4bc5ae89d15b8b862f21aae48e7d3b686eb SHA512 f2e2a9d90944ccf524e74be6f8a8120c75d37cdf805fde51359c693eb799d8d63301accffdf7cf27538535ff0b508f73a92bcbc9288421050ebcda7816297232 +EBUILD ghc-8.10.2.ebuild 25849 BLAKE2B 3711a29cbcdc6a88f0c8c28e17da3c1245ae7008c64ded69489fd43e85a5cef86e789874f3a63ba6760c4c64459954318fc97084da9856587a05a093fcc1971a SHA512 4de790bfcd4ac0757235ee481498c921e2d8c6c6768fe5f71b63447561524bd1f78c7d00e7d2a9a95a7a6d25046486398554b7336134b4e287ee25e3e2e72cd0 +EBUILD ghc-8.10.3.ebuild 25774 BLAKE2B 525fb5b481ce0cdabc9194fd967871a5aa9293975f8d409e5143a4393f9148cb32ef808a00fc0eaa9e646958a1468b25985aeb627ce65f2487ce8f75b50317d4 SHA512 e3c9b73a4b9474a8f218d8e8345446add117277a7aad96a4f07c4535d8f032555e2b1180ab254cd227c5697db3e2c73b201ce96b929ef177ea39faec455ff81b EBUILD ghc-8.2.1.ebuild 24841 BLAKE2B cefde1d2763d9e33b151a3a8ef1f9f5e8cdd308314301bd4ca5420a71c4237f9f8291ed37db88eae9d7d0606277fd3f4e45a15c31e17062e5acca3b989cd5331 SHA512 205a0ec31af711eb874fb2f356d2d3a64e0b5d8b8135ccc96eb9601e61765bf6ff4a4ceac027fef63994a8d17e76957c1ba498e5db9a1ba46ace819f82ec9d4b EBUILD ghc-8.2.2.ebuild 24810 BLAKE2B 57e39bfa9674dc7fd83fcb3cc80067c29a16f700bfde7027397fdd211679424aca00fd40f41df539f0c998b79b6a536f8d72320c58b134a5fcd55397347b0437 SHA512 fb4fcf882896d527db7ca442fad5f06b2e335a9b33a393d52d9b6cef7d5b186c7918ef2787b2489a8a649b8d65142a35ca93068cf48e89b12cea47ab2b4853f5 EBUILD ghc-8.4.1.ebuild 24628 BLAKE2B a10b6221aea42908be8f79b8c932a7d1dfa756bffd2174d232b6c6a7e27f0e13e477ce262349b79c1042bd279e2e8db8b4a1700f8020543fca6dafa03fbb4472 SHA512 bc4a20691ff721281964b26d8bab83da9de663cd793f6457ed8ffe00a80aa34a65fa2caa133b198874a85b85ed6cb456d5a13c73233e014d1124202f4107afc9 diff --git a/dev-lang/ghc/ghc-8.10.2.ebuild b/dev-lang/ghc/ghc-8.10.2.ebuild index 567a3225311e..8f5cdd922f31 100644 --- a/dev-lang/ghc/ghc-8.10.2.ebuild +++ b/dev-lang/ghc/ghc-8.10.2.ebuild @@ -33,7 +33,7 @@ arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/g #arch_binaries="$arch_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )" #arch_binaries="$arch_binaries ppc64? ( !big-endian? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-powerpc64le-unknown-linux-gnu.tbz2 ) )" #arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )" -#arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )" +arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )" # various ports: #arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )" @@ -52,7 +52,7 @@ yet_binary() { # return 0 # ;; #sparc) return 0 ;; - #x86) return 0 ;; + x86) return 0 ;; *) return 1 ;; esac } diff --git a/dev-lang/ghc/ghc-8.10.3.ebuild b/dev-lang/ghc/ghc-8.10.3.ebuild new file mode 100644 index 000000000000..1f1c51fca854 --- /dev/null +++ b/dev-lang/ghc/ghc-8.10.3.ebuild @@ -0,0 +1,797 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +# to make make a crosscompiler use crossdev and symlink ghc tree into +# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc' +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} = ${CHOST} ]] ; then + if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then + export CTARGET=${CATEGORY/cross-} + fi +fi + +inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package +inherit multilib multiprocessing pax-utils toolchain-funcs prefix +inherit check-reqs +DESCRIPTION="The Glasgow Haskell Compiler" +HOMEPAGE="https://www.haskell.org/ghc/" + +# we don't have any binaries yet +arch_binaries="" + +BIN_PV=${PV} +# sorted! +#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )" +#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )" +#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )" +arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )" +#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )" +#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )" +#arch_binaries="$arch_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )" +#arch_binaries="$arch_binaries ppc64? ( !big-endian? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-powerpc64le-unknown-linux-gnu.tbz2 ) )" +#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )" +arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )" + +# various ports: +#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )" + +# 0 - yet +yet_binary() { + case "${ARCH}" in + #alpha) return 0 ;; + #arm64) return 0 ;; + #arm) return 0 ;; + amd64) return 0 ;; + #ia64) return 0 ;; + #ppc) return 0 ;; + #ppc64) + # use big-endian && return 0 + # return 0 + # ;; + #sparc) return 0 ;; + x86) return 0 ;; + *) return 1 ;; + esac +} + +GHC_PV=${PV} +#GHC_PV=8.10.0.20200123 # uncomment only for -alpha, -beta, -rc ebuilds +GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct + +SRC_URI="!binary? ( + https://downloads.haskell.org/ghc/${PV/_/-}/${GHC_P}-src.tar.xz + test? ( https://downloads.haskell.org/ghc/${PV/_/-}/${GHC_P}-testsuite.tar.xz ) +)" +S="${WORKDIR}"/${GHC_P} + +[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )" + +BUMP_LIBRARIES=( + # "hackage-name hackage-version" +) + +LICENSE="BSD" +SLOT="0/${PV}" +#KEYWORDS="~amd64 ~x86" +IUSE="big-endian doc elfutils ghcbootstrap ghcmakebinary +gmp numa profile test" +IUSE+=" binary" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-lang/perl-5.6.1 + dev-libs/gmp:0= + sys-libs/ncurses:0=[unicode] + elfutils? ( dev-libs/elfutils ) + !ghcmakebinary? ( dev-libs/libffi:= ) + numa? ( sys-process/numactl ) +" + +# This set of dependencies is needed to run +# prebuilt ghc. We specifically avoid ncurses +# dependency with: +# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING +PREBUILT_BINARY_DEPENDS=" + !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) ) +" +# This set of dependencies is needed to install +# ghc[binary] in system. terminfo package is linked +# against ncurses. +PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS} + sys-libs/ncurses:0/6 +" + +RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )" + +DEPEND="${RDEPEND} + doc? ( app-text/docbook-xml-dtd:4.2 + app-text/docbook-xml-dtd:4.5 + app-text/docbook-xsl-stylesheets + dev-python/sphinx + >=dev-libs/libxslt-1.1.2 ) + !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )" + +# we build binaries without profiling support +REQUIRED_USE=" + ?? ( ghcbootstrap binary ) + ?? ( profile binary ) +" + +# haskell libraries built with cabal in configure mode, #515354 +QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc" + +is_crosscompile() { + [[ ${CHOST} != ${CTARGET} ]] +} + +is_native() { + [[ ${CHOST} == ${CBUILD} ]] && [[ ${CHOST} == ${CTARGET} ]] +} + +if ! is_crosscompile; then + PDEPEND="!ghcbootstrap? ( >=app-admin/haskell-updater-1.2 )" +fi + +# returns tool prefix for crosscompiler. +# Example: +# CTARGET=armv7a-unknown-linux-gnueabi +# CHOST=x86_64-pc-linux-gnu +# "armv7a-unknown-linux-gnueabi-" +# CTARGET=${CHOST} +# "" +# Used in tools and library prefix: +# "${ED}"/usr/bin/$(cross)haddock +# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d" + +cross() { + if is_crosscompile; then + echo "${CTARGET}-" + else + echo "" + fi +} + +append-ghc-cflags() { + local persistent compile assemble link + local flag ghcflag + + for flag in $*; do + case ${flag} in + persistent) persistent="yes";; + compile) compile="yes";; + assemble) assemble="yes";; + link) link="yes";; + *) + [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" && + [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}" + [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" && + [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}" + [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" && + [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}" + ;; + esac + done +} + +# $1 - lib name (under libraries/) +# $2 - lib version +# example: bump_lib "transformers" "0.4.2.0" +bump_lib() { + local pn=$1 pv=$2 + local p=${pn}-${pv} + local f + + einfo "Bumping ${pn} up to ${pv}" + + for f in ghc.mk GNUmakefile; do + mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die + done + mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die + mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die +} + +update_SRC_URI() { + local p pn pv + for p in "${BUMP_LIBRARIES[@]}"; do + set -- $p + pn=$1 pv=$2 + + SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz" + done +} + +update_SRC_URI + +bump_libs() { + local p pn pv + for p in "${BUMP_LIBRARIES[@]}"; do + set -- $p + pn=$1 pv=$2 + + bump_lib "${pn}" "${pv}" + done +} + +ghc_setup_cflags() { + # TODO: plumb CFLAGS and BUILD_CFLAGS to respective CONF_CC_OPTS_STAGE + if ! is_native; then + export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"} + export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"} + einfo "Crosscompiling mode:" + einfo " CHOST: ${CHOST}" + einfo " CTARGET: ${CTARGET}" + einfo " CFLAGS: ${CFLAGS}" + einfo " LDFLAGS: ${LDFLAGS}" + einfo " prefix: $(cross)" + return + fi + # We need to be very careful with the CFLAGS we ask ghc to pass through to + # gcc. There are plenty of flags which will make gcc produce output that + # breaks ghc in various ways. The main ones we want to pass through are + # -mcpu / -march flags. These are important for arches like alpha & sparc. + # We also use these CFLAGS for building the C parts of ghc, ie the rts. + strip-flags + strip-unsupported-flags + + # Cmm can't parse line numbers #482086 + replace-flags -ggdb[3-9] -ggdb2 + + GHC_FLAGS="" + GHC_PERSISTENT_FLAGS="" + for flag in ${CFLAGS}; do + case ${flag} in + + # Ignore extra optimisation (ghc passes -O to gcc anyway) + # -O2 and above break on too many systems + -O*) ;; + + # Arch and ABI flags are what we're really after + -m*) append-ghc-cflags compile assemble ${flag};; + + # Sometimes it's handy to see backtrace of RTS + # to get an idea what happens there + -g*) append-ghc-cflags compile ${flag};; + + # Ignore all other flags, including all -f* flags + esac + done + + for flag in ${LDFLAGS}; do + append-ghc-cflags link ${flag} + done + + # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build. + # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported + # options to gcc. + if is_native; then + # prevent from failing to build unregisterised ghc: + # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html + use ppc64 && append-ghc-cflags persistent compile -mminimal-toc + fi +} + +# substitutes string $1 to $2 in files $3 $4 ... +relocate_path() { + local from=$1 + local to=$2 + shift 2 + local file= + for file in "$@" + do + sed -i -e "s|$from|$to|g" \ + "$file" || die "path relocation failed for '$file'" + done +} + +# changes hardcoded ghc paths and updates package index +# $1 - new absolute root path +relocate_ghc() { + local to=$1 ghc_v=${BIN_PV} + + # libdir for prebuilt binary and for current system may mismatch + # It does for prefix installation for example: bug #476998 + local bin_ghc_prefix=${WORKDIR}/usr + local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*) + local bin_libdir=${bin_libpath#${bin_ghc_prefix}/} + + # backup original script to use it later after relocation + local gp_back="${T}/ghc-pkg-${ghc_v}-orig" + cp "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" "$gp_back" || die "unable to backup ghc-pkg wrapper" + + if [[ ${bin_libdir} != $(get_libdir) ]]; then + einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)" + # moving the dir itself is not strictly needed + # but then USE=binary would result in installing + # in '${bin_libdir}' + mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die + + relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \ + "${WORKDIR}/usr/bin/ghc-${ghc_v}" \ + "${WORKDIR}/usr/bin/ghci-${ghc_v}" \ + "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \ + "${WORKDIR}/usr/bin/hsc2hs" \ + "${WORKDIR}/usr/bin/runghc-${ghc_v}" \ + "$gp_back" \ + "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"* + fi + + # Relocate from /usr to ${EPREFIX}/usr + relocate_path "/usr" "${to}/usr" \ + "${WORKDIR}/usr/bin/ghc-${ghc_v}" \ + "${WORKDIR}/usr/bin/ghci-${ghc_v}" \ + "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \ + "${WORKDIR}/usr/bin/haddock-ghc-${ghc_v}" \ + "${WORKDIR}/usr/bin/hp2ps" \ + "${WORKDIR}/usr/bin/hpc" \ + "${WORKDIR}/usr/bin/hsc2hs" \ + "${WORKDIR}/usr/bin/runghc-${ghc_v}" \ + "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"* + + # this one we will use to regenerate cache + # so it should point to current tree location + relocate_path "/usr" "${WORKDIR}/usr" "$gp_back" + + if use prefix; then + hprefixify "${bin_libpath}"/${PN}*/settings + fi + + # regenerate the binary package cache + "$gp_back" recache || die "failed to update cache after relocation" + rm "$gp_back" +} + +ghc-check-reqs() { + # These are pessimistic values (slightly bigger than worst-case) + # Worst case is UNREG USE=profile ia64. See bug #611866 for some + # numbers on various arches. + CHECKREQS_DISK_BUILD=8G + CHECKREQS_DISK_USR=2G + # USE=binary roughly takes + use binary && CHECKREQS_DISK_BUILD=4G + + "$@" +} + +pkg_pretend() { + ghc-check-reqs check-reqs_pkg_pretend +} + +pkg_setup() { + ghc-check-reqs check-reqs_pkg_setup + + # quiet portage about prebuilt binaries + use binary && QA_PREBUILT="*" + + [[ ${MERGE_TYPE} == binary ]] && return + + if use ghcbootstrap; then + ewarn "You requested ghc bootstrapping, this is usually only used" + ewarn "by Gentoo developers to make binary .tbz2 packages." + + [[ -z $(type -P ghc) ]] && \ + die "Could not find a ghc to bootstrap with." + else + if ! yet_binary; then + eerror "Please try emerging with USE=ghcbootstrap and report build" + eerror "sucess or failure to the haskell team (haskell@gentoo.org)" + die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap" + fi + fi +} + +src_unpack() { + # Create the ${S} dir if we're using the binary version + use binary && mkdir "${S}" + + # the Solaris and Darwin binaries from ghc (maeder) need to be + # unpacked separately, so prevent them from being unpacked + local ONLYA=${A} + case ${CHOST} in + *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;; + esac + unpack ${ONLYA} +} + +src_prepare() { + ghc_setup_cflags + + if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then + # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS. + # See bug #313635. + sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \ + "${WORKDIR}/usr/bin/ghc-${BIN_PV}" + + # allow hardened users use vanilla binary to bootstrap ghc + # ghci uses mmap with rwx protection at it implements dynamic + # linking on it's own (bug #299709) + pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${PN}-${BIN_PV}/bin/ghc" + fi + + if use binary; then + if use prefix; then + relocate_ghc "${EPREFIX}" + fi + + # Move unpacked files to the expected place + mv "${WORKDIR}/usr" "${S}" + eapply_user + else + if ! use ghcbootstrap; then + case ${CHOST} in + *-darwin* | *-solaris*) + # UPDATE ME for ghc-7 + mkdir "${WORKDIR}"/ghc-bin-installer || die + pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die + use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2 + use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2 + use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2 + use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2 + popd > /dev/null + + pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die + # fix the binaries so they run, on Solaris we need an + # LD_LIBRARY_PATH which has our prefix libdirs, on + # Darwin we need to replace the frameworks with our libs + # from the prefix fix before installation, because some + # of the tools are actually used during configure/make + if [[ ${CHOST} == *-solaris* ]] ; then + export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}" + elif [[ ${CHOST} == *-darwin* ]] ; then + local readline_framework=GNUreadline.framework/GNUreadline + local gmp_framework=/opt/local/lib/libgmp.10.dylib + local ncurses_file=/opt/local/lib/libncurses.5.dylib + for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do + install_name_tool -change \ + ${readline_framework} \ + "${EPREFIX}"/lib/libreadline.dylib \ + ${binary} || die + install_name_tool -change \ + ${gmp_framework} \ + "${EPREFIX}"/usr/lib/libgmp.dylib \ + ${binary} || die + install_name_tool -change \ + ${ncurses_file} \ + "${EPREFIX}"/usr/lib/libncurses.dylib \ + ${binary} || die + done + # we don't do frameworks! + sed -i \ + -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \ + -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \ + rts/package.conf.in || die + fi + + # it is autoconf, but we really don't want to give it too + # many arguments, in fact we do the make in-place anyway + ./configure --prefix="${WORKDIR}"/usr || die + make install || die + popd > /dev/null + ;; + *) + relocate_ghc "${WORKDIR}" + ;; + esac + fi + + sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \ + "${S}/ghc/ghc.wrapper" + + cd "${S}" # otherwise eapply will break + + eapply "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch + eapply "${FILESDIR}"/${PN}-8.2.1-darwin.patch + eapply "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch + eapply "${FILESDIR}"/${PN}-8.8.1-revert-CPP.patch + eapply "${FILESDIR}"/${PN}-8.10.1-allow-cross-bootstrap.patch + + # a bunch of crosscompiler patches + # needs newer version: + #eapply "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch + + # mingw32 target + pushd "${S}/libraries/Win32" + eapply "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-2-hack.patch # bad workaround + popd + + bump_libs + + eapply_user + # as we have changed the build system + eautoreconf + fi +} + +src_configure() { + if ! use binary; then + # initialize build.mk + echo '# Gentoo changes' > mk/build.mk + + # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV} + echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk + echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk + + # We also need to use the GHC_FLAGS flags when building ghc itself + echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk + echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk + echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk + # Speed up initial Cabal bootstrap + echo "utils/ghc-cabal_dist_EXTRA_HC_OPTS+=$(ghc-make-args)" >> mk/build.mk + + # We can't depend on haddock except when bootstrapping when we + # must build docs and include them into the binary .tbz2 package + # app-text/dblatex is not in portage, can not build PDF or PS + echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk + echo "BUILD_SPHINX_HTML = $(usex doc YES NO)" >> mk/build.mk + echo "BUILD_MAN = $(usex doc YES NO)" >> mk/build.mk + + # this controls presence on 'xhtml' and 'haddock' in final install + echo "HADDOCK_DOCS = YES" >> mk/build.mk + + # not used outside of ghc's test + if [[ -n ${GHC_BUILD_DPH} ]]; then + echo "BUILD_DPH = YES" >> mk/build.mk + else + echo "BUILD_DPH = NO" >> mk/build.mk + fi + + # Any non-native build has to skip as it needs + # target haddock binary to be runnabine. + if ! is_native; then + # disable docs generation as it requires running stage2 + echo "HADDOCK_DOCS=NO" >> mk/build.mk + echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk + echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk + fi + + if is_crosscompile; then + # Install ghc-stage1 crosscompiler instead of + # ghc-stage2 cross-built compiler. + echo "Stage1Only=YES" >> mk/build.mk + fi + + # allows overriding build flavours for libraries: + # v - vanilla (static libs) + # p - profiled + # dyn - shared libraries + # example: GHC_LIBRARY_WAYS="v dyn" + if [[ -n ${GHC_LIBRARY_WAYS} ]]; then + echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk + fi + echo "BUILD_PROF_LIBS = $(usex profile YES NO)" >> mk/build.mk + + # Get ghc from the unpacked binary .tbz2 + # except when bootstrapping we just pick ghc up off the path + if ! use ghcbootstrap; then + export PATH="${WORKDIR}/usr/bin:${PATH}" + fi + + echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk + + # don't strip anything. Very useful when stage2 SIGSEGVs on you + echo "STRIP_CMD = :" >> mk/build.mk + + local econf_args=() + + # GHC embeds toolchain it was built by and uses it later. + # Don't allow things like ccache or versioned binary slip. + # We use stable thing across gcc upgrades. + # User can use EXTRA_ECONF=CC=... to override this default. + econf_args+=( + AR=${CTARGET}-ar + CC=${CTARGET}-gcc + # these should be inferred by GHC but ghc defaults + # to using bundled tools on windows. + Windres=${CTARGET}-windres + DllWrap=${CTARGET}-dllwrap + # we set the linker explicitly below + --disable-ld-override + ) + case ${CTARGET} in + arm*) + # ld.bfd-2.28 does not work for ghc. Force ld.gold + # instead. This should be removed once gentoo gets + # a fix for R_ARM_COPY bug: https://sourceware.org/PR16177 + econf_args+=(LD=${CTARGET}-ld.gold) + ;; + sparc*) + # ld.gold-2.28 does not work for ghc. Force ld.bfd + # instead. This should be removed once gentoo gets + # a fix for missing --no-relax support bug: + # https://sourceware.org/ml/binutils/2017-07/msg00183.html + econf_args+=(LD=${CTARGET}-ld.bfd) + ;; + *) + econf_args+=(LD=${CTARGET}-ld) + esac + + if [[ ${CBUILD} != ${CHOST} ]]; then + # GHC bug: ghc claims not to support cross-building. + # It does, but does not distinct --host= value + # for stage1 and stage2 compiler. + econf_args+=(--host=${CBUILD}) + fi + + if use ghcmakebinary; then + # When building booting libary we are trying to + # bundle or restrict most of external depends + # with unstable ABI: + # - embed libffi (default GHC behaviour) + # - disable ncurses support for ghci (via haskeline) + # https://bugs.gentoo.org/557478 + # - disable ncurses support for ghc-pkg + echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk + echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk + elif is_native; then + # using ${GTARGET}'s libffi is not supported yet: + # GHC embeds full path for ffi includes without /usr/${CTARGET} account. + econf_args+=(--with-system-libffi) + econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@')) + fi + + einfo "Final mk/build.mk:" + cat mk/build.mk || die + + econf ${econf_args[@]} \ + --enable-bootstrap-with-devel-snapshot \ + $(use_enable elfutils dwarf-unwind) \ + $(use_enable numa) + + if [[ ${PV} == *9999* ]]; then + GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')" + GHC_P=${PN}-${GHC_PV} + fi + fi # ! use binary +} + +src_compile() { + if ! use binary; then + # Stage1Only crosscompiler does not build stage2 + if ! is_crosscompile; then + # 1. build/pax-mark compiler binary first + emake ghc/stage2/build/tmp/ghc-stage2 + # 2. pax-mark (bug #516430) + pax-mark -m ghc/stage2/build/tmp/ghc-stage2 + # 2. build/pax-mark haddock using ghc-stage2 + if is_native; then + # non-native build does not build haddock + # due to HADDOCK_DOCS=NO, but it could. + emake utils/haddock/dist/build/tmp/haddock + pax-mark -m utils/haddock/dist/build/tmp/haddock + fi + fi + # 3. and then all the rest + emake all + fi # ! use binary +} + +src_test() { + # TODO: deal with: + # - sandbox (pollutes environment) + # - extra packages (to extend testsuite coverage) + # bits are taken from 'validate' + local make_test_target='test' # can be fulltest + # not 'emake' as testsuite uses '$MAKE' without jobserver available + make $make_test_target stage=2 THREADS=$(makeopts_jobs) +} + +src_install() { + if use binary; then + use prefix && mkdir -p "${ED}" + mv "${S}/usr" "${ED}" + else + [[ -f VERSION ]] || emake VERSION + + # -j1 due to a rare race in install script: + # make --no-print-directory -f ghc.mk phase=final install + # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 755 \ + # -d "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404/include" + # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 644 utils/hsc2hs/template-hsc.h \ + # "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404" + # /usr/bin/install: cannot create regular file \ + # '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory + emake -j1 install DESTDIR="${D}" + + # Skip for cross-targets as they all share target location: + # /usr/share/doc/ghc-9999/ + if ! is_crosscompile; then + dodoc "distrib/README" "LICENSE" "VERSION" + fi + + # rename ghc-shipped files to avoid collision + # of external packages. Motivating example: + # user had installed: + # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0) + # dev-haskell/transformers-0.4.2.0 + # then user tried to update to + # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0) + # this will lead to single .conf file collision. + local shipped_conf renamed_conf + local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d" + for shipped_conf in "${package_confdir}"/*.conf; do + # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf' + renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf + mv "${shipped_conf}" "${renamed_conf}" || die + done + + # remove link, but leave 'haddock-${GHC_P}' + rm -f "${ED}"/usr/bin/$(cross)haddock + + if ! is_crosscompile; then + newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg + newbashcomp utils/completion/ghc.bash ghc + fi + fi + + # path to the package.cache + local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d" + PKGCACHE="${package_confdir}"/package.cache + # copy the package.conf.d, including timestamp, save it so we can help + # users that have a broken package.conf.d + cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d" + + # copy the package.conf, including timestamp, save it so we later can put it + # back before uninstalling, or when upgrading. + cp -p "${PKGCACHE}"{,.shipped} \ + || die "failed to copy package.conf.d/package.cache" + + if is_crosscompile; then + # When we build a cross-compiler the layout is the following: + # usr/lib/${CTARGET}-ghc-${VER}/ contains target libraries + # but + # usr/lib/${CTARGET}-ghc-${VER}/bin/ directory + # containst host binaries (modulo bugs). + + # Portage's stripping mechanism does not skip stripping + # foreign binaries. This frequently causes binaries to be + # broken. + # + # Thus below we disable stripping of target libraries and allow + # stripping hosts executables. + dostrip -x "/usr/$(get_libdir)/$(cross)${GHC_P}" + dostrip "/usr/$(get_libdir)/$(cross)${GHC_P}/bin" + fi +} + +pkg_preinst() { + # have we got an earlier version of ghc installed? + if has_version "<${CATEGORY}/${PF}"; then + haskell_updater_warn="1" + fi +} + +pkg_postinst() { + ghc-reregister + + # path to the package.cache + PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache" + + # give the cache a new timestamp, it must be as recent as + # the package.conf.d directory. + touch "${PKGCACHE}" + + if [[ "${haskell_updater_warn}" == "1" ]]; then + ewarn + ewarn "\e[1;31m************************************************************************\e[0m" + ewarn + ewarn "You have just upgraded from an older version of GHC." + ewarn "You may have to run" + ewarn " 'haskell-updater'" + ewarn "to rebuild all ghc-based Haskell libraries." + ewarn + ewarn "\e[1;31m************************************************************************\e[0m" + ewarn + fi +} + +pkg_prerm() { + PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache" + rm -rf "${PKGCACHE}" + + cp -p "${PKGCACHE}"{.shipped,} +} + +pkg_postrm() { + ghc-package_pkg_postrm +} diff --git a/dev-lang/julia-bin/Manifest b/dev-lang/julia-bin/Manifest index e26005f7e5ae..58ce2802de2c 100644 --- a/dev-lang/julia-bin/Manifest +++ b/dev-lang/julia-bin/Manifest @@ -1,22 +1,13 @@ -DIST julia-1.2.0-freebsd-x86_64.tar.gz 82750080 BLAKE2B 2b95fedc8dbbc138c0794f42518cce280c62bb2442d6a0d53b809f21768497937b037e1e886cff19cb40d7a63f3e2ee8da0314250cab52e8b139724baff3ee91 SHA512 9c9af2e2346553ea5658ab5a9fe88539605774cd2737ac9bfb240b7fa3f9fd46f746d5dbdff2dd7405e8fbd33208c12a335b7d80cd0c78c62287ae5eb470fc8e -DIST julia-1.2.0-linux-i686.tar.gz 87810731 BLAKE2B 1d72bf469f1dd3667ea00d038d18e20c10d9ceb579c61b2f30603bcd7ea55875423e4d54cbb774cfcc20044528f3ccd196131bb17cbaf7bf780fc5667c387e1e SHA512 ecd62047a0e36fe85a0442733949b19ca5d877fc2d2bced80566d1fcd6906345f66fb9114b6e687594e514b8c952d0352de5982f77f127e5196288431a1f64a9 -DIST julia-1.2.0-linux-x86_64.tar.gz 91990555 BLAKE2B 125313e7e53bddfcd64251fa2794e5b9d4bbbadb6100c1dc8f86039e13520859117f8ffcc2611d085805c9a80ad3544e88dd0e37803609e3b8b4097867fa8a5c SHA512 47e966d12204ffbefcdd8a60e850994df2247c37ee601f4147710d80e8e576672daaffe6d35d37fef644ea725f46d893832f096e24d938af856328299ad920d5 -DIST julia-1.3.0-freebsd-x86_64.tar.gz 86423604 BLAKE2B 5e36e49ebb708c4ec1c998b23861f69238b9bb2af337b0977df1a2de170869037577d422d3d2ddb359e537b9c75ba8cbe8e5963d42a832dba19f8bb4022a264d SHA512 b2c4a0e5ce379523ee606067d50b980fb9be6977f7d3d576b131183edfc72098be71bf0bede20d44f72ad7d0b414fe56eeaa67ca1cb47d36823721784da8526b -DIST julia-1.3.0-linux-aarch64.tar.gz 78426016 BLAKE2B da758349e342a92194ff24e74dfb89ed9676bb97d8ffc15b80a305a5d75627b08a8939349b6de6aea294d64dd1386d1d24f5a8c793b368df38b86d06282222b7 SHA512 fa2a34aecbf83bd17f6ea24b55d30cfaab1916ea1c17b16271bbffaf93f430c262eb6d0ee9a9737a361a8dfad47126478ffa841c70cf9899e426607e12913e8b -DIST julia-1.3.0-linux-armv7l.tar.gz 84672004 BLAKE2B e8d20943195a909d2db821f30df79f5020eb21ded179b795518db77772f5216fd04d88a7e21ef518b819349f6c3d5b681b1b7c7ff2ff2bf89a14d6ad48456f5f SHA512 2f6328a66f24aae0e6ed0ed5abb504805cf4a719a7ba30009966a1774f4e72630734c661c4de49cca37f5fa0fa766fa2eda29f01ee21ee3e2e3af81d2291f2dc -DIST julia-1.3.0-linux-i686.tar.gz 90629130 BLAKE2B 027b045d71c209c3a935ac37d07fa89201d55b63e374038f5891fa751a87546aff63ffa0641f6b5041b4fbf1ed018cc6a809b56d3f732c134e3b98501fe92885 SHA512 fd772d0d3dbc11c357df26f980569315893a391604755e81421b6001b09e8e939f9a8e4bd0e0faa428fb4b08ac8f24a39bbe0875417630bf127d8b41324a9116 -DIST julia-1.3.0-linux-x86_64.tar.gz 95497903 BLAKE2B 2f67eb538c0277edaa97e95122bccf0f5822b7fc7a64a843aad7d421a22167de758a94011bf0e95a2b8b29c7d04e2b65451807bb36742206e88fcceab304f019 SHA512 4b286172622a2817378dae0720fa0a08d4f361b60adfb9685136fabc83d42bf439a22147051fb69d501e14947e42d2999ab081cfb3f60c44ee5d6a906758aaf3 -DIST julia-1.4.0-freebsd-x86_64.tar.gz 90034224 BLAKE2B 3150870a630c43d21520a52a9c009b777105f978f5b735c22ac1fa2a7599e30e09b1b7064149a83fedc52e7783b429e470358b82f21c51239b7761506269f066 SHA512 9f8cbe2065e05198f2a3edfdae17e2afa31c4a4c08ba4c3bcc31215ff6541c75a147009f87bd1028b6cdfac1f8616e07a948c8f8ee2586e61eacac53e33e3e87 -DIST julia-1.4.0-linux-aarch64.tar.gz 81685205 BLAKE2B 1a07a3ef94423d327e88b5cccb38360b23540806defeee1c64dc0656beee1b39008ca529e3d0cef7aab1e8947adb62fbbb1c6d248a0de2c63f3a5d14b3a5b684 SHA512 51b79e7b1fc85f67a26a595e84f88b656996cb8e14cd634076621b07690fc4f5d1ff1d71ce3a75243501bb7853bffda5d7428f03797570913cd3170dc13f651f -DIST julia-1.4.0-linux-i686.tar.gz 94549552 BLAKE2B b058d81f55e7e579cff5b31054def68193be5032de02f09f6c4239e13bd73a630eee8ebd5f9ccd712f0e3be406932de51951202ec37b1534f20962db4eff5472 SHA512 f0363103713900a682fef900a745732714cd3dcbedbe2aa368afff768c24603241fc2f4be7419caf674e086f6cac59a8b14f3770e578959b7296cd5e26d6d5c9 -DIST julia-1.4.0-linux-x86_64.tar.gz 98969249 BLAKE2B bf0a79a8a8f1ed8c5668f2b2836414f8c0ae10199ee96eefea3d5bfefc0dde0902659556a572c3de6982477183d91f8e2f6d38f7334c50872f3257055a5310e3 SHA512 e2ac637d2bbe9ec4b900bc8f59263fdaa573cbe39ffbafd0e8280a5ba1906052f72816e4b5a12fab34f5b05ffd3f5cf95703c00d88f2f6ab6f022c3504cf1c95 DIST julia-1.5.2-freebsd-x86_64.tar.gz 95898744 BLAKE2B dddafa63acc943bfc06eeae3fa9a3ef9b7484b29b88d37bf064ded255c836678f5d02dec0f7fa788bb763894acae5c51937882ed0391dcf66792198fec7dbce7 SHA512 13e4d1a7e01cd759d64c8ec3d85501904439fde5a9e2cb394963a8977035cd33b241fab27bf0642b069f202ead1d6c84f633002df3b27c4aa60e7adf45a3a8b1 DIST julia-1.5.2-linux-aarch64.tar.gz 97088109 BLAKE2B 01aa5337cd1fc15655b596959cef8e54b56d8bb11fbced728df301a197aad550f0113b50c0b9e3cab34ea1082e176ced0398cde4e1d7c6d14a72b9a9cab937ea SHA512 09ac5360faae81eb9c78da5831d20f1f2d2c7a93561f6f2857015b579796a059cdecf529c283c9c37dd55163ce3e7b6cd175ee02734f1e11aa12f1163bd6587c DIST julia-1.5.2-linux-i686.tar.gz 101473619 BLAKE2B a87cb4cb38236e87041fac1012841d5aed25383bfb212188f4c23f4a961654d8a3b03b85dd5563f83620aa98323e2d2692107eda47559cf9ae332006453a139d SHA512 2ceb56bcae051815d585d3f36b4ae323ad7a3e383e75c07d87cb555fc2463d1a6017fd120f52a1f7110b803bfa546a34e62e8958765b52124612782ac3daf403 DIST julia-1.5.2-linux-x86_64.tar.gz 105324048 BLAKE2B 410db75cb5b7ed269fd0d8f827773f50ff127ded3346e2f5fe908a1f9c0dd0f00b7600c5343853aaa0dfec3a616f657c52c96290f9c6ea012efcbc2a2b72e701 SHA512 5d14369b6296aa5fa0f7a58ce6b85dc25612ef508ee8dc1dcce7fe3a64de62b77daf419ea5d3a0a78345345787cb3ed563717ecc04df0c4d68b6d60593750f62 DIST julia-1.5.2-musl-x86_64.tar.gz 101730667 BLAKE2B 1b213a246779815b79f47e6c287f0c7eb438dce42bc9e3e39681dcc0818c7a8c81f7040443c06fd323adb693c96b61cc69099c5df375cae119020ba9d0bb11cd SHA512 5cfbf7938f50286077e132815e10ce4e1e5a589a772ae3b946488d3126713e72ba393e1a45b3bc38b5bc43fc183e7f99b622c8c0d9d939330b142cdee24fccb3 -EBUILD julia-bin-1.2.0.ebuild 1034 BLAKE2B b179f39c2fd588cbe734a4c358e767344c01093cbdfd95cfcebff0a897fd3e57e754f3a7f1c200ebbb18635ba559eec305fde87db76a91db0e0b2a9f17cc6fd8 SHA512 d2e3b6da22ceac83f11a7a9e98f51183654bc08b60bada2dd7a889c73176cb914c9831b4b2c37c2b0a3cbb17abddfce5e5a1e2f1392de92fbaf44a26c555c422 -EBUILD julia-bin-1.3.0.ebuild 1284 BLAKE2B ade35ecb39d7389ba540615931495aa1f4e36eaefb575e3df7bd40efebab72682ab0e8ae02137e310c73ac499444698b46981da3ce550e7541b8ad01a5ad3cf5 SHA512 e3dccb628355689f766f0a8c689c577f430d8bd9dec4d8721e6352f7497507256646ec5cf745562dc3a75366ec5d4333b14cce5f33faf526ce447ebde4790143 -EBUILD julia-bin-1.4.0.ebuild 1180 BLAKE2B a5609546cd9a4ce53ffae2bb4d763edc63af157caad83bad62a008e5535204018b0d26c17fde28f8bb2f27a6a4c08e03311ddb4fea57fabb4b6a37465390a276 SHA512 60a3a680eaef3210f7a1716bfb29e526c0062879bb09b80023567d897db5fbef1cc1549c7de39e10ac4f42ecd43284e530a247fcebca2c684b8c09a072040254 -EBUILD julia-bin-1.5.2.ebuild 1224 BLAKE2B c9cda2c05d4eb4c5b732c6df675cfb148a0dbda6c31699245e4e92b1d4fc37173036027d49813cdbfd909457f4b6a80502d6b88acd0dc4da5f07d67738910743 SHA512 bd619fa0b3d0048f049da2931c39bdb0147bd6b7a72076049679ee7b32a2061332c37a20589672ffb955e01a755dbbf4636ce43f728415cf07d7f87e167d2f09 +DIST julia-1.5.3-freebsd-x86_64.tar.gz 95919875 BLAKE2B 620c295a3d0fa9a31ed01b936ddabd001cee621969f61a9165e03ebee05cd1384c62bccd95f4df15ba49f9d6feec16f05c367820c0907919f67809ca136b70bc SHA512 e767bfb3cef034262dc12e0da4006e80d20cc7c971906f5ad355c971e7c751830972a2f4aa47d18fc2a79eb5454f8f160c0c38d536510291690fa6e1da3c83a3 +DIST julia-1.5.3-linux-aarch64.tar.gz 97086173 BLAKE2B 5353a516f24c151d6213ed4c6e189a8ac68933012bcda06084b5e6c1f3a230ebca896b1e8dd29b345c312f323283b4f9045efcece655ef055a797cd5eefbd774 SHA512 0988e229dc9f44230af84796dfb059aa87809c6af5d0e8a7debc4b696e98c45ccc042f956f678819e71afe29d5619421106208c6dce5dfe47aea98482b22c1e3 +DIST julia-1.5.3-linux-i686.tar.gz 101362522 BLAKE2B aba1270fc85cc1afc19856768a39d1cf1c40fb32b676be5da47dc7747294299a044a5202c547d19ad8aa56060b04d7583d7e7c19176f2fdbcccb863593fffccb SHA512 0abaab22626cbd4da4a2389b2aca639f993aa442a8423cba2fda3d9693e0dab4f5b82592691ad74bb7ddf1ae48739406b61fe76b7da626a1f22fe01077b011d2 +DIST julia-1.5.3-linux-x86_64.tar.gz 105260711 BLAKE2B b132fbe090ca4a4cba518efcf2e475f0ceaebcbe2e5ef4eee33697909995ea58d97c3e5015b96eaf2ff23e5ff6b5b67eed62b94a34580961d5671c4f019d4847 SHA512 f0460da198797c92d39d361278be6959e90b2b3d08e070b705c1a5de3a17c0e6b0b010a397d0b02e613d060959fff14c074cf12fdeb956e8f8565989f084d86b +DIST julia-1.5.3-musl-x86_64.tar.gz 101802400 BLAKE2B da69c1b4ff5bde8692c3fc9ed3d60fd655a32121a0e11a4d1f00b5e4494cc4bcdb0e323a2644cca3a291fa7f7604925d387204df90cc19fee89048c4ba83b2d5 SHA512 e98c74ce2a49532a491a46efe81a2edc85103f9ec04347fe6b052cffdaecadcecb48a02b15ad71853fff6ebb2281498000e89d44732f36d31b6252a1a88bd0a6 +EBUILD julia-bin-1.5.2.ebuild 1238 BLAKE2B 1f20fe4f0fabe3953a53fc3f810992bc545dd4d56d92a49628486a3d65fa2e9fb671619560d6a0409e398d441249df0c74448eb6fbfd70c49a955292c70a8016 SHA512 2174cc671417ff92eeb245a1bce7a722f8b76b37dbee11f72b1503e494b1c9a15eb0936e0bb9b4437546be64d4a2377573f76bd364977293f422261c98b8a177 +EBUILD julia-bin-1.5.3.ebuild 1238 BLAKE2B 1f20fe4f0fabe3953a53fc3f810992bc545dd4d56d92a49628486a3d65fa2e9fb671619560d6a0409e398d441249df0c74448eb6fbfd70c49a955292c70a8016 SHA512 2174cc671417ff92eeb245a1bce7a722f8b76b37dbee11f72b1503e494b1c9a15eb0936e0bb9b4437546be64d4a2377573f76bd364977293f422261c98b8a177 MISC metadata.xml 1269 BLAKE2B c7ca56d7660c41df452725bae9526d587d79754a3e7b0cb0584bacc588b63523e4fbae113b26f48290d874bc49fac1eb2ecfc97946e516212cc511346f876e26 SHA512 8e0325b241bc76162b843b64e2fdac98873cba21e8e39d2ddd439647466d94e163fe315eeeae78435398db17635d3447ec9c713bf53d894487ac6acb67c5afdf diff --git a/dev-lang/julia-bin/julia-bin-1.2.0.ebuild b/dev-lang/julia-bin/julia-bin-1.2.0.ebuild deleted file mode 100644 index 848c6a2b7010..000000000000 --- a/dev-lang/julia-bin/julia-bin-1.2.0.ebuild +++ /dev/null @@ -1,44 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -MY_PN=${PN/-bin/} -MY_P=${MY_PN}-${PV} - -DESCRIPTION="High-performance programming language for technical computing" -HOMEPAGE="https://julialang.org/" -SRC_URI=" - x86? ( https://julialang-s3.julialang.org/bin/linux/x86/1.2/${MY_P}-linux-i686.tar.gz ) - amd64? ( https://julialang-s3.julialang.org/bin/linux/x64/1.2/${MY_P}-linux-x86_64.tar.gz ) - amd64-fbsd? ( https://julialang-s3.julialang.org/bin/freebsd/x64/1.2/${MY_P}-freebsd-x86_64.tar.gz ) -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="-* ~amd64 ~x86" -IUSE="elibc_glibc elibc_FreeBSD" - -RDEPEND="!dev-lang/julia" -DEPEND="${RDEPEND}" - -RESTRICT="strip" - -QA_PREBUILT="*" - -S="${WORKDIR}/${MY_P}" - -src_install() { - insinto "/usr/$(get_libdir)/${MY_P}/" - doins -r ./etc - doins -r ./include - doins -r ./lib - doins -r ./share - - exeinto "/usr/$(get_libdir)/${MY_P}/bin" - doexe bin/julia - - cat > 99julia-bin <<-EOF - PATH="${EROOT}/usr/$(get_libdir)/${MY_P}/bin" - EOF - doenvd 99julia-bin -} diff --git a/dev-lang/julia-bin/julia-bin-1.3.0.ebuild b/dev-lang/julia-bin/julia-bin-1.3.0.ebuild deleted file mode 100644 index 00cad5f42072..000000000000 --- a/dev-lang/julia-bin/julia-bin-1.3.0.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -MY_PN=${PN/-bin/} -MY_P=${MY_PN}-${PV} -MY_PV=$(ver_cut 1-2) - -DESCRIPTION="High-performance programming language for technical computing" -HOMEPAGE="https://julialang.org/" -SRC_URI=" - x86? ( https://julialang-s3.julialang.org/bin/linux/x86/${MY_PV}/${MY_P}-linux-i686.tar.gz ) - amd64? ( https://julialang-s3.julialang.org/bin/linux/x64/${MY_PV}/${MY_P}-linux-x86_64.tar.gz ) - amd64-fbsd? ( https://julialang-s3.julialang.org/bin/freebsd/x64/${MY_PV}/${MY_P}-freebsd-x86_64.tar.gz ) - arm? ( https://julialang-s3.julialang.org/bin/linux/armv7l/${MY_PV}/${MY_P}-linux-armv7l.tar.gz ) - arm64? ( https://julialang-s3.julialang.org/bin/linux/aarch64/${MY_PV}/${MY_P}-linux-aarch64.tar.gz ) -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="-* ~amd64 ~arm ~arm64 ~x86" -IUSE="elibc_glibc elibc_FreeBSD" - -RDEPEND="!dev-lang/julia" -DEPEND="${RDEPEND}" - -RESTRICT="strip" - -QA_PREBUILT="*" - -S="${WORKDIR}/${MY_P}" - -src_install() { - insinto "/usr/$(get_libdir)/${MY_P}/" - doins -r ./etc - doins -r ./include - doins -r ./lib - doins -r ./share - - exeinto "/usr/$(get_libdir)/${MY_P}/bin" - doexe bin/julia - - cat > 99julia-bin <<-EOF - PATH="${EROOT}/usr/$(get_libdir)/${MY_P}/bin" - EOF - doenvd 99julia-bin -} diff --git a/dev-lang/julia-bin/julia-bin-1.4.0.ebuild b/dev-lang/julia-bin/julia-bin-1.4.0.ebuild deleted file mode 100644 index e7387d094629..000000000000 --- a/dev-lang/julia-bin/julia-bin-1.4.0.ebuild +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -MY_PN=${PN/-bin/} -MY_P=${MY_PN}-${PV} -MY_PV=$(ver_cut 1-2) - -DESCRIPTION="High-performance programming language for technical computing" -HOMEPAGE="https://julialang.org/" -SRC_URI=" - x86? ( https://julialang-s3.julialang.org/bin/linux/x86/${MY_PV}/${MY_P}-linux-i686.tar.gz ) - amd64? ( https://julialang-s3.julialang.org/bin/linux/x64/${MY_PV}/${MY_P}-linux-x86_64.tar.gz ) - amd64-fbsd? ( https://julialang-s3.julialang.org/bin/freebsd/x64/${MY_PV}/${MY_P}-freebsd-x86_64.tar.gz ) - arm64? ( https://julialang-s3.julialang.org/bin/linux/aarch64/${MY_PV}/${MY_P}-linux-aarch64.tar.gz ) -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="-* ~amd64 ~arm64 ~x86" -IUSE="elibc_glibc elibc_FreeBSD" - -RDEPEND="!dev-lang/julia" -DEPEND="${RDEPEND}" - -RESTRICT="strip" - -QA_PREBUILT="*" - -S="${WORKDIR}/${MY_P}" - -src_install() { - insinto "/usr/$(get_libdir)/${MY_P}/" - doins -r ./etc - doins -r ./include - doins -r ./lib - doins -r ./share - - exeinto "/usr/$(get_libdir)/${MY_P}/bin" - doexe bin/julia - - cat > 99julia-bin <<-EOF - PATH="${EROOT}/usr/$(get_libdir)/${MY_P}/bin" - EOF - doenvd 99julia-bin -} diff --git a/dev-lang/julia-bin/julia-bin-1.5.2.ebuild b/dev-lang/julia-bin/julia-bin-1.5.2.ebuild index acbc1acd341a..61861f476e93 100644 --- a/dev-lang/julia-bin/julia-bin-1.5.2.ebuild +++ b/dev-lang/julia-bin/julia-bin-1.5.2.ebuild @@ -30,6 +30,7 @@ DEPEND="${RDEPEND}" RESTRICT="strip" QA_PREBUILT="*" +QA_SONAME="*" S="${WORKDIR}/${MY_P}" diff --git a/dev-lang/julia-bin/julia-bin-1.5.3.ebuild b/dev-lang/julia-bin/julia-bin-1.5.3.ebuild new file mode 100644 index 000000000000..61861f476e93 --- /dev/null +++ b/dev-lang/julia-bin/julia-bin-1.5.3.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +MY_PN=${PN/-bin/} +MY_P=${MY_PN}-${PV/_/-} +MY_PV=$(ver_cut 1-2) +BASE_SRC_URI="https://julialang-s3.julialang.org/bin" + +DESCRIPTION="High-performance programming language for technical computing" +HOMEPAGE="https://julialang.org/" +SRC_URI=" + x86? ( ${BASE_SRC_URI}/linux/x86/${MY_PV}/${MY_P}-linux-i686.tar.gz ) + amd64? ( + elibc_glibc? ( ${BASE_SRC_URI}/linux/x64/${MY_PV}/${MY_P}-linux-x86_64.tar.gz ) + elibc_musl? ( ${BASE_SRC_URI}/musl/x64/${MY_PV}/${MY_P}-musl-x86_64.tar.gz ) + ) + amd64-fbsd? ( ${BASE_SRC_URI}/freebsd/x64/${MY_PV}/${MY_P}-freebsd-x86_64.tar.gz ) + arm64? ( ${BASE_SRC_URI}/linux/aarch64/${MY_PV}/${MY_P}-linux-aarch64.tar.gz ) +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="-* ~amd64 ~x86" +IUSE="elibc_glibc" + +RDEPEND="!dev-lang/julia" +DEPEND="${RDEPEND}" + +RESTRICT="strip" + +QA_PREBUILT="*" +QA_SONAME="*" + +S="${WORKDIR}/${MY_P}" + +src_install() { + insinto "/usr/$(get_libdir)/${MY_P}/" + doins -r ./etc + doins -r ./include + doins -r ./lib + doins -r ./share + + exeinto "/usr/$(get_libdir)/${MY_P}/bin" + doexe bin/julia + + cat > 99julia-bin <<-EOF + PATH="${EROOT}/usr/$(get_libdir)/${MY_P}/bin" + EOF + doenvd 99julia-bin +} diff --git a/dev-lang/julia/Manifest b/dev-lang/julia/Manifest index 2afce8570b24..3596c417f5e2 100644 --- a/dev-lang/julia/Manifest +++ b/dev-lang/julia/Manifest @@ -1,27 +1,16 @@ AUX julia-1.1.0-fix_build_system.patch 1651 BLAKE2B 62123d16fe25bd6d77ac7af05297bc2cb5529b58943fcd13060f0b2b3f329571ebbd82208793651ac5120cd4ed19b6eca6c3d0c829509288460a9e0e78817b48 SHA512 70f5cf43261216e16001acc2c64e0bc1457e1fd48a918b218f8b0b21877a44c274f3aad81f68f7176665ec94c2d17f89a880e1c0a9332beae9d25668f9a85a25 AUX julia-1.1.0-fix_llvm_install.patch 680 BLAKE2B ca0d95c503b8f6e76722d54147f7a64cda5781cefc6e05ed7cfc631b356c3131d43ce6703da6c61b791da08836d9a6b5b494556c2a0ecba8960f8a9395b2d66a SHA512 4d474c1ab1d74aeb98367d55ec557e22e43a3e3d35615b7cde20fb9a194b94f24237735ad431800ded6e120beae9d2d3706b778ea7f26409790e3649ba39117b AUX julia-1.4.0-no_symlink_llvm.patch 335 BLAKE2B 0df56ed45619df80b669bc790e0f93e475c94dac39fc8efcbdaa677a6ab02a6a3f832abf07990e8f50df8d900147f5e0ac9e2896edbbc4a015e49e74864315fa SHA512 563ed79132655b8c28a01d17fb8765ed774c069e00d29847f864152f7641b53758c6d8ba5544789e8d3aeb0e1686ea946c31837b1e1b0a6f4bce6d531d5511ed -DIST julia-1.2.0.tar.gz 8255435 BLAKE2B 286b7bd93cae247c545d9c384e244115f84daee977839022993e91c69013eb4107ac77d86f996ec7a8e9f863bf5cab29fb063437b822e5da79e72bc9e0db4b65 SHA512 c99b0b744508b43df4ee334f588dbb57a633969d7cb164d41b76d552c1d14f5ff6f06a8d0da7f7a48fd1e3a3b3c2379998c5af1bfdff4b0c17045132b82a40b8 -DIST julia-1.3.0.tar.gz 8793136 BLAKE2B e469d80c94e3b15b198011e62f591a699ec7218c755cf3e0c1be8f94e2a28e9800a10599a152f6865f534652d22f118bb14cd1886d257a96e6875562bce56f0c SHA512 c7fdc5c4435c82688fe608a7009ccee6d622f51a62578bf2323ad623acfd58bfb6ed1252f81481708b5b428c37292e078ce72b10df3fe32d29158b0726be2c2e -DIST julia-1.4.0.tar.gz 7239281 BLAKE2B f11467cf91c2a72f03f77421537f4089bab6a1596ede27963551819453bea2a3a46cad9a43951df8857120a00a44f2f04eb5e23659ea4d1772feddb00ba85d2c SHA512 f8152a595f13932f6cad186cf2fdf2fb0bd64cc49bbb11a76d8299f4745ca6428823ead0e73a7bae1347f1b99bf1181d1f457587d13a7bfc7324ca81afc35cc1 DIST julia-1.5.2.tar.gz 6945862 BLAKE2B 9dd9f83fb9ae251f66ae65e14a252b662c3c7d6f92638d91ef6e286032020052e1812f2891270854e0ddeda474afff55c8f87d300550503c1093f4c5e0a51959 SHA512 aa177d03bbde4f368dd2fb14f64d21130531616bcd544af7babbb7fb7c9ee5ea7528c756e10f78468aaffebbcbc6f48e92397c1c13dc3f130b64a82e478f43dc +DIST julia-1.5.3.tar.gz 6949901 BLAKE2B 08f8496980a9bbb9effc0c72cb6b7a5ce1dbd1774735caa366ddc1bb5404117111c624a639f6eb48360061f9fc597a7b37dff24f8555f03ebc4a22524cbeb3b8 SHA512 9e644a64fd6e2caf0390a2bc470084406c078244e65b70a2e3b031d5806c1dff780273ccccfe4bccfd8c03778b7d3a44de7a84bd13f3512afe6864efa5a730fc DIST julia-Pkg-49908bffe83790bc7cf3c5d46faf3667f8902ad4.tar.gz 389738 BLAKE2B 1ed9201badf0a1db5142e0566bfe085b364e4681670937ac5fa53c15312ff8eb29d5e783b75fe3f4f379b041ba38c66ce94962fa7d98fcfd0b7b49acd1749d69 SHA512 a85aa80b3080794a8e3ae5ce54856e63457c461659c12fde5dde1b5ec33176ea06af49ee516d01ccd7b78d8358de2fe0ffcd5c6a6d5a5088cdcd76a0133780eb DIST julia-UnicodeData-13.0.0.txt 1851767 BLAKE2B 72bbcf352f2f6a004abb3f351fe5da160e83644feea8de0ca154b5a1aa78f36cb04b252d0c7b64a5eeca388e600b2875bb76bc2746ee799a1a6eff97c1fe8b06 SHA512 1a4a662e2ab33469976bf5f91aa6933ed9b73f6d4179a2daffb349e1869d7d6cfa885b164e82d15dcdad7458cd451c81add58d875eb0c70de854589dc97b2055 -DIST julia-cacert-2020-01-01.pem 223687 BLAKE2B 29d2ce73380897a5841deef1c7eb5e61ff3f5c278ab95286bbfdf5b1c4d41ae94402dc5cb376975977f2d31030e0df872273942a1b6cc91b7ff35ecfd7efc1c2 SHA512 cc129ae1a4377a43a74b0854b6eccb2b315cdfce018142d1dd5524fb64c8945cde067cb18f366351fa7d6af3f9f36cf21bc1f626f987f9e4627878472ea59cde DIST julia-dsfmt-2.2.3.tar.gz 291773 BLAKE2B 6ffae90494d72527920c80fc0fb005da1c7b84f8a03a7ecb0789434c0fff97359e5098e85431896dffccc7d5148c414e847aaba5feef648b8788421a466ff65e SHA512 6d8ddcd01aab3f9039f4f0288a8af53e290cc2f293ed8c4a8c9f3b3f12398e7eedfce8016117b425766ba89c61c86c13b3e420035b5f9bf91315b8b814c03662 -DIST julia-libgit2-b3e1a56ebb2b9291e82dc027ba9cbcfc3ead54d3.tar.gz 4981505 BLAKE2B b2a414690de2c8eea5247260d76a3ff447e4f925a3c749e88cb9bfe96d1e3086be04534801fdf9d1eb1f8d84c6a6dc0eb4b6401be311ed3d5391ec9d481b1dda SHA512 7384a7eeeb36ac79d4e7e1336546e48f8fc820653f887f944c3902fcaae4e59d855679b39c5279b7372995934e549e34c526e1459a82032206913f9747b3dd08 -DIST julia-libuv-2348256acf5759a544e5ca7935f638d2bc091d60.tar.gz 1555710 BLAKE2B 31ce57d23765c142799dd985a5511751d63238cf7e082fd1ad5574bf62201e9d6cb53b8da5dcc724765ccb4abd63da3ca6d6cbd45e078310c2ffa3859d09b8e4 SHA512 c8bf3c736a60feb0c6994aa7cd1b80e1a45bd6096aa66db320ddfc27b59a0797d303338ea75978619173e4f0a680254f3db29c9f6d1b84361030cc11c7729c98 +DIST julia-libuv-1fcc6d66f9df74189c74d3d390f02202bb7db953.tar.gz 1590342 BLAKE2B eca658f74421587aec78cb38f5a712033afb072e6425a6ce28fd5d4bac61e41cacbd5a850c1f2b29c386b944d1d9c4f16b7d090f7d2dd6b963b5dbc94ae18981 SHA512 70b0c738a60b4e476750b7de8d120e735359e2c36fcb3a8a38628a0ae326210ed3b15d793dfd5443d7aa5603e83e7d99f567aa4c1696846d950df9f83648669c DIST julia-libuv-35b1504507a7a4168caae3d78db54d1121b121e1.tar.gz 1577394 BLAKE2B 8ab36f781619f710a64ddc6cf257a4c2f6d27ac22e33ed6f184902d0c6cc3a3941254e0a825071fcd57f869e3ccc5eaf71856539cf6b484358d5aafe383000a9 SHA512 5932e9105346e952fd0f51f79898e5b9c993261ec1558408437647ab3b3ce282562f1e0a16db5704cb66e7aa7a4c6a75dd7f0da498a98b1b6af48da88b4869f0 DIST julia-libwhich-81e9723c0273d78493dc8c8ed570f68d9ce7e89e.tar.gz 4183 BLAKE2B c932e23b1b476d3fd16cf6f451efd5fc6d9c1ec2c53e8ac086340a100817d9b30dae3eff50b284a42c09b2bbae30b9e2fd38b2881f8cbf4974a89f3bd0c87599 SHA512 6fb77b715d70d9bc95a8546c3bf97bd3677c7ea344b88bb5bc3bbfac9dceabe8a8cde7a0f64dec884cde802e4a3000e30837d3f824b5a9242348c4fe061526a3 DIST julia-utf8proc-0890a538bf8238cded9be0c81171f57e43f2c755.tar.gz 155521 BLAKE2B 32dc1a8fb641e89057d317e579f1802b7f7dfbdbea7f91c01b282b9a88c2fc6143743d5e45f46d6d465857cfe1b28bd39e9a0da19e80516536c57cb62b139d27 SHA512 95d6dba2bbdfc5003f6d21fd02c926c7db9661895010041aacee55fa11dc2524bcffaa90965e2a9a8f2a9e49e93ec7572d6a4de6d5d9f9e075b787537864ea20 -DIST julia-utf8proc-454f60150c7f023526d353e1e6b386f93ee0b116.tar.gz 154318 BLAKE2B 6173490aa458f300f29d6fc0f22b80ccff436f4c52df2ac54786a3f518a140ab6624cef0a7221c8e3800307c9b8490a604215fcb028001b1b95e7630b62ed85d SHA512 50a19aa56edc5c023611c40e75862f4c9c08e1bfad0bac9ec64413406cff8f409ff106a37f8c66202e563cbe3ae1d5a40036b14fd309651b50c30d3f205f08f5 -DIST julia-utf8proc-5c632c57426f2e4246e3b64dd2fd088d3920f9e5.tar.gz 154973 BLAKE2B 9696fae33c408abbddd2c5741a0c98b11474c7615d6610e53be919a3cce4a58f129de4ae36bb02636e94d1e57504103e8dd3a3faad3ce7c38e1dba0f513d2d47 SHA512 dec5d7e976bd808bc8edc39dda62b85ecb462b98b6059ace4acee27ec75f6839e0a2899a9baa225379ae5ffb5b568c63a666f52c9958075e5af0376f8a284534 -DIST llvm-6.0.1.src.tar.xz 25306628 BLAKE2B 60232d4d22f8096b565cc8d81fea0639f24f14e8fc4f66ade69fa15479181f07f655f26dff3fa24bf105762b495da316c5c9352db234bd0af6b9c3fff6d4d881 SHA512 cbbb00eb99cfeb4aff623ee1a5ba075e7b5a76fc00c5f9f539ff28c108598f5708a0369d5bd92683def5a20c2fe60cab7827b42d628dbfcc79b57e0e91b84dd9 -DIST llvm-8.0.1.src.tar.xz 30477608 BLAKE2B 4319c837b36111401e3b0f9659b8d875c89463bcc7816df1aefe1e3ff989860bbaa92504718f8e15416cfd9f3491c13777cd5cb661877b237b342b0e515b93f5 SHA512 82e120be5cabdfd5111aebbea68a663fe229c8861d73802d6ab09a3bf48f60de333e07e61f8fb61beaa14ac2bea24fcd74fa6f761acaf62469f536b79fcb1e16 DIST llvm-9.0.1.src.tar.xz 33035112 BLAKE2B 5ae7ac42507cb14983eec0785dfc9b9c788cae75d5493ddf6734da55d3733cc90e35634aa39aa536654d4b68c3ccb7c2f989746f21c634c8989a57d9d32a15b2 SHA512 bfb6960a4dd1e18f4005f324f478a781c69e8ec7c20569d9b243fcb9372dc7733b254f26c683373537990cc9c109c78eaf0f65449629ee17caca1bce9b9ccccd -EBUILD julia-1.2.0.ebuild 5338 BLAKE2B 60f77129192f392a3abf31556de86df1bf16564e7c1597bacffe601edc231715db077903b32d244504e7672b9971d19cf22d735808e51983fa0793666aa4b6f4 SHA512 727270ae0b4c99c2da7cdf9f877f194bb2976be6b633aefde56381657bef6521dee6ca047bcdf9a7ebe736fe44871e23a45c7c81ad592759e604c58a20836744 -EBUILD julia-1.3.0.ebuild 5352 BLAKE2B a1d48a441ab61c2f0e55e8f3bc1d58568553360c6f3c91b05e0a718af40285625ab4b334ea5d80fb0e5806ffe56adf709744526af18f8bcdadcb010d403c00be SHA512 ce44a6606975e98b2be9d32db4d9d4badb9701f8512055f38f43dbbfe99057a4951fc7633a82ebce6d2d431595553c7c1d4358cd1627174d03b0f1dc3f58c2b1 -EBUILD julia-1.4.0-r1.ebuild 5258 BLAKE2B cf21aaaf7695742795dfaf1dbfb1d8b3cabd76335c0e5a770b66783ce9150769a0db89fcbb95812b30920a40e7d49246e300952768621c3810d6584271f73865 SHA512 5fd13e8da396a9c355a00f3fe13abfa219d48b663b5fdfb2b4c94c3b858e6dbfd308b55357fef551f6f48170fa3fbbf9851c1e7aa4b5821dc7c42994cee76da7 -EBUILD julia-1.4.0-r2.ebuild 5771 BLAKE2B c7b03606cde5f9414172128a16041122e7d2f154dd8fc1f6f0d7f63135556bdad1b215bfc9672d867156134d7b9870cae495bb906bf4a9e582c32efdd236863a SHA512 8d629496f63cd7dfa2f8a42354b8170adddc1ee6c0a5f6679c3aa23902c56cc61732bddeca720698ff0919c1b23382e6770fb579bd0347bc6253e7038b55aea2 -EBUILD julia-1.5.2.ebuild 5769 BLAKE2B 54c790de6e2fa9ff3a168e2facabb70da5aa2a2696fc752002b63ba4f875079e8758892b7219dd231028723f15a0743536375460dca955d1744364556834cd12 SHA512 824f64802d16b05837eec6ef1d4ce56ad3dac20035bdc03c579c418d25ab5e2f2b36d629cd695eb5940b8347c05d089ca424d19025228fff5d787b0158eb4880 +EBUILD julia-1.5.2-r1.ebuild 5851 BLAKE2B 2adae861d29bbdf096b8958cd0f6fa29d79ebdf75e2f1ca186d079f500aec2b43eab57c2e9c49c0b53be3ea34d9f8c7b5bed23b9c82da5e7c3ed2ad13f224535 SHA512 7a006f9960b6e203da663e763faf606cebfdec5a21a5feedca6c282cd32a7c86635d5bd9a384a8a7bff9c2c284e16162f185854c139ea544b7a406f5e676f77e +EBUILD julia-1.5.3.ebuild 6019 BLAKE2B c5177b6c69d9f90ea2bd6a55f880b1fbbb179ffaab5522f66ea2f35d58ef493f8f567cad779b5bdf6d085c03e3902bffbbf34a6b883f4d2e3d6a6ee6681719ac SHA512 66a2e5e9c0aa55006d032848a46c2ebae341c301f0750c382b976d4d9c3d7b55616935f201d14d286f9378fbc4ec6aa8155b60e5919a51f74661c8ecdecef2a8 MISC metadata.xml 1388 BLAKE2B b58f320281f3b56151e4f647b3124b2bd915c9194041c7aa3e228cceb56f1d4d6625b9b86394a39c1fb7c0bb524e792cd60576ec76a766dba41204297d792ddd SHA512 91835d230909a2d10ac26280e49d3538e57fc708f141ce366d55d21dc66b588e551aa4e054e76a44695c065a82e6aa09962b84e86eb1f4f12b87ecd90ca256b5 diff --git a/dev-lang/julia/julia-1.2.0.ebuild b/dev-lang/julia/julia-1.2.0.ebuild deleted file mode 100644 index cf072ca65b33..000000000000 --- a/dev-lang/julia/julia-1.2.0.ebuild +++ /dev/null @@ -1,200 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -RESTRICT="test" - -inherit pax-utils toolchain-funcs - -MY_PV="${PV//_rc/-rc}" -MY_LIBUV_V="2348256acf5759a544e5ca7935f638d2bc091d60" -MY_UTF8PROC_V="454f60150c7f023526d353e1e6b386f93ee0b116" -MY_LIBWHICH_V="81e9723c0273d78493dc8c8ed570f68d9ce7e89e" -MY_DSFMT_V="2.2.3" -MY_LLVM="6.0.1" - -DESCRIPTION="High-performance programming language for technical computing" -HOMEPAGE="https://julialang.org/" -SRC_URI=" - https://github.com/JuliaLang/${PN}/releases/download/v${MY_PV}/${PN}-${MY_PV}.tar.gz - https://api.github.com/repos/JuliaLang/libuv/tarball/${MY_LIBUV_V} -> ${PN}-libuv-${MY_LIBUV_V}.tar.gz - https://api.github.com/repos/JuliaLang/utf8proc/tarball/${MY_UTF8PROC_V} -> ${PN}-utf8proc-${MY_UTF8PROC_V}.tar.gz - https://api.github.com/repos/vtjnash/libwhich/tarball/${MY_LIBWHICH_V} -> ${PN}-libwhich-${MY_LIBWHICH_V}.tar.gz - http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${MY_DSFMT_V}.tar.gz -> ${PN}-dsfmt-${MY_DSFMT_V}.tar.gz - http://releases.llvm.org/${MY_LLVM}/llvm-${MY_LLVM}.src.tar.xz -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="" - -RDEPEND+=" - dev-libs/double-conversion:0= - dev-libs/gmp:0= - dev-libs/libgit2:0= - >=dev-libs/libpcre2-10.23:0=[jit] - dev-libs/mpfr:0= - dev-libs/openspecfun - sci-libs/amd:0= - sci-libs/arpack:0= - sci-libs/camd:0= - sci-libs/ccolamd:0= - sci-libs/cholmod:0= - sci-libs/colamd:0= - sci-libs/fftw:3.0=[threads] - sci-libs/openlibm:0= - sci-libs/spqr:0= - sci-libs/umfpack:0= - sci-mathematics/glpk:0= - >=sys-libs/libunwind-1.1:0= - sys-libs/readline:0= - sys-libs/zlib:0= - >=virtual/blas-3.6 - virtual/lapack" - -DEPEND="${RDEPEND} - dev-vcs/git - dev-util/patchelf - virtual/pkgconfig" - -PATCHES=( - "${FILESDIR}"/${PN}-1.1.0-fix_build_system.patch - "${FILESDIR}"/${PN}-1.1.0-fix_llvm_install.patch -) - -S="${WORKDIR}/${PN}-${MY_PV}" - -src_unpack() { - tounpack=(${A}) - # the main source tree, followed by deps - unpack "${A/%\ */}" - - mkdir -p "${S}/deps/srccache/" - for i in "${tounpack[@]:1}"; do - cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die - done -} - -src_prepare() { - default - - # Sledgehammer: - # - prevent fetching of bundled stuff in compile and install phase - # - respect CFLAGS - # - respect EPREFIX and Gentoo specific paths - # - fix BLAS and LAPACK link interface - - sed -i \ - -e 's|git submodule|${EPREFIX}/bin/true|g' \ - -e "s|GENTOOCFLAGS|${CFLAGS}|g" \ - -e "s|/usr/include|${EPREFIX}/usr/include|g" \ - deps/Makefile || die - - local libblas="$($(tc-getPKG_CONFIG) --libs-only-l blas)" - libblas="${libblas%% *}" - libblas="lib${libblas#-l}" - local liblapack="$($(tc-getPKG_CONFIG) --libs-only-l lapack)" - liblapack="${liblapack%% *}" - liblapack="lib${liblapack#-l}" - - sed -i \ - -e "s|GENTOOCFLAGS|${CFLAGS}|g" \ - -e "s|GENTOOLIBDIR|$(get_libdir)|" \ - -e "s|^JULIA_COMMIT = .*|JULIA_COMMIT = v${PV}|" \ - -e "s|-lblas|$($(tc-getPKG_CONFIG) --libs blas)|" \ - -e "s|= libblas|= ${libblas}|" \ - -e "s|-llapack|$($(tc-getPKG_CONFIG) --libs lapack)|" \ - -e "s|= liblapack|= ${liblapack}|" \ - Make.inc || die - - sed -i \ - -e "s|,lib)|,$(get_libdir))|g" \ - -e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|g" \ - Makefile || die - - sed -i \ - -e "s|ar -rcs|$(tc-getAR) -rcs|g" \ - src/Makefile || die - - # disable doc install starting git fetching - sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die -} - -src_configure() { - # julia does not play well with the system versions of dsfmt, libuv, - # and utf8proc - - # USE_SYSTEM_LIBM=0 implies using external openlibm - cat <<-EOF > Make.user - USE_SYSTEM_ARPACK:=1 - USE_SYSTEM_BLAS:=1 - USE_SYSTEM_DSFMT:=0 - USE_SYSTEM_GMP:=1 - USE_SYSTEM_GRISU:=1 - USE_SYSTEM_LAPACK:=1 - USE_SYSTEM_LIBGIT2:=1 - USE_SYSTEM_LIBM:=0 - USE_SYSTEM_LIBUNWIND:=1 - USE_SYSTEM_LIBUV:=0 - USE_SYSTEM_LLVM:=0 - USE_SYSTEM_MPFR:=1 - USE_SYSTEM_OPENLIBM:=1 - USE_SYSTEM_OPENSPECFUN:=1 - USE_SYSTEM_PATCHELF:=1 - USE_SYSTEM_PCRE:=1 - USE_SYSTEM_READLINE:=1 - USE_SYSTEM_RMATH:=0 - USE_SYSTEM_SUITESPARSE:=1 - USE_SYSTEM_UTF8PROC:=0 - USE_SYSTEM_ZLIB=1 - VERBOSE=1 - libdir="${EROOT}/usr/$(get_libdir)" - EOF - -} - -src_compile() { - - # Julia accesses /proc/self/mem on Linux - addpredict /proc/self/mem - - emake cleanall - emake julia-release \ - prefix="${EPREFIX}/usr" DESTDIR="${D}" \ - CC="$(tc-getCC)" CXX="$(tc-getCXX)" \ - USE_BINARYBUILDER=0 - pax-mark m $(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}') - emake USE_BINARYBUILDER=0 -} - -src_test() { - emake test -} - -src_install() { - # Julia is special. It tries to find a valid git repository (that would - # normally be cloned during compilation/installation). Just make it - # happy... - git init && \ - git config --local user.email "whatyoudoing@example.com" && \ - git config --local user.name "Whyyyyyy" && \ - git commit -a --allow-empty -m "initial" || die "git failed" - - emake install \ - prefix="${EPREFIX}/usr" DESTDIR="${D}" \ - CC="$(tc-getCC)" CXX="$(tc-getCXX)" \ - USE_BINARYBUILDER=0 - cat > 99julia <<-EOF - LDPATH=${EROOT}/usr/$(get_libdir)/julia - EOF - doenvd 99julia - - dodoc README.md - - mv "${ED}"/usr/etc/julia "${ED}"/etc || die - rmdir "${ED}"/usr/etc || die - mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/${PF} || die - rmdir "${ED}"/usr/share/doc/julia || die -} diff --git a/dev-lang/julia/julia-1.3.0.ebuild b/dev-lang/julia/julia-1.3.0.ebuild deleted file mode 100644 index 8f63c97d7e5f..000000000000 --- a/dev-lang/julia/julia-1.3.0.ebuild +++ /dev/null @@ -1,201 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -RESTRICT="test" - -inherit pax-utils toolchain-funcs - -MY_PV="${PV//_rc/-rc}" -MY_LIBUV_V="35b1504507a7a4168caae3d78db54d1121b121e1" -MY_UTF8PROC_V="5c632c57426f2e4246e3b64dd2fd088d3920f9e5" -MY_LIBWHICH_V="81e9723c0273d78493dc8c8ed570f68d9ce7e89e" -MY_DSFMT_V="2.2.3" -MY_LLVM="6.0.1" - -DESCRIPTION="High-performance programming language for technical computing" -HOMEPAGE="https://julialang.org/" -SRC_URI=" - https://github.com/JuliaLang/${PN}/releases/download/v${MY_PV}/${PN}-${MY_PV}.tar.gz - https://api.github.com/repos/JuliaLang/libuv/tarball/${MY_LIBUV_V} -> ${PN}-libuv-${MY_LIBUV_V}.tar.gz - https://api.github.com/repos/JuliaLang/utf8proc/tarball/${MY_UTF8PROC_V} -> ${PN}-utf8proc-${MY_UTF8PROC_V}.tar.gz - https://api.github.com/repos/vtjnash/libwhich/tarball/${MY_LIBWHICH_V} -> ${PN}-libwhich-${MY_LIBWHICH_V}.tar.gz - http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${MY_DSFMT_V}.tar.gz -> ${PN}-dsfmt-${MY_DSFMT_V}.tar.gz - http://releases.llvm.org/${MY_LLVM}/llvm-${MY_LLVM}.src.tar.xz -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="" - -RDEPEND+=" - dev-libs/double-conversion:0= - dev-libs/gmp:0= - dev-libs/libgit2:0= - >=dev-libs/libpcre2-10.23:0=[jit] - dev-libs/mpfr:0= - dev-libs/openspecfun - >=net-libs/mbedtls-2.2 - net-libs/libssh2 - sci-libs/amd:0= - sci-libs/arpack:0= - sci-libs/camd:0= - sci-libs/ccolamd:0= - sci-libs/cholmod:0= - sci-libs/colamd:0= - sci-libs/fftw:3.0=[threads] - sci-libs/openlibm:0= - sci-libs/spqr:0= - sci-libs/umfpack:0= - sci-mathematics/glpk:0= - >=sys-libs/libunwind-1.1:0= - sys-libs/readline:0= - sys-libs/zlib:0= - >=virtual/blas-3.6 - virtual/lapack" - -DEPEND="${RDEPEND} - dev-vcs/git - dev-util/patchelf - virtual/pkgconfig" - -PATCHES=( - "${FILESDIR}"/${PN}-1.1.0-fix_build_system.patch - "${FILESDIR}"/${PN}-1.1.0-fix_llvm_install.patch -) - -S="${WORKDIR}/${PN}-${MY_PV}" - -src_unpack() { - tounpack=(${A}) - # the main source tree, followed by deps - unpack "${A/%\ */}" - - mkdir -p "${S}/deps/srccache/" - for i in "${tounpack[@]:1}"; do - cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die - done -} - -src_prepare() { - default - - # Sledgehammer: - # - prevent fetching of bundled stuff in compile and install phase - # - respect CFLAGS - # - respect EPREFIX and Gentoo specific paths - # - fix BLAS and LAPACK link interface - - sed -i \ - -e 's|git submodule|${EPREFIX}/bin/true|g' \ - -e "s|GENTOOCFLAGS|${CFLAGS}|g" \ - -e "s|/usr/include|${EPREFIX}/usr/include|g" \ - deps/Makefile || die - - local libblas="$($(tc-getPKG_CONFIG) --libs-only-l blas)" - libblas="${libblas%% *}" - libblas="lib${libblas#-l}" - local liblapack="$($(tc-getPKG_CONFIG) --libs-only-l lapack)" - liblapack="${liblapack%% *}" - liblapack="lib${liblapack#-l}" - - sed -i \ - -e "s|GENTOOCFLAGS|${CFLAGS}|g" \ - -e "s|GENTOOLIBDIR|$(get_libdir)|" \ - -e "s|^JULIA_COMMIT = .*|JULIA_COMMIT = v${PV}|" \ - -e "s|-lblas|$($(tc-getPKG_CONFIG) --libs blas)|" \ - -e "s|= libblas|= ${libblas}|" \ - -e "s|-llapack|$($(tc-getPKG_CONFIG) --libs lapack)|" \ - -e "s|= liblapack|= ${liblapack}|" \ - Make.inc || die - - sed -i \ - -e "s|,lib)|,$(get_libdir))|g" \ - -e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|g" \ - Makefile || die - - sed -i \ - -e "s|ar -rcs|$(tc-getAR) -rcs|g" \ - src/Makefile || die - - # disable doc install starting git fetching - sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die -} - -src_configure() { - # julia does not play well with the system versions of dsfmt, libuv, - # and utf8proc - - # USE_SYSTEM_LIBM=0 implies using external openlibm - cat <<-EOF > Make.user - USE_SYSTEM_LLVM:=0 - USE_SYSTEM_LIBUNWIND:=1 - USE_SYSTEM_PCRE:=1 - USE_SYSTEM_LIBM:=0 - USE_SYSTEM_OPENLIBM:=1 - USE_SYSTEM_DSFMT:=0 - USE_SYSTEM_BLAS:=1 - USE_SYSTEM_LAPACK:=1 - USE_SYSTEM_GMP:=1 - USE_SYSTEM_MPFR:=1 - USE_SYSTEM_SUITESPARSE:=1 - USE_SYSTEM_LIBUV:=0 - USE_SYSTEM_UTF8PROC:=0 - USE_SYSTEM_MBEDTLS:=1 - USE_SYSTEM_LIBSSH2:=1 - USE_SYSTEM_CURL:=1 - USE_SYSTEM_LIBGIT2:=1 - USE_SYSTEM_PATCHELF:=1 - USE_SYSTEM_ZLIB:=1 - USE_SYSTEM_P7ZIP:=1 - VERBOSE=1 - libdir="${EROOT}/usr/$(get_libdir)" - EOF - -} - -src_compile() { - - # Julia accesses /proc/self/mem on Linux - addpredict /proc/self/mem - - emake cleanall - emake julia-release \ - prefix="${EPREFIX}/usr" DESTDIR="${D}" \ - CC="$(tc-getCC)" CXX="$(tc-getCXX)" \ - USE_BINARYBUILDER=0 - pax-mark m $(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}') - emake USE_BINARYBUILDER=0 -} - -src_test() { - emake test -} - -src_install() { - # Julia is special. It tries to find a valid git repository (that would - # normally be cloned during compilation/installation). Just make it - # happy... - git init && \ - git config --local user.email "whatyoudoing@example.com" && \ - git config --local user.name "Whyyyyyy" && \ - git commit -a --allow-empty -m "initial" || die "git failed" - - emake install \ - prefix="${EPREFIX}/usr" DESTDIR="${D}" \ - CC="$(tc-getCC)" CXX="$(tc-getCXX)" \ - USE_BINARYBUILDER=0 - cat > 99julia <<-EOF - LDPATH=${EROOT}/usr/$(get_libdir)/julia - EOF - doenvd 99julia - - dodoc README.md - - mv "${ED}"/usr/etc/julia "${ED}"/etc || die - rmdir "${ED}"/usr/etc || die - mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/${PF} || die - rmdir "${ED}"/usr/share/doc/julia || die -} diff --git a/dev-lang/julia/julia-1.4.0-r1.ebuild b/dev-lang/julia/julia-1.4.0-r1.ebuild deleted file mode 100644 index 5be70d02402f..000000000000 --- a/dev-lang/julia/julia-1.4.0-r1.ebuild +++ /dev/null @@ -1,192 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -RESTRICT="splitdebug" - -inherit llvm pax-utils toolchain-funcs - -MY_PV="${PV//_rc/-rc}" -MY_CACERT_V="2020-01-01" -MY_DSFMT_V="2.2.3" -MY_LIBGIT2_V="b3e1a56ebb2b9291e82dc027ba9cbcfc3ead54d3" -MY_LIBUV_V="35b1504507a7a4168caae3d78db54d1121b121e1" -MY_LIBWHICH_V="81e9723c0273d78493dc8c8ed570f68d9ce7e89e" -MY_PKG_V="49908bffe83790bc7cf3c5d46faf3667f8902ad4" -MY_UTF8PROC_V="5c632c57426f2e4246e3b64dd2fd088d3920f9e5" - -DESCRIPTION="High-performance programming language for technical computing" -HOMEPAGE="https://julialang.org/" -SRC_URI=" - https://github.com/JuliaLang/${PN}/releases/download/v${MY_PV}/${PN}-${MY_PV}.tar.gz - https://api.github.com/repos/JuliaLang/libuv/tarball/${MY_LIBUV_V} -> ${PN}-libuv-${MY_LIBUV_V}.tar.gz - https://api.github.com/repos/JuliaLang/utf8proc/tarball/${MY_UTF8PROC_V} -> ${PN}-utf8proc-${MY_UTF8PROC_V}.tar.gz - https://api.github.com/repos/libgit2/libgit2/tarball/${MY_LIBGIT2_V} -> ${PN}-libgit2-${MY_LIBGIT2_V}.tar.gz - https://api.github.com/repos/vtjnash/libwhich/tarball/${MY_LIBWHICH_V} -> ${PN}-libwhich-${MY_LIBWHICH_V}.tar.gz - https://curl.haxx.se/ca/cacert-${MY_CACERT_V}.pem -> ${PN}-cacert-${MY_CACERT_V}.pem - http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${MY_DSFMT_V}.tar.gz -> ${PN}-dsfmt-${MY_DSFMT_V}.tar.gz - https://dev.gentoo.org/~tamiko/distfiles/Pkg-${MY_PKG_V}.tar.gz -> ${PN}-Pkg-${MY_PKG_V}.tar.gz -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="" - -RDEPEND=" - sys-devel/llvm:9=[llvm_targets_NVPTX(-)] -" -LLVM_MAX_SLOT=9 - -RDEPEND+=" - dev-libs/double-conversion:0= - dev-libs/gmp:0= - >=dev-libs/libpcre2-10.23:0=[jit,unicode] - dev-libs/mpfr:0= - dev-libs/openspecfun - >=net-libs/mbedtls-2.2 - net-libs/libssh2 - sci-libs/amd:0= - sci-libs/arpack:0= - sci-libs/camd:0= - sci-libs/ccolamd:0= - sci-libs/cholmod:0= - sci-libs/colamd:0= - sci-libs/fftw:3.0=[threads] - sci-libs/openlibm:0= - sci-libs/spqr:0= - sci-libs/umfpack:0= - sci-mathematics/glpk:0= - >=sys-libs/libunwind-1.1:0= - sys-libs/readline:0= - sys-libs/zlib:0= - >=virtual/blas-3.6 - virtual/lapack" - -DEPEND="${RDEPEND} - dev-util/patchelf - virtual/pkgconfig" - -PATCHES=( - "${FILESDIR}"/${PN}-1.1.0-fix_build_system.patch - "${FILESDIR}"/${PN}-1.1.0-fix_llvm_install.patch - "${FILESDIR}"/${PN}-1.4.0-no_symlink_llvm.patch -) - -S="${WORKDIR}/${PN}-${MY_PV}" - -src_unpack() { - tounpack=(${A}) - # the main source tree, followed by deps - unpack "${A/%\ */}" - - mkdir -p "${S}/deps/srccache/" - for i in "${tounpack[@]:1}"; do - if [[ $i == *Pkg* ]] || [[ $i = *Statistics* ]]; then - # Bundled Pkg and Statistics packages go into ./stdlib - local tarball="${i#julia-}" - cp "${DISTDIR}/${i}" "${S}/stdlib/srccache/${tarball}" || die - # and we have to fix up the sha1sum - local name="${tarball%-*}" - local sha1="${tarball#*-}" - sha1="${sha1%.tar*}" - einfo "using patched stdlib package \"${name}\"" - sed -i -e "s/PKG_SHA1 = .*/PKG_SHA1 = ${sha1}/" "${S}/stdlib/${name}.version" || die - else - cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die - fi - done -} - -src_prepare() { - default - - # Sledgehammer: - # - prevent fetching of bundled stuff in compile and install phase - # - respect CFLAGS - # - respect EPREFIX and Gentoo specific paths - - sed -i \ - -e "s|git submodule|${EPREFIX}/bin/true|g" \ - -e "s|GENTOOCFLAGS|${CFLAGS}|g" \ - -e "s|/usr/include|${EPREFIX}/usr/include|g" \ - deps/Makefile || die - - sed -i \ - -e "s|GENTOOCFLAGS|${CFLAGS}|g" \ - -e "s|GENTOOLIBDIR|$(get_libdir)|" \ - Make.inc || die - - sed -i \ - -e "s|,lib)|,$(get_libdir))|g" \ - -e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|g" \ - Makefile || die - - sed -i \ - -e "s|ar -rcs|$(tc-getAR) -rcs|g" \ - src/Makefile || die - - # disable doc install starting git fetching - sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die -} - -src_configure() { - # julia does not play well with the system versions of dsfmt, libuv, - # and utf8proc - - # USE_SYSTEM_LIBM=0 implies using external openlibm - cat <<-EOF > Make.user - USE_BINARYBUILDER:=0 - USE_SYSTEM_LLVM:=1 - USE_SYSTEM_LIBUNWIND:=1 - USE_SYSTEM_PCRE:=1 - USE_SYSTEM_LIBM:=0 - USE_SYSTEM_OPENLIBM:=1 - USE_SYSTEM_DSFMT:=0 - USE_SYSTEM_BLAS:=1 - USE_SYSTEM_LAPACK:=1 - USE_SYSTEM_GMP:=1 - USE_SYSTEM_MPFR:=1 - USE_SYSTEM_SUITESPARSE:=1 - USE_SYSTEM_LIBUV:=0 - USE_SYSTEM_UTF8PROC:=0 - USE_SYSTEM_MBEDTLS:=1 - USE_SYSTEM_LIBSSH2:=1 - USE_SYSTEM_CURL:=1 - USE_SYSTEM_PATCHELF:=1 - USE_SYSTEM_ZLIB:=1 - USE_SYSTEM_P7ZIP:=1 - VERBOSE=1 - libdir="${EROOT}/usr/$(get_libdir)" - EOF -} - -src_compile() { - - # Julia accesses /proc/self/mem on Linux - addpredict /proc/self/mem - - emake julia-release \ - prefix="${EPREFIX}/usr" DESTDIR="${D}" \ - CC="$(tc-getCC)" CXX="$(tc-getCXX)" - pax-mark m "$(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')" - emake -} - -src_test() { - emake test -} - -src_install() { - emake install \ - prefix="${EPREFIX}/usr" DESTDIR="${D}" \ - CC="$(tc-getCC)" CXX="$(tc-getCXX)" - - dodoc README.md - - mv "${ED}"/usr/etc/julia "${ED}"/etc || die - rmdir "${ED}"/usr/etc || die - mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/${PF} || die - rmdir "${ED}"/usr/share/doc/julia || die -} diff --git a/dev-lang/julia/julia-1.4.0-r2.ebuild b/dev-lang/julia/julia-1.4.0-r2.ebuild deleted file mode 100644 index 6041c13573d6..000000000000 --- a/dev-lang/julia/julia-1.4.0-r2.ebuild +++ /dev/null @@ -1,208 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -RESTRICT="splitdebug" - -inherit llvm pax-utils toolchain-funcs - -MY_PV="${PV//_rc/-rc}" -MY_CACERT_V="2020-01-01" -MY_DSFMT_V="2.2.3" -MY_LIBGIT2_V="b3e1a56ebb2b9291e82dc027ba9cbcfc3ead54d3" -MY_LIBUV_V="35b1504507a7a4168caae3d78db54d1121b121e1" -MY_LIBWHICH_V="81e9723c0273d78493dc8c8ed570f68d9ce7e89e" -MY_LLVM_V="8.0.1" -MY_PKG_V="49908bffe83790bc7cf3c5d46faf3667f8902ad4" -MY_UTF8PROC_V="5c632c57426f2e4246e3b64dd2fd088d3920f9e5" - -DESCRIPTION="High-performance programming language for technical computing" -HOMEPAGE="https://julialang.org/" -SRC_URI=" - https://github.com/JuliaLang/${PN}/releases/download/v${MY_PV}/${PN}-${MY_PV}.tar.gz - https://api.github.com/repos/JuliaLang/libuv/tarball/${MY_LIBUV_V} -> ${PN}-libuv-${MY_LIBUV_V}.tar.gz - https://api.github.com/repos/JuliaLang/utf8proc/tarball/${MY_UTF8PROC_V} -> ${PN}-utf8proc-${MY_UTF8PROC_V}.tar.gz - https://api.github.com/repos/libgit2/libgit2/tarball/${MY_LIBGIT2_V} -> ${PN}-libgit2-${MY_LIBGIT2_V}.tar.gz - https://api.github.com/repos/vtjnash/libwhich/tarball/${MY_LIBWHICH_V} -> ${PN}-libwhich-${MY_LIBWHICH_V}.tar.gz - https://curl.haxx.se/ca/cacert-${MY_CACERT_V}.pem -> ${PN}-cacert-${MY_CACERT_V}.pem - http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${MY_DSFMT_V}.tar.gz -> ${PN}-dsfmt-${MY_DSFMT_V}.tar.gz - https://dev.gentoo.org/~tamiko/distfiles/Pkg-${MY_PKG_V}.tar.gz -> ${PN}-Pkg-${MY_PKG_V}.tar.gz - !system-llvm? ( http://releases.llvm.org/${MY_LLVM_V}/llvm-${MY_LLVM_V}.src.tar.xz ) -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="system-llvm" - -RDEPEND=" - system-llvm? ( sys-devel/llvm:9=[llvm_targets_NVPTX(-)] ) -" -LLVM_MAX_SLOT=9 - -RDEPEND+=" - dev-libs/double-conversion:0= - dev-libs/gmp:0= - >=dev-libs/libpcre2-10.23:0=[jit,unicode] - dev-libs/mpfr:0= - dev-libs/openspecfun - >=net-libs/mbedtls-2.2 - net-libs/libssh2 - sci-libs/amd:0= - sci-libs/arpack:0= - sci-libs/camd:0= - sci-libs/ccolamd:0= - sci-libs/cholmod:0= - sci-libs/colamd:0= - sci-libs/fftw:3.0=[threads] - sci-libs/openlibm:0= - sci-libs/spqr:0= - sci-libs/umfpack:0= - sci-mathematics/glpk:0= - >=sys-libs/libunwind-1.1:0= - sys-libs/readline:0= - sys-libs/zlib:0= - >=virtual/blas-3.6 - virtual/lapack" - -DEPEND="${RDEPEND} - dev-util/patchelf - virtual/pkgconfig" - -PATCHES=( - "${FILESDIR}"/${PN}-1.1.0-fix_build_system.patch - "${FILESDIR}"/${PN}-1.1.0-fix_llvm_install.patch - "${FILESDIR}"/${PN}-1.4.0-no_symlink_llvm.patch -) - -S="${WORKDIR}/${PN}-${MY_PV}" - -pkg_setup() { - use system-llvm && llvm_pkg_setup -} - -src_unpack() { - tounpack=(${A}) - # the main source tree, followed by deps - unpack "${A/%\ */}" - - mkdir -p "${S}/deps/srccache/" - for i in "${tounpack[@]:1}"; do - if [[ $i == *Pkg* ]] || [[ $i = *Statistics* ]]; then - # Bundled Pkg and Statistics packages go into ./stdlib - local tarball="${i#julia-}" - cp "${DISTDIR}/${i}" "${S}/stdlib/srccache/${tarball}" || die - # and we have to fix up the sha1sum - local name="${tarball%-*}" - local sha1="${tarball#*-}" - sha1="${sha1%.tar*}" - einfo "using patched stdlib package \"${name}\"" - sed -i -e "s/PKG_SHA1 = .*/PKG_SHA1 = ${sha1}/" "${S}/stdlib/${name}.version" || die - else - cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die - fi - done -} - -src_prepare() { - default - - # Sledgehammer: - # - prevent fetching of bundled stuff in compile and install phase - # - respect CFLAGS - # - respect EPREFIX and Gentoo specific paths - - sed -i \ - -e "s|git submodule|${EPREFIX}/bin/true|g" \ - -e "s|GENTOOCFLAGS|${CFLAGS}|g" \ - -e "s|/usr/include|${EPREFIX}/usr/include|g" \ - deps/Makefile || die - - sed -i \ - -e "s|GENTOOCFLAGS|${CFLAGS}|g" \ - -e "s|GENTOOLIBDIR|$(get_libdir)|" \ - Make.inc || die - - sed -i \ - -e "s|,lib)|,$(get_libdir))|g" \ - -e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|g" \ - Makefile || die - - sed -i \ - -e "s|ar -rcs|$(tc-getAR) -rcs|g" \ - src/Makefile || die - - # disable doc install starting git fetching - sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die -} - -src_configure() { - # julia does not play well with the system versions of dsfmt, libuv, - # and utf8proc - - use system-llvm && ewarn "You have enabled system-llvm. This is unsupported by upstream and may not work." - - # USE_SYSTEM_LIBM=0 implies using external openlibm - cat <<-EOF > Make.user - USE_BINARYBUILDER:=0 - USE_SYSTEM_LLVM:=$(usex system-llvm 1 0) - USE_SYSTEM_LIBUNWIND:=1 - USE_SYSTEM_PCRE:=1 - USE_SYSTEM_LIBM:=0 - USE_SYSTEM_OPENLIBM:=1 - USE_SYSTEM_DSFMT:=0 - USE_SYSTEM_BLAS:=1 - USE_SYSTEM_LAPACK:=1 - USE_SYSTEM_GMP:=1 - USE_SYSTEM_MPFR:=1 - USE_SYSTEM_SUITESPARSE:=1 - USE_SYSTEM_LIBUV:=0 - USE_SYSTEM_UTF8PROC:=0 - USE_SYSTEM_MBEDTLS:=1 - USE_SYSTEM_LIBSSH2:=1 - USE_SYSTEM_CURL:=1 - USE_SYSTEM_PATCHELF:=1 - USE_SYSTEM_ZLIB:=1 - USE_SYSTEM_P7ZIP:=1 - VERBOSE=1 - libdir="${EROOT}/usr/$(get_libdir)" - EOF -} - -src_compile() { - - # Julia accesses /proc/self/mem on Linux - addpredict /proc/self/mem - - emake julia-release \ - prefix="${EPREFIX}/usr" DESTDIR="${D}" \ - CC="$(tc-getCC)" CXX="$(tc-getCXX)" - pax-mark m "$(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')" - emake -} - -src_test() { - emake test -} - -src_install() { - emake install \ - prefix="${EPREFIX}/usr" DESTDIR="${D}" \ - CC="$(tc-getCC)" CXX="$(tc-getCXX)" - - if ! use system-llvm ; then - cp "${S}/usr/lib/libLLVM"-?jl.so "${ED}/usr/$(get_libdir)/julia/" || die - fi - - dodoc README.md - - mv "${ED}"/usr/etc/julia "${ED}"/etc || die - rmdir "${ED}"/usr/etc || die - mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/${PF} || die - rmdir "${ED}"/usr/share/doc/julia || die -} - -pkg_postinst() { - elog "To use Plots, you will need to install sci-visualization/gr." -} diff --git a/dev-lang/julia/julia-1.5.2-r1.ebuild b/dev-lang/julia/julia-1.5.2-r1.ebuild new file mode 100644 index 000000000000..5460b616b194 --- /dev/null +++ b/dev-lang/julia/julia-1.5.2-r1.ebuild @@ -0,0 +1,208 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit llvm pax-utils toolchain-funcs + +# correct versions for stdlibs are in deps/checksums +# for everything else, run with network-sandbox and wait for the crash + +MY_PV="${PV//_rc/-rc}" +MY_DSFMT_V="2.2.3" +MY_LIBUV_V="35b1504507a7a4168caae3d78db54d1121b121e1" +MY_LIBWHICH_V="81e9723c0273d78493dc8c8ed570f68d9ce7e89e" +MY_LLVM_V="9.0.1" +MY_PKG_V="49908bffe83790bc7cf3c5d46faf3667f8902ad4" +MY_UNICODE_V="13.0.0" +MY_UTF8PROC_V="0890a538bf8238cded9be0c81171f57e43f2c755" + +DESCRIPTION="High-performance programming language for technical computing" +HOMEPAGE="https://julialang.org/" +SRC_URI=" + https://github.com/JuliaLang/${PN}/releases/download/v${MY_PV}/${PN}-${MY_PV}.tar.gz + https://api.github.com/repos/JuliaLang/libuv/tarball/${MY_LIBUV_V} -> ${PN}-libuv-${MY_LIBUV_V}.tar.gz + https://api.github.com/repos/JuliaLang/utf8proc/tarball/${MY_UTF8PROC_V} -> ${PN}-utf8proc-${MY_UTF8PROC_V}.tar.gz + https://api.github.com/repos/vtjnash/libwhich/tarball/${MY_LIBWHICH_V} -> ${PN}-libwhich-${MY_LIBWHICH_V}.tar.gz + http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${MY_DSFMT_V}.tar.gz -> ${PN}-dsfmt-${MY_DSFMT_V}.tar.gz + http://www.unicode.org/Public/${MY_UNICODE_V}/ucd/UnicodeData.txt -> ${PN}-UnicodeData-${MY_UNICODE_V}.txt + https://dev.gentoo.org/~tamiko/distfiles/Pkg-${MY_PKG_V}.tar.gz -> ${PN}-Pkg-${MY_PKG_V}.tar.gz + !system-llvm? ( https://github.com/llvm/llvm-project/releases/download/llvmorg-${MY_LLVM_V}/llvm-${MY_LLVM_V}.src.tar.xz ) +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="system-llvm" + +RDEPEND=" + system-llvm? ( sys-devel/llvm:9=[llvm_targets_NVPTX(-)] ) + !system-llvm? ( dev-util/cmake ) +" +LLVM_MAX_SLOT=9 + +RDEPEND+=" + dev-libs/double-conversion:0= + dev-libs/gmp:0= + dev-libs/libgit2:0 + >=dev-libs/libpcre2-10.23:0=[jit,unicode] + dev-libs/mpfr:0= + dev-libs/openspecfun + >=net-libs/mbedtls-2.2 + net-libs/libssh2 + sci-libs/amd:0= + sci-libs/arpack:0= + sci-libs/camd:0= + sci-libs/ccolamd:0= + sci-libs/cholmod:0= + sci-libs/colamd:0= + sci-libs/fftw:3.0=[threads] + sci-libs/openlibm:0= + sci-libs/spqr:0= + sci-libs/umfpack:0= + sci-mathematics/glpk:0= + >=sys-libs/libunwind-1.1:0= + sys-libs/readline:0= + sys-libs/zlib:0= + >=virtual/blas-3.6 + virtual/lapack" + +DEPEND="${RDEPEND} + dev-util/patchelf + virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${PN}-1.1.0-fix_build_system.patch + "${FILESDIR}"/${PN}-1.1.0-fix_llvm_install.patch + "${FILESDIR}"/${PN}-1.4.0-no_symlink_llvm.patch +) + +S="${WORKDIR}/${PN}-${MY_PV}" + +pkg_setup() { + use system-llvm && llvm_pkg_setup +} + +src_unpack() { + tounpack=(${A}) + # the main source tree, followed by deps + unpack "${A/%\ */}" + + mkdir -p "${S}/deps/srccache/" + for i in "${tounpack[@]:1}"; do + if [[ $i == *Pkg* ]] || [[ $i = *Statistics* ]]; then + # Bundled Pkg and Statistics packages go into ./stdlib + local tarball="${i#julia-}" + cp "${DISTDIR}/${i}" "${S}/stdlib/srccache/${tarball}" || die + # and we have to fix up the sha1sum + local name="${tarball%-*}" + local sha1="${tarball#*-}" + sha1="${sha1%.tar*}" + einfo "using patched stdlib package \"${name}\"" + sed -i -e "s/PKG_SHA1 = .*/PKG_SHA1 = ${sha1}/" "${S}/stdlib/${name}.version" || die + else + cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die + fi + done +} + +src_prepare() { + default + + # Sledgehammer: + # - prevent fetching of bundled stuff in compile and install phase + # - respect CFLAGS + # - respect EPREFIX and Gentoo specific paths + + sed -i \ + -e "s|GENTOOCFLAGS|${CFLAGS}|g" \ + -e "s|/usr/include|${EPREFIX}/usr/include|g" \ + deps/Makefile || die + + sed -i \ + -e "s|GENTOOCFLAGS|${CFLAGS}|g" \ + -e "s|GENTOOLIBDIR|$(get_libdir)|" \ + Make.inc || die + + sed -i \ + -e "s|,lib)|,$(get_libdir))|g" \ + -e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|g" \ + Makefile || die + + sed -i \ + -e "s|ar -rcs|$(tc-getAR) -rcs|g" \ + src/Makefile || die + + # disable doc install starting git fetching + sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die +} + +src_configure() { + # julia does not play well with the system versions of dsfmt, libuv, + # and utf8proc + + use system-llvm && ewarn "You have enabled system-llvm. This is unsupported by upstream and may not work." + + # USE_SYSTEM_LIBM=0 implies using external openlibm + cat <<-EOF > Make.user + USE_BINARYBUILDER:=0 + USE_SYSTEM_LLVM:=$(usex system-llvm 1 0) + USE_SYSTEM_LIBUNWIND:=1 + USE_SYSTEM_PCRE:=1 + USE_SYSTEM_LIBM:=0 + USE_SYSTEM_OPENLIBM:=1 + USE_SYSTEM_DSFMT:=0 + USE_SYSTEM_BLAS:=1 + USE_SYSTEM_LAPACK:=1 + USE_SYSTEM_GMP:=1 + USE_SYSTEM_MPFR:=1 + USE_SYSTEM_SUITESPARSE:=1 + USE_SYSTEM_LIBUV:=0 + USE_SYSTEM_UTF8PROC:=0 + USE_SYSTEM_MBEDTLS:=1 + USE_SYSTEM_LIBSSH2:=1 + USE_SYSTEM_CURL:=1 + USE_SYSTEM_LIBGIT2:=1 + USE_SYSTEM_PATCHELF:=1 + USE_SYSTEM_ZLIB:=1 + USE_SYSTEM_P7ZIP:=1 + VERBOSE=1 + libdir="${EROOT}/usr/$(get_libdir)" + EOF +} + +src_compile() { + + # Julia accesses /proc/self/mem on Linux + addpredict /proc/self/mem + + emake julia-release \ + prefix="${EPREFIX}/usr" DESTDIR="${D}" \ + CC="$(tc-getCC)" CXX="$(tc-getCXX)" + pax-mark m "$(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')" + emake +} + +src_install() { + emake install \ + prefix="${EPREFIX}/usr" DESTDIR="${D}" \ + CC="$(tc-getCC)" CXX="$(tc-getCXX)" + + if ! use system-llvm ; then + cp "${S}/usr/lib/libLLVM"-?jl.so "${ED}/usr/$(get_libdir)/julia/" || die + fi + + dodoc README.md + + mv "${ED}"/usr/etc/julia "${ED}"/etc || die + rmdir "${ED}"/usr/etc || die + mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/"${PF}" || die + rmdir "${ED}"/usr/share/doc/julia || die + + # The appdata directory is deprecated. + mv usr/share/{appdata,metainfo}/ || die +} + +pkg_postinst() { + elog "To use Plots, you will need to install sci-visualization/gr." +} diff --git a/dev-lang/julia/julia-1.5.2.ebuild b/dev-lang/julia/julia-1.5.2.ebuild deleted file mode 100644 index 04e4922a411a..000000000000 --- a/dev-lang/julia/julia-1.5.2.ebuild +++ /dev/null @@ -1,205 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit llvm pax-utils toolchain-funcs - -# correct versions for stdlibs are in deps/checksums -# for everything else, run with network-sandbox and wait for the crash - -MY_PV="${PV//_rc/-rc}" -MY_DSFMT_V="2.2.3" -MY_LIBUV_V="35b1504507a7a4168caae3d78db54d1121b121e1" -MY_LIBWHICH_V="81e9723c0273d78493dc8c8ed570f68d9ce7e89e" -MY_LLVM_V="9.0.1" -MY_PKG_V="49908bffe83790bc7cf3c5d46faf3667f8902ad4" -MY_UNICODE_V="13.0.0" -MY_UTF8PROC_V="0890a538bf8238cded9be0c81171f57e43f2c755" - -DESCRIPTION="High-performance programming language for technical computing" -HOMEPAGE="https://julialang.org/" -SRC_URI=" - https://github.com/JuliaLang/${PN}/releases/download/v${MY_PV}/${PN}-${MY_PV}.tar.gz - https://api.github.com/repos/JuliaLang/libuv/tarball/${MY_LIBUV_V} -> ${PN}-libuv-${MY_LIBUV_V}.tar.gz - https://api.github.com/repos/JuliaLang/utf8proc/tarball/${MY_UTF8PROC_V} -> ${PN}-utf8proc-${MY_UTF8PROC_V}.tar.gz - https://api.github.com/repos/vtjnash/libwhich/tarball/${MY_LIBWHICH_V} -> ${PN}-libwhich-${MY_LIBWHICH_V}.tar.gz - http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${MY_DSFMT_V}.tar.gz -> ${PN}-dsfmt-${MY_DSFMT_V}.tar.gz - http://www.unicode.org/Public/${MY_UNICODE_V}/ucd/UnicodeData.txt -> ${PN}-UnicodeData-${MY_UNICODE_V}.txt - https://dev.gentoo.org/~tamiko/distfiles/Pkg-${MY_PKG_V}.tar.gz -> ${PN}-Pkg-${MY_PKG_V}.tar.gz - !system-llvm? ( https://github.com/llvm/llvm-project/releases/download/llvmorg-${MY_LLVM_V}/llvm-${MY_LLVM_V}.src.tar.xz ) -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="system-llvm" - -RDEPEND=" - system-llvm? ( sys-devel/llvm:9=[llvm_targets_NVPTX(-)] ) - !system-llvm? ( dev-util/cmake ) -" -LLVM_MAX_SLOT=9 - -RDEPEND+=" - dev-libs/double-conversion:0= - dev-libs/gmp:0= - dev-libs/libgit2:0 - >=dev-libs/libpcre2-10.23:0=[jit,unicode] - dev-libs/mpfr:0= - dev-libs/openspecfun - >=net-libs/mbedtls-2.2 - net-libs/libssh2 - sci-libs/amd:0= - sci-libs/arpack:0= - sci-libs/camd:0= - sci-libs/ccolamd:0= - sci-libs/cholmod:0= - sci-libs/colamd:0= - sci-libs/fftw:3.0=[threads] - sci-libs/openlibm:0= - sci-libs/spqr:0= - sci-libs/umfpack:0= - sci-mathematics/glpk:0= - >=sys-libs/libunwind-1.1:0= - sys-libs/readline:0= - sys-libs/zlib:0= - >=virtual/blas-3.6 - virtual/lapack" - -DEPEND="${RDEPEND} - dev-util/patchelf - virtual/pkgconfig" - -PATCHES=( - "${FILESDIR}"/${PN}-1.1.0-fix_build_system.patch - "${FILESDIR}"/${PN}-1.1.0-fix_llvm_install.patch - "${FILESDIR}"/${PN}-1.4.0-no_symlink_llvm.patch -) - -S="${WORKDIR}/${PN}-${MY_PV}" - -pkg_setup() { - use system-llvm && llvm_pkg_setup -} - -src_unpack() { - tounpack=(${A}) - # the main source tree, followed by deps - unpack "${A/%\ */}" - - mkdir -p "${S}/deps/srccache/" - for i in "${tounpack[@]:1}"; do - if [[ $i == *Pkg* ]] || [[ $i = *Statistics* ]]; then - # Bundled Pkg and Statistics packages go into ./stdlib - local tarball="${i#julia-}" - cp "${DISTDIR}/${i}" "${S}/stdlib/srccache/${tarball}" || die - # and we have to fix up the sha1sum - local name="${tarball%-*}" - local sha1="${tarball#*-}" - sha1="${sha1%.tar*}" - einfo "using patched stdlib package \"${name}\"" - sed -i -e "s/PKG_SHA1 = .*/PKG_SHA1 = ${sha1}/" "${S}/stdlib/${name}.version" || die - else - cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die - fi - done -} - -src_prepare() { - default - - # Sledgehammer: - # - prevent fetching of bundled stuff in compile and install phase - # - respect CFLAGS - # - respect EPREFIX and Gentoo specific paths - - sed -i \ - -e "s|GENTOOCFLAGS|${CFLAGS}|g" \ - -e "s|/usr/include|${EPREFIX}/usr/include|g" \ - deps/Makefile || die - - sed -i \ - -e "s|GENTOOCFLAGS|${CFLAGS}|g" \ - -e "s|GENTOOLIBDIR|$(get_libdir)|" \ - Make.inc || die - - sed -i \ - -e "s|,lib)|,$(get_libdir))|g" \ - -e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|g" \ - Makefile || die - - sed -i \ - -e "s|ar -rcs|$(tc-getAR) -rcs|g" \ - src/Makefile || die - - # disable doc install starting git fetching - sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die -} - -src_configure() { - # julia does not play well with the system versions of dsfmt, libuv, - # and utf8proc - - use system-llvm && ewarn "You have enabled system-llvm. This is unsupported by upstream and may not work." - - # USE_SYSTEM_LIBM=0 implies using external openlibm - cat <<-EOF > Make.user - USE_BINARYBUILDER:=0 - USE_SYSTEM_LLVM:=$(usex system-llvm 1 0) - USE_SYSTEM_LIBUNWIND:=1 - USE_SYSTEM_PCRE:=1 - USE_SYSTEM_LIBM:=0 - USE_SYSTEM_OPENLIBM:=1 - USE_SYSTEM_DSFMT:=0 - USE_SYSTEM_BLAS:=1 - USE_SYSTEM_LAPACK:=1 - USE_SYSTEM_GMP:=1 - USE_SYSTEM_MPFR:=1 - USE_SYSTEM_SUITESPARSE:=1 - USE_SYSTEM_LIBUV:=0 - USE_SYSTEM_UTF8PROC:=0 - USE_SYSTEM_MBEDTLS:=1 - USE_SYSTEM_LIBSSH2:=1 - USE_SYSTEM_CURL:=1 - USE_SYSTEM_LIBGIT2:=1 - USE_SYSTEM_PATCHELF:=1 - USE_SYSTEM_ZLIB:=1 - USE_SYSTEM_P7ZIP:=1 - VERBOSE=1 - libdir="${EROOT}/usr/$(get_libdir)" - EOF -} - -src_compile() { - - # Julia accesses /proc/self/mem on Linux - addpredict /proc/self/mem - - emake julia-release \ - prefix="${EPREFIX}/usr" DESTDIR="${D}" \ - CC="$(tc-getCC)" CXX="$(tc-getCXX)" - pax-mark m "$(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')" - emake -} - -src_install() { - emake install \ - prefix="${EPREFIX}/usr" DESTDIR="${D}" \ - CC="$(tc-getCC)" CXX="$(tc-getCXX)" - - if ! use system-llvm ; then - cp "${S}/usr/lib/libLLVM"-?jl.so "${ED}/usr/$(get_libdir)/julia/" || die - fi - - dodoc README.md - - mv "${ED}"/usr/etc/julia "${ED}"/etc || die - rmdir "${ED}"/usr/etc || die - mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/"${PF}" || die - rmdir "${ED}"/usr/share/doc/julia || die -} - -pkg_postinst() { - elog "To use Plots, you will need to install sci-visualization/gr." -} diff --git a/dev-lang/julia/julia-1.5.3.ebuild b/dev-lang/julia/julia-1.5.3.ebuild new file mode 100644 index 000000000000..58e0c6d0bba6 --- /dev/null +++ b/dev-lang/julia/julia-1.5.3.ebuild @@ -0,0 +1,212 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit llvm pax-utils toolchain-funcs + +# correct versions for stdlibs are in deps/checksums +# for everything else, run with network-sandbox and wait for the crash + +MY_PV="${PV//_rc/-rc}" +MY_DSFMT_V="2.2.3" +MY_LIBUV_V="1fcc6d66f9df74189c74d3d390f02202bb7db953" +MY_LIBWHICH_V="81e9723c0273d78493dc8c8ed570f68d9ce7e89e" +MY_LLVM_V="9.0.1" +MY_PKG_V="49908bffe83790bc7cf3c5d46faf3667f8902ad4" +MY_UNICODE_V="13.0.0" +MY_UTF8PROC_V="0890a538bf8238cded9be0c81171f57e43f2c755" + +DESCRIPTION="High-performance programming language for technical computing" +HOMEPAGE="https://julialang.org/" +SRC_URI=" + https://github.com/JuliaLang/${PN}/releases/download/v${MY_PV}/${PN}-${MY_PV}.tar.gz + https://api.github.com/repos/JuliaLang/libuv/tarball/${MY_LIBUV_V} -> ${PN}-libuv-${MY_LIBUV_V}.tar.gz + https://api.github.com/repos/JuliaLang/utf8proc/tarball/${MY_UTF8PROC_V} -> ${PN}-utf8proc-${MY_UTF8PROC_V}.tar.gz + https://api.github.com/repos/vtjnash/libwhich/tarball/${MY_LIBWHICH_V} -> ${PN}-libwhich-${MY_LIBWHICH_V}.tar.gz + http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${MY_DSFMT_V}.tar.gz -> ${PN}-dsfmt-${MY_DSFMT_V}.tar.gz + http://www.unicode.org/Public/${MY_UNICODE_V}/ucd/UnicodeData.txt -> ${PN}-UnicodeData-${MY_UNICODE_V}.txt + https://dev.gentoo.org/~tamiko/distfiles/Pkg-${MY_PKG_V}.tar.gz -> ${PN}-Pkg-${MY_PKG_V}.tar.gz + !system-llvm? ( https://github.com/llvm/llvm-project/releases/download/llvmorg-${MY_LLVM_V}/llvm-${MY_LLVM_V}.src.tar.xz ) +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="system-llvm" + +RDEPEND=" + system-llvm? ( sys-devel/llvm:9=[llvm_targets_NVPTX(-)] ) + !system-llvm? ( dev-util/cmake ) +" +LLVM_MAX_SLOT=9 + +# Silence some QA warnings. The julia build system does not use user +# defined CFLAGS for some of the generated binary modules. +QA_FLAGS_IGNORED='.*' + +RDEPEND+=" + dev-libs/double-conversion:0= + dev-libs/gmp:0= + dev-libs/libgit2:0 + >=dev-libs/libpcre2-10.23:0=[jit,unicode] + dev-libs/mpfr:0= + dev-libs/openspecfun + >=net-libs/mbedtls-2.2 + net-libs/libssh2 + sci-libs/amd:0= + sci-libs/arpack:0= + sci-libs/camd:0= + sci-libs/ccolamd:0= + sci-libs/cholmod:0= + sci-libs/colamd:0= + sci-libs/fftw:3.0=[threads] + sci-libs/openlibm:0= + sci-libs/spqr:0= + sci-libs/umfpack:0= + sci-mathematics/glpk:0= + >=sys-libs/libunwind-1.1:0= + sys-libs/readline:0= + sys-libs/zlib:0= + >=virtual/blas-3.6 + virtual/lapack" + +DEPEND="${RDEPEND} + dev-util/patchelf + virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${PN}-1.1.0-fix_build_system.patch + "${FILESDIR}"/${PN}-1.1.0-fix_llvm_install.patch + "${FILESDIR}"/${PN}-1.4.0-no_symlink_llvm.patch +) + +S="${WORKDIR}/${PN}-${MY_PV}" + +pkg_setup() { + use system-llvm && llvm_pkg_setup +} + +src_unpack() { + tounpack=(${A}) + # the main source tree, followed by deps + unpack "${A/%\ */}" + + mkdir -p "${S}/deps/srccache/" + for i in "${tounpack[@]:1}"; do + if [[ $i == *Pkg* ]] || [[ $i = *Statistics* ]]; then + # Bundled Pkg and Statistics packages go into ./stdlib + local tarball="${i#julia-}" + cp "${DISTDIR}/${i}" "${S}/stdlib/srccache/${tarball}" || die + # and we have to fix up the sha1sum + local name="${tarball%-*}" + local sha1="${tarball#*-}" + sha1="${sha1%.tar*}" + einfo "using patched stdlib package \"${name}\"" + sed -i -e "s/PKG_SHA1 = .*/PKG_SHA1 = ${sha1}/" "${S}/stdlib/${name}.version" || die + else + cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die + fi + done +} + +src_prepare() { + default + + # Sledgehammer: + # - prevent fetching of bundled stuff in compile and install phase + # - respect CFLAGS + # - respect EPREFIX and Gentoo specific paths + + sed -i \ + -e "s|GENTOOCFLAGS|${CFLAGS}|g" \ + -e "s|/usr/include|${EPREFIX}/usr/include|g" \ + deps/Makefile || die + + sed -i \ + -e "s|GENTOOCFLAGS|${CFLAGS}|g" \ + -e "s|GENTOOLIBDIR|$(get_libdir)|" \ + Make.inc || die + + sed -i \ + -e "s|,lib)|,$(get_libdir))|g" \ + -e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|g" \ + Makefile || die + + sed -i \ + -e "s|ar -rcs|$(tc-getAR) -rcs|g" \ + src/Makefile || die + + # disable doc install starting git fetching + sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die +} + +src_configure() { + # julia does not play well with the system versions of dsfmt, libuv, + # and utf8proc + + use system-llvm && ewarn "You have enabled system-llvm. This is unsupported by upstream and may not work." + + # USE_SYSTEM_LIBM=0 implies using external openlibm + cat <<-EOF > Make.user + USE_BINARYBUILDER:=0 + USE_SYSTEM_LLVM:=$(usex system-llvm 1 0) + USE_SYSTEM_LIBUNWIND:=1 + USE_SYSTEM_PCRE:=1 + USE_SYSTEM_LIBM:=0 + USE_SYSTEM_OPENLIBM:=1 + USE_SYSTEM_DSFMT:=0 + USE_SYSTEM_BLAS:=1 + USE_SYSTEM_LAPACK:=1 + USE_SYSTEM_GMP:=1 + USE_SYSTEM_MPFR:=1 + USE_SYSTEM_SUITESPARSE:=1 + USE_SYSTEM_LIBUV:=0 + USE_SYSTEM_UTF8PROC:=0 + USE_SYSTEM_MBEDTLS:=1 + USE_SYSTEM_LIBSSH2:=1 + USE_SYSTEM_CURL:=1 + USE_SYSTEM_LIBGIT2:=1 + USE_SYSTEM_PATCHELF:=1 + USE_SYSTEM_ZLIB:=1 + USE_SYSTEM_P7ZIP:=1 + VERBOSE=1 + libdir="${EROOT}/usr/$(get_libdir)" + EOF +} + +src_compile() { + + # Julia accesses /proc/self/mem on Linux + addpredict /proc/self/mem + + emake julia-release \ + prefix="${EPREFIX}/usr" DESTDIR="${D}" \ + CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" + pax-mark m "$(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')" + emake +} + +src_install() { + emake install \ + prefix="${EPREFIX}/usr" DESTDIR="${D}" \ + CC="$(tc-getCC)" CXX="$(tc-getCXX)" + + if ! use system-llvm ; then + cp "${S}/usr/lib/libLLVM"-?jl.so "${ED}/usr/$(get_libdir)/julia/" || die + fi + + dodoc README.md + + mv "${ED}"/usr/etc/julia "${ED}"/etc || die + rmdir "${ED}"/usr/etc || die + mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/"${PF}" || die + rmdir "${ED}"/usr/share/doc/julia || die + + # The appdata directory is deprecated. + mv usr/share/{appdata,metainfo}/ || die +} + +pkg_postinst() { + elog "To use Plots, you will need to install sci-visualization/gr." +} diff --git a/dev-lang/lua/Manifest b/dev-lang/lua/Manifest index 9ec5817eefd5..bfc13415a53a 100644 --- a/dev-lang/lua/Manifest +++ b/dev-lang/lua/Manifest @@ -32,10 +32,10 @@ DIST lua-5.3.4-tests.tar.gz 103438 BLAKE2B ac82708022e7729039111c3df4fe24302c8d0 DIST lua-5.3.6.tar.gz 303770 BLAKE2B 07c37c56f43095a4f6ca8eb8b3adf19afd53107c02b62b2bcb3619565cb2100d5f823493eef93092d5e312b30fc28885a6d9e8f0ba5a23b5bed86dc4515a5d61 SHA512 ccc380d5e114d54504de0bfb0321ca25ec325d6ff1bfee44b11870b660762d1a9bf120490c027a0088128b58bb6b5271bbc648400cab84d2dc22b512c4841681 DIST lua-5.4.1-tests.tar.gz 128646 BLAKE2B 2dae666e89bacf986228a33fc665bbc510e738d9f8791933f5048e4bbecaf6cd59c5e70e488d332b16960225aac3b9fae46e500f3b54856bb6aabe8cd3a5c932 SHA512 ac7cf113d96f8fe2af4f104297a70debd3bede5997627fc18db6b5d9c78ff49e05a165f5855894def5656c6dcc2d7d9ccce741c90da17698a5c714a33828f49a DIST lua-5.4.1.tar.gz 353965 BLAKE2B e5b46fcf2eb2ea9bd235793cefec2bf19f185ed51b11bc6133bda4e3639f09194378b2fd55544972ee32576751e80bba87b3b61ec3d4a0910592d6e5cb4a4c77 SHA512 49ffbe814ec41e515fc8502b6958151c6c56aa171412f0b211ad9de934be2c958c3709d49435885ddea0fa6765ed511dafb3537558950ff3b4261338214f1571 -EBUILD lua-5.1.5-r105.ebuild 3999 BLAKE2B 69d5c5489393d7df3932d5b8fdbe6879ae860642b6827b30adca280c5780ec932db977286b1001e015da6e31f6bd37dd0d9ebbf7611f076f417ca24eabc99416 SHA512 4348b4976ddc1635d9478a1e869641431e1838aff1b28cc047ad4a8ac5780ba1ece2e96aa8304580c73c5bf434b5a14273da61e2b1a71fe64dc217c31b8f24b0 +EBUILD lua-5.1.5-r105.ebuild 4047 BLAKE2B 91971f1b59e3a7c94a2ef4f7585a6925e54e74ae5a677c2880c97a2ba839ed43e4fdcea1e48ab09a0e029fa6699e830350326329298c63375624aa5973da3861 SHA512 dc3642a6527797d706ad2413efb9be5e4079cbcdf8d7d59684ae59364f18a342cddff5d92596de42d2b34c316e9127446521c9f18026ad56686031746d0d9fb7 EBUILD lua-5.1.5-r4.ebuild 3626 BLAKE2B b8940a7010239a29ad1920fe7d9e9f799ac1472c10ec92f4b24f122afbc9dce6bc807e93b4e1f4f0c4413661dc28d5205a2e53c5228a34e2e26b26d184e2d24e SHA512 89721d186390aae36b3b64f0c12ddbd14f8dec843e4f46b0ac6e384c39f6c70d657827ac0af24db51733f8fc534168859391178804c0c06920071f66c2e14235 EBUILD lua-5.1.5-r5.ebuild 3181 BLAKE2B 190ef3d7da2eaada3c3eb25e5d524e4b3efb81d77d7ae566b25713b50cad8f2c7822eb490a4ebdf0ab6eb3f6f6d9a5ac0c6bc813f7d0329905b9f98e6ca04213 SHA512 7497bf82661f2c17c4cf07ff6511b8595f06336defbad1feb2ac483ef024ae6473bec3cdcb925b9d18eaa5091980f1c10c21ea1d48418af1d0cd5ced4cc3b349 -EBUILD lua-5.2.4-r2.ebuild 5767 BLAKE2B 420ac64f300c1aee86945bcd06cf214cae6cf696129a5cd9a697f1dab8440e6870d4601ddea39829a4b053cd3119aa3bfdbdc9b4c2110468e708b1cb6581f50f SHA512 7eedb9aeedb966acaa2512c98b50617e849b61693c1622617d0d2e2f1db79832fa64d03cff62e234f92ce4810f67674e988f0ca81610b04eea90553b22315dd3 -EBUILD lua-5.3.6-r1.ebuild 5752 BLAKE2B 09377d6f44d647adcc820e26448cf9020885020bd4501f458add142d50f31584a31e12e2c111c06dcf894b75521e1c6c94214da7bc388fefd66bc1b097b59b5d SHA512 526a6bf723702f02f4e079ecd0eba98e7a26be5b57f01861efe5b5d83ff0a8193c0280e80847323529e329b97ef6d9d0b957c2dcfeeaa3b16c9e4e5027cc5040 -EBUILD lua-5.4.1-r1.ebuild 5715 BLAKE2B ccb7a8033e1c10a9e341435c9a5e9bd334057ec64449e4b7179a7fa7fc5ee975497f1400536ec9486c6b94e3367205103dab707fd0fa66d28edd46120ed57df5 SHA512 4b7e180cdd830dac7a7886fbd3703f6296d97046b0ee898dd82eda97df9459d5e586f60bc5535f5ff383c4e54e653cb850fafa7bd4137d161d96d94101177153 +EBUILD lua-5.2.4-r2.ebuild 5815 BLAKE2B e3741fe56b47d500f6bf9ed09a9b4345564e9beaeae4546860223d5bf97d6099db6cd5e4799f2e85b793fe67f3233e291476a9dca68b1a5389a15a3be69667d8 SHA512 1d07f7d52b8c6a773d486d83dfdb2a13b8504c065a68cf500fca4fc086c9a49bbe489e03151b05af42d74e20627a13b879131aade0a941439c923efa69014041 +EBUILD lua-5.3.6-r1.ebuild 5800 BLAKE2B d3ba9b65ef465fd0ba3350eacc83d282618591c72e4866c7f1730406c118f2956cb53e2f0b015d14cfe2ed601820e44cd415658f518512fe6f811438b9d15c6a SHA512 e25977c341752f4f3e65aac0746969df628009e288bb81545e4b7897e6a4d56da0f6021c59162ad7473ff0487e2aa71015f2ca75d893c84fe883f447e911c241 +EBUILD lua-5.4.1-r1.ebuild 5763 BLAKE2B c36fbfbfe4d672a96334fc9a8d02ebe727490b3bc674a9895a9e90a315a2d507e04925392f9a02a848e0514de5eb2937680c3fb32da863f2f0fa5f90d2d330b0 SHA512 7469c2131d815a830eee6822623022ea29ae6526534eff52ad983955ae521e2165a07c15ada3daec2547b633d22f1b99cb5d5a8ebf158a9a98948ab864f2b294 MISC metadata.xml 524 BLAKE2B 688341a9dfa433bbc2e3fc1edb8a44d53dcee036afeb5b2c7c8fbfa0f81d1e53a6c7910b32bec637ad1cd518e48afdd0806a286dadbb6c7a88853a93aa7f3545 SHA512 92ee6e13c3fcc5ba1d2cf3ec58a54b051f1fae8646b64fae25923108a78abc77b05992abbed5a04afbc2043ea0b47749544e348506ab554d57b19bcf3b435e52 diff --git a/dev-lang/lua/lua-5.1.5-r105.ebuild b/dev-lang/lua/lua-5.1.5-r105.ebuild index b3446900028f..31cf0b445a0f 100644 --- a/dev-lang/lua/lua-5.1.5-r105.ebuild +++ b/dev-lang/lua/lua-5.1.5-r105.ebuild @@ -15,7 +15,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~ IUSE="+deprecated readline static" RDEPEND="readline? ( >=sys-libs/readline-6.2_p5-r1:0=[${MULTILIB_USEDEP}] ) - app-eselect/eselect-lua + >=app-eselect/eselect-lua-3 !dev-lang/lua:0" DEPEND="${RDEPEND} sys-devel/libtool" @@ -140,6 +140,8 @@ multilib_src_test() { } pkg_postinst() { + eselect lua set --if-unset "${PN}${SLOT}" + if has_version "app-editor/emacs"; then if ! has_version "app-emacs/lua-mode"; then einfo "Install app-emacs/lua-mode for lua support for emacs" diff --git a/dev-lang/lua/lua-5.2.4-r2.ebuild b/dev-lang/lua/lua-5.2.4-r2.ebuild index e9de80efdfb9..79355e284ced 100644 --- a/dev-lang/lua/lua-5.2.4-r2.ebuild +++ b/dev-lang/lua/lua-5.2.4-r2.ebuild @@ -21,7 +21,7 @@ IUSE="+deprecated readline static test test-complete" RESTRICT="!test? ( test )" RDEPEND="readline? ( sys-libs/readline:0= ) - app-eselect/eselect-lua + >=app-eselect/eselect-lua-3 !dev-lang/lua:0" DEPEND="${RDEPEND} sys-devel/libtool" @@ -192,6 +192,8 @@ src_test() { } pkg_postinst() { + eselect lua set --if-unset "${PN}${SLOT}" + if has_version "app-editor/emacs"; then if ! has_version "app-emacs/lua-mode"; then einfo "Install app-emacs/lua-mode for lua support for emacs" diff --git a/dev-lang/lua/lua-5.3.6-r1.ebuild b/dev-lang/lua/lua-5.3.6-r1.ebuild index a65d701dcd53..f6968026e01c 100644 --- a/dev-lang/lua/lua-5.3.6-r1.ebuild +++ b/dev-lang/lua/lua-5.3.6-r1.ebuild @@ -21,7 +21,7 @@ IUSE="+deprecated readline static test test-complete" RESTRICT="!test? ( test )" RDEPEND="readline? ( sys-libs/readline:0= ) - app-eselect/eselect-lua + >=app-eselect/eselect-lua-3 !dev-lang/lua:0" DEPEND="${RDEPEND} sys-devel/libtool" @@ -192,6 +192,8 @@ src_test() { } pkg_postinst() { + eselect lua set --if-unset "${PN}${SLOT}" + if has_version "app-editor/emacs"; then if ! has_version "app-emacs/lua-mode"; then einfo "Install app-emacs/lua-mode for lua support for emacs" diff --git a/dev-lang/lua/lua-5.4.1-r1.ebuild b/dev-lang/lua/lua-5.4.1-r1.ebuild index 898ba67e1e45..e21e767c10b0 100644 --- a/dev-lang/lua/lua-5.4.1-r1.ebuild +++ b/dev-lang/lua/lua-5.4.1-r1.ebuild @@ -18,7 +18,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~ IUSE="+deprecated readline static test test-complete" COMMON_DEPEND=" - app-eselect/eselect-lua + >=app-eselect/eselect-lua-3 readline? ( sys-libs/readline:0= ) !dev-lang/lua:0" DEPEND="${COMMON_DEPEND}" @@ -189,6 +189,8 @@ src_test() { } pkg_postinst() { + eselect lua set --if-unset "${PN}${SLOT}" + if has_version "app-editor/emacs"; then if ! has_version "app-emacs/lua-mode"; then einfo "Install app-emacs/lua-mode for lua support for emacs" diff --git a/dev-lang/mujs/Manifest b/dev-lang/mujs/Manifest index 7d665ab768ae..7e8e94758baa 100644 --- a/dev-lang/mujs/Manifest +++ b/dev-lang/mujs/Manifest @@ -1,8 +1,4 @@ AUX mujs-1.0.5-flags.patch 839 BLAKE2B 843d1bf60167dfb91a5736ee936098c8f6b716f7a70118512d102adb3dc00223d5a3f1fb8da3a57b89797d5b26ebf8120cc1ef2013162aeff288be07cb99d99f SHA512 35681b868e129edffe27e41b793ef073b9ebeb5842212116f9740257515a3fb0d2f00d828a72d96b630c7632184ff9340325a5d79503e5a4c5a52892bd26f4bd -DIST mujs-1.0.6.tar.gz 121385 BLAKE2B b74da9cc9df6c51d81fe4b6170fddd9bfd3e37cc1c48509ddbcc9b657feb7169cfa98427770a118fb9c0923e70320668198739ea111cbd5d1c2303b2ada7093d SHA512 c3062348dcc79b8ea3726fc528b3ba765d3462232059617b9ab221ba47fa904cc81a305a6199a9a2cea24a2d891ca63d475b4884cd4e53fa715b3a55f51ca4d9 -DIST mujs-1.0.7.tar.xz 93928 BLAKE2B 3c29ad3c23b75ee310824a36c0b08ede07b4ebaebff78558d07bc0eda55d6a994551502089cebd5b53ae24364ec1170e0865b7f1560d909dd15a18040666fea2 SHA512 30cc06ce4a608e091d46ba903ffc2eda29972cf583eb077d7824627fa20423c4721a406bf4271ebd5e5cade74f34e19acc9cffbc6d4d44314085a5525e91564f DIST mujs-1.0.9.tar.gz 123113 BLAKE2B c55deaf14508c412394bf5fe3a53ef581d4e4726024d65f2ba5155eb2400a6e2f043c9f6721b170d19297e2cd38c62c462f3b4e102eb4bfe6e7857b40156c18b SHA512 a3dbc8dbf5c16b7de9803954fe38ea9f77c0e5b7de3895966ec0877e063d463c9950499791ea0d102e464bd0426413689f3edb15e38db3f13915d72f27556725 -EBUILD mujs-1.0.6.ebuild 1306 BLAKE2B 3b8443a25740336511efe985d48079fccb76a8c8c5e9bf69ca307c0393923423339a673eab22310cec31739e88bf62799126a17f4b6fa6e52de111978731a0dd SHA512 cbd0bfdccee68ea8d01c5438fc6f27169f3afade7f5fb809c117b4d9fe8fcc3dff98473480983c17fc7ca6ba6969e474e6ddc021ab966eb5895fc740ccddb537 -EBUILD mujs-1.0.7.ebuild 1277 BLAKE2B 6fe2022d19344c58d2ca3c69fab015aee765eca4b7818249e8c7b064cad5a95256563707766d4d02d2c87e963884afc97ac976dfbc68e2120148ec7898fdf396 SHA512 18da4d979159a1cbb1051d1bcacece833b4b0a311960411cfe0185c2ae931a64a352429d2797450e495f681f5a52529ec1eb4af7be7ce6df4f3ae7213f2d7fb0 EBUILD mujs-1.0.9.ebuild 1382 BLAKE2B 20eb932acd9e393a3180105580dedeb681e9f577ea7ffd2474909342fdadf22424b594ed72ffff16d1df303a467b6f25f43b8a699caac35c010f72109b5846dc SHA512 eb702eee9ff0a5e1036a72d02a4841b5fd7b5326788c75a6cb2456687aa1fe8334cca5f70eee806dc42affbd666722490b19339e54836634fdc1c78969c81d18 -MISC metadata.xml 615 BLAKE2B 6eaeafe3a3827b4df244d65ebad6f90b1340ea690679d4b98bfd30ac36d985797a06d511c24fbbb8a458df7dbea1270e2ebe789b8eb2222fccdb2d7192059b49 SHA512 47d65a0ab37ab4defb5b2d5bba8f7a9b4abe263c59c65884da1d9eb895eab5a90e49a6e849e71ed0e54826988301ece5f973a54bb19c06ae771a2b104d3f9c56 +MISC metadata.xml 547 BLAKE2B fcf818d9a103347b5b47f7b7c77654e84db6aa2a8dd12f169d58522cb47a455f02f0bf66fc85057a2a10916c4a24dcdca87a5f2e12c54d184ea8d5af1db65810 SHA512 e6bac32e74df77c2ded4e9a9e6200ab76e06217b9a236d6bf5f0df23a031eab2519f26e3d402ff106f9506a4dbe3baf66cae5f961f6d016e7c42fe83fc532799 diff --git a/dev-lang/mujs/metadata.xml b/dev-lang/mujs/metadata.xml index 20d9220869e6..e253a1b97495 100644 --- a/dev-lang/mujs/metadata.xml +++ b/dev-lang/mujs/metadata.xml @@ -4,7 +4,6 @@ sam@gentoo.org Sam James - Caretaker; feel free to share this pkg MuJS is a lightweight Javascript interpreter designed for embedding in diff --git a/dev-lang/mujs/mujs-1.0.6.ebuild b/dev-lang/mujs/mujs-1.0.6.ebuild deleted file mode 100644 index c6663ac60e38..000000000000 --- a/dev-lang/mujs/mujs-1.0.6.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit flag-o-matic toolchain-funcs - -DESCRIPTION="An embeddable Javascript interpreter in C." -HOMEPAGE=" - https://mujs.com/ - https://github.com/ccxvii/mujs/ -" -SRC_URI="https://github.com/ccxvii/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="ISC" -# subslot matches SONAME -SLOT="0/${PV}" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 s390 sparc x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" -IUSE="static-libs" - -RDEPEND="sys-libs/readline:0=" -DEPEND="${RDEPEND}" - -PATCHES=( - "${FILESDIR}/${PN}-1.0.5-flags.patch" -) - -src_prepare() { - default - - tc-export AR CC - - # library's ABI (and API) changes in ~each release: - # diff 'usr/includemujs.h' across releases to validate - append-cflags -fPIC -Wl,-soname=lib${PN}.so.${PV} -} - -src_compile() { - emake VERSION=${PV} prefix=/usr shared -} - -src_install() { - local myeconfargs=( - DESTDIR="${ED}" - install-shared - libdir="/usr/$(get_libdir)" - prefix="/usr" - VERSION="${PV}" - $(usex static-libs install-static '') - ) - - emake "${myeconfargs[@]}" - - mv -v "${ED}"/usr/$(get_libdir)/lib${PN}.so{,.${PV}} || die - - dosym lib${PN}.so.${PV} /usr/$(get_libdir)/lib${PN}.so - dosym lib${PN}.so.${PV} /usr/$(get_libdir)/lib${PN}.so.${PV:0:1} -} diff --git a/dev-lang/mujs/mujs-1.0.7.ebuild b/dev-lang/mujs/mujs-1.0.7.ebuild deleted file mode 100644 index b95335f324a9..000000000000 --- a/dev-lang/mujs/mujs-1.0.7.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit flag-o-matic toolchain-funcs - -DESCRIPTION="An embeddable Javascript interpreter in C." -HOMEPAGE=" - https://mujs.com/ - https://github.com/ccxvii/mujs/ -" -SRC_URI="https://mujs.com/downloads/${P}.tar.xz" - -LICENSE="ISC" -# subslot matches SONAME -SLOT="0/${PV}" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 s390 sparc x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" -IUSE="static-libs" - -RDEPEND="sys-libs/readline:0=" -DEPEND="${RDEPEND}" - -PATCHES=( - "${FILESDIR}/${PN}-1.0.5-flags.patch" -) - -src_prepare() { - default - - tc-export AR CC - - # library's ABI (and API) changes in ~each release: - # diff 'usr/includemujs.h' across releases to validate - append-cflags -fPIC -Wl,-soname=lib${PN}.so.${PV} -} - -src_compile() { - emake VERSION=${PV} prefix=/usr shared -} - -src_install() { - local myeconfargs=( - DESTDIR="${ED}" - install-shared - libdir="/usr/$(get_libdir)" - prefix="/usr" - VERSION="${PV}" - $(usex static-libs install-static '') - ) - - emake "${myeconfargs[@]}" - - mv -v "${ED}"/usr/$(get_libdir)/lib${PN}.so{,.${PV}} || die - - dosym lib${PN}.so.${PV} /usr/$(get_libdir)/lib${PN}.so - dosym lib${PN}.so.${PV} /usr/$(get_libdir)/lib${PN}.so.${PV:0:1} -} diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest index 3817c3166f7e..6d3971e8db51 100644 --- a/dev-lang/php/Manifest +++ b/dev-lang/php/Manifest @@ -1,5 +1,6 @@ AUX 20php5-envd 145 BLAKE2B 06476b8fc04d1e835496b417ac752f0834ddbe8584e4fddc6db0aa5e6845b82cdea0a1355c77125375dcdd0f0a3c19de5f3a8a64ee93950f96c437a16f971567 SHA512 581aa86479e3cd584ee1bc6dc6d4a135fe8ec343fe5519566d728d81f7018cfb23658bd0c0368951d380982c75adbb4f45acf3c146868aaf4e4ec8e9f2fad1ce AUX php-7.2.13-intl-use-icu-namespace.patch 11499 BLAKE2B 0dca597d5afd0309595499e3ff860e2d83183e570d02f202a1e2966d430606f09b8dc7427c4007e791914c8ee093a2e7cbf7372baa7896ac06d1912f2e707c09 SHA512 1332eb76feda2100685e319ae046512cf12b55a0d2be537c2172ccf035b547d851f84fb7941389882d7e3d674d91441e018c7b8f1e3f0d4cced05c314d5821fe +AUX php-7.2.34-use-after-free-bug76047.patch 5542 BLAKE2B ccdabbe7a45f10f7a6666afabf27f2ab18ed011989447d950debe703e5f210d86a728c11bf883c74dc4ce88d634a8f10d1c9130a6e2dfb486ab92ebc1fb15e3c SHA512 8e2cc3dab0e3f3d7ba9b4a8cf4a16daa9cd908a5c1dc42ee1dfc44be82b4faffbb46b5bb0a88d15252edf4c95e05b4877c94aeaa05e9c511f3a49adafbc62c73 AUX php-7.4.13-issue80368.patch 746 BLAKE2B 1523fe9a451022dab7261c1e1866af702ff8bf9163f67cb99ec7617e3304e23f29ba8c54f36e5e154fc6e6563e660229b4bbf481263c4f34978a656e57f335f4 SHA512 744a9d81a7a0c6a7ac8ffd78678681a671c6a611ce36d56b53bb5fb4ed84a671e6eade85604c9adca4e2b48499ecc2046cd295dce4cdd4fa56952a4bae45c2e7 AUX php-fpm_at-simple.service 316 BLAKE2B 0ba10f3e3b004fbf14956e1e4f04f59b8a127e6717fe6b92c09b9f931033a11551c75fbbee9010f6b694c5a8758ca0eec9eed457ae304ba0dea8f2c256c3b8d4 SHA512 7367a3f8d3874f8e0c76f331ba613a0250db02f60ad9f87affaf448dcb5bc34bcecb91d88f415764a12b24b46ae3d1b738a002af9f77a4b707e916e83a0021fd AUX php-fpm_at.service 317 BLAKE2B f13fc38fcc0575a8517ee8d07b120efda37eabd2355061d0fdc303604c6b02ad42d7301180d86c977d5e585f5dd685343c592e37a6e0f44933707be79e0b77e0 SHA512 27982f9e2d958bfa75c89c7d3531e48d17fc388b1cdcbc8e09051b236b1184ee2baabdfcc567c19d9fcd067d4b3b86f171015616d8da42fccdabd89432d865e8 @@ -9,7 +10,7 @@ DIST php-7.2.34.tar.xz 12309432 BLAKE2B 50522786d39296bc7411931c4f357d53c7a25da2 DIST php-7.3.25.tar.xz 12136668 BLAKE2B b9bfb1de15a3f02bf5d228a2cf9b307c9eeadaea10cac22d40647db0147f4f93b41858ea4affa0701478dd397f0a87cae4e2f29a378f7c6730fdf7da5c48e0e8 SHA512 30b27deab12cf2544671afbbdaefd4bfea308eeed8e9c2150751c5bc9ece18d981bcc020eace35cbdbe88b45cffba8a1fca718fc4e74c3a7903d8b038015d31e DIST php-7.4.13.tar.xz 10319848 BLAKE2B c1da97eb605f1fc2b36190bfe92feb1fd527f4aaf1483865561a08cf990e70445f5520c8abcea7d9c6482dc47e500507644e0cd2cc756cfa99adfec0359cd795 SHA512 3525f4fd4ea6d97ed75ed8360d2a851e8577c09247ae3c6eb7e7b43265ee418297d91c1022bf5bbb64d1eecdebbbc2e0f6d42b560f584a741b475db2c6897ea7 DIST php-8.0.0.tar.xz 10726788 BLAKE2B 16c4aa075ba5dee6d47086323cd152b33dc7b62ac6b3ab6637ec386c1048e256a160d72e72cbc88450af1e84389042ebf2d644d3361c9a34879cc494d5b9b64f SHA512 65630940c95436f3e3ecb71b9f1ca15bb4118267dbda604ed1ee009d528c21a3ec21f48a15e4dd3529fe9cd2b354c211a7b4975b5de43e1f2afa6656cabe1fd0 -EBUILD php-7.2.34.ebuild 22651 BLAKE2B 9431a6e26752b96101826946c969e4ac1a2a1c04b9b42ad7f2b8f4733d8e3ec0614b75dddb2a54c40868d76e7a9b3a46001dc0b2a5152ac540175b0875753603 SHA512 bb61083533a443fe07b76c30028a3b7b8657a7c51ece6003ebc44a5e53224a70e8cad6d82fadcd509ea1ae4e4383ddad1c8d7edea7f200c5d37e445a88913d41 +EBUILD php-7.2.34-r1.ebuild 22873 BLAKE2B 116336b7a675c939dd7eb690012ac49a4f47451caaa3ebab8f2aef2f1fd70bb971d51c4a4fc1995b66089d29abd0e358cc1fb9c21b21676ca308565c1cdf1b64 SHA512 1b82aa52cf0b9d53bd0b8753578c18ef88f999bf479f5c7ae2a9a6a43d8dc880169f485c11bc4fd4a53c153e3a5dfbad5f0bea369b9945dbeb067cd645a6306c EBUILD php-7.3.25.ebuild 22664 BLAKE2B 2191d27cc589cf5b0d85c33c3c81cddec0389719973c82b2665b4ae5be145e08c427fe4d59978ba07d04e3b3026f54c5471a51f20ce8ab02e55f4e6a269a3e47 SHA512 70a1783a530b13c38f1a9ecb8c381cd34ae9cad6124ff96cf7b28bdb97c447f133acbdd9bbe515b799eecfdc201d7d3524079a405fa989d07e7b9661916b374b EBUILD php-7.4.13.ebuild 21413 BLAKE2B 274ac296e7874ec14d3f458672156dc127c83d6627419856ddf762cd66e2ddb2b081a671d7f135e8827b5f718508b4cee016d52c93e759cc1dacb364f945cfdb SHA512 2be6393ecc2d877ccd13c7731794c1fbd817594ac33576e04e7d1510d8c6f1e8fbf49a6d4dd00e7e65e266853e12c9042fb94d1e4cf12d7ad2999fc1b85a4979 EBUILD php-8.0.0.ebuild 21276 BLAKE2B e58d02e2c685bd56435360a6c3801c1c6e1f7d27f9614cac40737efefc62e8e62c168556a7c139b7e3b49171f6f3d2f65dc9f0de77848362dc8be0a7af22517b SHA512 5f4a494f280fd5079d80ea27ea25b6bf14a4cfc33380cefbdfd9f5b92367eb734bcc7fcf0cd4bc75740113e73531449d77b0af1c748701034845cbf19aaf1be4 diff --git a/dev-lang/php/files/php-7.2.34-use-after-free-bug76047.patch b/dev-lang/php/files/php-7.2.34-use-after-free-bug76047.patch new file mode 100644 index 000000000000..b3a864ee82a8 --- /dev/null +++ b/dev-lang/php/files/php-7.2.34-use-after-free-bug76047.patch @@ -0,0 +1,174 @@ +Backport of https://git.php.net/?p=php-src.git;a=commit;h=ef1e4891b47949c8dc0f9482eef9454a0ecdfa1d + +--- a/Zend/tests/bug52361.phpt ++++ b/Zend/tests/bug52361.phpt +@@ -25,9 +25,8 @@ try { + --EXPECTF-- + 1. Exception: aaa in %sbug52361.php:5 + Stack trace: +-#0 %sbug52361.php(13): aaa->__destruct() +-#1 %sbug52361.php(16): bbb() +-#2 {main} ++#0 %sbug52361.php(16): aaa->__destruct() ++#1 {main} + 2. Exception: bbb in %sbug52361.php:13 + Stack trace: + #0 %sbug52361.php(16): bbb() +--- /dev/null ++++ b/Zend/tests/bug76047.phpt +@@ -0,0 +1,68 @@ ++--TEST-- ++Bug #76047: Use-after-free when accessing already destructed backtrace arguments ++--FILE-- ++a); ++ $backtrace = (new Exception)->getTrace(); ++ var_dump($backtrace); ++ } ++} ++ ++function test($arg) { ++ $arg = str_shuffle(str_repeat('A', 79)); ++ $vuln = new Vuln(); ++ $vuln->a = $arg; ++} ++ ++function test2($arg) { ++ $$arg = 1; // Trigger symbol table ++ $arg = str_shuffle(str_repeat('A', 79)); ++ $vuln = new Vuln(); ++ $vuln->a = $arg; ++} ++ ++test('x'); ++test2('x'); ++ ++?> ++--EXPECTF-- ++array(1) { ++ [0]=> ++ array(6) { ++ ["file"]=> ++ string(%d) "%s" ++ ["line"]=> ++ int(%d) ++ ["function"]=> ++ string(10) "__destruct" ++ ["class"]=> ++ string(4) "Vuln" ++ ["type"]=> ++ string(2) "->" ++ ["args"]=> ++ array(0) { ++ } ++ } ++} ++array(1) { ++ [0]=> ++ array(6) { ++ ["file"]=> ++ string(%d) "%s" ++ ["line"]=> ++ int(%d) ++ ["function"]=> ++ string(10) "__destruct" ++ ["class"]=> ++ string(4) "Vuln" ++ ["type"]=> ++ string(2) "->" ++ ["args"]=> ++ array(0) { ++ } ++ } ++} +--- a/Zend/zend_vm_def.h ++++ b/Zend/zend_vm_def.h +@@ -2366,9 +2366,9 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY) + uint32_t call_info = EX_CALL_INFO(); + + if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP|ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS|ZEND_CALL_ALLOCATED)) == 0)) { ++ EG(current_execute_data) = EX(prev_execute_data); + i_free_compiled_variables(execute_data); + +- EG(current_execute_data) = EX(prev_execute_data); + if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) { + zend_object *object = Z_OBJ(execute_data->This); + #if 0 +@@ -2394,12 +2394,12 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY) + LOAD_NEXT_OPLINE(); + ZEND_VM_LEAVE(); + } else if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP)) == 0)) { ++ EG(current_execute_data) = EX(prev_execute_data); + i_free_compiled_variables(execute_data); + + if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) { + zend_clean_and_cache_symbol_table(EX(symbol_table)); + } +- EG(current_execute_data) = EX(prev_execute_data); + + /* Free extra args before releasing the closure, + * as that may free the op_array. */ +@@ -2449,6 +2449,7 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY) + ZEND_VM_LEAVE(); + } else { + if (EXPECTED((call_info & ZEND_CALL_CODE) == 0)) { ++ EG(current_execute_data) = EX(prev_execute_data); + i_free_compiled_variables(execute_data); + if (UNEXPECTED(call_info & (ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS))) { + if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) { +@@ -2456,7 +2457,6 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY) + } + zend_vm_stack_free_extra_args_ex(call_info, execute_data); + } +- EG(current_execute_data) = EX(prev_execute_data); + if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) { + OBJ_RELEASE((zend_object*)EX(func)->op_array.prototype); + } +--- a/Zend/zend_vm_execute.h ++++ b/Zend/zend_vm_execute.h +@@ -434,9 +434,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_ + uint32_t call_info = EX_CALL_INFO(); + + if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP|ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS|ZEND_CALL_ALLOCATED)) == 0)) { ++ EG(current_execute_data) = EX(prev_execute_data); + i_free_compiled_variables(execute_data); + +- EG(current_execute_data) = EX(prev_execute_data); + if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) { + zend_object *object = Z_OBJ(execute_data->This); + #if 0 +@@ -462,12 +462,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_ + LOAD_NEXT_OPLINE(); + ZEND_VM_LEAVE(); + } else if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP)) == 0)) { ++ EG(current_execute_data) = EX(prev_execute_data); + i_free_compiled_variables(execute_data); + + if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) { + zend_clean_and_cache_symbol_table(EX(symbol_table)); + } +- EG(current_execute_data) = EX(prev_execute_data); + + /* Free extra args before releasing the closure, + * as that may free the op_array. */ +@@ -517,6 +517,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_ + ZEND_VM_LEAVE(); + } else { + if (EXPECTED((call_info & ZEND_CALL_CODE) == 0)) { ++ EG(current_execute_data) = EX(prev_execute_data); + i_free_compiled_variables(execute_data); + if (UNEXPECTED(call_info & (ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS))) { + if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) { +@@ -524,7 +525,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_ + } + zend_vm_stack_free_extra_args_ex(call_info, execute_data); + } +- EG(current_execute_data) = EX(prev_execute_data); + if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) { + OBJ_RELEASE((zend_object*)EX(func)->op_array.prototype); + } + diff --git a/dev-lang/php/php-7.2.34-r1.ebuild b/dev-lang/php/php-7.2.34-r1.ebuild new file mode 100644 index 000000000000..a534bc594e5f --- /dev/null +++ b/dev-lang/php/php-7.2.34-r1.ebuild @@ -0,0 +1,764 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +inherit flag-o-matic systemd autotools toolchain-funcs + +DESCRIPTION="The PHP language runtime engine" +HOMEPAGE="https://www.php.net/" +SRC_URI="https://www.php.net/distributions/${P}.tar.xz" + +LICENSE="PHP-3.01 + BSD + Zend-2.0 + bcmath? ( LGPL-2.1+ ) + fpm? ( BSD-2 ) + gd? ( gd ) + unicode? ( BSD-2 LGPL-2.1 )" + +SLOT="$(ver_cut 1-2)" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" + +# We can build the following SAPIs in the given order +SAPIS="embed cli cgi fpm apache2 phpdbg" + +# SAPIs and SAPI-specific USE flags (cli SAPI is default on): +IUSE="${IUSE} + ${SAPIS/cli/+cli} + threads" + +IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk + coverage +ctype curl debug + enchant exif +fileinfo +filter firebird + +flatfile ftp gd gdbm gmp +hash +iconv imap inifile + intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb + mhash mssql mysql mysqli nls + oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm + readline recode selinux +session session-mm sharedmem + +simplexml snmp soap sockets sodium spell sqlite ssl + sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode wddx webp + +xml xmlreader xmlwriter xmlrpc xpm xslt zip zip-encryption zlib" + +# The supported (that is, autodetected) versions of BDB are listed in +# the ./configure script. Other versions *work*, but we need to stick to +# the ones that can be detected to avoid a repeat of bug #564824. +COMMON_DEPEND=" + >=app-eselect/eselect-php-0.9.1[apache2?,fpm?] + >=dev-libs/libpcre-8.32[unicode] + fpm? ( acl? ( sys-apps/acl ) ) + apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] ) + argon2? ( app-crypt/argon2:= ) + berkdb? ( || ( sys-libs/db:5.3 + sys-libs/db:5.1 + sys-libs/db:4.8 + sys-libs/db:4.7 + sys-libs/db:4.6 + sys-libs/db:4.5 ) ) + bzip2? ( app-arch/bzip2:0= ) + cdb? ( || ( dev-db/cdb dev-db/tinycdb ) ) + coverage? ( dev-util/lcov ) + curl? ( >=net-misc/curl-7.10.5 ) + enchant? ( =virtual/jpeg-0-r3:0 media-libs/libpng:0= sys-libs/zlib ) + gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) + gmp? ( dev-libs/gmp:0= ) + iconv? ( virtual/libiconv ) + imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] ) + intl? ( dev-libs/icu:= ) + iodbc? ( dev-db/libiodbc ) + kerberos? ( virtual/krb5 ) + ldap? ( >=net-nds/openldap-1.2.11 ) + ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 ) + libedit? ( dev-libs/libedit ) + lmdb? ( dev-db/lmdb:= ) + mssql? ( dev-db/freetds[mssql] ) + nls? ( sys-devel/gettext ) + oci8-instant-client? ( dev-db/oracle-instantclient-basic ) + odbc? ( >=dev-db/unixODBC-1.8.13 ) + postgres? ( dev-db/postgresql:* ) + qdbm? ( dev-db/qdbm ) + readline? ( sys-libs/readline:0= ) + recode? ( app-text/recode ) + session-mm? ( dev-libs/mm ) + simplexml? ( >=dev-libs/libxml2-2.6.8 ) + snmp? ( >=net-analyzer/net-snmp-5.2 ) + soap? ( >=dev-libs/libxml2-2.6.8 ) + sodium? ( dev-libs/libsodium:= ) + spell? ( >=app-text/aspell-0.50 ) + sqlite? ( >=dev-db/sqlite-3.7.6.3 ) + ssl? ( + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + ) + tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) ) + tokyocabinet? ( dev-db/tokyocabinet ) + truetype? ( =media-libs/freetype-2* ) + unicode? ( dev-libs/oniguruma:= ) + wddx? ( >=dev-libs/libxml2-2.6.8 ) + webp? ( media-libs/libwebp:0= ) + xml? ( >=dev-libs/libxml2-2.6.8 ) + xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv ) + xmlreader? ( >=dev-libs/libxml2-2.6.8 ) + xmlwriter? ( >=dev-libs/libxml2-2.6.8 ) + xpm? ( x11-libs/libXpm ) + xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 ) + zip? ( sys-libs/zlib:0= ) + zip-encryption? ( >=dev-libs/libzip-1.2.0:= ) + zlib? ( sys-libs/zlib:0= ) +" + +RDEPEND="${COMMON_DEPEND} + virtual/mta + fpm? ( + selinux? ( sec-policy/selinux-phpfpm ) + systemd? ( sys-apps/systemd ) )" + +# Bison isn't actually needed when building from a release tarball +# However, the configure script will warn if it's absent or if you +# have an incompatible version installed. See bug 593278. +DEPEND="${COMMON_DEPEND} + app-arch/xz-utils + >=sys-devel/bison-3.0.1" + +BDEPEND="virtual/pkgconfig" + +# Without USE=readline or libedit, the interactive "php -a" CLI will hang. +REQUIRED_USE=" + || ( cli cgi fpm apache2 embed phpdbg ) + cli? ( ^^ ( readline libedit ) ) + truetype? ( gd zlib ) + webp? ( gd zlib ) + cjk? ( gd zlib ) + exif? ( gd zlib ) + xpm? ( gd zlib ) + gd? ( zlib ) + simplexml? ( xml ) + soap? ( xml ) + wddx? ( xml ) + xmlrpc? ( || ( xml iconv ) ) + xmlreader? ( xml ) + xslt? ( xml ) + ldap-sasl? ( ldap ) + mhash? ( hash ) + phar? ( hash ) + qdbm? ( !gdbm ) + readline? ( !libedit ) + recode? ( !imap !mysqli !mysql ) + session-mm? ( session !threads ) + mysql? ( hash || ( mysqli pdo ) ) + mysqli? ( hash ) + zip-encryption? ( zip ) +" + +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}/php-freetype-2.9.1.patch" + "${FILESDIR}/php-7.2.13-intl-use-icu-namespace.patch" + "${FILESDIR}/php-7.2.34-use-after-free-bug76047.patch" +) + +PHP_MV="$(ver_cut 1)" + +php_install_ini() { + local phpsapi="${1}" + + # work out where we are installing the ini file + php_set_ini_dir "${phpsapi}" + + # Always install the production INI file, bug 611214. + local phpinisrc="php.ini-production-${phpsapi}" + cp php.ini-production "${phpinisrc}" || die + + # default to /tmp for save_path, bug #282768 + sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die + + # Set the extension dir + sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \ + -i "${phpinisrc}" || die + + # Set the include path to point to where we want to find PEAR packages + sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die + + insinto "${PHP_INI_DIR#${EPREFIX}}" + newins "${phpinisrc}" php.ini + + elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}" + elog + + dodir "${PHP_EXT_INI_DIR#${EPREFIX}}" + dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}" + + if use opcache; then + elog "Adding opcache to $PHP_EXT_INI_DIR" + echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \ + "${D}/${PHP_EXT_INI_DIR}"/opcache.ini + dosym "../ext/opcache.ini" \ + "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini" + fi + + # SAPI-specific handling + if [[ "${sapi}" == "fpm" ]] ; then + einfo "Installing FPM config files php-fpm.conf and www.conf" + insinto "${PHP_INI_DIR#${EPREFIX}}" + doins sapi/fpm/php-fpm.conf + insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d" + doins sapi/fpm/www.conf + fi + + dodoc php.ini-{development,production} +} + +php_set_ini_dir() { + PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}" + PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext" + PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active" +} + +src_prepare() { + default + + # In php-7.x, the FPM pool configuration files have been split off + # of the main config. By default the pool config files go in + # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the + # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later + # we'll install the pool configuration file "www.conf" there. + php_set_ini_dir fpm + sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \ + sapi/fpm/php-fpm.conf.in \ + || die 'failed to move the include directory in php-fpm.conf' + + # Bug 669566 - necessary so that build tools are updated for commands like pecl + # Force rebuilding aclocal.m4 + rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare" + eautoreconf +} + +src_configure() { + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + # Fix building against >=ICU-68, https://bugs.php.net/80310 + append-cflags -DU_DEFINE_FALSE_AND_TRUE=1 + append-cxxflags -DU_DEFINE_FALSE_AND_TRUE=1 + + PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}" + + # The php-fpm config file wants localstatedir to be ${EPREFIX}/var + # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002. + local our_conf=( + --prefix="${PHP_DESTDIR}" + --mandir="${PHP_DESTDIR}/man" + --infodir="${PHP_DESTDIR}/info" + --libdir="${PHP_DESTDIR}/lib" + --with-libdir="$(get_libdir)" + --localstatedir="${EPREFIX}/var" + --without-pear + $(use_enable threads maintainer-zts) + ) + + our_conf+=( + $(use_with argon2 password-argon2 "${EPREFIX}/usr") + $(use_enable bcmath bcmath) + $(use_with bzip2 bz2 "${EPREFIX}/usr") + $(use_enable calendar calendar) + $(use_enable coverage gcov) + $(use_enable ctype ctype) + $(use_with curl curl "${EPREFIX}/usr") + $(use_enable xml dom) + $(use_with enchant enchant "${EPREFIX}/usr") + $(use_enable exif exif) + $(use_enable fileinfo fileinfo) + $(use_enable filter filter) + $(use_enable ftp ftp) + $(use_with nls gettext "${EPREFIX}/usr") + $(use_with gmp gmp "${EPREFIX}/usr") + $(use_enable hash hash) + $(use_with mhash mhash "${EPREFIX}/usr") + $(use_with iconv iconv \ + $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr")) + $(use_enable intl intl) + $(use_enable ipv6 ipv6) + $(use_enable json json) + $(use_with kerberos kerberos "${EPREFIX}/usr") + $(use_enable xml libxml) + $(use_with xml libxml-dir "${EPREFIX}/usr") + $(use_enable unicode mbstring) + $(use_with unicode onig "${EPREFIX}/usr") + $(use_with ssl openssl "${EPREFIX}/usr") + $(use_with ssl openssl-dir "${EPREFIX}/usr") + $(use_enable pcntl pcntl) + $(use_enable phar phar) + $(use_enable pdo pdo) + $(use_enable opcache opcache) + $(use_with postgres pgsql "${EPREFIX}/usr") + $(use_enable posix posix) + $(use_with spell pspell "${EPREFIX}/usr") + $(use_with recode recode "${EPREFIX}/usr") + $(use_enable simplexml simplexml) + $(use_enable sharedmem shmop) + $(use_with snmp snmp "${EPREFIX}/usr") + $(use_enable soap soap) + $(use_enable sockets sockets) + $(use_with sodium sodium "${EPREFIX}/usr") + $(use_with sqlite sqlite3 "${EPREFIX}/usr") + $(use_enable sysvipc sysvmsg) + $(use_enable sysvipc sysvsem) + $(use_enable sysvipc sysvshm) + $(use_with tidy tidy "${EPREFIX}/usr") + $(use_enable tokenizer tokenizer) + $(use_enable wddx wddx) + $(use_enable xml xml) + $(use_enable xmlreader xmlreader) + $(use_enable xmlwriter xmlwriter) + $(use_with xmlrpc xmlrpc) + $(use_with xslt xsl "${EPREFIX}/usr") + $(use_enable zip zip) + $(use_with zip-encryption libzip "${EPREFIX}/usr") + $(use_with zlib zlib "${EPREFIX}/usr") + $(use_enable debug debug) + ) + + # DBA support + if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ + || use qdbm || use lmdb || use tokyocabinet ; then + our_conf+=( "--enable-dba${shared}" ) + fi + + # DBA drivers support + our_conf+=( + $(use_with cdb cdb) + $(use_with berkdb db4 "${EPREFIX}/usr") + $(use_enable flatfile flatfile) + $(use_with gdbm gdbm "${EPREFIX}/usr") + $(use_enable inifile inifile) + $(use_with qdbm qdbm "${EPREFIX}/usr") + $(use_with lmdb lmdb "${EPREFIX}/usr") + ) + + # Support for the GD graphics library + our_conf+=( + $(use_with truetype freetype-dir "${EPREFIX}/usr") + $(use_enable cjk gd-jis-conv) + $(use_with gd jpeg-dir "${EPREFIX}/usr") + $(use_with gd png-dir "${EPREFIX}/usr") + $(use_with xpm xpm-dir "${EPREFIX}/usr") + ) + if use webp; then + our_conf+=( --with-webp-dir="${EPREFIX}/usr" ) + fi + # enable gd last, so configure can pick up the previous settings + our_conf+=( $(use_with gd gd) ) + + # IMAP support + if use imap ; then + our_conf+=( + $(use_with imap imap "${EPREFIX}/usr") + $(use_with ssl imap-ssl "${EPREFIX}/usr") + ) + fi + + # Interbase/firebird support + our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") ) + + # LDAP support + if use ldap ; then + our_conf+=( + $(use_with ldap ldap "${EPREFIX}/usr") + $(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr") + ) + fi + + # MySQL support + local mysqllib="mysqlnd" + local mysqlilib="mysqlnd" + + our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") ) + + local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock" + if use mysql || use mysqli ; then + our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") ) + fi + + # ODBC support + our_conf+=( + $(use_with odbc unixODBC "${EPREFIX}/usr") + $(use_with iodbc iodbc "${EPREFIX}/usr") + ) + + # Oracle support + our_conf+=( $(use_with oci8-instant-client oci8) ) + + # PDO support + if use pdo ; then + our_conf+=( + $(use_with mssql pdo-dblib "${EPREFIX}/usr") + $(use_with mysql pdo-mysql "${mysqllib}") + $(use_with postgres pdo-pgsql) + $(use_with sqlite pdo-sqlite "${EPREFIX}/usr") + $(use_with firebird pdo-firebird "${EPREFIX}/usr") + $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr") + $(use_with oci8-instant-client pdo-oci) + ) + fi + + # readline/libedit support + our_conf+=( + $(use_with readline readline "${EPREFIX}/usr") + $(use_with libedit libedit "${EPREFIX}/usr") + ) + + # Session support + if use session ; then + our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") ) + else + our_conf+=( $(use_enable session session) ) + fi + + # Use pic for shared modules such as apache2's mod_php + our_conf+=( --with-pic ) + + # we use the system copy of pcre + # --with-pcre-regex affects ext/pcre + # --with-pcre-dir affects ext/filter and ext/zip + # --with-pcre-valgrind cannot be enabled with system pcre + # Many arches don't support pcre-jit + our_conf+=( + --with-pcre-regex="${EPREFIX}/usr" + --with-pcre-dir="${EPREFIX}/usr" + --without-pcre-valgrind + --without-pcre-jit + ) + + # Catch CFLAGS problems + # Fixes bug #14067. + # Changed order to run it in reverse for bug #32022 and #12021. + replace-cpu-flags "k6*" "i586" + + # Cache the ./configure test results between SAPIs. + our_conf+=( --cache-file="${T}/config.cache" ) + + # Support user-passed configuration parameters + our_conf+=( ${EXTRA_ECONF:-} ) + + # Support the Apache2 extras, they must be set globally for all + # SAPIs to work correctly, especially for external PHP extensions + + local one_sapi + local sapi + mkdir -p "${WORKDIR}/sapis-build" || die + for one_sapi in $SAPIS ; do + use "${one_sapi}" || continue + php_set_ini_dir "${one_sapi}" + + # The BUILD_DIR variable is used to determine where to output + # the files that autotools creates. This was all originally + # based on the autotools-utils eclass. + BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}" + cp -a "${S}" "${BUILD_DIR}" || die + cd "${BUILD_DIR}" || die + + local sapi_conf=( + --with-config-file-path="${PHP_INI_DIR}" + --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}" + ) + + for sapi in $SAPIS ; do + case "$sapi" in + cli|cgi|embed|fpm|phpdbg) + if [[ "${one_sapi}" == "${sapi}" ]] ; then + sapi_conf+=( "--enable-${sapi}" ) + if [[ "fpm" == "${sapi}" ]] ; then + sapi_conf+=( + $(use_with acl fpm-acl) + $(use_with systemd fpm-systemd) + ) + fi + else + sapi_conf+=( "--disable-${sapi}" ) + fi + ;; + + apache2) + if [[ "${one_sapi}" == "${sapi}" ]] ; then + sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" ) + else + sapi_conf+=( --without-apxs2 ) + fi + ;; + esac + done + + # Construct the $myeconfargs array by concatenating $our_conf + # (the common args) and $sapi_conf (the SAPI-specific args). + local myeconfargs=( "${our_conf[@]}" ) + myeconfargs+=( "${sapi_conf[@]}" ) + + pushd "${BUILD_DIR}" > /dev/null || die + econf "${myeconfargs[@]}" + popd > /dev/null || die + done +} + +src_compile() { + # snmp seems to run during src_compile, too (bug #324739) + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + local sapi + for sapi in ${SAPIS} ; do + if use "${sapi}"; then + cd "${WORKDIR}/sapis-build/$sapi" || \ + die "Failed to change dir to ${WORKDIR}/sapis-build/$1" + emake + fi + done +} + +src_install() { + # see bug #324739 for what happens when we don't have that + addpredict /usr/share/snmp/mibs/.index #nowarn + + # grab the first SAPI that got built and install common files from there + local first_sapi="",sapi="" + for sapi in $SAPIS ; do + if use $sapi ; then + first_sapi=$sapi + break + fi + done + + # Makefile forgets to create this before trying to write to it... + dodir "${PHP_DESTDIR#${EPREFIX}}/bin" + + # Install php environment (without any sapis) + cd "${WORKDIR}/sapis-build/$first_sapi" || die + emake INSTALL_ROOT="${D}" \ + install-build install-headers install-programs + + local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)" + + # Create the directory where we'll put version-specific php scripts + keepdir "/usr/share/php${PHP_MV}" + + local file="" + local sapi_list="" + + for sapi in ${SAPIS}; do + if use "${sapi}" ; then + einfo "Installing SAPI: ${sapi}" + cd "${WORKDIR}/sapis-build/${sapi}" || die + + if [[ "${sapi}" == "apache2" ]] ; then + # We're specifically not using emake install-sapi as libtool + # may cause unnecessary relink failures (see bug #351266) + insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/" + newins ".libs/libphp${PHP_MV}$(get_libname)" \ + "libphp${PHP_MV}$(get_libname)" + keepdir "/usr/$(get_libdir)/apache2/modules" + else + # needed each time, php_install_ini would reset it + local dest="${PHP_DESTDIR#${EPREFIX}}" + into "${dest}" + case "$sapi" in + cli) + source="sapi/cli/php" + # Install the "phar" archive utility. + if use phar ; then + emake INSTALL_ROOT="${D}" install-pharcmd + dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}" + fi + ;; + cgi) + source="sapi/cgi/php-cgi" + ;; + fpm) + source="sapi/fpm/php-fpm" + ;; + embed) + source="libs/libphp${PHP_MV}$(get_libname)" + ;; + phpdbg) + source="sapi/phpdbg/phpdbg" + ;; + *) + die "unhandled sapi in src_install" + ;; + esac + + if [[ "${source}" == *"$(get_libname)" ]]; then + dolib.so "${source}" + else + dobin "${source}" + local name="$(basename ${source})" + dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}" + fi + fi + + php_install_ini "${sapi}" + + # construct correct SAPI string for php-config + # thanks to ferringb for the bash voodoo + if [[ "${sapi}" == "apache2" ]]; then + sapi_list="${sapi_list:+${sapi_list} }apache2handler" + else + sapi_list="${sapi_list:+${sapi_list} }${sapi}" + fi + fi + done + + # Installing opcache module + if use opcache ; then + into "${PHP_DESTDIR#${EPREFIX}}" + dolib.so "modules/opcache$(get_libname)" + fi + + # Install env.d files + newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}" + sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + + # set php-config variable correctly (bug #278439) + sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \ + "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die + + if use fpm ; then + if use systemd; then + systemd_newunit "${FILESDIR}/php-fpm_at.service" \ + "php-fpm@${SLOT}.service" + else + systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \ + "php-fpm@${SLOT}.service" + fi + fi +} + +src_test() { + echo ">>> Test phase [test]: ${CATEGORY}/${PF}" + PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php" + if [[ ! -x "${PHP_BIN}" ]] ; then + ewarn "Test phase requires USE=cli, skipping" + return + else + export TEST_PHP_EXECUTABLE="${PHP_BIN}" + fi + + if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then + export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" + fi + + if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then + export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" + fi + + REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \ + "session.save_path=${T}" \ + "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \ + "session.save_path=${T}" + + for name in ${EXPECTED_TEST_FAILURES}; do + mv "${name}.out" "${name}.out.orig" 2>/dev/null || die + done + + local failed="$(find -name '*.out')" + if [[ ${failed} != "" ]] ; then + ewarn "The following test cases failed unexpectedly:" + for name in ${failed}; do + ewarn " ${name/.out/}" + done + else + einfo "No unexpected test failures, all fine" + fi + + if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then + local passed="" + for name in ${EXPECTED_TEST_FAILURES}; do + [[ -f "${name}.diff" ]] && continue + passed="${passed} ${name}" + done + if [[ ${passed} != "" ]] ; then + einfo "The following test cases passed unexpectedly:" + for name in ${passed}; do + ewarn " ${passed}" + done + else + einfo "None of the known-to-fail tests passed, all fine" + fi + fi +} + +pkg_postinst() { + # Output some general info to the user + if use apache2 ; then + elog + elog "To enable PHP in apache, you will need to add \"-D PHP\" to" + elog "your apache2 command. OpenRC users can append that string to" + elog "APACHE2_OPTS in /etc/conf.d/apache2." + elog + elog "The apache module configuration file 70_mod_php.conf is" + elog "provided (and maintained) by eselect-php." + elog + fi + + # Create the symlinks for php + local m + for m in ${SAPIS}; do + [[ ${m} == 'embed' ]] && continue; + if use $m ; then + local ci=$(eselect php show $m) + if [[ -z $ci ]]; then + eselect php set $m php${SLOT} || die + einfo "Switched ${m} to use php:${SLOT}" + einfo + elif [[ $ci != "php${SLOT}" ]] ; then + elog "To switch $m to use php:${SLOT}, run" + elog " eselect php set $m php${SLOT}" + elog + fi + fi + done + + # Remove dead symlinks for SAPIs that were just disabled. For + # example, if the user has the cgi SAPI enabled, then he has an + # eselect-php symlink for it. If he later reinstalls PHP with + # USE="-cgi", that symlink will break. This call to eselect is + # supposed to remove that dead link per bug 572436. + eselect php cleanup || die + + if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then + elog "To build extensions for this version of PHP, you will need to" + elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable." + elog + fi + + # Warn about the removal of PHP_INI_VERSION if the user has it set. + if [[ -n "${PHP_INI_VERSION}" ]]; then + ewarn 'The PHP_INI_VERSION variable has been phased out. You may' + ewarn 'remove it from your configuration at your convenience. See' + ewarn + ewarn ' https://bugs.gentoo.org/611214' + ewarn + ewarn 'for more information.' + fi + + elog "For details on how version slotting works, please see" + elog "the wiki:" + elog + elog " https://wiki.gentoo.org/wiki/PHP" + elog +} + +pkg_postrm() { + # This serves two purposes. First, if we have just removed the last + # installed version of PHP, then this will remove any dead symlinks + # belonging to eselect-php. Second, if a user upgrades slots from + # (say) 5.6 to 7.0 and depcleans the old slot, then this will update + # his existing symlinks to point to the new 7.0 installation. The + # latter is bug 432962. + # + # Note: the eselect-php package may not be installed at this point, + # so we can't die() if this command fails. + eselect php cleanup +} diff --git a/dev-lang/php/php-7.2.34.ebuild b/dev-lang/php/php-7.2.34.ebuild deleted file mode 100644 index 07f0645b8d80..000000000000 --- a/dev-lang/php/php-7.2.34.ebuild +++ /dev/null @@ -1,759 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -inherit flag-o-matic systemd autotools - -DESCRIPTION="The PHP language runtime engine" -HOMEPAGE="https://www.php.net/" -SRC_URI="https://www.php.net/distributions/${P}.tar.xz" - -LICENSE="PHP-3.01 - BSD - Zend-2.0 - bcmath? ( LGPL-2.1+ ) - fpm? ( BSD-2 ) - gd? ( gd ) - unicode? ( BSD-2 LGPL-2.1 )" - -SLOT="$(ver_cut 1-2)" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" - -# We can build the following SAPIs in the given order -SAPIS="embed cli cgi fpm apache2 phpdbg" - -# SAPIs and SAPI-specific USE flags (cli SAPI is default on): -IUSE="${IUSE} - ${SAPIS/cli/+cli} - threads" - -IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk - coverage +ctype curl debug - enchant exif +fileinfo +filter firebird - +flatfile ftp gd gdbm gmp +hash +iconv imap inifile - intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb - mhash mssql mysql mysqli nls - oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm - readline recode selinux +session session-mm sharedmem - +simplexml snmp soap sockets sodium spell sqlite ssl - sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode wddx webp - +xml xmlreader xmlwriter xmlrpc xpm xslt zip zip-encryption zlib" - -# The supported (that is, autodetected) versions of BDB are listed in -# the ./configure script. Other versions *work*, but we need to stick to -# the ones that can be detected to avoid a repeat of bug #564824. -COMMON_DEPEND=" - >=app-eselect/eselect-php-0.9.1[apache2?,fpm?] - >=dev-libs/libpcre-8.32[unicode] - fpm? ( acl? ( sys-apps/acl ) ) - apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] ) - argon2? ( app-crypt/argon2:= ) - berkdb? ( || ( sys-libs/db:5.3 - sys-libs/db:5.1 - sys-libs/db:4.8 - sys-libs/db:4.7 - sys-libs/db:4.6 - sys-libs/db:4.5 ) ) - bzip2? ( app-arch/bzip2:0= ) - cdb? ( || ( dev-db/cdb dev-db/tinycdb ) ) - coverage? ( dev-util/lcov ) - curl? ( >=net-misc/curl-7.10.5 ) - enchant? ( =virtual/jpeg-0-r3:0 media-libs/libpng:0= sys-libs/zlib ) - gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) - gmp? ( dev-libs/gmp:0= ) - iconv? ( virtual/libiconv ) - imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] ) - intl? ( dev-libs/icu:= ) - iodbc? ( dev-db/libiodbc ) - kerberos? ( virtual/krb5 ) - ldap? ( >=net-nds/openldap-1.2.11 ) - ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 ) - libedit? ( dev-libs/libedit ) - lmdb? ( dev-db/lmdb:= ) - mssql? ( dev-db/freetds[mssql] ) - nls? ( sys-devel/gettext ) - oci8-instant-client? ( dev-db/oracle-instantclient-basic ) - odbc? ( >=dev-db/unixODBC-1.8.13 ) - postgres? ( dev-db/postgresql:* ) - qdbm? ( dev-db/qdbm ) - readline? ( sys-libs/readline:0= ) - recode? ( app-text/recode ) - session-mm? ( dev-libs/mm ) - simplexml? ( >=dev-libs/libxml2-2.6.8 ) - snmp? ( >=net-analyzer/net-snmp-5.2 ) - soap? ( >=dev-libs/libxml2-2.6.8 ) - sodium? ( dev-libs/libsodium:= ) - spell? ( >=app-text/aspell-0.50 ) - sqlite? ( >=dev-db/sqlite-3.7.6.3 ) - ssl? ( - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - ) - tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) ) - tokyocabinet? ( dev-db/tokyocabinet ) - truetype? ( =media-libs/freetype-2* ) - unicode? ( dev-libs/oniguruma:= ) - wddx? ( >=dev-libs/libxml2-2.6.8 ) - webp? ( media-libs/libwebp:0= ) - xml? ( >=dev-libs/libxml2-2.6.8 ) - xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv ) - xmlreader? ( >=dev-libs/libxml2-2.6.8 ) - xmlwriter? ( >=dev-libs/libxml2-2.6.8 ) - xpm? ( x11-libs/libXpm ) - xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 ) - zip? ( sys-libs/zlib:0= ) - zip-encryption? ( >=dev-libs/libzip-1.2.0:= ) - zlib? ( sys-libs/zlib:0= ) -" - -RDEPEND="${COMMON_DEPEND} - virtual/mta - fpm? ( - selinux? ( sec-policy/selinux-phpfpm ) - systemd? ( sys-apps/systemd ) )" - -# Bison isn't actually needed when building from a release tarball -# However, the configure script will warn if it's absent or if you -# have an incompatible version installed. See bug 593278. -DEPEND="${COMMON_DEPEND} - app-arch/xz-utils - >=sys-devel/bison-3.0.1" - -BDEPEND="virtual/pkgconfig" - -# Without USE=readline or libedit, the interactive "php -a" CLI will hang. -REQUIRED_USE=" - || ( cli cgi fpm apache2 embed phpdbg ) - cli? ( ^^ ( readline libedit ) ) - truetype? ( gd zlib ) - webp? ( gd zlib ) - cjk? ( gd zlib ) - exif? ( gd zlib ) - xpm? ( gd zlib ) - gd? ( zlib ) - simplexml? ( xml ) - soap? ( xml ) - wddx? ( xml ) - xmlrpc? ( || ( xml iconv ) ) - xmlreader? ( xml ) - xslt? ( xml ) - ldap-sasl? ( ldap ) - mhash? ( hash ) - phar? ( hash ) - qdbm? ( !gdbm ) - readline? ( !libedit ) - recode? ( !imap !mysqli !mysql ) - session-mm? ( session !threads ) - mysql? ( hash || ( mysqli pdo ) ) - mysqli? ( hash ) - zip-encryption? ( zip ) -" - -RESTRICT="!test? ( test )" - -PATCHES=( - "${FILESDIR}/php-freetype-2.9.1.patch" - "${FILESDIR}/php-7.2.13-intl-use-icu-namespace.patch" -) - -PHP_MV="$(ver_cut 1)" - -php_install_ini() { - local phpsapi="${1}" - - # work out where we are installing the ini file - php_set_ini_dir "${phpsapi}" - - # Always install the production INI file, bug 611214. - local phpinisrc="php.ini-production-${phpsapi}" - cp php.ini-production "${phpinisrc}" || die - - # default to /tmp for save_path, bug #282768 - sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die - - # Set the extension dir - sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \ - -i "${phpinisrc}" || die - - # Set the include path to point to where we want to find PEAR packages - sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die - - insinto "${PHP_INI_DIR#${EPREFIX}}" - newins "${phpinisrc}" php.ini - - elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}" - elog - - dodir "${PHP_EXT_INI_DIR#${EPREFIX}}" - dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}" - - if use opcache; then - elog "Adding opcache to $PHP_EXT_INI_DIR" - echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \ - "${D}/${PHP_EXT_INI_DIR}"/opcache.ini - dosym "../ext/opcache.ini" \ - "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini" - fi - - # SAPI-specific handling - if [[ "${sapi}" == "fpm" ]] ; then - einfo "Installing FPM config files php-fpm.conf and www.conf" - insinto "${PHP_INI_DIR#${EPREFIX}}" - doins sapi/fpm/php-fpm.conf - insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d" - doins sapi/fpm/www.conf - fi - - dodoc php.ini-{development,production} -} - -php_set_ini_dir() { - PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}" - PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext" - PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active" -} - -src_prepare() { - default - - # In php-7.x, the FPM pool configuration files have been split off - # of the main config. By default the pool config files go in - # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the - # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later - # we'll install the pool configuration file "www.conf" there. - php_set_ini_dir fpm - sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \ - sapi/fpm/php-fpm.conf.in \ - || die 'failed to move the include directory in php-fpm.conf' - - # Bug 669566 - necessary so that build tools are updated for commands like pecl - # Force rebuilding aclocal.m4 - rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare" - eautoreconf -} - -src_configure() { - addpredict /usr/share/snmp/mibs/.index #nowarn - addpredict /var/lib/net-snmp/mib_indexes #nowarn - - PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}" - - # The php-fpm config file wants localstatedir to be ${EPREFIX}/var - # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002. - local our_conf=( - --prefix="${PHP_DESTDIR}" - --mandir="${PHP_DESTDIR}/man" - --infodir="${PHP_DESTDIR}/info" - --libdir="${PHP_DESTDIR}/lib" - --with-libdir="$(get_libdir)" - --localstatedir="${EPREFIX}/var" - --without-pear - $(use_enable threads maintainer-zts) - ) - - our_conf+=( - $(use_with argon2 password-argon2 "${EPREFIX}/usr") - $(use_enable bcmath bcmath) - $(use_with bzip2 bz2 "${EPREFIX}/usr") - $(use_enable calendar calendar) - $(use_enable coverage gcov) - $(use_enable ctype ctype) - $(use_with curl curl "${EPREFIX}/usr") - $(use_enable xml dom) - $(use_with enchant enchant "${EPREFIX}/usr") - $(use_enable exif exif) - $(use_enable fileinfo fileinfo) - $(use_enable filter filter) - $(use_enable ftp ftp) - $(use_with nls gettext "${EPREFIX}/usr") - $(use_with gmp gmp "${EPREFIX}/usr") - $(use_enable hash hash) - $(use_with mhash mhash "${EPREFIX}/usr") - $(use_with iconv iconv \ - $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr")) - $(use_enable intl intl) - $(use_enable ipv6 ipv6) - $(use_enable json json) - $(use_with kerberos kerberos "${EPREFIX}/usr") - $(use_enable xml libxml) - $(use_with xml libxml-dir "${EPREFIX}/usr") - $(use_enable unicode mbstring) - $(use_with unicode onig "${EPREFIX}/usr") - $(use_with ssl openssl "${EPREFIX}/usr") - $(use_with ssl openssl-dir "${EPREFIX}/usr") - $(use_enable pcntl pcntl) - $(use_enable phar phar) - $(use_enable pdo pdo) - $(use_enable opcache opcache) - $(use_with postgres pgsql "${EPREFIX}/usr") - $(use_enable posix posix) - $(use_with spell pspell "${EPREFIX}/usr") - $(use_with recode recode "${EPREFIX}/usr") - $(use_enable simplexml simplexml) - $(use_enable sharedmem shmop) - $(use_with snmp snmp "${EPREFIX}/usr") - $(use_enable soap soap) - $(use_enable sockets sockets) - $(use_with sodium sodium "${EPREFIX}/usr") - $(use_with sqlite sqlite3 "${EPREFIX}/usr") - $(use_enable sysvipc sysvmsg) - $(use_enable sysvipc sysvsem) - $(use_enable sysvipc sysvshm) - $(use_with tidy tidy "${EPREFIX}/usr") - $(use_enable tokenizer tokenizer) - $(use_enable wddx wddx) - $(use_enable xml xml) - $(use_enable xmlreader xmlreader) - $(use_enable xmlwriter xmlwriter) - $(use_with xmlrpc xmlrpc) - $(use_with xslt xsl "${EPREFIX}/usr") - $(use_enable zip zip) - $(use_with zip-encryption libzip "${EPREFIX}/usr") - $(use_with zlib zlib "${EPREFIX}/usr") - $(use_enable debug debug) - ) - - # DBA support - if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ - || use qdbm || use lmdb || use tokyocabinet ; then - our_conf+=( "--enable-dba${shared}" ) - fi - - # DBA drivers support - our_conf+=( - $(use_with cdb cdb) - $(use_with berkdb db4 "${EPREFIX}/usr") - $(use_enable flatfile flatfile) - $(use_with gdbm gdbm "${EPREFIX}/usr") - $(use_enable inifile inifile) - $(use_with qdbm qdbm "${EPREFIX}/usr") - $(use_with lmdb lmdb "${EPREFIX}/usr") - ) - - # Support for the GD graphics library - our_conf+=( - $(use_with truetype freetype-dir "${EPREFIX}/usr") - $(use_enable cjk gd-jis-conv) - $(use_with gd jpeg-dir "${EPREFIX}/usr") - $(use_with gd png-dir "${EPREFIX}/usr") - $(use_with xpm xpm-dir "${EPREFIX}/usr") - ) - if use webp; then - our_conf+=( --with-webp-dir="${EPREFIX}/usr" ) - fi - # enable gd last, so configure can pick up the previous settings - our_conf+=( $(use_with gd gd) ) - - # IMAP support - if use imap ; then - our_conf+=( - $(use_with imap imap "${EPREFIX}/usr") - $(use_with ssl imap-ssl "${EPREFIX}/usr") - ) - fi - - # Interbase/firebird support - our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") ) - - # LDAP support - if use ldap ; then - our_conf+=( - $(use_with ldap ldap "${EPREFIX}/usr") - $(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr") - ) - fi - - # MySQL support - local mysqllib="mysqlnd" - local mysqlilib="mysqlnd" - - our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") ) - - local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock" - if use mysql || use mysqli ; then - our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") ) - fi - - # ODBC support - our_conf+=( - $(use_with odbc unixODBC "${EPREFIX}/usr") - $(use_with iodbc iodbc "${EPREFIX}/usr") - ) - - # Oracle support - our_conf+=( $(use_with oci8-instant-client oci8) ) - - # PDO support - if use pdo ; then - our_conf+=( - $(use_with mssql pdo-dblib "${EPREFIX}/usr") - $(use_with mysql pdo-mysql "${mysqllib}") - $(use_with postgres pdo-pgsql) - $(use_with sqlite pdo-sqlite "${EPREFIX}/usr") - $(use_with firebird pdo-firebird "${EPREFIX}/usr") - $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr") - $(use_with oci8-instant-client pdo-oci) - ) - fi - - # readline/libedit support - our_conf+=( - $(use_with readline readline "${EPREFIX}/usr") - $(use_with libedit libedit "${EPREFIX}/usr") - ) - - # Session support - if use session ; then - our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") ) - else - our_conf+=( $(use_enable session session) ) - fi - - # Use pic for shared modules such as apache2's mod_php - our_conf+=( --with-pic ) - - # we use the system copy of pcre - # --with-pcre-regex affects ext/pcre - # --with-pcre-dir affects ext/filter and ext/zip - # --with-pcre-valgrind cannot be enabled with system pcre - # Many arches don't support pcre-jit - our_conf+=( - --with-pcre-regex="${EPREFIX}/usr" - --with-pcre-dir="${EPREFIX}/usr" - --without-pcre-valgrind - --without-pcre-jit - ) - - # Catch CFLAGS problems - # Fixes bug #14067. - # Changed order to run it in reverse for bug #32022 and #12021. - replace-cpu-flags "k6*" "i586" - - # Cache the ./configure test results between SAPIs. - our_conf+=( --cache-file="${T}/config.cache" ) - - # Support user-passed configuration parameters - our_conf+=( ${EXTRA_ECONF:-} ) - - # Support the Apache2 extras, they must be set globally for all - # SAPIs to work correctly, especially for external PHP extensions - - local one_sapi - local sapi - mkdir -p "${WORKDIR}/sapis-build" || die - for one_sapi in $SAPIS ; do - use "${one_sapi}" || continue - php_set_ini_dir "${one_sapi}" - - # The BUILD_DIR variable is used to determine where to output - # the files that autotools creates. This was all originally - # based on the autotools-utils eclass. - BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}" - cp -a "${S}" "${BUILD_DIR}" || die - cd "${BUILD_DIR}" || die - - local sapi_conf=( - --with-config-file-path="${PHP_INI_DIR}" - --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}" - ) - - for sapi in $SAPIS ; do - case "$sapi" in - cli|cgi|embed|fpm|phpdbg) - if [[ "${one_sapi}" == "${sapi}" ]] ; then - sapi_conf+=( "--enable-${sapi}" ) - if [[ "fpm" == "${sapi}" ]] ; then - sapi_conf+=( - $(use_with acl fpm-acl) - $(use_with systemd fpm-systemd) - ) - fi - else - sapi_conf+=( "--disable-${sapi}" ) - fi - ;; - - apache2) - if [[ "${one_sapi}" == "${sapi}" ]] ; then - sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" ) - else - sapi_conf+=( --without-apxs2 ) - fi - ;; - esac - done - - # Construct the $myeconfargs array by concatenating $our_conf - # (the common args) and $sapi_conf (the SAPI-specific args). - local myeconfargs=( "${our_conf[@]}" ) - myeconfargs+=( "${sapi_conf[@]}" ) - - pushd "${BUILD_DIR}" > /dev/null || die - econf "${myeconfargs[@]}" - popd > /dev/null || die - done -} - -src_compile() { - # snmp seems to run during src_compile, too (bug #324739) - addpredict /usr/share/snmp/mibs/.index #nowarn - addpredict /var/lib/net-snmp/mib_indexes #nowarn - - local sapi - for sapi in ${SAPIS} ; do - if use "${sapi}"; then - cd "${WORKDIR}/sapis-build/$sapi" || \ - die "Failed to change dir to ${WORKDIR}/sapis-build/$1" - emake - fi - done -} - -src_install() { - # see bug #324739 for what happens when we don't have that - addpredict /usr/share/snmp/mibs/.index #nowarn - - # grab the first SAPI that got built and install common files from there - local first_sapi="",sapi="" - for sapi in $SAPIS ; do - if use $sapi ; then - first_sapi=$sapi - break - fi - done - - # Makefile forgets to create this before trying to write to it... - dodir "${PHP_DESTDIR#${EPREFIX}}/bin" - - # Install php environment (without any sapis) - cd "${WORKDIR}/sapis-build/$first_sapi" || die - emake INSTALL_ROOT="${D}" \ - install-build install-headers install-programs - - local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)" - - # Create the directory where we'll put version-specific php scripts - keepdir "/usr/share/php${PHP_MV}" - - local file="" - local sapi_list="" - - for sapi in ${SAPIS}; do - if use "${sapi}" ; then - einfo "Installing SAPI: ${sapi}" - cd "${WORKDIR}/sapis-build/${sapi}" || die - - if [[ "${sapi}" == "apache2" ]] ; then - # We're specifically not using emake install-sapi as libtool - # may cause unnecessary relink failures (see bug #351266) - insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/" - newins ".libs/libphp${PHP_MV}$(get_libname)" \ - "libphp${PHP_MV}$(get_libname)" - keepdir "/usr/$(get_libdir)/apache2/modules" - else - # needed each time, php_install_ini would reset it - local dest="${PHP_DESTDIR#${EPREFIX}}" - into "${dest}" - case "$sapi" in - cli) - source="sapi/cli/php" - # Install the "phar" archive utility. - if use phar ; then - emake INSTALL_ROOT="${D}" install-pharcmd - dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}" - fi - ;; - cgi) - source="sapi/cgi/php-cgi" - ;; - fpm) - source="sapi/fpm/php-fpm" - ;; - embed) - source="libs/libphp${PHP_MV}$(get_libname)" - ;; - phpdbg) - source="sapi/phpdbg/phpdbg" - ;; - *) - die "unhandled sapi in src_install" - ;; - esac - - if [[ "${source}" == *"$(get_libname)" ]]; then - dolib.so "${source}" - else - dobin "${source}" - local name="$(basename ${source})" - dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}" - fi - fi - - php_install_ini "${sapi}" - - # construct correct SAPI string for php-config - # thanks to ferringb for the bash voodoo - if [[ "${sapi}" == "apache2" ]]; then - sapi_list="${sapi_list:+${sapi_list} }apache2handler" - else - sapi_list="${sapi_list:+${sapi_list} }${sapi}" - fi - fi - done - - # Installing opcache module - if use opcache ; then - into "${PHP_DESTDIR#${EPREFIX}}" - dolib.so "modules/opcache$(get_libname)" - fi - - # Install env.d files - newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}" - sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die - sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die - - # set php-config variable correctly (bug #278439) - sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \ - "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die - - if use fpm ; then - if use systemd; then - systemd_newunit "${FILESDIR}/php-fpm_at.service" \ - "php-fpm@${SLOT}.service" - else - systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \ - "php-fpm@${SLOT}.service" - fi - fi -} - -src_test() { - echo ">>> Test phase [test]: ${CATEGORY}/${PF}" - PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php" - if [[ ! -x "${PHP_BIN}" ]] ; then - ewarn "Test phase requires USE=cli, skipping" - return - else - export TEST_PHP_EXECUTABLE="${PHP_BIN}" - fi - - if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then - export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" - fi - - if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then - export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" - fi - - REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \ - "session.save_path=${T}" \ - "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \ - "session.save_path=${T}" - - for name in ${EXPECTED_TEST_FAILURES}; do - mv "${name}.out" "${name}.out.orig" 2>/dev/null || die - done - - local failed="$(find -name '*.out')" - if [[ ${failed} != "" ]] ; then - ewarn "The following test cases failed unexpectedly:" - for name in ${failed}; do - ewarn " ${name/.out/}" - done - else - einfo "No unexpected test failures, all fine" - fi - - if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then - local passed="" - for name in ${EXPECTED_TEST_FAILURES}; do - [[ -f "${name}.diff" ]] && continue - passed="${passed} ${name}" - done - if [[ ${passed} != "" ]] ; then - einfo "The following test cases passed unexpectedly:" - for name in ${passed}; do - ewarn " ${passed}" - done - else - einfo "None of the known-to-fail tests passed, all fine" - fi - fi -} - -pkg_postinst() { - # Output some general info to the user - if use apache2 ; then - elog - elog "To enable PHP in apache, you will need to add \"-D PHP\" to" - elog "your apache2 command. OpenRC users can append that string to" - elog "APACHE2_OPTS in /etc/conf.d/apache2." - elog - elog "The apache module configuration file 70_mod_php.conf is" - elog "provided (and maintained) by eselect-php." - elog - fi - - # Create the symlinks for php - local m - for m in ${SAPIS}; do - [[ ${m} == 'embed' ]] && continue; - if use $m ; then - local ci=$(eselect php show $m) - if [[ -z $ci ]]; then - eselect php set $m php${SLOT} || die - einfo "Switched ${m} to use php:${SLOT}" - einfo - elif [[ $ci != "php${SLOT}" ]] ; then - elog "To switch $m to use php:${SLOT}, run" - elog " eselect php set $m php${SLOT}" - elog - fi - fi - done - - # Remove dead symlinks for SAPIs that were just disabled. For - # example, if the user has the cgi SAPI enabled, then he has an - # eselect-php symlink for it. If he later reinstalls PHP with - # USE="-cgi", that symlink will break. This call to eselect is - # supposed to remove that dead link per bug 572436. - eselect php cleanup || die - - if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then - elog "To build extensions for this version of PHP, you will need to" - elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable." - elog - fi - - # Warn about the removal of PHP_INI_VERSION if the user has it set. - if [[ -n "${PHP_INI_VERSION}" ]]; then - ewarn 'The PHP_INI_VERSION variable has been phased out. You may' - ewarn 'remove it from your configuration at your convenience. See' - ewarn - ewarn ' https://bugs.gentoo.org/611214' - ewarn - ewarn 'for more information.' - fi - - elog "For details on how version slotting works, please see" - elog "the wiki:" - elog - elog " https://wiki.gentoo.org/wiki/PHP" - elog -} - -pkg_postrm() { - # This serves two purposes. First, if we have just removed the last - # installed version of PHP, then this will remove any dead symlinks - # belonging to eselect-php. Second, if a user upgrades slots from - # (say) 5.6 to 7.0 and depcleans the old slot, then this will update - # his existing symlinks to point to the new 7.0 installation. The - # latter is bug 432962. - # - # Note: the eselect-php package may not be installed at this point, - # so we can't die() if this command fails. - eselect php cleanup -} diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest index 9adbc28204d2..da63f21d558f 100644 --- a/dev-lang/python/Manifest +++ b/dev-lang/python/Manifest @@ -10,6 +10,7 @@ DIST Python-3.7.9.tar.xz 17389636 BLAKE2B 484833aa2aa4e29051a02969294f72099ff6f1 DIST Python-3.8.4.tar.xz 18020412 BLAKE2B cfcfb293c413b25fc3ca48116cf8ffaba7bee18e9af9accf26be9b4373a0c62dd8e9da70e5a8a38ba6da4d1afbdbd589ae5ea4b618b65130ae061698b445908c SHA512 37a36d014a8372742be9d0bd9dd3a275e100dc21b1515c145bc62425d4d157327b6e63ad99bc888c0b36c1da4c05676c40eb086e75072d1906e3210ec3043dcb DIST Python-3.8.5.tar.xz 18019640 BLAKE2B bb3e0566afe28759e4ab129ad0986a0fc5103514f2e2b22ff4aa3973c3173ebdd24d4267fbaf903841814a611fd9ea122673e5a1918934366e5c0efaef9d7517 SHA512 460cee65d7df7150694590575502d7f22e548ebfc99c8f8b363eef8bf30ee72e58d8ffacb1d607824f877f880eb9fd6775a508388029583e1e1df3380f3f9587 DIST Python-3.8.6.tar.xz 18233864 BLAKE2B c8a8ef6055e344dda30eb808804cfa62016b4f840257cffd5a495e5932f5696e50579d49b8181a487c9cd4a89bdb95656e80981039783a21d20f7980aa2c9883 SHA512 22faec84f6e172e1ac7c6bd6fd37e9b6ae4afc91cf5136aa8cac8ebbed8d18793f9196e8749b8ccc43447cb6c41cb450f65ea72dd363c06dfaeb14e0455f5560 +DIST Python-3.8.7.tar.xz 18261096 BLAKE2B 6ac20efef41e828cb796aabcb7808400d494b9b48759950c8c15ee90762394f6763163d8e37ab407c1c79ebb9cda09189eaa969a75f96c86a96ccee962443924 SHA512 6a27d8eab3076930df46b0cf127f9b664f8d4147349b2b98132f464deb7f69d87e0167e8ee8e6c64249125ad73760d965ecbc81c252b63a1e7aac95594c62b74 DIST Python-3.8.7rc1.tar.xz 18258688 BLAKE2B cd18abf3a2f97856581735fc6ab98882c3839edd84f736b2f681a227694319f410154201e5e09938ec45ba00b69a593737da22263560080da72625f8611f14c6 SHA512 0c42622433b968dc0943894bff6e90603bdfc4e49ab4373e2686a158e1d4b3450e60aa16d8203ce3d0e0e8bb0ebcaad281ccd7eb03b355eeeb7c811a4cd799ec DIST Python-3.9.0.tar.xz 18866140 BLAKE2B 8e12b64e187a65461473ac3b281dc489f0abac586e0755f6dbeceb236b34bdc008085eeac9ee1a19d76f5ec6a2fbda623985454c9d0164c4888a97b8cd940034 SHA512 b141039c9701a8cb0d15cd11a279153077524af4d0599e7d2c7279d4c18d05fda06b33ef82342d875de996c7117b7dc6eb154dc3669d38a1efa99801aeec6c5e DIST Python-3.9.1.tar.xz 18897104 BLAKE2B bcbce176510e8e7c6ba6070588bedc52121c21c5271f59b3d629dfb542c51ee62622b2ca53a6e2041f1a51b2d089368cc4de9bb749e8ebad9a2c4eb4de83538e SHA512 b90029d6825751685983e9dcf0e0ec9e46f18e6c7d37b0dd7a245a94316f8c0090308ad7c2b2b49ed2514b0b909177231dd5bcad03031bf4624e37136fcf8019 @@ -29,7 +30,7 @@ DIST python-gentoo-patches-3.8.6.tar.xz 10956 BLAKE2B e3241d97f886d0a37f85735102 DIST python-gentoo-patches-3.9.0-r1.tar.xz 13728 BLAKE2B 50e85194c6bafefb8a0ddc4c9dea39227fc2c170db37ab44fa1e068340fa2fc5a59489f50431f0792024df551fc54a20de594579b57717c89fa134b3f000bb6d SHA512 a38c2800e3a0740af79f75f4120c925c7a891aa1f14a71ab56ad97fbabca3573c571140da3f34050bd9f97bd854a704453a910fa6883162196e6d1335a965b61 DIST python-gentoo-patches-3.9.0rc1.tar.xz 8856 BLAKE2B 7bd032dfd047640c6a53633b5b9ee7b24199106b985230f772dda978d3b79fe0406eea64c4a842603a20afb71a90469befa7ec59a5ef1f793e4c901aa85952d1 SHA512 85a7d4397abf2a0f3c3d07a94a3e184ba3dcb347f3b70ee2cb77e81aac63846b01323a0228afd0fd1d32b3cafb64b18f82e6f5bfd88e4d564261ddae11e747eb EBUILD python-2.7.18-r4.ebuild 10624 BLAKE2B 3981c0899d899e4dfbe198618e005bc9190af8cfbc6ca5b85911c717127bfa19ca546e0dcbf7b0317497e7f4d3fd8498e4b153f38468f31f83008c1f39da2067 SHA512 e3aee3d42db1539233a2a543818cd8a733dcb7c2a33a804d7f6b45cd1d087cd1e665e150ef308e61f49e969477fc1d3f8bd55ba5e9117a274e7e9645e65a3f3d -EBUILD python-2.7.18-r5.ebuild 10628 BLAKE2B f32e660cba19a249cb56db7b9d8b50f86df80a98df23451bd59e7a620b16262955cd5ffa843cc001a02ccfbce68a7349cc00cd70b545177e4a5d339f5d138807 SHA512 46645265f815014399e7f83b5424dd03285d8eab9c513629243780e5a63fc118dc103c28f4729521b750c0cc105262a58c339decac683d09fa0f019dd64fe334 +EBUILD python-2.7.18-r5.ebuild 10627 BLAKE2B 1d50d2743f31982e24caa2107317883a1a2bd8f83201e7626aa09c744b5cd68436b22becffa1901753673622ab0967fd4d0954d99625571e651fb4e54f5e6aab SHA512 f6a4b0ee545be19fbceace65bfa5286fbca301c4744b923e6a969981d536b955a494bb71f6e9f271ff5dab9efd3cd95d2f48e5e99151c3601ba089f16c67b335 EBUILD python-3.10.0_alpha1.ebuild 9548 BLAKE2B 7f7fadcf9b5f9b09764229ee2c1a4d5be6fc4bc90da7555cafecb16d2690df9098cf28fe3bb719533ad9a608424ed389b17518091d130cd9e0ced7bcf3e787b9 SHA512 fb0e052eef6ba52360903b4112f30f1ea255ba9a56061079124fd7a6379ddce708efc1d2d9241f268f370f0c8158532a83e014d305c469e643ed74392181a301 EBUILD python-3.10.0_alpha3.ebuild 9548 BLAKE2B 7f7fadcf9b5f9b09764229ee2c1a4d5be6fc4bc90da7555cafecb16d2690df9098cf28fe3bb719533ad9a608424ed389b17518091d130cd9e0ced7bcf3e787b9 SHA512 fb0e052eef6ba52360903b4112f30f1ea255ba9a56061079124fd7a6379ddce708efc1d2d9241f268f370f0c8158532a83e014d305c469e643ed74392181a301 EBUILD python-3.6.11-r2.ebuild 10610 BLAKE2B d9074e767b11ed420c843665b87c466f0014713221c0db4a026fbd91a39debc69689a1674db8a0c0b80dc3eb8df7bc86fe92972918f4c95ef8a52da2936bf631 SHA512 693795866815e724267877e4f97e14d09eda9f321b5c2b481f54952fcefc0859072ab42306eb03b81bd8b3e0a2d71435367452330caabf6bfebbcd2062d1ced0 @@ -42,6 +43,7 @@ EBUILD python-3.8.4-r1.ebuild 9928 BLAKE2B 9ebf074bef412756a79b6a9995f8eebdb9223 EBUILD python-3.8.5.ebuild 10256 BLAKE2B 63447912d09c28b3774d717a82ac6e275197de69fa00e3af7faf6e6eb09c60917480635035a71dbf3401fe8daeef62c4a130c64ccef7d47eed9607c2cf3d5b21 SHA512 fda9f806cac3c1019af06550f6ba2270993395f8cbf47da31771e0ae0a315282b5335bce91cb8d2ca95861ca50c316bd62ae8b7cf537624765e8359b11ce9ce4 EBUILD python-3.8.6-r1.ebuild 10261 BLAKE2B 22fd9fa2595850cf8c7a0f3cf5e89b405c72f04f6e766d30204f6c7268682b5a69650216c4ed728b82afab68b1872e7df23a3f054f69390897bc78e0d2317bae SHA512 9d7f0eb2ce79592fd3121c82474d0b5669a430bd5c9ff32c8f0d3ad32f354a42045681e10b2aa379e5d55cfe098aa5e10e81b0b5b7747eab4df7f51648fa2ae2 EBUILD python-3.8.6.ebuild 10257 BLAKE2B b118a84fd01fe4b410264840ff22e14996e96b61ce672a5856a21d31664f0caa89f03264c780665d3ba5e7922e3984e0df667667f346f3907e9e175622a118da SHA512 f8369eb3bf704366b187202b6f883ff8d5a9585b4a1aedf281c3e76f9d4009d169bfb62ccaa7489726ea8af692a7fbf1e79264f5bb4aa4339fad202ba6bffb79 +EBUILD python-3.8.7.ebuild 10264 BLAKE2B 539ee3af4b4820dd7677e351f16e50d706d6de8d45b7b48374653a024fa948f1945e97339bb7f961653c2d2ef52b5ba9216c86ef39cee9af16317535c298c515 SHA512 36e79faa5468446b33322c7a4bb1c4142307f51525690c3cdb99cfbefad362535c637635027af904215130c0ad6095cef27b600b9894cc4fc846bc93ee4603f2 EBUILD python-3.8.7_rc1.ebuild 10276 BLAKE2B 5baaa0050d1c1fbbff68ff43f622a609678b40b7db953f7355edd5ffdbec38e1b6d922362ee6cd1c47cba9e050e94317417f8fd2e1b7d9394010f24c92d9e949 SHA512 cc84aa79891e1c0e26249f5c7bf7c63ccea625258ffff7d09e0d17404a866075ca0948fd910a9480f1c2447cb35cab090de2ccf26df63e3533b5680935bde771 EBUILD python-3.9.0-r1.ebuild 9536 BLAKE2B 71ffd602605e2c311a97b842fa117974b89f29b625c22626eac0b2b650d2516022a749815bfecf486b62fdfb2737e0c21dbc95cde9680859ed96d2c02fa544b5 SHA512 5fab1557abcf3fd6ec2d5437f75f2a88e994ead37243bba40e00523ff91eefc44b2fde85b26ad39576992fcb9bb6368ed5051381e3768e295e261d50e7457f0e EBUILD python-3.9.0.ebuild 9533 BLAKE2B b4efc6b65f8fa865aa9f16484866b5f385a8c70e5276ee9e8c06772e16c23c8f9c058b4dfc891fd44daefd8d66a932155a02028bfeeaae283ba9d9a7bd9e3b0d SHA512 e21249bdd74e0304cf813f99a00dbc618dc8b5a358e0ca8547e631ff2a3d40cebe8c91313d07b3c992373b7cfb06fb00123016c5870d787bca14377cceff0ce5 diff --git a/dev-lang/python/python-2.7.18-r5.ebuild b/dev-lang/python/python-2.7.18-r5.ebuild index 96ab96cf4a88..a9a3f73e8e05 100644 --- a/dev-lang/python/python-2.7.18-r5.ebuild +++ b/dev-lang/python/python-2.7.18-r5.ebuild @@ -18,7 +18,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ~ppc64 ~s390 ~sparc x86" +KEYWORDS="~alpha ~amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ~ppc64 ~s390 sparc x86" IUSE="-berkdb bluetooth build elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml" # Do not add a dependency on dev-lang/python to this ebuild. diff --git a/dev-lang/python/python-3.8.7.ebuild b/dev-lang/python/python-3.8.7.ebuild new file mode 100644 index 000000000000..eaee9eaef9c5 --- /dev/null +++ b/dev-lang/python/python-3.8.7.ebuild @@ -0,0 +1,355 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" +WANT_LIBTOOL="none" + +inherit autotools flag-o-matic multiprocessing pax-utils \ + python-utils-r1 toolchain-funcs + +MY_P="Python-${PV}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-3.8.6" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE="https://www.python.org/" +SRC_URI="https://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND="app-arch/bzip2:= + app-arch/xz-utils:= + dev-libs/libffi:= + sys-apps/util-linux:= + >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + gdbm? ( sys-libs/gdbm:=[berkdb] ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( >=sys-libs/readline-4.1:= ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( + !libressl? ( dev-libs/openssl:= ) + libressl? ( dev-libs/libressl:= ) + ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) + xml? ( >=dev-libs/expat-2.1:= )" +# bluetooth requires headers from bluez +DEPEND="${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( app-arch/xz-utils[extra-filters(+)] ) + virtual/pkgconfig + !sys-devel/gcc[libffi(-)]" +RDEPEND+=" !build? ( app-misc/mime-types )" +PDEPEND=">=app-eselect/eselect-python-20140125-r1" + +src_prepare() { + # Ensure that internal copies of expat, libffi and zlib are not used. + rm -fr Modules/expat || die + rm -fr Modules/_ctypes/libffi* || die + rm -fr Modules/zlib || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \ + setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@" + + # force correct number of jobs + # https://bugs.gentoo.org/737660 + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die + + eautoreconf +} + +src_configure() { + local disable + # disable automagic bluetooth headers detection + use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat. + export PYTHON_DISABLE_MODULES="${disable}" + + if ! use xml; then + ewarn "You have configured Python without XML support." + ewarn "This is NOT a recommended configuration as you" + ewarn "may face problems parsing any XML documents." + fi + + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi + + if [[ "$(gcc-major-version)" -ge 4 ]]; then + append-flags -fwrapv + fi + + filter-flags -malign-double + + # https://bugs.gentoo.org/show_bug.cgi?id=50309 + if is-flagq -O3; then + is-flagq -fstack-protector-all && replace-flags -O3 -O2 + use hardened && replace-flags -O3 -O2 + fi + + # https://bugs.gentoo.org/700012 + if is-flagq -flto || is-flagq '-flto=*'; then + append-cflags $(test-flags-CC -ffat-lto-objects) + fi + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + tc-export CXX + + # Set LDFLAGS so we link modules with -lpython3.2 correctly. + # Needed on FreeBSD unless Python 3.2 is already installed. + # Please query BSD team before removing this! + append-ldflags "-L." + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + + local dbmliborder + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + $(use_enable ipv6) + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --with-system-expat + --with-system-ffi + ) + + OPT="" econf "${myeconfargs[@]}" +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax_kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # Skip failing tests. + local skipped_tests="gdb" + + for test in ${skipped_tests}; do + mv "${S}"/Lib/test/test_${test}.py "${T}" + done + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + + emake test EXTRATESTOPTS="-u-network -j${jobs}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local result=$? + + for test in ${skipped_tests}; do + mv "${T}/test_${test}.py" "${S}"/Lib/test + done + + elog "The following tests have been skipped:" + for test in ${skipped_tests}; do + elog "test_${test}.py" + done + + elog "If you would like to run them, you may:" + elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'" + elog "and run the tests separately." + + if [[ ${result} -ne 0 ]]; then + die "emake test failed" + fi +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + emake DESTDIR="${D}" altinstall + + # Remove static library + rm "${ED}"/usr/$(get_libdir)/libpython*.a || die + + sed \ + -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \ + -e "s/\(PY_LDFLAGS=\).*/\1/" \ + -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed" + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax_kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die + use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die + + use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \ + emake --no-print-directory -s -f - 2>/dev/null) + newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + local -x EPYTHON=python${PYVER} + # if not using a cross-compiler, use the fresh binary + if ! tc-is-cross-compiler; then + local -x PYTHON=./python + local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD} + else + local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON} + fi + + echo "EPYTHON='${EPYTHON}'" > epython.py || die + python_domodule epython.py + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" \ + "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" \ + "${scriptdir}/python-config" || die + # 2to3, pydoc + ln -s "../../../bin/2to3-${PYVER}" \ + "${scriptdir}/2to3" || die + ln -s "../../../bin/pydoc${PYVER}" \ + "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" \ + "${scriptdir}/idle" || die + fi +} + +pkg_preinst() { + if has_version "<${CATEGORY}/${PN}-${PYVER}" && ! has_version ">=${CATEGORY}/${PN}-${PYVER}_alpha"; then + python_updater_warning="1" + fi +} + +eselect_python_update() { + if [[ -z "$(eselect python show)" || \ + ! -f "${EROOT}/usr/bin/$(eselect python show)" ]]; then + eselect python update + fi + + if [[ -z "$(eselect python show --python${PV%%.*})" || \ + ! -f "${EROOT}/usr/bin/$(eselect python show --python${PV%%.*})" ]] + then + eselect python update --python${PV%%.*} + fi +} + +pkg_postinst() { + eselect_python_update + + if [[ "${python_updater_warning}" == "1" ]]; then + ewarn "You have just upgraded from an older version of Python." + ewarn + ewarn "Please adjust PYTHON_TARGETS (if so desired), and run emerge with the --newuse or --changed-use option to rebuild packages installing python modules." + fi +} + +pkg_postrm() { + eselect_python_update +} diff --git a/dev-lang/ruby/Manifest b/dev-lang/ruby/Manifest index 079a9a231ae9..1be5c16339e3 100644 --- a/dev-lang/ruby/Manifest +++ b/dev-lang/ruby/Manifest @@ -15,15 +15,9 @@ AUX 2.6/010-default-gem-location.patch 688 BLAKE2B 4c2074d69b9fe5258a2fe0e38bb50 AUX 2.7/010-default-gem-location.patch 688 BLAKE2B 4c2074d69b9fe5258a2fe0e38bb501a39f34ad1fa08ef338224edba1f06073138cbe3d831ecdf9910c989a7f0a1c6c6b73ced0d8ff212207a3a3df5f4d90b5de SHA512 65206a6ca42ade0413ae1467f41082f4a93b3166644d2504cff3d280d23da02fd41aea5aca69dd43f6081b436db90a5b1e98725d8fa51519ca302c02ec526ad7 DIST ruby-2.5.8.tar.xz 11298404 BLAKE2B 3256c0448e72b63c0bd89f89a27fa9c09c8feed54d42cd79899b7d5cfe9dbc29ca708d12c630b3f52ff85b0c6a4011ae7ff0483d64b2fd445700a72a91028035 SHA512 2886be764a454425c5beef2777c64a70ee0d048b07896b327633d904f5077fea4299526689f9e2ac4dcd2fc4811cf9a6c8ce75367ed35d29dfe1a54222872e0d DIST ruby-2.6.6.tar.xz 11567284 BLAKE2B 45e910dd9b128c46bff3003834c4fdcbbc2e2e4d3e44f298ff4356a285de2c375d6b6021a3aa28d89336b32a1655fa4a7c086d07f4a0f6bcd578a11dd4a894da SHA512 86caf93dbf61d03781767ab5375a7edf4761f13ba08ccfefe16c0a7550499237e7390c2f72a95d42670d4fe76b2401b4218936187c62ec1572799e9e04c50d62 -DIST ruby-2.7.1.tar.xz 12003684 BLAKE2B 90a35c3e246cfe982a146be29a3d121d6e2c251ed96703dbc46b98c21e0e43e5445132e6119e584ae35f7193f063ff1b14822f947a4e07037c37fbba5e4038da SHA512 79f98b1ea98e0b10ec79da1883e8fc84d48ffe5c09ae945cbebde94365e35a589d919aac965f74d70ca7e21370ecee631ac5a8f9c4eac61d62f5aa629f27bf31 DIST ruby-2.7.2.tar.xz 12037052 BLAKE2B a4ad22295b3fed4e8064fc6e77adb8642d1fa7ae1f4ef912d7bde19c735cb25b1a3e3aefba53dad944046d844d608bcefba61c314cf1e52747f50d7d91f4c436 SHA512 7972278b096aa768c7adf2befd26003e18781a29ca317640317d30d93d6e963ded197724c8e2f1dfe1e838c5647176d414a74732a62e931fb50d6f2e0f777349 EBUILD ruby-2.5.8-r1.ebuild 7100 BLAKE2B 912195706cc476e52dd0e20005d4a04a11b286312de1129a91e281e291fa3caeb7de083e296db8384de3816198f3c1c02168bfc09120628cef95cece93345ad8 SHA512 1f20bab421047c622053d7e07a873e1e8c35bac6b5d938ed1d72e33cf7f99be7ec1f300eac9da38651fcc7b3761a81140f630cf1039cde78c3858e2942e01728 EBUILD ruby-2.5.8.ebuild 6189 BLAKE2B aa04b9f393085468d3452bfcc55a45c721bcbe51c9602d6f44510d1f936369f1c741ade879d24c619b1722270a460ba20bc679f0714a98d310d8293bc84c3678 SHA512 156ac0da5b5e6d1240bcb42ad9a7ce455a17077a3bfd66610d5425216ff7436462e8e1362764c8614900376eef146b168e1dd4691cddd9f13ded5a4a30204c9e -EBUILD ruby-2.6.6-r1.ebuild 6614 BLAKE2B b4862b320dbb557bde3b3c6e86b0d178a3421587afdb848ecf5991d48525c20b0012cf88cd31cc5f130088127b6c6ea5dd121cb461c842cab183f3db02260356 SHA512 28f23b21a389e90a59738a4debb38ed0eb30e44eac1dd3df0037fdd37d6e1467ee61beaa5dd35460cd767b743ef48c6c31b243cb207ffdef3b94bb3ef6d6241e EBUILD ruby-2.6.6-r2.ebuild 7508 BLAKE2B 57e533cae47720895e1c5b09489df0895540cafe9b6601c2434f73de8fba58fefc24ccc3d9c60c0b729eafb0200e4e28657ad10f20c578c6fc6f2a67950fd99a SHA512 a4c5caf911449ca64d801de6e44c9431d7934f885905040a830b90fe7c87ee50c8cf1e8fc838ab50af6856ac96c9b85f4e251408ea7aeeb8ebd335708e7d17eb -EBUILD ruby-2.6.6.ebuild 6614 BLAKE2B af5f7d759a8676db12091569871bf5d39a430715b1bba11c6f8a7fafb210039d0966797c5b2974fb56e91e670b65710adb73dbcc64cf20f2473c1b02f84bd4ba SHA512 ca639f0b01b4618f876d6473aa4a6756a97d66b8194a623865f8f96758016e3d4109ca5905570bbd0c7ad680c66722fffa91fc6c506083fd8e0ea418e354ffe9 -EBUILD ruby-2.7.1-r1.ebuild 6777 BLAKE2B 6f2bf65a51e784c931b962b7e1430655dc194801a2fd0ea63eff7c6ff97dd624939ff5f37ed6a2fa9aaec27ab0cad94281d4172051cc5e298e4df3b15d6deb41 SHA512 733c164d8d1a70a68d313ec764807386df22cbefa04346e788b3701e7a242899cb086ae18096002c3dee0c3f6459752a3f751c032320a9b0ae947e0ab2d16cc4 -EBUILD ruby-2.7.1-r2.ebuild 6857 BLAKE2B e4ed8cbe491edcc6123435383ead38cbe968f388acd35a0b9aa4e2ce556b8ac15e4c8ae5057678c5ef3c9e552b2a285953e85792fef8d45b0242dc4a52a59bb1 SHA512 1ac8a7d752fd80d4b70833acb059f650b0e79df376a6c956dd1f47857ef418e8ba5a7ff3cdf893eec17dd7afef901b95dec25eab8b1bda0e7f907ca658933453 -EBUILD ruby-2.7.1.ebuild 6777 BLAKE2B 987421adeb916bed61606194e0c4eff5d26e4da8e7d973bcc4ee2983fdbfb38c030a256b5327d23af3e2fd44dd2287cbeb4fd7072d375a3723fc16b1e18a5430 SHA512 3b733ece468748c72245c0cd83f8cb603e279db33aefa224f52c3441143332939b35f773a1d2d4a2cca688a74875f32537209b15cffbb5b4d7c1f6618f8a4a6b EBUILD ruby-2.7.2.ebuild 7679 BLAKE2B b4b0172836ea666a7e74d2cce467b7a19f449c702c49254a9a58f90925110207d9a9b183e285c63d8034eba931a30738fb935db129eece6ccafe1ff2615b4b73 SHA512 7dcac5ddecc5bd150a3b1c6a9ea29d34565fd242689c94d4101a5ff1e923f9917dc3ba0e8f32985092b21d067263f2cc08ca25d15808260c8100a9bffc76b29a MISC metadata.xml 523 BLAKE2B 4ed08360a279c8d44fe87f677cdc24a76eda6d37c591186951e16321f464d4451d0d1299c4e1d996bffe15a8cca672d4c5c1bc5fb0aa6cda69b8eff90ec31df8 SHA512 f74c386a3d6314d630aff11c40314db40b7f9fb202910480b37aa65b7bac62d6e87fa7590b2a26aa1713bb65be486ed84138e1273eaf7c8b966d7414e6b55464 diff --git a/dev-lang/ruby/ruby-2.6.6-r1.ebuild b/dev-lang/ruby/ruby-2.6.6-r1.ebuild deleted file mode 100644 index 7a67e1a482c5..000000000000 --- a/dev-lang/ruby/ruby-2.6.6-r1.ebuild +++ /dev/null @@ -1,232 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools flag-o-matic multilib - -MY_P="${PN}-$(ver_cut 1-3)" -S=${WORKDIR}/${MY_P} - -SLOT=$(ver_cut 1-2) -MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) -RUBYVERSION=${SLOT}.0 - -DESCRIPTION="An object-oriented scripting language" -HOMEPAGE="https://www.ruby-lang.org/" -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" - -LICENSE="|| ( Ruby-BSD BSD-2 )" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" -IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs tk xemacs" - -RDEPEND=" - berkdb? ( sys-libs/db:= ) - gdbm? ( sys-libs/gdbm:= ) - jemalloc? ( dev-libs/jemalloc ) - jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) ) - ssl? ( - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl ) - ) - socks5? ( >=net-proxy/dante-1.1.13 ) - tk? ( - dev-lang/tcl:0=[threads] - dev-lang/tk:0=[threads] - ) - dev-libs/libyaml - dev-libs/libffi:= - sys-libs/readline:0= - sys-libs/zlib - >=app-eselect/eselect-ruby-20181225 -" - -DEPEND="${RDEPEND}" - -BUNDLED_GEMS=" - >=dev-ruby/did_you_mean-1.2.1[ruby_targets_ruby26] - >=dev-ruby/minitest-5.11.3[ruby_targets_ruby26] - >=dev-ruby/net-telnet-0.2.0[ruby_targets_ruby26] - >=dev-ruby/power_assert-1.1.3[ruby_targets_ruby26] - >=dev-ruby/rake-12.3.2[ruby_targets_ruby26] - >=dev-ruby/test-unit-3.2.9[ruby_targets_ruby26] - >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby26] -" - -PDEPEND=" - ${BUNDLED_GEMS} - virtual/rubygems[ruby_targets_ruby26] - >=dev-ruby/bundler-1.17.2[ruby_targets_ruby26] - >=dev-ruby/json-2.0.2[ruby_targets_ruby26] - rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby26] ) - xemacs? ( app-xemacs/ruby-modes )" - -src_prepare() { - # 005 does not compile bigdecimal and is questionable because it - # compiles ruby in a non-standard way, may be dropped - eapply "${FILESDIR}"/2.6/010*.patch - - einfo "Unbundling gems..." - cd "$S" - # Remove bundled gems that we will install via PDEPEND, bug - # 539700. - rm -fr gems/* || die - - einfo "Removing bundled libraries..." - rm -fr ext/fiddle/libffi-3.2.1 || die - - eapply_user - - eautoreconf -} - -src_configure() { - local modules= myconf= - - # -fomit-frame-pointer makes ruby segfault, see bug #150413. - filter-flags -fomit-frame-pointer - # In many places aliasing rules are broken; play it safe - # as it's risky with newer compilers to leave it as it is. - append-flags -fno-strict-aliasing - - # Socks support via dante - if use socks5 ; then - # Socks support can't be disabled as long as SOCKS_SERVER is - # set and socks library is present, so need to unset - # SOCKS_SERVER in that case. - unset SOCKS_SERVER - fi - - # Increase GC_MALLOC_LIMIT if set (default is 8000000) - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}" - fi - - # ipv6 hack, bug 168939. Needs --enable-ipv6. - use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET" - - # Determine which modules *not* to build depending in the USE flags. - if ! use berkdb ; then - modules="${modules},dbm" - fi - if ! use gdbm ; then - modules="${modules},gdbm" - fi - if ! use ssl ; then - modules="${modules},openssl" - fi - if ! use tk ; then - modules="${modules},tk" - fi - - # Provide an empty LIBPATHENV because we disable rpath but we do not - # need LD_LIBRARY_PATH by default since that breaks USE=multitarget - # #564272 - INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \ - --program-suffix=${MY_SUFFIX} \ - --with-soname=ruby${MY_SUFFIX} \ - --enable-shared \ - --enable-pthread \ - --disable-rpath \ - --with-out-ext="${modules}" \ - $(use_with jemalloc jemalloc) \ - $(use_enable jit jit-support ) \ - $(use_enable socks5 socks) \ - $(use_enable doc install-doc) \ - --enable-ipv6 \ - $(use_enable static-libs static) \ - $(use_enable static-libs install-static-library) \ - $(use_with static-libs static-linked-ext) \ - $(use_enable debug) \ - ${myconf} \ - --enable-option-checking=no - - # Makefile is broken because it lacks -ldl - rm -rf ext/-test-/popen_deadlock || die -} - -src_compile() { - emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS="" -} - -src_test() { - emake -j1 V=1 test - - elog "Ruby's make test has been run. Ruby also ships with a make check" - elog "that cannot be run until after ruby has been installed." - elog - if use rubytests; then - elog "You have enabled rubytests, so they will be installed to" - elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other" - elog "than root, and you must place them into a writeable directory." - elog "Then call: " - elog - elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb" - else - elog "Enable the rubytests USE flag to install the make check tests" - fi -} - -src_install() { - # Remove the remaining bundled gems. We do this late in the process - # since they are used during the build to e.g. create the - # documentation. - rm -rf ext/json || die - rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die - - # Ruby is involved in the install process, we don't want interference here. - unset RUBYOPT - - local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby) - - LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}" - for d in $(find "${S}/ext" -type d) ; do - RUBYLIB="${RUBYLIB}:$d" - done - export LD_LIBRARY_PATH RUBYLIB - - # Create directory for the default gems - local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}" - mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed" - - emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install - - # Remove installed rubygems and rdoc copy - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed" - rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed" - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed" - rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed" - - if use doc; then - emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc - fi - - if use examples; then - dodoc -r sample - fi - - dodoc ChangeLog NEWS doc/NEWS* README* - - if use rubytests; then - pushd test - insinto /usr/share/${PN}-${SLOT}/test - doins -r . - popd - fi -} - -pkg_postinst() { - if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then - eselect ruby set ruby${MY_SUFFIX} - fi - - elog - elog "To switch between available Ruby profiles, execute as root:" - elog "\teselect ruby set ruby(23|24|...)" - elog -} - -pkg_postrm() { - eselect ruby cleanup -} diff --git a/dev-lang/ruby/ruby-2.6.6.ebuild b/dev-lang/ruby/ruby-2.6.6.ebuild deleted file mode 100644 index e7c55656994f..000000000000 --- a/dev-lang/ruby/ruby-2.6.6.ebuild +++ /dev/null @@ -1,232 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools flag-o-matic multilib - -MY_P="${PN}-$(ver_cut 1-3)" -S=${WORKDIR}/${MY_P} - -SLOT=$(ver_cut 1-2) -MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) -RUBYVERSION=${SLOT}.0 - -DESCRIPTION="An object-oriented scripting language" -HOMEPAGE="https://www.ruby-lang.org/" -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" - -LICENSE="|| ( Ruby-BSD BSD-2 )" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" -IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs tk xemacs" - -RDEPEND=" - berkdb? ( sys-libs/db:= ) - gdbm? ( sys-libs/gdbm:= ) - jemalloc? ( dev-libs/jemalloc ) - jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) ) - ssl? ( - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl ) - ) - socks5? ( >=net-proxy/dante-1.1.13 ) - tk? ( - dev-lang/tcl:0=[threads] - dev-lang/tk:0=[threads] - ) - dev-libs/libyaml - dev-libs/libffi:= - sys-libs/readline:0= - sys-libs/zlib - >=app-eselect/eselect-ruby-20171225 -" - -DEPEND="${RDEPEND}" - -BUNDLED_GEMS=" - >=dev-ruby/did_you_mean-1.2.1[ruby_targets_ruby26] - >=dev-ruby/minitest-5.11.3[ruby_targets_ruby26] - >=dev-ruby/net-telnet-0.2.0[ruby_targets_ruby26] - >=dev-ruby/power_assert-1.1.3[ruby_targets_ruby26] - >=dev-ruby/rake-12.3.2[ruby_targets_ruby26] - >=dev-ruby/test-unit-3.2.9[ruby_targets_ruby26] - >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby26] -" - -PDEPEND=" - ${BUNDLED_GEMS} - virtual/rubygems[ruby_targets_ruby26] - >=dev-ruby/bundler-1.17.2[ruby_targets_ruby26] - >=dev-ruby/json-2.0.2[ruby_targets_ruby26] - rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby26] ) - xemacs? ( app-xemacs/ruby-modes )" - -src_prepare() { - # 005 does not compile bigdecimal and is questionable because it - # compiles ruby in a non-standard way, may be dropped - eapply "${FILESDIR}"/2.6/010*.patch - - einfo "Unbundling gems..." - cd "$S" - # Remove bundled gems that we will install via PDEPEND, bug - # 539700. - rm -fr gems/* || die - - einfo "Removing bundled libraries..." - rm -fr ext/fiddle/libffi-3.2.1 || die - - eapply_user - - eautoreconf -} - -src_configure() { - local modules= myconf= - - # -fomit-frame-pointer makes ruby segfault, see bug #150413. - filter-flags -fomit-frame-pointer - # In many places aliasing rules are broken; play it safe - # as it's risky with newer compilers to leave it as it is. - append-flags -fno-strict-aliasing - - # Socks support via dante - if use socks5 ; then - # Socks support can't be disabled as long as SOCKS_SERVER is - # set and socks library is present, so need to unset - # SOCKS_SERVER in that case. - unset SOCKS_SERVER - fi - - # Increase GC_MALLOC_LIMIT if set (default is 8000000) - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}" - fi - - # ipv6 hack, bug 168939. Needs --enable-ipv6. - use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET" - - # Determine which modules *not* to build depending in the USE flags. - if ! use berkdb ; then - modules="${modules},dbm" - fi - if ! use gdbm ; then - modules="${modules},gdbm" - fi - if ! use ssl ; then - modules="${modules},openssl" - fi - if ! use tk ; then - modules="${modules},tk" - fi - - # Provide an empty LIBPATHENV because we disable rpath but we do not - # need LD_LIBRARY_PATH by default since that breaks USE=multitarget - # #564272 - INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \ - --program-suffix=${MY_SUFFIX} \ - --with-soname=ruby${MY_SUFFIX} \ - --enable-shared \ - --enable-pthread \ - --disable-rpath \ - --with-out-ext="${modules}" \ - $(use_with jemalloc jemalloc) \ - $(use_enable jit jit-support ) \ - $(use_enable socks5 socks) \ - $(use_enable doc install-doc) \ - --enable-ipv6 \ - $(use_enable static-libs static) \ - $(use_enable static-libs install-static-library) \ - $(use_with static-libs static-linked-ext) \ - $(use_enable debug) \ - ${myconf} \ - --enable-option-checking=no - - # Makefile is broken because it lacks -ldl - rm -rf ext/-test-/popen_deadlock || die -} - -src_compile() { - emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS="" -} - -src_test() { - emake -j1 V=1 test - - elog "Ruby's make test has been run. Ruby also ships with a make check" - elog "that cannot be run until after ruby has been installed." - elog - if use rubytests; then - elog "You have enabled rubytests, so they will be installed to" - elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other" - elog "than root, and you must place them into a writeable directory." - elog "Then call: " - elog - elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb" - else - elog "Enable the rubytests USE flag to install the make check tests" - fi -} - -src_install() { - # Remove the remaining bundled gems. We do this late in the process - # since they are used during the build to e.g. create the - # documentation. - rm -rf ext/json || die - rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die - - # Ruby is involved in the install process, we don't want interference here. - unset RUBYOPT - - local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby) - - LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}" - for d in $(find "${S}/ext" -type d) ; do - RUBYLIB="${RUBYLIB}:$d" - done - export LD_LIBRARY_PATH RUBYLIB - - # Create directory for the default gems - local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}" - mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed" - - emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install - - # Remove installed rubygems and rdoc copy - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed" - rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed" - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed" - rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed" - - if use doc; then - emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc - fi - - if use examples; then - dodoc -r sample - fi - - dodoc ChangeLog NEWS doc/NEWS* README* - - if use rubytests; then - pushd test - insinto /usr/share/${PN}-${SLOT}/test - doins -r . - popd - fi -} - -pkg_postinst() { - if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then - eselect ruby set ruby${MY_SUFFIX} - fi - - elog - elog "To switch between available Ruby profiles, execute as root:" - elog "\teselect ruby set ruby(23|24|...)" - elog -} - -pkg_postrm() { - eselect ruby cleanup -} diff --git a/dev-lang/ruby/ruby-2.7.1-r1.ebuild b/dev-lang/ruby/ruby-2.7.1-r1.ebuild deleted file mode 100644 index c1b75c35766f..000000000000 --- a/dev-lang/ruby/ruby-2.7.1-r1.ebuild +++ /dev/null @@ -1,235 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools flag-o-matic multilib - -MY_P="${PN}-$(ver_cut 1-3)" -S=${WORKDIR}/${MY_P} - -SLOT=$(ver_cut 1-2) -MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) -RUBYVERSION=${SLOT}.0 - -DESCRIPTION="An object-oriented scripting language" -HOMEPAGE="https://www.ruby-lang.org/" -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" - -LICENSE="|| ( Ruby-BSD BSD-2 )" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" -IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs tk xemacs" - -RDEPEND=" - berkdb? ( sys-libs/db:= ) - gdbm? ( sys-libs/gdbm:= ) - jemalloc? ( dev-libs/jemalloc ) - jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) ) - ssl? ( - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl ) - ) - socks5? ( >=net-proxy/dante-1.1.13 ) - tk? ( - dev-lang/tcl:0=[threads] - dev-lang/tk:0=[threads] - ) - dev-libs/libyaml - dev-libs/libffi:= - sys-libs/readline:0= - sys-libs/zlib - >=app-eselect/eselect-ruby-20191222 -" - -DEPEND="${RDEPEND}" - -BUNDLED_GEMS=" - >=dev-ruby/minitest-5.13.0[ruby_targets_ruby27] - >=dev-ruby/net-telnet-0.2.0[ruby_targets_ruby27] - >=dev-ruby/power_assert-1.1.7[ruby_targets_ruby27] - >=dev-ruby/rake-13.0.1[ruby_targets_ruby27] - >=dev-ruby/test-unit-3.3.4[ruby_targets_ruby27] - >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby27] -" - -PDEPEND=" - ${BUNDLED_GEMS} - virtual/rubygems[ruby_targets_ruby27] - >=dev-ruby/bundler-2.1.4[ruby_targets_ruby27] - >=dev-ruby/did_you_mean-1.3.1[ruby_targets_ruby27] - >=dev-ruby/json-2.0.2[ruby_targets_ruby27] - rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby27] ) - xemacs? ( app-xemacs/ruby-modes )" - -src_prepare() { - # 005 does not compile bigdecimal and is questionable because it - # compiles ruby in a non-standard way, may be dropped - eapply "${FILESDIR}"/2.7/010*.patch - - einfo "Unbundling gems..." - cd "$S" - # Remove bundled gems that we will install via PDEPEND, bug - # 539700. - rm -fr gems/* || die - # Don't install CLI tools since they will clash with the gem - rm -f bin/{racc,racc2y,y2racc} || die - sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die - - einfo "Removing bundled libraries..." - rm -fr ext/fiddle/libffi-3.2.1 || die - - eapply_user - - eautoreconf -} - -src_configure() { - local modules= myconf= - - # -fomit-frame-pointer makes ruby segfault, see bug #150413. - filter-flags -fomit-frame-pointer - # In many places aliasing rules are broken; play it safe - # as it's risky with newer compilers to leave it as it is. - append-flags -fno-strict-aliasing - - # Socks support via dante - if use socks5 ; then - # Socks support can't be disabled as long as SOCKS_SERVER is - # set and socks library is present, so need to unset - # SOCKS_SERVER in that case. - unset SOCKS_SERVER - fi - - # Increase GC_MALLOC_LIMIT if set (default is 8000000) - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}" - fi - - # ipv6 hack, bug 168939. Needs --enable-ipv6. - use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET" - - # Determine which modules *not* to build depending in the USE flags. - if ! use berkdb ; then - modules="${modules},dbm" - fi - if ! use gdbm ; then - modules="${modules},gdbm" - fi - if ! use ssl ; then - modules="${modules},openssl" - fi - if ! use tk ; then - modules="${modules},tk" - fi - - # Provide an empty LIBPATHENV because we disable rpath but we do not - # need LD_LIBRARY_PATH by default since that breaks USE=multitarget - # #564272 - INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \ - --program-suffix=${MY_SUFFIX} \ - --with-soname=ruby${MY_SUFFIX} \ - --enable-shared \ - --enable-pthread \ - --disable-rpath \ - --with-out-ext="${modules}" \ - $(use_with jemalloc jemalloc) \ - $(use_enable jit jit-support ) \ - $(use_enable socks5 socks) \ - $(use_enable doc install-doc) \ - --enable-ipv6 \ - $(use_enable static-libs static) \ - $(use_enable static-libs install-static-library) \ - $(use_with static-libs static-linked-ext) \ - $(use_enable debug) \ - ${myconf} \ - --enable-option-checking=no - - # Makefile is broken because it lacks -ldl - rm -rf ext/-test-/popen_deadlock || die -} - -src_compile() { - emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS="" -} - -src_test() { - emake -j1 V=1 test - - elog "Ruby's make test has been run. Ruby also ships with a make check" - elog "that cannot be run until after ruby has been installed." - elog - if use rubytests; then - elog "You have enabled rubytests, so they will be installed to" - elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other" - elog "than root, and you must place them into a writeable directory." - elog "Then call: " - elog - elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb" - else - elog "Enable the rubytests USE flag to install the make check tests" - fi -} - -src_install() { - # Remove the remaining bundled gems. We do this late in the process - # since they are used during the build to e.g. create the - # documentation. - rm -rf ext/json || die - rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die - - # Ruby is involved in the install process, we don't want interference here. - unset RUBYOPT - - local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby) - - LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}" - for d in $(find "${S}/ext" -type d) ; do - RUBYLIB="${RUBYLIB}:$d" - done - export LD_LIBRARY_PATH RUBYLIB - - # Create directory for the default gems - local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}" - mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed" - - emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install - - # Remove installed rubygems and rdoc copy - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed" - rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed" - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed" - rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed" - - if use doc; then - emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc - fi - - if use examples; then - dodoc -r sample - fi - - dodoc ChangeLog NEWS doc/NEWS* README* - - if use rubytests; then - pushd test - insinto /usr/share/${PN}-${SLOT}/test - doins -r . - popd - fi -} - -pkg_postinst() { - if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then - eselect ruby set ruby${MY_SUFFIX} - fi - - elog - elog "To switch between available Ruby profiles, execute as root:" - elog "\teselect ruby set ruby(23|24|...)" - elog -} - -pkg_postrm() { - eselect ruby cleanup -} diff --git a/dev-lang/ruby/ruby-2.7.1-r2.ebuild b/dev-lang/ruby/ruby-2.7.1-r2.ebuild deleted file mode 100644 index e4e8048e083a..000000000000 --- a/dev-lang/ruby/ruby-2.7.1-r2.ebuild +++ /dev/null @@ -1,237 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools flag-o-matic multilib - -MY_P="${PN}-$(ver_cut 1-3)" -S=${WORKDIR}/${MY_P} - -SLOT=$(ver_cut 1-2) -MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) -RUBYVERSION=${SLOT}.0 - -DESCRIPTION="An object-oriented scripting language" -HOMEPAGE="https://www.ruby-lang.org/" -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" - -LICENSE="|| ( Ruby-BSD BSD-2 )" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" -IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs" - -RDEPEND=" - berkdb? ( sys-libs/db:= ) - gdbm? ( sys-libs/gdbm:= ) - jemalloc? ( dev-libs/jemalloc ) - jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) ) - ssl? ( - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl ) - ) - socks5? ( >=net-proxy/dante-1.1.13 ) - systemtap? ( dev-util/systemtap ) - tk? ( - dev-lang/tcl:0=[threads] - dev-lang/tk:0=[threads] - ) - dev-libs/libyaml - dev-libs/libffi:= - sys-libs/readline:0= - sys-libs/zlib - >=app-eselect/eselect-ruby-20191222 -" - -DEPEND="${RDEPEND}" - -BUNDLED_GEMS=" - >=dev-ruby/minitest-5.13.0[ruby_targets_ruby27] - >=dev-ruby/net-telnet-0.2.0[ruby_targets_ruby27] - >=dev-ruby/power_assert-1.1.7[ruby_targets_ruby27] - >=dev-ruby/rake-13.0.1[ruby_targets_ruby27] - >=dev-ruby/test-unit-3.3.4[ruby_targets_ruby27] - >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby27] -" - -PDEPEND=" - ${BUNDLED_GEMS} - virtual/rubygems[ruby_targets_ruby27] - >=dev-ruby/bundler-2.1.4[ruby_targets_ruby27] - >=dev-ruby/did_you_mean-1.3.1[ruby_targets_ruby27] - >=dev-ruby/json-2.0.2[ruby_targets_ruby27] - rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby27] ) - xemacs? ( app-xemacs/ruby-modes )" - -src_prepare() { - # 005 does not compile bigdecimal and is questionable because it - # compiles ruby in a non-standard way, may be dropped - eapply "${FILESDIR}"/2.7/010*.patch - - einfo "Unbundling gems..." - cd "$S" - # Remove bundled gems that we will install via PDEPEND, bug - # 539700. - rm -fr gems/* || die - # Don't install CLI tools since they will clash with the gem - rm -f bin/{racc,racc2y,y2racc} || die - sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die - - einfo "Removing bundled libraries..." - rm -fr ext/fiddle/libffi-3.2.1 || die - - eapply_user - - eautoreconf -} - -src_configure() { - local modules= myconf= - - # -fomit-frame-pointer makes ruby segfault, see bug #150413. - filter-flags -fomit-frame-pointer - # In many places aliasing rules are broken; play it safe - # as it's risky with newer compilers to leave it as it is. - append-flags -fno-strict-aliasing - - # Socks support via dante - if use socks5 ; then - # Socks support can't be disabled as long as SOCKS_SERVER is - # set and socks library is present, so need to unset - # SOCKS_SERVER in that case. - unset SOCKS_SERVER - fi - - # Increase GC_MALLOC_LIMIT if set (default is 8000000) - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}" - fi - - # ipv6 hack, bug 168939. Needs --enable-ipv6. - use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET" - - # Determine which modules *not* to build depending in the USE flags. - if ! use berkdb ; then - modules="${modules},dbm" - fi - if ! use gdbm ; then - modules="${modules},gdbm" - fi - if ! use ssl ; then - modules="${modules},openssl" - fi - if ! use tk ; then - modules="${modules},tk" - fi - - # Provide an empty LIBPATHENV because we disable rpath but we do not - # need LD_LIBRARY_PATH by default since that breaks USE=multitarget - # #564272 - INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \ - --program-suffix=${MY_SUFFIX} \ - --with-soname=ruby${MY_SUFFIX} \ - --enable-shared \ - --enable-pthread \ - --disable-rpath \ - --with-out-ext="${modules}" \ - $(use_with jemalloc jemalloc) \ - $(use_enable jit jit-support ) \ - $(use_enable socks5 socks) \ - $(use_enable systemtap dtrace) \ - $(use_enable doc install-doc) \ - --enable-ipv6 \ - $(use_enable static-libs static) \ - $(use_enable static-libs install-static-library) \ - $(use_with static-libs static-linked-ext) \ - $(use_enable debug) \ - ${myconf} \ - --enable-option-checking=no - - # Makefile is broken because it lacks -ldl - rm -rf ext/-test-/popen_deadlock || die -} - -src_compile() { - emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS="" -} - -src_test() { - emake -j1 V=1 test - - elog "Ruby's make test has been run. Ruby also ships with a make check" - elog "that cannot be run until after ruby has been installed." - elog - if use rubytests; then - elog "You have enabled rubytests, so they will be installed to" - elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other" - elog "than root, and you must place them into a writeable directory." - elog "Then call: " - elog - elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb" - else - elog "Enable the rubytests USE flag to install the make check tests" - fi -} - -src_install() { - # Remove the remaining bundled gems. We do this late in the process - # since they are used during the build to e.g. create the - # documentation. - rm -rf ext/json || die - rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die - - # Ruby is involved in the install process, we don't want interference here. - unset RUBYOPT - - local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby) - - LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}" - for d in $(find "${S}/ext" -type d) ; do - RUBYLIB="${RUBYLIB}:$d" - done - export LD_LIBRARY_PATH RUBYLIB - - # Create directory for the default gems - local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}" - mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed" - - emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install - - # Remove installed rubygems and rdoc copy - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed" - rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed" - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed" - rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed" - - if use doc; then - emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc - fi - - if use examples; then - dodoc -r sample - fi - - dodoc ChangeLog NEWS doc/NEWS* README* - - if use rubytests; then - pushd test - insinto /usr/share/${PN}-${SLOT}/test - doins -r . - popd - fi -} - -pkg_postinst() { - if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then - eselect ruby set ruby${MY_SUFFIX} - fi - - elog - elog "To switch between available Ruby profiles, execute as root:" - elog "\teselect ruby set ruby(23|24|...)" - elog -} - -pkg_postrm() { - eselect ruby cleanup -} diff --git a/dev-lang/ruby/ruby-2.7.1.ebuild b/dev-lang/ruby/ruby-2.7.1.ebuild deleted file mode 100644 index 49b0ce2ee2e1..000000000000 --- a/dev-lang/ruby/ruby-2.7.1.ebuild +++ /dev/null @@ -1,235 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools flag-o-matic multilib - -MY_P="${PN}-$(ver_cut 1-3)" -S=${WORKDIR}/${MY_P} - -SLOT=$(ver_cut 1-2) -MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) -RUBYVERSION=${SLOT}.0 - -DESCRIPTION="An object-oriented scripting language" -HOMEPAGE="https://www.ruby-lang.org/" -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" - -LICENSE="|| ( Ruby-BSD BSD-2 )" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" -IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs tk xemacs" - -RDEPEND=" - berkdb? ( sys-libs/db:= ) - gdbm? ( sys-libs/gdbm:= ) - jemalloc? ( dev-libs/jemalloc ) - jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) ) - ssl? ( - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl ) - ) - socks5? ( >=net-proxy/dante-1.1.13 ) - tk? ( - dev-lang/tcl:0=[threads] - dev-lang/tk:0=[threads] - ) - dev-libs/libyaml - dev-libs/libffi:= - sys-libs/readline:0= - sys-libs/zlib - >=app-eselect/eselect-ruby-20171225 -" - -DEPEND="${RDEPEND}" - -BUNDLED_GEMS=" - >=dev-ruby/minitest-5.13.0[ruby_targets_ruby27] - >=dev-ruby/net-telnet-0.2.0[ruby_targets_ruby27] - >=dev-ruby/power_assert-1.1.7[ruby_targets_ruby27] - >=dev-ruby/rake-13.0.1[ruby_targets_ruby27] - >=dev-ruby/test-unit-3.3.4[ruby_targets_ruby27] - >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby27] -" - -PDEPEND=" - ${BUNDLED_GEMS} - virtual/rubygems[ruby_targets_ruby27] - >=dev-ruby/bundler-2.1.4[ruby_targets_ruby27] - >=dev-ruby/did_you_mean-1.3.1[ruby_targets_ruby27] - >=dev-ruby/json-2.0.2[ruby_targets_ruby27] - rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby27] ) - xemacs? ( app-xemacs/ruby-modes )" - -src_prepare() { - # 005 does not compile bigdecimal and is questionable because it - # compiles ruby in a non-standard way, may be dropped - eapply "${FILESDIR}"/2.7/010*.patch - - einfo "Unbundling gems..." - cd "$S" - # Remove bundled gems that we will install via PDEPEND, bug - # 539700. - rm -fr gems/* || die - # Don't install CLI tools since they will clash with the gem - rm -f bin/{racc,racc2y,y2racc} || die - sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die - - einfo "Removing bundled libraries..." - rm -fr ext/fiddle/libffi-3.2.1 || die - - eapply_user - - eautoreconf -} - -src_configure() { - local modules= myconf= - - # -fomit-frame-pointer makes ruby segfault, see bug #150413. - filter-flags -fomit-frame-pointer - # In many places aliasing rules are broken; play it safe - # as it's risky with newer compilers to leave it as it is. - append-flags -fno-strict-aliasing - - # Socks support via dante - if use socks5 ; then - # Socks support can't be disabled as long as SOCKS_SERVER is - # set and socks library is present, so need to unset - # SOCKS_SERVER in that case. - unset SOCKS_SERVER - fi - - # Increase GC_MALLOC_LIMIT if set (default is 8000000) - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}" - fi - - # ipv6 hack, bug 168939. Needs --enable-ipv6. - use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET" - - # Determine which modules *not* to build depending in the USE flags. - if ! use berkdb ; then - modules="${modules},dbm" - fi - if ! use gdbm ; then - modules="${modules},gdbm" - fi - if ! use ssl ; then - modules="${modules},openssl" - fi - if ! use tk ; then - modules="${modules},tk" - fi - - # Provide an empty LIBPATHENV because we disable rpath but we do not - # need LD_LIBRARY_PATH by default since that breaks USE=multitarget - # #564272 - INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \ - --program-suffix=${MY_SUFFIX} \ - --with-soname=ruby${MY_SUFFIX} \ - --enable-shared \ - --enable-pthread \ - --disable-rpath \ - --with-out-ext="${modules}" \ - $(use_with jemalloc jemalloc) \ - $(use_enable jit jit-support ) \ - $(use_enable socks5 socks) \ - $(use_enable doc install-doc) \ - --enable-ipv6 \ - $(use_enable static-libs static) \ - $(use_enable static-libs install-static-library) \ - $(use_with static-libs static-linked-ext) \ - $(use_enable debug) \ - ${myconf} \ - --enable-option-checking=no - - # Makefile is broken because it lacks -ldl - rm -rf ext/-test-/popen_deadlock || die -} - -src_compile() { - emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS="" -} - -src_test() { - emake -j1 V=1 test - - elog "Ruby's make test has been run. Ruby also ships with a make check" - elog "that cannot be run until after ruby has been installed." - elog - if use rubytests; then - elog "You have enabled rubytests, so they will be installed to" - elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other" - elog "than root, and you must place them into a writeable directory." - elog "Then call: " - elog - elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb" - else - elog "Enable the rubytests USE flag to install the make check tests" - fi -} - -src_install() { - # Remove the remaining bundled gems. We do this late in the process - # since they are used during the build to e.g. create the - # documentation. - rm -rf ext/json || die - rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die - - # Ruby is involved in the install process, we don't want interference here. - unset RUBYOPT - - local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby) - - LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}" - for d in $(find "${S}/ext" -type d) ; do - RUBYLIB="${RUBYLIB}:$d" - done - export LD_LIBRARY_PATH RUBYLIB - - # Create directory for the default gems - local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}" - mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed" - - emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install - - # Remove installed rubygems and rdoc copy - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed" - rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed" - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed" - rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed" - - if use doc; then - emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc - fi - - if use examples; then - dodoc -r sample - fi - - dodoc ChangeLog NEWS doc/NEWS* README* - - if use rubytests; then - pushd test - insinto /usr/share/${PN}-${SLOT}/test - doins -r . - popd - fi -} - -pkg_postinst() { - if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then - eselect ruby set ruby${MY_SUFFIX} - fi - - elog - elog "To switch between available Ruby profiles, execute as root:" - elog "\teselect ruby set ruby(23|24|...)" - elog -} - -pkg_postrm() { - eselect ruby cleanup -} diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest index 7ede91133a53..167441e8a73a 100644 --- a/dev-lang/rust/Manifest +++ b/dev-lang/rust/Manifest @@ -53,5 +53,5 @@ DIST rustc-1.47.0-src.tar.xz 104143736 BLAKE2B 0454094dde35275488046826da87655e5 DIST rustc-1.48.0-src.tar.xz 105951736 BLAKE2B 42468fc5ac5e80c4793cfe0913cbb8e43a8def28cc8cf5ed25ab989561e2bf33e155c83e180183362535cbc9008f341eb1273087a2364672b1a4032ac2d6ca45 SHA512 4e12baa6893238a8d336ec9ebe891477d18676f271b32763474fa7a6a8b58fb3187dd4e2aa95bce482989b692cc2e1360221669d6811eec71b326f22a1756c23 EBUILD rust-1.46.0.ebuild 17326 BLAKE2B b43d06f2b122762ce157174cfe821d4d1c93e5050d982ae2a29b9fea8a14744fdea755b5e98f49d66a87d1736a6457172193f4ca7e01cedc3469018daf46d28e SHA512 d1ac91bd59796b6f4b136cddffd404dee48ad00bb9c72b6bd9992b0a9950924c3f65d4df66a59f27b5522b01a54141df4b707db7d285d10cd10b2d1581358fe2 EBUILD rust-1.47.0-r2.ebuild 18737 BLAKE2B 1f9295e1356bc3b64ed50650d0436da91121d4b998e2c89f60021f6d5b927b914a7c641cd88853df5c8a8de041e61bf85701229d158b629f52bacfc8272c6f43 SHA512 48760ec9a6ae193f81c0748184e955aa138decb91a0612c6e0da791517f09ca0b2ff383e89d4dcd4946bbbbf23fc2ef36011f18fd8cdf61f26a97ce53590385e -EBUILD rust-1.48.0.ebuild 18057 BLAKE2B b59c23dfad5f6be2fa654f955e14bb4838d0dd75aba5a53bd4dfa1347a996f2d54ac9a20bde5219df8fe1070c64111f46cdb91002b439fb7b5cc80ac553b5da6 SHA512 e2d9e47a57275cdeb4ea62f54067d7a3b301f380f0e467a87c6fb516e651e064f25d77f268578d45aa5bf750855a53f1bd7e545b4c103d5d7c967537d3d0cd26 +EBUILD rust-1.48.0.ebuild 18059 BLAKE2B 0ca1b790ea5a9b4a0458402ed94eb52dfb90dc318b1e34777d92ff7ebd2fa580f03aec8d7e69b6598465c6b0ae85610d69faef170530d40c977ac3486e012430 SHA512 adef4683e24d7e04ee10bff683f1eeea6639ae97871f727094af18ee50bfb9b517e5d8ab0d0131c930fe3bf2265265b9199b345e91605e552478be6a10756c11 MISC metadata.xml 1083 BLAKE2B 7a7b093c22dcaef58bd67f9c2fd84a000696b234d2bc27315999bf6751cfd2a79441fd22efc284a542ecc84ce1a12ff9ca3495d249eaffa5bc1722b385c6109e SHA512 bfe8c140753e93db67244c92e9a7d193691ceb67de796c30a851966a1262bc5c897ead6e13d728775fa524215b6851609dcbee582022d9d75bb8d1e6fabc4ef4 diff --git a/dev-lang/rust/rust-1.48.0.ebuild b/dev-lang/rust/rust-1.48.0.ebuild index 19da77c7c399..779372ba4e66 100644 --- a/dev-lang/rust/rust-1.48.0.ebuild +++ b/dev-lang/rust/rust-1.48.0.ebuild @@ -510,8 +510,8 @@ src_install() { ) # bug #689562, #689160 - rm -v "${D}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die - rmdir -v "${D}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die + rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die + rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die dobashcomp build/tmp/dist/cargo-image/etc/bash_completion.d/cargo local symlinks=( diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest index d23f0f163cfe..d21c188a81ff 100644 --- a/dev-lang/spidermonkey/Manifest +++ b/dev-lang/spidermonkey/Manifest @@ -7,10 +7,7 @@ AUX spidermonkey-60.5.2-ia64-support.patch 1615 BLAKE2B bd2ae36194bdb6a17638ec50 AUX spidermonkey-perl-defined-array-check.patch 341 BLAKE2B e11a74cc2afbea5e39ec5f3fb4c108278a8b71b57ce71644184bc4e19188059f6cb9c164ab87877605028241ed0b68a1447414f1aa0f5453fa26a603ecd4f6a6 SHA512 5d178b68cf0744da874624da79cd31555bd882aed205e697a3f0bfc3cb91a149d74da79b7af5883ea5a23e1d1692753ebfda0d83e7a25ac000105849db5c1548 DIST firefox-68.0-patches-15.tar.xz 16060 BLAKE2B f9e6cd58ea51bed1af90a9d30fd551dc7e939afcd1b4d00de1271bd4bda94021c6f1799fd9945962c14ffa1fd0b6a6429369c4e45efc2000f179b9b2e46971e7 SHA512 9cb2479637dd8b84e0ab68dc0fe144acd2dc74feca282fd3c4b485ca6f0de8190244587622713a5421b243ccda153f738e9a8f463e87e15e93e9b725d943e128 DIST firefox-68.12.0esr.source.tar.xz 313856956 BLAKE2B eeaa4acc9fabf15ec1b313170a30cee8e1fc10a8b08512b915b83b7d6a81c09b365733ed94638bd434864fd7b0cb8cbf1bc2e43441be69e31117e8e6a099234c SHA512 839b02422e4c87bdb12e0995cd35ca8c1996f3fba00bbb46b419e46b67df5ec48a264cb14632db777ce29166ee4fdcb06e2ee3ce847e64328c58c9a2f9129f4c -DIST firefox-78.4.1esr.source.tar.xz 334673424 BLAKE2B 3ba8bf545c4c2b92914bf7f63b539ba61dc2ee6c14fb8995a6d75adb4bd11988f1d47d2c64639cbecf7a4b01b99085e63af4eb3afc7a27047f03048ffa9c2c2d SHA512 287096ad67e86b307554475c3b5d1003a325d6d13987bfbec2ec79aa0f8004dce1614ab62585ba5cf153545618906ab640cd4657d5a910085afb3d8ceb46e8de -DIST firefox-78.5.0esr.source.tar.xz 333995288 BLAKE2B 35140afb6b4d15052858e7864753ca74099edb24ed5e459f1f48114f0946f5e007486b5561ba9a545566033d71a69f0e6163dd17204cab717c441323972f089e SHA512 0d16013342b6e8d67adb5c111177ea4796db4fb593da8aa254d0d95bdf33fad798c2dbb235d44db4177c32dd2d7b3ac26b938b476342753ee8d6c83d968d0281 DIST firefox-78.6.0esr.source.tar.xz 338098664 BLAKE2B 9d082b6104bffbd0d918dc1adf2a01ac32613d8048faf399177834c4949714a00c1f4383b778a21d6b6684296d8f9bd44fa547ee2507a8631d206e3764d2ceeb SHA512 a1e2d6af0020784d00ed3cb4d778c136685e7c2f6ae536cc270fbd331d51d483d17dff9acd7ad8e6b3b231b9df894c146092889357b23715814a080c6f08d11a -DIST firefox-78esr-patches-04.tar.xz 171504 BLAKE2B d51e55c255d1f5cfa0c7c030b1ea50cb54951bed3bc21b21f5cb3b1e4b8b2ad406b3d12db2baabd4a90e3c88a38f187f277e7a4afe441ea6cf82c48f84bb0ac5 SHA512 6f00ec898fafb34d7c7e0ff2a6fb5c1cbf1205458845e14eb39c131125c5bf6b2418fea1050bb72449ec40e18fd775fc844437ce0290281d66961de40a53235a DIST firefox-78esr-patches-07.tar.xz 66156 BLAKE2B 8f69883432dcbd484b1fb15e3fde1630b1424e502ba78d9ec3cbe70cb2676a6876853d3477c8bfe35e92bca91b200e2d14543de1778d895676a52d2608109af2 SHA512 b4a01d3499002bd33a7fb45a1a80e9e73ba27a0986b6bfa43b3482dd8d82a686a14ae0c5e013402c8c8f359a642632a40bf4c362a0e83a1f53b453914f42e3a7 DIST js185-1.0.0.tar.gz 6164605 BLAKE2B 76a37f0ceae05d3475853875bd0ce4be6e525e4114816f8f281ea6fc6b60a71060975a0fa1cb843f57ad1e2f842dfb26b24244fa0fd6c20f6ae2ebbe430f70be SHA512 2af7122a7c7007fd7b6668776fe1222515a810b3e43bbf0f76b8f94e1ef406ffd3fb5ccec393021b00274c05b38a77235bc8d6886994c56762fcaf0aa7cf6718 DIST mozjs-52.9.1pre1.tar.bz2 30178574 BLAKE2B 0920432b5140e78297a9bcbccb54268d75a223d5e75e4ff90b3b01aab4f7736b4a4e05c47b3a925ff0a74607a0abad3b6583c75d070ef5142009b20ebaf6e4bf SHA512 187b231b246a5ae09e55c0fef77866b316d75f38f4c2e066d5d4325d8da63433027020c929439cab46af3253ac63ab2f780223a8fd2c6ff535b3409bb6c4aa0f @@ -18,14 +15,11 @@ DIST mozjs-60.5.2.tar.bz2 32816585 BLAKE2B 45ac4c9646e1275faf60eeedbf486f802cd10 DIST spidermonkey-52.0-patches-1.tar.xz 3112 BLAKE2B d8f4c44cb2ae290fa51efc4725a2c1b3cd85dd9f04f4ccfa5681ba6df5f37f5d8d4ad6859316a70d0f7647ac2cee014d126f88b7d4ca74a82796f35b141200ef SHA512 5328403e3b9ecd1c456037e7cca374c2453d9331752c48b9466e498e22fd8d4ca6e1804e51140ee0be027fcef7d0c3f26822b1f569305a3b2f03209b7fb15499 DIST spidermonkey-60.0-patches-04.tar.xz 4428 BLAKE2B af78049cd9b3ee6a9b689e6253486c4670fd3b506faade7d745dafaa7af329c0bd15cd35e95528a4c96688230f4803130967fb09b97aae2bda0ce0f73acaaf3e SHA512 fb1326a81512146ba98773d4f7e0c4bc1bff0f076897c13f576fcf63b56f6965efeff633eea9160bca9f9bc4546505901084eabc33bc955de0b7ab3d6334387a DIST spidermonkey-68.6.0-patches-04.tar.xz 5956 BLAKE2B b1250391a5173e676272d5926b710c06b0e9de1ff03b130a57fdac30f2deefbee3fa92250b37e28087572fe5cce73eb112ef4e1fb0c0401d6ecdb22ab9868998 SHA512 94575b11b4f006c6ee0c8d64b315734a173cecb68e9128ca61ba1a28177e3c149b8cf1f3b3c47a7a263fad8da6196fc0101df87392f016686a827e0cd24fdc74 -DIST spidermonkey-78-patches-02.tar.xz 3432 BLAKE2B 3ac46306f1740e704ed1aa8cb0f2a963d0b94bee60349ce31bc0ac477942781c9cdfa1d791a22e31c9258ade5d955cf6d32696ced73247777a908cb3e5c464c2 SHA512 d94c33d327d07072aa5ca66135ab2100e86acf38e091bf5b9644c537f77fb734433246a2f4bf58bf76d884510bce565b6ab75c23472be7e9d1f566dc4e812b5c DIST spidermonkey-78-patches-03.tar.xz 3732 BLAKE2B 5dc47527581c010994a102e6458119c762ec3836f57e403cbaac88c457f5f119bd75ae1a067307b20d229536f75db4b2b797408874d28156667ac63b61de8501 SHA512 f0921562dcd0ea519bf3f5ef2da43f87565e92493781d56e6e0b73d4124f41e7aadd34d8285bbb181f4286160dde0c9684920e98058f0683143a2687eb93cc1a DIST spidermonkey-slot0-patches-02.tar.xz 10952 BLAKE2B fb7bf5cdac6c821a48d407ff172fe0ec7297e047d3b3bab952f226f413b83ea70325175b41c1680725ff588111b424efc97a0c66e392989da510c43d38528ff1 SHA512 cd62890c4b58658d99fc1b52f05ccb35c07da835b168bb9d5e6b219de5021122c199cc2255c5b0be01ef582f53dd51c9975921e6bde9f14e9b43536e2bee85f2 EBUILD spidermonkey-1.8.5-r9.ebuild 3995 BLAKE2B fb52ebb4287a3209ad318d8cd73687ddb6222e033b4b54311a99819805af89e095e3db95977713b54bb2adf694017fbc2e806760746d30df10a182860cd5e9f4 SHA512 faa9f16336a5326ee586f3d5b15fd92668d6fc22bf3e2342f5686157ca76afb4372e605248bd5cbfb09a5ed1b38a399725dda0bc321a98184593d43eac1613ca EBUILD spidermonkey-52.9.1_pre1-r2.ebuild 4591 BLAKE2B b8fe23279548903b66139d3310f041eb45f114c3012867cd01160155f6e8732e6d914a07346697d1a719439e351b891809bda603a842b8b220160d1d73db03ad SHA512 8f950866d7406a2a8626b2fd45a32cd89dfc4b4322c793cbfbab694ffc8eb7b752d032435302f1eae01d5e4882dca595e06b304ee1dc8b3fb095c1df88eb9287 EBUILD spidermonkey-60.5.2_p0-r4.ebuild 4238 BLAKE2B a5f3d1bcb0c12a678795d2e632822687e2d025bbb679daf0a5ffc2d262118bd5120f0a112ed39cf1feda178b609c6a2395e3d424c9e796b824a048bcb7385deb SHA512 3961fce1b9984e3929005a4d0ce3e0494ff1de7d42d07c70023b57d4e45f2d3cca1c6c8d8c803b95dcacf5a56ef9a66a339fe891bef594d079f275861d16b035 EBUILD spidermonkey-68.12.0.ebuild 7310 BLAKE2B 9808f81f5adcd34331a2ae9db9c00303f13493e9a3dfdd007f89b8a87ce86c8626cd6041116ed0347f1675558363097c1d8727b36e92ed8dc76af2f2584a186d SHA512 c7ada8f749bf7fb5de92653730d54a1b1af32cce2486766606eae6cb3b592967c0fca37d43375250fa924ee9fdc275f923c0bd620cc25d21d51b8ba4be8587fc -EBUILD spidermonkey-78.4.1.ebuild 8097 BLAKE2B d8a3a67996d503b6e36294304817a76b04f86f767407a1207fe1362933f3a6f8fc1c6b8303daec733f6255e13628c4df1612a096a78059e20839949e0e73a4af SHA512 215a96406246d5b55cc991658d15c614c4a53774fe3bdfbe8d721d63e8671ec0971512884249ed4f4ad6967523f791177ede536809ee0b42fdbda1462a061111 -EBUILD spidermonkey-78.5.0.ebuild 8097 BLAKE2B 787658a3bf3725197c49ba82cb5e9dfbf7393f4f5bc5d48bd772ec487df73c8cf0c03577d66cb2f216cd194ecb587f56424b1b744f463ec8d490afe419c8c4f3 SHA512 e34cd0087db8b2bc9366c708268d7664f961191b8c9f37a41fb45cc9066c7bda22fb70bb0db1b5e1022046e987c0ff0a284076459a15f6daaba0b8510db843ba -EBUILD spidermonkey-78.6.0.ebuild 11482 BLAKE2B c9c6000fea277560d4052e92613c965bbcb900bc046a757a6f183bd084d5766b63af01400acd006a12dd9b1f8c6a74408cd1e16459702f8102b17fe3fd92adab SHA512 eb31ce503eee3f7e86d1465a169e0384293416c4a03539de4128bf6231f6194edc7c00dd669407e58af3c0e5a7fddd3f01d49fb3374590bd38d050c4b3765286 +EBUILD spidermonkey-78.6.0.ebuild 12231 BLAKE2B 23f377bc3119c5c7597d792f47f4dbd12f069e35471b5f46391e8bd5f5cc173eb72c535daddd80cf0a264a2b101678c62ca3299946e38a8987b2cf9546af5582 SHA512 53731ca5668eb62120fabe901ab65d6d7cf337fcadea77e1e79b43d1fb8adbd669caf7514d028fbc55decb46291977c4553adcda8e0f68f7c628e11bce56860d MISC metadata.xml 868 BLAKE2B ee529f60bc83af6c54188ab4db2a1e05cbc3fcebf7732580cb5e507afada8560cb8812d4f155ae94c2ec87724bdfafe7312de86b47a95f599655695836c9b806 SHA512 caf3c383cd8109391cbf81baf5e942630bfd84ca6bc2a78430e58e5b0a40428e08b8a3d7c9fadccebaf94fe1aa673df837246fc32d5932b7f60dd43431ee1575 diff --git a/dev-lang/spidermonkey/spidermonkey-78.4.1.ebuild b/dev-lang/spidermonkey/spidermonkey-78.4.1.ebuild deleted file mode 100644 index 51c99770b037..000000000000 --- a/dev-lang/spidermonkey/spidermonkey-78.4.1.ebuild +++ /dev/null @@ -1,303 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -# Patch version -FIREFOX_PATCHSET="firefox-78esr-patches-04.tar.xz" -SPIDERMONKEY_PATCHSET="spidermonkey-78-patches-02.tar.xz" - -PYTHON_COMPAT=( python3_{6..9} ) - -WANT_AUTOCONF="2.1" - -inherit autotools check-reqs flag-o-matic multiprocessing python-any-r1 toolchain-funcs - -MY_PN="mozjs" -MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases - -MY_MAJOR=$(ver_cut 1) - -MOZ_ESR=yes - -MOZ_PV=${PV} -MOZ_PV_SUFFIX= -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then - MOZ_PV_SUFFIX=${BASH_REMATCH[1]} - - # Convert the ebuild version to the upstream Mozilla version - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI -fi - -if [[ -n ${MOZ_ESR} ]] ; then - # ESR releases have slightly different version numbers - MOZ_PV="${MOZ_PV}esr" -fi - -MOZ_PN="firefox" -MOZ_P="${MOZ_PN}-${MOZ_PV}" -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" - -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" - -if [[ ${PV} == *_rc* ]] ; then - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" -fi - -PATCH_URIS=( - https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${FIREFOX_PATCHSET} - https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET} -) - -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz - ${PATCH_URIS[@]}" - -DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++" -HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey" - -KEYWORDS="amd64 arm arm64 ~mips ppc64 ~s390 x86" - -SLOT="78" -LICENSE="MPL-2.0" -IUSE="cpu_flags_arm_neon debug +jit lto test" - -RESTRICT="!test? ( test )" - -BDEPEND="${PYTHON_DEPS} - sys-devel/llvm - >=virtual/rust-1.41.0 - virtual/pkgconfig" - -CDEPEND=">=dev-libs/icu-67.1:= - >=dev-libs/nspr-4.25 - sys-libs/readline:0= - >=sys-libs/zlib-1.2.3" - -DEPEND="${CDEPEND} - test? ( - $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]') - )" - -RDEPEND="${CDEPEND}" - -S="${WORKDIR}/firefox-${MY_PV}/js/src" - -python_check_deps() { - if use test ; then - has_version "dev-python/six[${PYTHON_USEDEP}]" - fi -} - -pkg_pretend() { - if use test ; then - CHECKREQS_DISK_BUILD="7600M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_pretend -} - -pkg_setup() { - if use test ; then - CHECKREQS_DISK_BUILD="7600M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_setup - - python-any-r1_pkg_setup - - # Build system is using /proc/self/oom_score_adj, bug #604394 - addpredict /proc/self/oom_score_adj - - if ! mountpoint -q /dev/shm ; then - # If /dev/shm is not available, configure is known to fail with - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py - ewarn "/dev/shm is not mounted -- expect build failures!" - fi -} - -src_prepare() { - pushd ../.. &>/dev/null || die - - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch - - eapply "${WORKDIR}"/firefox-patches - eapply "${WORKDIR}"/spidermonkey-patches - - default - - # Make LTO respect MAKEOPTS - sed -i \ - -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - build/moz.configure/lto-pgo.configure \ - || die "sed failed to set num_cores" - - # sed-in toolchain prefix - sed -i \ - -e "s/objdump/${CHOST}-objdump/" \ - python/mozbuild/mozbuild/configure/check_debug_ranges.py \ - || die "sed failed to set toolchain prefix" - - einfo "Removing pre-built binaries ..." - find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die - - MOZJS_BUILDDIR="${WORKDIR}/build" - mkdir "${MOZJS_BUILDDIR}" || die - - popd &>/dev/null || die - eautoconf -} - -src_configure() { - tc-export CC CXX LD AR RANLIB - - cd "${MOZJS_BUILDDIR}" || die - - # ../python/mach/mach/mixin/process.py fails to detect SHELL - export SHELL="${EPREFIX}/bin/bash" - - local -a myeconfargs=( - --host="${CBUILD:-${CHOST}}" - --target="${CHOST}" - --disable-jemalloc - --disable-optimize - --disable-strip - --enable-readline - --enable-shared-js - --with-intl-api - --with-system-icu - --with-system-nspr - --with-system-zlib - --with-toolchain-prefix="${CHOST}-" - $(use_enable debug) - $(use_enable jit) - $(use_enable test tests) - ) - - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then - myeconfargs+=( --enable-rust-simd ) - fi - - # Modifications to better support ARM, bug 717344 - if use cpu_flags_arm_neon ; then - myeconfargs+=( --with-fpu=neon ) - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - myeconfargs+=( --with-thumb=yes ) - myeconfargs+=( --with-thumb-interwork=no ) - fi - fi - - # Tell build system that we want to use LTO - if use lto ; then - myeconfargs+=( --enable-lto ) - fi - - # LTO flag was handled via configure - filter-flags '-flto*' - - # Forcing system-icu allows us to skip patching bundled ICU for PPC - # and other minor arches - ECONF_SOURCE="${S}" \ - econf \ - ${myeconfargs[@]} \ - XARGS="${EPREFIX}/usr/bin/xargs" -} - -src_compile() { - cd "${MOZJS_BUILDDIR}" || die - default -} - -src_test() { - if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then - einfo "Smoke-test successful, continuing with full test suite" - else - die "Smoke-test failed: did interpreter initialization fail?" - fi - - local -a KNOWN_TESTFAILURES - KNOWN_TESTFAILURES+=( non262/Date/reset-time-zone-cache-same-offset.js ) - KNOWN_TESTFAILURES+=( non262/Date/time-zone-path.js ) - KNOWN_TESTFAILURES+=( non262/Date/time-zones-historic.js ) - KNOWN_TESTFAILURES+=( non262/Date/time-zones-imported.js ) - KNOWN_TESTFAILURES+=( non262/Date/toString-localized.js ) - KNOWN_TESTFAILURES+=( non262/Date/toString-localized-posix.js ) - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/timeZone_backward_links.js ) - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/tz-environment-variable.js ) - KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags.js ) - KNOWN_TESTFAILURES+=( test262/intl402/Locale/prototype/minimize/removing-likely-subtags-first-adds-likely-subtags.js ) - - if use x86 ; then - KNOWN_TESTFAILURES+=( non262/Date/timeclip.js ) - KNOWN_TESTFAILURES+=( test262/built-ins/Number/prototype/toPrecision/return-values.js ) - KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.1.js ) - KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.2.js ) - fi - - if [[ $(tc-endian) == "big" ]] ; then - KNOWN_TESTFAILURES+=( test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js ) - fi - - echo "" > "${T}"/known_failures.list || die - - local KNOWN_TESTFAILURE - for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do - echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list - done - - PYTHONPATH="${S}/tests/lib" \ - ${PYTHON} \ - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \ - --exclude-file="${T}"/known_failures.list \ - "${MOZJS_BUILDDIR}"/js/src/js \ - || die - - if use jit ; then - KNOWN_TESTFAILURES=() - - echo "" > "${T}"/known_failures.list || die - - for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do - echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list - done - - PYTHONPATH="${S}/tests/lib" \ - ${PYTHON} \ - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \ - --exclude-file="${T}"/known_failures.list \ - "${MOZJS_BUILDDIR}"/js/src/js basic \ - || die - fi -} - -src_install() { - cd "${MOZJS_BUILDDIR}" || die - default - - # fix soname links - pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die - mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die - ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die - ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die - popd &>/dev/null || die - - # remove unneeded files - rm \ - "${ED}"/usr/bin/js${MY_MAJOR}-config \ - "${ED}"/usr/$(get_libdir)/libjs_static.ajs \ - || die - - # fix permissions - chmod -x \ - "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \ - "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \ - || die -} diff --git a/dev-lang/spidermonkey/spidermonkey-78.5.0.ebuild b/dev-lang/spidermonkey/spidermonkey-78.5.0.ebuild deleted file mode 100644 index cf316804750b..000000000000 --- a/dev-lang/spidermonkey/spidermonkey-78.5.0.ebuild +++ /dev/null @@ -1,303 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -# Patch version -FIREFOX_PATCHSET="firefox-78esr-patches-07.tar.xz" -SPIDERMONKEY_PATCHSET="spidermonkey-78-patches-02.tar.xz" - -PYTHON_COMPAT=( python3_{6..9} ) - -WANT_AUTOCONF="2.1" - -inherit autotools check-reqs flag-o-matic multiprocessing python-any-r1 toolchain-funcs - -MY_PN="mozjs" -MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases - -MY_MAJOR=$(ver_cut 1) - -MOZ_ESR=yes - -MOZ_PV=${PV} -MOZ_PV_SUFFIX= -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then - MOZ_PV_SUFFIX=${BASH_REMATCH[1]} - - # Convert the ebuild version to the upstream Mozilla version - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI -fi - -if [[ -n ${MOZ_ESR} ]] ; then - # ESR releases have slightly different version numbers - MOZ_PV="${MOZ_PV}esr" -fi - -MOZ_PN="firefox" -MOZ_P="${MOZ_PN}-${MOZ_PV}" -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" - -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" - -if [[ ${PV} == *_rc* ]] ; then - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" -fi - -PATCH_URIS=( - https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${FIREFOX_PATCHSET} - https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET} -) - -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz - ${PATCH_URIS[@]}" - -DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++" -HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey" - -KEYWORDS="amd64 arm arm64 ~mips ppc64 ~s390 x86" - -SLOT="78" -LICENSE="MPL-2.0" -IUSE="cpu_flags_arm_neon debug +jit lto test" - -RESTRICT="!test? ( test )" - -BDEPEND="${PYTHON_DEPS} - sys-devel/llvm - >=virtual/rust-1.41.0 - virtual/pkgconfig" - -CDEPEND=">=dev-libs/icu-67.1:= - >=dev-libs/nspr-4.25 - sys-libs/readline:0= - >=sys-libs/zlib-1.2.3" - -DEPEND="${CDEPEND} - test? ( - $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]') - )" - -RDEPEND="${CDEPEND}" - -S="${WORKDIR}/firefox-${MY_PV}/js/src" - -python_check_deps() { - if use test ; then - has_version "dev-python/six[${PYTHON_USEDEP}]" - fi -} - -pkg_pretend() { - if use test ; then - CHECKREQS_DISK_BUILD="7600M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_pretend -} - -pkg_setup() { - if use test ; then - CHECKREQS_DISK_BUILD="7600M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_setup - - python-any-r1_pkg_setup - - # Build system is using /proc/self/oom_score_adj, bug #604394 - addpredict /proc/self/oom_score_adj - - if ! mountpoint -q /dev/shm ; then - # If /dev/shm is not available, configure is known to fail with - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py - ewarn "/dev/shm is not mounted -- expect build failures!" - fi -} - -src_prepare() { - pushd ../.. &>/dev/null || die - - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch - - eapply "${WORKDIR}"/firefox-patches - eapply "${WORKDIR}"/spidermonkey-patches - - default - - # Make LTO respect MAKEOPTS - sed -i \ - -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - build/moz.configure/lto-pgo.configure \ - || die "sed failed to set num_cores" - - # sed-in toolchain prefix - sed -i \ - -e "s/objdump/${CHOST}-objdump/" \ - python/mozbuild/mozbuild/configure/check_debug_ranges.py \ - || die "sed failed to set toolchain prefix" - - einfo "Removing pre-built binaries ..." - find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die - - MOZJS_BUILDDIR="${WORKDIR}/build" - mkdir "${MOZJS_BUILDDIR}" || die - - popd &>/dev/null || die - eautoconf -} - -src_configure() { - tc-export CC CXX LD AR RANLIB - - cd "${MOZJS_BUILDDIR}" || die - - # ../python/mach/mach/mixin/process.py fails to detect SHELL - export SHELL="${EPREFIX}/bin/bash" - - local -a myeconfargs=( - --host="${CBUILD:-${CHOST}}" - --target="${CHOST}" - --disable-jemalloc - --disable-optimize - --disable-strip - --enable-readline - --enable-shared-js - --with-intl-api - --with-system-icu - --with-system-nspr - --with-system-zlib - --with-toolchain-prefix="${CHOST}-" - $(use_enable debug) - $(use_enable jit) - $(use_enable test tests) - ) - - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then - myeconfargs+=( --enable-rust-simd ) - fi - - # Modifications to better support ARM, bug 717344 - if use cpu_flags_arm_neon ; then - myeconfargs+=( --with-fpu=neon ) - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - myeconfargs+=( --with-thumb=yes ) - myeconfargs+=( --with-thumb-interwork=no ) - fi - fi - - # Tell build system that we want to use LTO - if use lto ; then - myeconfargs+=( --enable-lto ) - fi - - # LTO flag was handled via configure - filter-flags '-flto*' - - # Forcing system-icu allows us to skip patching bundled ICU for PPC - # and other minor arches - ECONF_SOURCE="${S}" \ - econf \ - ${myeconfargs[@]} \ - XARGS="${EPREFIX}/usr/bin/xargs" -} - -src_compile() { - cd "${MOZJS_BUILDDIR}" || die - default -} - -src_test() { - if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then - einfo "Smoke-test successful, continuing with full test suite" - else - die "Smoke-test failed: did interpreter initialization fail?" - fi - - local -a KNOWN_TESTFAILURES - KNOWN_TESTFAILURES+=( non262/Date/reset-time-zone-cache-same-offset.js ) - KNOWN_TESTFAILURES+=( non262/Date/time-zone-path.js ) - KNOWN_TESTFAILURES+=( non262/Date/time-zones-historic.js ) - KNOWN_TESTFAILURES+=( non262/Date/time-zones-imported.js ) - KNOWN_TESTFAILURES+=( non262/Date/toString-localized.js ) - KNOWN_TESTFAILURES+=( non262/Date/toString-localized-posix.js ) - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/timeZone_backward_links.js ) - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/tz-environment-variable.js ) - KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags.js ) - KNOWN_TESTFAILURES+=( test262/intl402/Locale/prototype/minimize/removing-likely-subtags-first-adds-likely-subtags.js ) - - if use x86 ; then - KNOWN_TESTFAILURES+=( non262/Date/timeclip.js ) - KNOWN_TESTFAILURES+=( test262/built-ins/Number/prototype/toPrecision/return-values.js ) - KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.1.js ) - KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.2.js ) - fi - - if [[ $(tc-endian) == "big" ]] ; then - KNOWN_TESTFAILURES+=( test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js ) - fi - - echo "" > "${T}"/known_failures.list || die - - local KNOWN_TESTFAILURE - for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do - echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list - done - - PYTHONPATH="${S}/tests/lib" \ - ${PYTHON} \ - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \ - --exclude-file="${T}"/known_failures.list \ - "${MOZJS_BUILDDIR}"/js/src/js \ - || die - - if use jit ; then - KNOWN_TESTFAILURES=() - - echo "" > "${T}"/known_failures.list || die - - for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do - echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list - done - - PYTHONPATH="${S}/tests/lib" \ - ${PYTHON} \ - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \ - --exclude-file="${T}"/known_failures.list \ - "${MOZJS_BUILDDIR}"/js/src/js basic \ - || die - fi -} - -src_install() { - cd "${MOZJS_BUILDDIR}" || die - default - - # fix soname links - pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die - mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die - ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die - ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die - popd &>/dev/null || die - - # remove unneeded files - rm \ - "${ED}"/usr/bin/js${MY_MAJOR}-config \ - "${ED}"/usr/$(get_libdir)/libjs_static.ajs \ - || die - - # fix permissions - chmod -x \ - "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \ - "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \ - || die -} diff --git a/dev-lang/spidermonkey/spidermonkey-78.6.0.ebuild b/dev-lang/spidermonkey/spidermonkey-78.6.0.ebuild index 84db6ea9778a..19bc2279f74e 100644 --- a/dev-lang/spidermonkey/spidermonkey-78.6.0.ebuild +++ b/dev-lang/spidermonkey/spidermonkey-78.6.0.ebuild @@ -60,11 +60,11 @@ SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES} DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++" HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey" -KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc64 ~s390 ~x86" +KEYWORDS="amd64 arm arm64 ~mips ppc64 ~s390 x86" SLOT="78" LICENSE="MPL-2.0" -IUSE="+clang cpu_flags_arm_neon debug +jit lto test" +IUSE="clang cpu_flags_arm_neon debug +jit lto test" RESTRICT="!test? ( test )" @@ -228,6 +228,7 @@ src_prepare() { src_configure() { # Show flags set at the beginning einfo "Current CFLAGS: ${CFLAGS}" + einfo "Current CXXFLAGS: ${CXXFLAGS}" einfo "Current LDFLAGS: ${LDFLAGS}" einfo "Current RUSTFLAGS: ${RUSTFLAGS}" @@ -315,8 +316,16 @@ src_configure() { # LTO flag was handled via configure filter-flags '-flto*' + if tc-is-gcc ; then + if ver_test $(gcc-fullversion) -ge 10 ; then + einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..." + append-cxxflags -fno-tree-loop-vectorize + fi + fi + # Show flags we will use einfo "Build CFLAGS: ${CFLAGS}" + einfo "Build CXXFLAGS: ${CXXFLAGS}" einfo "Build LDFLAGS: ${LDFLAGS}" einfo "Build RUSTFLAGS: ${RUSTFLAGS}" @@ -347,9 +356,16 @@ src_test() { KNOWN_TESTFAILURES+=( non262/Date/time-zones-imported.js ) KNOWN_TESTFAILURES+=( non262/Date/toString-localized.js ) KNOWN_TESTFAILURES+=( non262/Date/toString-localized-posix.js ) + KNOWN_TESTFAILURES+=( non262/Intl/Date/toLocaleString_timeZone.js ) + KNOWN_TESTFAILURES+=( non262/Intl/Date/toLocaleDateString_timeZone.js ) + KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/format.js ) + KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/format_timeZone.js ) KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/timeZone_backward_links.js ) KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/tz-environment-variable.js ) + KNOWN_TESTFAILURES+=( non262/Intl/DisplayNames/language.js ) + KNOWN_TESTFAILURES+=( non262/Intl/DisplayNames/region.js ) KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags.js ) + KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags-generated.js ) KNOWN_TESTFAILURES+=( test262/intl402/Locale/prototype/minimize/removing-likely-subtags-first-adds-likely-subtags.js ) if use x86 ; then diff --git a/dev-lang/vala/Manifest b/dev-lang/vala/Manifest index f344f17567c9..dd474c87ea32 100644 --- a/dev-lang/vala/Manifest +++ b/dev-lang/vala/Manifest @@ -9,9 +9,10 @@ DIST vala-0.44.11.tar.xz 3370248 BLAKE2B c111b6175e6339148e30bedc77f62a9ef3ec912 DIST vala-0.46.10.tar.xz 3417400 BLAKE2B 2f78de3e198f994a148e7ed4c82ef2417b70c19af3ce1874ee80aa7d0160691a50db24ad4898a04520e91d67a41bb508d3854ac2f4d90d2507a5a6558854716c SHA512 ae3734036f6a1b7088bac45083b75a49eee76947219f530493f81aa4ee60807cfa5424cf1b982d8d8f28f56119d66f06a9150b67884d80dd4b6724e152e32e62 DIST vala-0.46.13.tar.xz 3434196 BLAKE2B 49b7e0b776e185653c1b8c00747a150ceb42cf89006fd55d37e3efd0824dace379d2c72cdb45d481b0545d0b4b37299bc6161b2d083d3221d2d8d8ca7c10d6dc SHA512 6d8d1acebf4706346d5dc986f5c900cfda929ca59ca3f3907cff56892a496bf524b1f74032ac6c8587b236a473124e15c6f83f949636e28141a55c8abeddf004 DIST vala-0.48.11.tar.xz 3487944 BLAKE2B fe47bba9ddb31c469d63d9ca32d631901d59db19c417d864088bc33aa2845d388e762ecc39b2d9574aafbfc501eb61abb3604e07754b2d8eff63d23c53f1eb84 SHA512 6ddad88ab4d2a34352be9ce0a0c13dc3382ebcb494c08e2531a0195aad21a80db70e7dc3ffd2d27ef03a4ca30ac2bf31869521489ffd95fc520c4085362fc5e7 +DIST vala-0.48.12.tar.xz 3492200 BLAKE2B 0a401ac4349dc1c628fa608b5a89504583d6d2bb05ca74eb507e766cca418121e14adfe6e8cfeb8f42212c717280b9b91426309df415d869896654be626c46c5 SHA512 da7becf8b92985a07b139651c14bd41ec86aed3e2b610029d2b376f70335c98607f39de4a1fa4efe9d51e6088edd4c13d22431cada389679d55f684ad548f4d1 DIST vala-0.48.6.tar.xz 3451004 BLAKE2B 9c880cff885b934e1d82d21285839e040addecb0b3ce81936d5be118a951bd219eea2b8381ea42f13e6e858a1937a3789a3dee6d067735e5ee21eaced38b4646 SHA512 220a916d42cbae3853afdd7c35a72afb446a92fca039d8c660a478fd793686a0c82cbaf90a7c94ae182c1f41eec6df1aedb804013ab38e6e4bcc6d26e40e5375 DIST vala-0.48.9.tar.xz 3472540 BLAKE2B 1c85b5d9a1f3819d5b26b521c7da423adee313b2acacb354e324abd9ccf24707dcfcd1a455bab867043f674c4daa5f1a62210847ac271dfce09a288651220f53 SHA512 076fcbea34dde1a84c15e4e2b6acd009c2fea578d48eb28a99a604eb4edc8bb53ac6883ca93ec906968d43d4b341707abc730d6ac8a7b3682a2fa5f0030d5256 -DIST vala-0.50.1.tar.xz 3508924 BLAKE2B 4a6acd2ac9e098e8da9c1264584f02a22429ed096292ec8baf4c9c5ac2d0be4bf20c6c2eb6a41e31295461e1a7e0929c471512e435245c04228bf67c91f372ed SHA512 2f5d0bee6dcac3031108fffaa3a9a0339c8c79ff92d1824292f266a704bef1cf4f9eed15ebf424b608f09129b3e0577ed8cd7798a4fa12bfd9d06026909de769 +DIST vala-0.50.2.tar.xz 3514208 BLAKE2B f2f7e86b90ac1245d593ba82204667a830843e2fdb8e9a5afaa44453a146461f0ce2b9f9338ef4743bc6055bbce6c023ae92f0bf2ca66757cddd7fc3d7a4db63 SHA512 77069b53037adcd4c3fed2dc4a5c740216b950c52e8a0ed777a5cf9a5d9f078d0abbc4dbce08e122817cd3de0ac75ebd150b0f6f0b0cf4a09cb4a46f96bf4c3e EBUILD vala-0.36.20.ebuild 801 BLAKE2B 28a0b45feb749184a38652c09c10e4e10fa89e13ae613394fc89395244249783d5d66e63b9a808a3d2b6d0585f6f03c70d418874ab103032502df7830e64ef0f SHA512 fb5d44393b0ecb62098873f25f16ee9f9f2b268faa5524268923ba88258ada9b6e9d74f3ab4d0d9c11d1972d869ae1e97bae848f4005ebbe29069219a4078d47 EBUILD vala-0.40.20.ebuild 1188 BLAKE2B 9754e3990f8b9d97a9db2d475a8338dbad1ac0daa74118a4966d08709bbb8d713817ae4a163bdc79ef2ce26aad00e633418734a2333a4e2c72b8a10b6a53d814 SHA512 d55a8a950eda084f4d527d090fa768436808922b4adafbd756cdaed73fb7214d9a1f74c77fc1c0d232e3dc6bd7548ded04ff3fbe566c609c7c2677404e757636 EBUILD vala-0.40.23.ebuild 1189 BLAKE2B 42ec55f24d20afeb5c3e268c5491be25084e9cd6f94e306568e9a0377c0e2a3197b4a5da9ec5108ce39433d31a339075a26485546d59ce9bc5a845f6efc40500 SHA512 18066dadbb427a8f494fd28402bb3dc71752209f47432e29fa9935c82e8a9f417eeea6fdb5b6e63a2f95ffdf6fae8bc133aa1ac1e79f1bd8ba9a2cb3cf97ffab @@ -20,7 +21,8 @@ EBUILD vala-0.44.11.ebuild 1110 BLAKE2B caa359b186daa04e09b9f3c2185280dfedabd842 EBUILD vala-0.46.10.ebuild 1304 BLAKE2B 00ff3c6ac28fd59d5a914c4702bfefcb4885c6147dee21ab99bd1f0179844a2e2f919cbb7e1681a44d09a121d3e00ec518a705b3dd11c66158b93462ba6a9ebc SHA512 a014c280ed597aeacc6c1bc754237b6e9d53cc323968aad50c8d1f6c398cacb01319916d3ec13f987b25210aca84e23f1a69a4e7618cda7e4c9b3f4fc1eee237 EBUILD vala-0.46.13.ebuild 1303 BLAKE2B 9eab2887ca949595c7673fb81cd9066bacdcec0a3a3608924ae7d42ce38f8c60609a7ea641d48e379ed882908743d4dd3b62401ec1f97ba12992b5a8ff755efa SHA512 a7d042b51962a8e9d921d2dd04bc4dc6a3e6db4061c894aad3eb60bd142c655f1982f3277224ed85107ee1b20f8d407c2c2f836885f446c9392203cb08b103de EBUILD vala-0.48.11.ebuild 1312 BLAKE2B 2a5c969f40a6f1ec8869e5de0e41e16ee78db748069bc0016e9b5b5ecb1dbc2be307995939134fe36a37b94e4a89284478d4704c04f32db9ae9c0a2786b875b8 SHA512 7354b9ffa72a263f0035b6803d6ab4071c7870cc90a1c9a57355ca637392420e78be6d5bedb866f327a522c0f852f1c78ea798ba66c62f8b5753fac9ec21a969 +EBUILD vala-0.48.12.ebuild 1312 BLAKE2B 2a5c969f40a6f1ec8869e5de0e41e16ee78db748069bc0016e9b5b5ecb1dbc2be307995939134fe36a37b94e4a89284478d4704c04f32db9ae9c0a2786b875b8 SHA512 7354b9ffa72a263f0035b6803d6ab4071c7870cc90a1c9a57355ca637392420e78be6d5bedb866f327a522c0f852f1c78ea798ba66c62f8b5753fac9ec21a969 EBUILD vala-0.48.6.ebuild 1304 BLAKE2B d90e05ab7274beb9ce6e4893527ce84e9e57d1687a88f71e4a890609d42761bea1b59d718a6cc3c03c7782fa4f10edd0bdbb7b54b045c9e902dd8fd179f18187 SHA512 12e9eea51d27a9863f8697530d4c6b6d8ec352961474d1772823a55facf2cfad18c9d727fcafcd70ae3862e4d52f0315735d983c50bc5a52c8fb33b55c8d1dc8 EBUILD vala-0.48.9.ebuild 1303 BLAKE2B 432d720113f6d171a8131562c9182d55ae92870855b39dca906eb8db9e76371c5b463a3408a9d80242592e5d3684307fb473a371de4b62f53ef4b6ab3c1ea520 SHA512 7966b7114fff3b3424095fb655f1f6181c8cf8893c2b5d24fe59e8ac3566d23553531e93bfe59f6990dc46c43a43019c062a17b7e38ace70509ecf2a3fac5636 -EBUILD vala-0.50.1.ebuild 1312 BLAKE2B 507ce10645273e1b88b85552e019ac819425b5b483fb0ae2d711d8632e4d6c01da13b9a263455e876634aa9671713dc3b88ec7abe7c8187da3d7430ee75f7d29 SHA512 2d85349c7a4ad95d79e44f4c4fb259edbe4f83e44ceda05ad22d74f2fab9d5d745465537aa6f1a06e771f062a4f19d72f597ede88c4efa52bae9627d60c565e3 +EBUILD vala-0.50.2.ebuild 1312 BLAKE2B 507ce10645273e1b88b85552e019ac819425b5b483fb0ae2d711d8632e4d6c01da13b9a263455e876634aa9671713dc3b88ec7abe7c8187da3d7430ee75f7d29 SHA512 2d85349c7a4ad95d79e44f4c4fb259edbe4f83e44ceda05ad22d74f2fab9d5d745465537aa6f1a06e771f062a4f19d72f597ede88c4efa52bae9627d60c565e3 MISC metadata.xml 345 BLAKE2B de3110ae281a87f8cb8f6c10d93705f56f0cfed972cd893a063e66c2629150d491498a29b35b4efe19fa5b6baa740f1d989bad440924befc60ef56423096f108 SHA512 163aa55430a075974d504a5bbb71ad9a249cb215de12a82b3141de18bb05f1e0c2078c02c617cf7d98a97c7f8dd407077183754d8c82c77e80dd0d7b2ec38283 diff --git a/dev-lang/vala/vala-0.48.12.ebuild b/dev-lang/vala/vala-0.48.12.ebuild new file mode 100644 index 000000000000..1f7c05bd15c1 --- /dev/null +++ b/dev-lang/vala/vala-0.48.12.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit gnome2 + +DESCRIPTION="Compiler for the GObject type system" +HOMEPAGE="https://wiki.gnome.org/Projects/Vala" + +LICENSE="LGPL-2.1+" +SLOT="0.48" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~x86-linux" +IUSE="test valadoc" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-libs/glib-2.48.0:2 + >=dev-libs/vala-common-${PV} + valadoc? ( >=media-gfx/graphviz-2.16 ) + != it, which would be bad +# as the newer is not required with older vala when those are picked instead of 0.46. +# vala-0.45.91 ships a broken libsoup-2.4.vapi copy too, but that'll be fixed by 0.45.92 +DEPEND="${RDEPEND} + dev-libs/libxslt + sys-devel/flex + virtual/pkgconfig + virtual/yacc + test? ( + dev-libs/dbus-glib + >=dev-libs/glib-2.26:2 + dev-libs/gobject-introspection ) +" + +src_configure() { + # weasyprint enables generation of PDF from HTML + gnome2_src_configure \ + --disable-unversioned \ + $(use_enable valadoc) \ + VALAC=: \ + WEASYPRINT=: +} + +src_install() { + default + find "${D}" -name "*.la" -delete || die +} diff --git a/dev-lang/vala/vala-0.50.1.ebuild b/dev-lang/vala/vala-0.50.1.ebuild deleted file mode 100644 index c1a73c907f81..000000000000 --- a/dev-lang/vala/vala-0.50.1.ebuild +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit gnome2 - -DESCRIPTION="Compiler for the GObject type system" -HOMEPAGE="https://wiki.gnome.org/Projects/Vala" - -LICENSE="LGPL-2.1+" -SLOT="0.50" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~x86-linux" -IUSE="test valadoc" -RESTRICT="!test? ( test )" - -RDEPEND=" - >=dev-libs/glib-2.48.0:2 - >=dev-libs/vala-common-${PV} - valadoc? ( >=media-gfx/graphviz-2.16 ) - != it, which would be bad -# as the newer is not required with older vala when those are picked instead of 0.46. -# vala-0.45.91 ships a broken libsoup-2.4.vapi copy too, but that'll be fixed by 0.45.92 -DEPEND="${RDEPEND} - dev-libs/libxslt - sys-devel/flex - virtual/pkgconfig - virtual/yacc - test? ( - dev-libs/dbus-glib - >=dev-libs/glib-2.26:2 - dev-libs/gobject-introspection ) -" - -src_configure() { - # weasyprint enables generation of PDF from HTML - gnome2_src_configure \ - --disable-unversioned \ - $(use_enable valadoc) \ - VALAC=: \ - WEASYPRINT=: -} - -src_install() { - default - find "${D}" -name "*.la" -delete || die -} diff --git a/dev-lang/vala/vala-0.50.2.ebuild b/dev-lang/vala/vala-0.50.2.ebuild new file mode 100644 index 000000000000..c1a73c907f81 --- /dev/null +++ b/dev-lang/vala/vala-0.50.2.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit gnome2 + +DESCRIPTION="Compiler for the GObject type system" +HOMEPAGE="https://wiki.gnome.org/Projects/Vala" + +LICENSE="LGPL-2.1+" +SLOT="0.50" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~x86-linux" +IUSE="test valadoc" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-libs/glib-2.48.0:2 + >=dev-libs/vala-common-${PV} + valadoc? ( >=media-gfx/graphviz-2.16 ) + != it, which would be bad +# as the newer is not required with older vala when those are picked instead of 0.46. +# vala-0.45.91 ships a broken libsoup-2.4.vapi copy too, but that'll be fixed by 0.45.92 +DEPEND="${RDEPEND} + dev-libs/libxslt + sys-devel/flex + virtual/pkgconfig + virtual/yacc + test? ( + dev-libs/dbus-glib + >=dev-libs/glib-2.26:2 + dev-libs/gobject-introspection ) +" + +src_configure() { + # weasyprint enables generation of PDF from HTML + gnome2_src_configure \ + --disable-unversioned \ + $(use_enable valadoc) \ + VALAC=: \ + WEASYPRINT=: +} + +src_install() { + default + find "${D}" -name "*.la" -delete || die +} -- cgit v1.2.3