From 536c3711867ec947c1738f2c4b96f22e4863322d Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 18 Nov 2018 09:38:27 +0000 Subject: gentoo resync : 18.11.2018 --- dev-lang/Manifest.gz | Bin 18033 -> 18027 bytes dev-lang/clojure/Manifest | 6 +- dev-lang/clojure/clojure-1.5.1.ebuild | 32 - dev-lang/clojure/clojure-1.6.0.ebuild | 32 - dev-lang/clojure/clojure-1.9.0.ebuild | 49 ++ dev-lang/crystal/Manifest | 5 + dev-lang/crystal/crystal-0.27.0.ebuild | 117 ++++ .../files/crystal-0.27.0-extra-spec-flags.patch | 11 + dev-lang/erlang/Manifest | 2 +- dev-lang/erlang/erlang-20.3.ebuild | 4 +- dev-lang/gnat-gpl/Manifest | 7 +- .../files/gnat-gpl-2016-finalization.patch | 220 ++++++ dev-lang/gnat-gpl/gnat-gpl-2016-r1.ebuild | 214 ------ dev-lang/gnat-gpl/gnat-gpl-2016-r2.ebuild | 216 ++++++ dev-lang/gnat-gpl/gnat-gpl-2016.ebuild | 214 ------ dev-lang/gnat-gpl/gnat-gpl-2018-r1.ebuild | 2 +- dev-lang/go/Manifest | 4 + dev-lang/go/go-1.10.5.ebuild | 228 +++++++ dev-lang/go/go-1.11.2.ebuild | 228 +++++++ dev-lang/mono-basic/Manifest | 2 +- dev-lang/mono-basic/mono-basic-4.6-r2.ebuild | 2 +- dev-lang/mujs/Manifest | 5 +- .../mujs/files/mujs-0_p20150202-Makefile.patch | 28 - dev-lang/mujs/mujs-0_p20161202.ebuild | 34 - dev-lang/mujs/mujs-1.0.4.ebuild | 2 +- dev-lang/nasm/Manifest | 7 +- dev-lang/nasm/nasm-2.11.08.ebuild | 41 -- dev-lang/nasm/nasm-2.12.01.ebuild | 41 -- dev-lang/nasm/nasm-2.13.03.ebuild | 47 -- dev-lang/nasm/nasm-2.14.ebuild | 52 ++ dev-lang/php/Manifest | 6 + dev-lang/php/php-7.1.24.ebuild | 734 ++++++++++++++++++++ dev-lang/php/php-7.2.12.ebuild | 746 ++++++++++++++++++++ dev-lang/php/php-7.3.0_rc5.ebuild | 748 +++++++++++++++++++++ dev-lang/ruby/Manifest | 12 +- dev-lang/ruby/ruby-2.3.8.ebuild | 2 +- dev-lang/ruby/ruby-2.4.4-r1.ebuild | 229 ------- dev-lang/ruby/ruby-2.4.4.ebuild | 243 ------- dev-lang/ruby/ruby-2.4.5.ebuild | 2 +- dev-lang/ruby/ruby-2.5.1-r1.ebuild | 224 ------ dev-lang/ruby/ruby-2.5.1.ebuild | 238 ------- dev-lang/rust-bin/Manifest | 18 +- dev-lang/rust-bin/rust-bin-1.29.1-r1.ebuild | 175 +++++ dev-lang/rust-bin/rust-bin-1.29.1.ebuild | 176 ----- dev-lang/rust-bin/rust-bin-1.29.2-r1.ebuild | 154 +++++ dev-lang/rust-bin/rust-bin-1.29.2.ebuild | 155 ----- dev-lang/rust-bin/rust-bin-1.30.1-r1.ebuild | 144 ++++ dev-lang/rust/Manifest | 22 +- dev-lang/rust/files/1.30.1-clippy-sysroot.patch | 62 ++ dev-lang/rust/metadata.xml | 1 + dev-lang/rust/rust-1.29.1-r1.ebuild | 290 ++++++++ dev-lang/rust/rust-1.29.1.ebuild | 290 -------- dev-lang/rust/rust-1.29.2-r1.ebuild | 279 ++++++++ dev-lang/rust/rust-1.29.2.ebuild | 279 -------- dev-lang/rust/rust-1.30.1-r1.ebuild | 274 ++++++++ dev-lang/spidermonkey/Manifest | 3 +- .../spidermonkey-52.0-fix-alpha-bitness.patch | 32 + .../spidermonkey/spidermonkey-52.9.1_pre1.ebuild | 11 +- dev-lang/vala/Manifest | 2 +- dev-lang/vala/vala-0.36.15.ebuild | 4 +- 60 files changed, 4842 insertions(+), 2565 deletions(-) delete mode 100644 dev-lang/clojure/clojure-1.5.1.ebuild delete mode 100644 dev-lang/clojure/clojure-1.6.0.ebuild create mode 100644 dev-lang/clojure/clojure-1.9.0.ebuild create mode 100644 dev-lang/crystal/crystal-0.27.0.ebuild create mode 100644 dev-lang/crystal/files/crystal-0.27.0-extra-spec-flags.patch create mode 100644 dev-lang/gnat-gpl/files/gnat-gpl-2016-finalization.patch delete mode 100644 dev-lang/gnat-gpl/gnat-gpl-2016-r1.ebuild create mode 100644 dev-lang/gnat-gpl/gnat-gpl-2016-r2.ebuild delete mode 100644 dev-lang/gnat-gpl/gnat-gpl-2016.ebuild create mode 100644 dev-lang/go/go-1.10.5.ebuild create mode 100644 dev-lang/go/go-1.11.2.ebuild delete mode 100644 dev-lang/mujs/files/mujs-0_p20150202-Makefile.patch delete mode 100644 dev-lang/mujs/mujs-0_p20161202.ebuild delete mode 100644 dev-lang/nasm/nasm-2.11.08.ebuild delete mode 100644 dev-lang/nasm/nasm-2.12.01.ebuild delete mode 100644 dev-lang/nasm/nasm-2.13.03.ebuild create mode 100644 dev-lang/nasm/nasm-2.14.ebuild create mode 100644 dev-lang/php/php-7.1.24.ebuild create mode 100644 dev-lang/php/php-7.2.12.ebuild create mode 100644 dev-lang/php/php-7.3.0_rc5.ebuild delete mode 100644 dev-lang/ruby/ruby-2.4.4-r1.ebuild delete mode 100644 dev-lang/ruby/ruby-2.4.4.ebuild delete mode 100644 dev-lang/ruby/ruby-2.5.1-r1.ebuild delete mode 100644 dev-lang/ruby/ruby-2.5.1.ebuild create mode 100644 dev-lang/rust-bin/rust-bin-1.29.1-r1.ebuild delete mode 100644 dev-lang/rust-bin/rust-bin-1.29.1.ebuild create mode 100644 dev-lang/rust-bin/rust-bin-1.29.2-r1.ebuild delete mode 100644 dev-lang/rust-bin/rust-bin-1.29.2.ebuild create mode 100644 dev-lang/rust-bin/rust-bin-1.30.1-r1.ebuild create mode 100644 dev-lang/rust/files/1.30.1-clippy-sysroot.patch create mode 100644 dev-lang/rust/rust-1.29.1-r1.ebuild delete mode 100644 dev-lang/rust/rust-1.29.1.ebuild create mode 100644 dev-lang/rust/rust-1.29.2-r1.ebuild delete mode 100644 dev-lang/rust/rust-1.29.2.ebuild create mode 100644 dev-lang/rust/rust-1.30.1-r1.ebuild create mode 100644 dev-lang/spidermonkey/files/spidermonkey-52.0-fix-alpha-bitness.patch (limited to 'dev-lang') diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz index 26babdb4cfea..d914183a09e4 100644 Binary files a/dev-lang/Manifest.gz and b/dev-lang/Manifest.gz differ diff --git a/dev-lang/clojure/Manifest b/dev-lang/clojure/Manifest index f64d26f78026..0deabf8b99ea 100644 --- a/dev-lang/clojure/Manifest +++ b/dev-lang/clojure/Manifest @@ -1,9 +1,7 @@ -DIST clojure-1.5.1.tar.gz 540021 BLAKE2B a9887142f251b490deae33c6d3749cd5592c5e8b627475a2e79d3ef96ca27285d61edb872cdabf15227fc1e8115424a979b1570f5523f3b6f2e8976ff2db3412 SHA512 8bc4b7098ec11a3cd4d077f32607c5d23118d5f84b88af69b2051c4dd5b17f28f092b77206fba87e23f1163d2d0f7a2c37b1b1ffa1bcfef3ad4c8f74695d71cd -DIST clojure-1.6.0.tar.gz 579154 BLAKE2B 29b15c25ec3085e977da6a59c8a3d19f5fd369599cf6f8c535b828fab0176c7c0a24274507eb0cfd66f728c5961c928b9de4aed8edf00970193c1ea2addeba29 SHA512 52bf54d157dae77e71e53bac421daa1bca7ef55b837600c8b04751a545cbed0f04d3718543031d1e5b8ca43e2518d356082b9f8c029c2e318996450cfaee9c81 DIST clojure-1.7.0.tar.gz 614331 BLAKE2B 4584eb81dddb7660084a067b9332d7e5375f3fe62d9a0af8fefece446c0be654f9916298672b3bab33a166e2e4edd73c3fcd61c49f956bfe83e0de0a122f0e83 SHA512 243d3120fa1a0f559c1f6b4724d0f7ba72e6f6dd009d0849377087e890aa04dba7c119862001d0c543eb0e35ef5c13cc8967ad494ffa9522daa9f8b1dfc77ef1 DIST clojure-1.8.0.tar.gz 627688 BLAKE2B 7dc3029e38e574cd32c74cce1f3ae03890869023d5fb2e8138f2fdc4461b3f9e119c4b6042e2b7caee9561b664b49cbaf79378ef1fdd0fd78c4d712c3b9d95de SHA512 fa5714397e679f77260db054bdc0891a311e7bd14bfceb2dd0494480fb9cf21fc74dd295e75070105ff0cdd50842390a748d8782397c549f51d85d18d54a1231 -EBUILD clojure-1.5.1.ebuild 759 BLAKE2B 63b6cc6944d10515a5abfb6ceef877c54564d637e7a15b00f947d903c03b35e2d8af85ae778fff7fe52e3070ea5eb37d484e79f0f98dd50354a2f143de54fb54 SHA512 8abc35c88d06965897a9b56c508336435d366fa5a41734c944c45c775ca2b728bb383ccfa8800eb4e154651efca5c15747d22e52b229234b1edeef4985e988d3 -EBUILD clojure-1.6.0.ebuild 774 BLAKE2B 815d7acbfc027e30913fe92ba77d283692c56d7f72437a347e9cf0a0e9049975ecce7c468e0fbfe70e8a54b4bf108d38ad8c1238c902e91f4f76c3d52119180b SHA512 05f3d4fcb4957d3fea2e81a09ce1006346206356d16992dec51e46b8219a2a52e772ddfca4fc0ee2f33ff87295c261f661f6e9052ab93effab85c8ec574252d7 +DIST clojure-1.9.0.tar.gz 641645 BLAKE2B 767241c7f252a2977511adf257b1805f81a96594cff2b1b9837c782cfaabd49ae8e6eef30398e7e277952124e843967ac635985da97e2e7c5cc98ec177f3d79c SHA512 8877c654f6aa8ad990593e69b611388659973e5d1d46cf8f6cfae59c4033424a3c7eebd477539784cbd7974f7ff30580f76d8a4117414491f38e18ac3b4efb27 EBUILD clojure-1.7.0.ebuild 790 BLAKE2B 76a4f4068d2a6c86df406322b936e28a21d51691149020b15d278ad2c547e06f3c2873f9a657da7ef2496d9030b9693c433ebaefdc591845b9a5217bb9f106f0 SHA512 80830ee82ec9e231e6a51b5ad4206829eda962ee13a472c2f53cd1a3af77e4e3e1289077336f4496ad4d1ffc250878a30153177abc70c8dfd245717ef33de1e1 EBUILD clojure-1.8.0.ebuild 779 BLAKE2B d415833f59ac76342dda84f41eab55785639c30f18ac16bf023f535563d6d6ea3b103909624fe907d718d73de94f2b199568faa85140c6239873572ba716c1e6 SHA512 2f7c5c20f310e935de6e00961f14a1cf4ab15b8645cd92fc596595aa343abe24f5979eabe3e2572f5aa0a3834c953d834f76662846686f671200904bce3e9154 +EBUILD clojure-1.9.0.ebuild 1063 BLAKE2B 7d05bdb491f8183d760688775cf440148a5a3bb314e13a2e4e71817f54175a1ff88b89064bbbe512d98247b8c4138c68e01addcda5d0c3ad63e2bb9a673b27f4 SHA512 e1412c3dd0c30c9e43596608ed208f5b9b71de21a2636a4fa1951cd7e6ac92a021d4d92f829281f4ab52b5ff3d90b276fcbcf4bd47e8c298efa406d62f9cdf5f MISC metadata.xml 252 BLAKE2B 738fe12dbc3869c6805e9f90ec607615f0ef13904c794e181e80fca986675cfe884cdbae333fe4837f8bec0f25235ad5d1c223ccd4f01e3355b4f261abe3767c SHA512 471e24b868f43f66916b081b0f2b7995830020f886a33f177a10556a60f824decfe63fc5128e5184b9edc2e157d3f022cb1913303b3cffe4aa9233025843b9dd diff --git a/dev-lang/clojure/clojure-1.5.1.ebuild b/dev-lang/clojure/clojure-1.5.1.ebuild deleted file mode 100644 index 4d5b4ba50d0d..000000000000 --- a/dev-lang/clojure/clojure-1.5.1.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 -JAVA_PKG_IUSE="source test" - -inherit java-pkg-2 java-ant-2 - -DESCRIPTION="Clojure is a dynamic programming language that targets the Java Virtual Machine" -HOMEPAGE="https://clojure.org/" -SRC_URI="https://github.com/clojure/clojure/tarball/${P} -> ${P}.tar.gz" - -LICENSE="EPL-1.0" -SLOT="1.5" -KEYWORDS="amd64 x86 ~x86-linux" -IUSE="" -RESTRICT="test" # patches welcome to fix the test - -RDEPEND=">=virtual/jre-1.5" -DEPEND=">=virtual/jdk-1.5" - -S=${WORKDIR}/clojure-clojure-22c7e75 - -src_test() { - java-pkg-2_src_test -} - -src_install() { - java-pkg_newjar ${P/_/-}.jar - java-pkg_dolauncher ${PN}-${SLOT} --main clojure.main - dodoc changes.md readme.txt -} diff --git a/dev-lang/clojure/clojure-1.6.0.ebuild b/dev-lang/clojure/clojure-1.6.0.ebuild deleted file mode 100644 index 4748ab30800a..000000000000 --- a/dev-lang/clojure/clojure-1.6.0.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 -JAVA_PKG_IUSE="source test" - -inherit java-pkg-2 java-ant-2 - -DESCRIPTION="Clojure is a dynamic programming language that targets the Java Virtual Machine" -HOMEPAGE="https://clojure.org/" -SRC_URI="https://github.com/clojure/clojure/tarball/${P} -> ${P}.tar.gz" - -LICENSE="EPL-1.0 Apache-2.0 BSD" -SLOT="1.6" -KEYWORDS="amd64 x86 ~x86-linux" -IUSE="" -RESTRICT="test" # patches welcome to fix the test - -RDEPEND=">=virtual/jre-1.6" -DEPEND=">=virtual/jdk-1.6" - -S=${WORKDIR}/clojure-clojure-42ce994 - -src_test() { - java-pkg-2_src_test -} - -src_install() { - java-pkg_newjar ${P/_/-}.jar - java-pkg_dolauncher ${PN}-${SLOT} --main clojure.main - dodoc changes.md readme.txt -} diff --git a/dev-lang/clojure/clojure-1.9.0.ebuild b/dev-lang/clojure/clojure-1.9.0.ebuild new file mode 100644 index 000000000000..782c22103c7d --- /dev/null +++ b/dev-lang/clojure/clojure-1.9.0.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +JAVA_PKG_IUSE="source test" + +inherit java-pkg-2 java-ant-2 + +DESCRIPTION="General-purpose programming language with an emphasis on functional programming" +HOMEPAGE="https://clojure.org/" +SRC_URI="https://github.com/clojure/clojure/tarball/${P} -> ${P}.tar.gz" + +LICENSE="EPL-1.0 Apache-2.0 BSD" +SLOT="1.9" +KEYWORDS="~amd64 ~x86 ~x86-linux" +RESTRICT="test" # patches welcome to fix the test + +RDEPEND=" + >=virtual/jre-1.8" + +DEPEND=" + >=virtual/jdk-1.8 + dev-java/ant-core + dev-java/maven-bin:3.5" + +S="${WORKDIR}/clojure-clojure-e5a8cfa" + +DOCS=( changes.md CONTRIBUTING.md readme.txt ) + +src_compile() { + ./antsetup.sh || die "antsetup.sh failed" + eant local +} + +src_test() { + java-pkg-2_src_test +} + +src_install() { + java-pkg_newjar "${PN}.jar" + java-pkg_dolauncher ${PN}-${SLOT} --main clojure.main + if use source; then + mv target/${P}-sources.jar ${PN}-sources.jar + insinto /usr/share/${PN}-${SLOT}/sources + doins ${PN}-sources.jar + fi + einstalldocs +} diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest index 30c588b4192f..181b076568c0 100644 --- a/dev-lang/crystal/Manifest +++ b/dev-lang/crystal/Manifest @@ -7,6 +7,7 @@ AUX crystal-0.25.0-verbose.patch 764 BLAKE2B 9df527f86c2bc2d02c205aa3673dacfb9f9 AUX crystal-0.26.0-gentoo-tests-network-sandbox-2.patch 905 BLAKE2B 8e70f71a7a2b7ba78fe4b1d89fe747356384de5f1f9d56c5e9877def5f803491a2065788ede3b77e692abbd0ead74f00166561b961d3696bd3e629dc58656bbf SHA512 399d70e81a3a12d58b01678d63dfa71c27d60b612ba6f1b2ed5e9333e8b4fb030ce7a54cd067f6ae1a3ddfa1e0c48dfd605a1bec60869fe105d51da38f1a9872 AUX crystal-0.26.1-gentoo-tests-network-sandbox-3.patch 1058 BLAKE2B 715639da29dafee6ecfcdf309f3149d9ed6387904bb50d8cb4bfef295c2d675fee78f0a436e4ab0d6a23e1eb94fec6ef9e549cb415f578ca0578792e54d0d759 SHA512 eef5d10dab52726378a8168726e4b757f1b6523defb86b76624c63ce159e43b18b037b1e51f2e5bcd7a8101d4c5adfa3b61aa7be2e9850b642ec26f7989cad3d AUX crystal-0.26.1-gentoo-tests-sandbox.patch 943 BLAKE2B 5998c494c55f1039111ed0d45839a694e44dd0a5539a81333dad39b632cb07839cf9fab0810d8e7d9eac12bd63f57a4222db95cd254cc5e3543a202c187c30a3 SHA512 236e77761b1a7d8e1c680334c42fcf59e8460185688e0b0c4382e6f8113c04154d4384e91783270fe0e77e4dac2a81e3ff3b983de0489ca4a8b157fe87606378 +AUX crystal-0.27.0-extra-spec-flags.patch 493 BLAKE2B 84270f431db778bfe4b3b9b291278960ad8e7f18a4e519eb38aea55f2777cd5bc183e2a7035b4364586bf69ca3ec40d52dcf0d5e5fcaf04ef91cd3d1efff2000 SHA512 95390bdc9e594bb8496a807287ea8225cfc13a1ad7d49a42c791cb94f641939b0002ec7dcdeb8d62565906c035c40e9e0d744ea7e8f4695dd07b66e5b66327da DIST crystal-0.23.0-1-linux-i686.tar.gz 18498501 BLAKE2B 7a8e4e5a2b1425b6effe0a634b74b28c340c4d23c4bfccc0abac4e5d47473e10421d025e68e1fb1fa5b0ba8296108e36cd17d393fb143b8012168d595e5852f9 SHA512 8745114c4824d2859c569ed1bd1057d6d649d57b10d41d22c17627f623704eb98ec2e3ab2bf06622de624906f53e053975a6b9d852aeaafeae4f43585609de28 DIST crystal-0.23.0-1-linux-x86_64.tar.gz 18729061 BLAKE2B bfca07702b2f7c7d6b11aac864475316cabe86bdba90b1819ecd5cb45769b2b7fd9fb4c9f80e46301785209cc5b35fe39bf689163b9376a32b24f8a685a6281b SHA512 6a4e427b4ab3c3be6efcfaee5c1a19eff04eaf00db949d1e1ba8f29c3277affe96a7aba4273d93fd05251453d5b5b937aa792bc448ff2f6d6aa7f2b17d175f75 DIST crystal-0.24.2-1-linux-i686.tar.gz 17667007 BLAKE2B 73104ce088e161f03a7b4a191bb6dcdd86d0c65fe4058bb81f1177c6b7162aa48ca7732fbb410de8d3c9ca58830774913acdad9a89d8420a62e6526ecd309a2a SHA512 af0019fa1d140e653812a5d8a4fbb129ccf5d66ae55aa1a4e94ec3166058eb47abd2dd429a9d72a4baad4a6032abdaafc07bc22ca6380ac85e9d1c7168d7bf5d @@ -19,8 +20,12 @@ DIST crystal-0.26.0-1-linux-i686.tar.gz 39814913 BLAKE2B 8c73e33b52a7c5d9ae24ead DIST crystal-0.26.0-1-linux-x86_64.tar.gz 37986465 BLAKE2B dc8e05519653f82d09d8bd3a84fedd9f4720880bc61a110709643850bbcfa95738292cca8168a8c5c550abe9b178ce28fd59321c66862a1cc81007cc1cb22223 SHA512 c252d2d585fe49c755397b8f8c7965c855e8f8102598b34a83cc6e5ae821a22f3dccce8b7787dd0f00fa39fad3d2dffc23c6105c9cefe525da7855550c790ab2 DIST crystal-0.26.0.tar.gz 1992091 BLAKE2B dfc96e3e9a71dbec07235a982bbb34ea81bb3adbb39f6c8f8c9bb855ac97e5faf4d47d4a78901317798941b84117399aeee6af53c6c06ae21b9504ca617a2899 SHA512 45a62a2496d477cd72666e98b36bdcbfff958a8f5f0e71f04101f2ba72fc87117d53c8c098a72edb55e9be192b68b73529d5f76e4c660033332ed6e88a372519 DIST crystal-0.26.1.tar.gz 1994987 BLAKE2B 2292fbdf119e181313000e035802581ae206083aa5c9651a01e131d74e701ea75dc713b44274769decfc9f0f300d8fc2e6c24a94f60380b79c3cdb1a10e73369 SHA512 5e020b0f262f9bedaaae60010f669d7987a77d3416bf0dd057e29eb11adbe8fceb1c4f55a822e623d32e302a01ccc99218d2c3fe474d4ce0dde4312c196ccfa6 +DIST crystal-0.27.0-1-linux-i686.tar.gz 39751745 BLAKE2B 22adf22a2e423f4b0fddda1d8d9bbfb68a4b51f18da9705b6515a500610781251561577dd25c6509aa2b6860b1b329bc7e3d213743330b91206b50239e053a89 SHA512 4fb819a67f3e2c965b454af53cf0bad9606a6a13f85f1bfbe59057291ea293099892344cd31127f5b35e3b25fc6e3f591bda508587fc32f5ef1433aeff0ca706 +DIST crystal-0.27.0-1-linux-x86_64.tar.gz 37933811 BLAKE2B 76bb57b556f14ae8ce219ef490e58ff03571f36fcb4343672ff10ddd6e275e9c5c26a028d63f0592c1a081f2f5dc8241106d8a99add1a7936f52b9e3a57f96e6 SHA512 c403c4080830b928621da07f409ba5433109ee0fc81589f87e79d2e04fcbce8facfa205b7e8c78ab9bb772b4444c938b3bcf691596ee0b2d54c3f3d97150e008 +DIST crystal-0.27.0.tar.gz 2025777 BLAKE2B 0a5cc02a516586b033c65efd8e28a13ac0ed67fddbd1a1f0a88a484dff825bec8f6b03b16938c750e99e0c7c1c12a3fd3fc87e61d038b25b7707e0e7f2913fae SHA512 02b0e1d43d699d1dd91f4b979c8ab8909264e5f1fcc344f6110bebb808c0ee764a943368cce9d33a258adb9631ed4f445e1f771d5a9e50fcd337fc8b319616cf EBUILD crystal-0.24.2.ebuild 2374 BLAKE2B 62f5e228fc38ad340d2e77ee1817410a5ef418405a09ba42c52f6067e5d303cb6836694ecb5b2d59b2cc00022ead788109a98ac6a124356d72783f926526c2fc SHA512 5812f5e4174c3320601684f3ac2ef235eb4aca4dee5632fc243839e8c61fa1c738086db17f840b68300887244ea6232d5d990725c1d85021d1a934c8a0560e92 EBUILD crystal-0.25.0.ebuild 2369 BLAKE2B 2146aba6dedff0c3fcbcd8d018c8c15906eb7050e9cea358fe2c70de8f1a76242de583e798c39769e6a89832403a6c5eda8b50bfd882889c9a80a638919482e9 SHA512 48a19dd3c5bd501dbb00b44f4eb2e3d934e835bac4361f2f1dab9aab2812aa40a8e19b6838db006ee4735cdf09d720206120b730fcd7af79e1745866a7422ff7 EBUILD crystal-0.26.0.ebuild 2437 BLAKE2B a2ef50459ec827303b1ffcda38110b096e42252f85364b0199bcf2d9f64747b51ad72a35ff54d1ad48ac442a912a5db34f825dbae3e96db1f38f6b14d19dd281 SHA512 ac9c8d35211d41be615cf7a9c46181b4b83334d2da975cd621ee0480665c8130d18299d3d62f45bf60b95c35a02c6c0e1aff51a14e1967a7d9228c2107c987b8 EBUILD crystal-0.26.1.ebuild 2696 BLAKE2B 820ed8d2957bd9b9863115318d3041f3428adfe60295d8fef170cb636a5135492c7abf9ff98fe67a537f3d4289040d61a892fe9074ded3ad1bc306f74327f568 SHA512 1a7f2c3bd31ecc7ea09943dad6b6a506a659dace59382075ab4ea628cf96550e71b4f659f47e7c55da86b9c454ef47a67b3cef1f3f85d23fcc120c6534ae7115 +EBUILD crystal-0.27.0.ebuild 2847 BLAKE2B 0ee4e2d72541c7ff74443447bf08bb05d65b17fbc7dd35462db1f458deaf7a2a03b26c4d277b493e90c1481856bef5eac10dfb9d08cef1c519eb38efe6213324 SHA512 632fd8d88468d147935cadefb7b2bfe4740ca2cd5e2062d37cdd8954aa4f601386c1d27fb8f7c75346e2ff46551ec29aba1c46018d95ce13a8c8ed6211620589 MISC metadata.xml 995 BLAKE2B 00f6cfc63cec16ab8c6f983316f5872e63573f2d680da810b9b97d88c2ff6e21c15327a1508d62234e324f7145ca248a9ce1aa7286b0e34d9ee3dcba1481ff25 SHA512 da6a6f834b0d961477b95045756c539df7a968fe240f9f0c1c8183eef3052dddefb8d20547d668b07fece74c96b94bbf18baaac59e7328ff322355227d1adf02 diff --git a/dev-lang/crystal/crystal-0.27.0.ebuild b/dev-lang/crystal/crystal-0.27.0.ebuild new file mode 100644 index 000000000000..b7dcd5f70cfe --- /dev/null +++ b/dev-lang/crystal/crystal-0.27.0.ebuild @@ -0,0 +1,117 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit bash-completion-r1 llvm multiprocessing toolchain-funcs + +BV=0.27.0-1 +BV_AMD64=${BV}-linux-x86_64 +BV_X86=${BV}-linux-i686 + +DESCRIPTION="The Crystal Programming Language" +HOMEPAGE="https://crystal-lang.org" +SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz + amd64? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_AMD64}.tar.gz ) + x86? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_X86}.tar.gz )" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64" +IUSE="doc debug examples blocking-stdio-hack +xml +yaml" + +# Not compatible with llvm-7 +LLVM_MAX_SLOT=6 + +# dev-libs/boehm-gc[static-libs] dependency problem, check the issue: https://github.com/manastech/crystal/issues/1382 +DEPEND=" + sys-devel/llvm:${LLVM_MAX_SLOT} + dev-libs/boehm-gc[static-libs,threads] + dev-libs/libatomic_ops + dev-libs/libevent + dev-libs/libpcre + sys-libs/libunwind + dev-libs/pcl + dev-libs/gmp:0 +" +RDEPEND="${DEPEND} + xml? ( dev-libs/libxml2 ) + yaml? ( dev-libs/libyaml ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-0.25.0-verbose.patch + "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-sandbox.patch + "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-network-sandbox-3.patch + "${FILESDIR}"/${PN}-0.27.0-extra-spec-flags.patch +) + +src_prepare() { + default + + use blocking-stdio-hack && eapply "${FILESDIR}"/"${PN}"-0.22.0-blocking-stdio-hack.patch +} + +src_compile() { + local bootstrap_path=${WORKDIR}/${PN}-${BV}/bin + if [[ ! -d ${bootstrap_path} ]]; then + eerror "Binary tarball does not contain expected directory:" + die "'${bootstrap_path}' path does not exist." + fi + + emake \ + $(usex debug "" release=1) \ + progress=true \ + stats=1 \ + threads=$(makeopts_jobs) \ + verbose=1 \ + \ + CC=$(tc-getCC) \ + CXX=$(tc-getCXX) \ + AR=$(tc-getAR) \ + \ + PATH="${bootstrap_path}:${PATH}" \ + CRYSTAL_PATH=src \ + CRYSTAL_CONFIG_VERSION=${PV} \ + CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal" + use doc && emake docs +} + +src_test() { + # EXTRA_SPEC_FLAGS is useful to debug individual tests + # as part of full build: + # USE=debug EXTRA_SPEC_FLAGS='-e parse_set_cookie' emerge -1 crystal + emake spec \ + $(usex debug "" release=1) \ + progress=true \ + stats=1 \ + threads=$(makeopts_jobs) \ + verbose=1 \ + \ + CC=$(tc-getCC) \ + CXX=$(tc-getCXX) \ + AR=$(tc-getAR) \ + \ + CRYSTAL_PATH=src \ + CRYSTAL_CONFIG_VERSION=${PV} \ + \ + "EXTRA_SPEC_FLAGS=${EXTRA_SPEC_FLAGS}" +} + +src_install() { + insinto /usr/$(get_libdir)/crystal + doins -r src/. + dobin .build/crystal + + insinto /usr/share/zsh/site-functions + newins etc/completion.zsh _crystal + + use examples && dodoc -r samples + + if use doc ; then + docinto api + dodoc -r docs/. + fi + + newbashcomp etc/completion.bash ${PN} +} diff --git a/dev-lang/crystal/files/crystal-0.27.0-extra-spec-flags.patch b/dev-lang/crystal/files/crystal-0.27.0-extra-spec-flags.patch new file mode 100644 index 000000000000..bd86c13a78a6 --- /dev/null +++ b/dev-lang/crystal/files/crystal-0.27.0-extra-spec-flags.patch @@ -0,0 +1,11 @@ +Allow injecting additional arguments to test suite. +Useful to be able to run small subset of individual +test suite: + + make spec EXTRA_SPEC_FLAGS='-e parse_set_cookie' + +--- a/Makefile ++++ b/Makefile +@@ -31 +31 @@ override FLAGS += $(if $(release),--release )$(if $(stats),--stats )$(if $(progr +-SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) ) ++SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )$(EXTRA_SPEC_FLAGS) diff --git a/dev-lang/erlang/Manifest b/dev-lang/erlang/Manifest index a015300ecbd8..49736142a563 100644 --- a/dev-lang/erlang/Manifest +++ b/dev-lang/erlang/Manifest @@ -30,7 +30,7 @@ EBUILD erlang-19.3.6.12.ebuild 6713 BLAKE2B 99d8e6c2e71fc01c815cafb7cdb2b6aa730f EBUILD erlang-19.3.ebuild 4532 BLAKE2B 8b90954a7cada84ee1eddb41566fd50bf5eb50d154bfc2e13ebcfa1ea33aa2d8334da80554ce5862ba3b3ba6b77ddbd933e6322829bf96985caaeaf556704c09 SHA512 f204b98e05485feff3e66be512d93336a147dfc3e5af1795d5afe3c63a722fcf5f7578c25f097074535b31e4ea5b339848cb2d633f46ae00af0be4b1d1ee30f7 EBUILD erlang-20.3.8.10.ebuild 6713 BLAKE2B 99d8e6c2e71fc01c815cafb7cdb2b6aa730f3ff07d174d82ee1ab44bfad140395fa6c5e0eb121d32ccd6c98f6bd37a5b384dd3cc02215fc96f229d3bf220f8f0 SHA512 e718298bb175bf3c7fc2828a603d504b474294258b46c6941a20a367e77b460e3f396d425b805c69a310aa428ce3477e8af38c40ea1abbc026c4e5488f8c1a44 EBUILD erlang-20.3.8.ebuild 6716 BLAKE2B 0c979eadeffa3a1f9b478b2f8025e277eff34e9bfbf629444815f354fddb181749877fd12852c41bbf9322b32e2cb05337510af62c4de900c2b1ccfd2c0840ed SHA512 5d605798812399b51205fd017772d34ea797b07a585cbabc97daa6fad7aa63ea17c527431a1da282b6ec3ff353d5a627c726ad33dfff4e2fb683a25ba06466fc -EBUILD erlang-20.3.ebuild 4830 BLAKE2B 0d98f34098815c5b4a42c0629f8a0a6f492f3ddfcaa154c0d7b6bc3572d108d789175c8146d78789375f906a1c024fcafce6e9e5c1b0d76ba6f7056b2f8038fd SHA512 f19a1237535942004359468046539cfae2551e28fb1090161cef0ee4d20bcb28aa1a6ee62ee37f2e0ec409675cd6cbf2b41ee9aef3bf967a59e2cb52735dfbb2 +EBUILD erlang-20.3.ebuild 4826 BLAKE2B 80ccf3e15c5cb5fc585c4b014b8093ce2306222d6b32c9653aab92e3bdcba2d66e9cfc18b6132ec0a1907495acb13cfa1e5e0f8baa3d12b0a5a8975ea0989e16 SHA512 41682162335ded8341591393fff4bd35aac71e49418a36da6e3c4b41066a39cf0c711ab5a73a61811ee82fb365db15fbb4cbd466dc985a58262303694c2f4cb5 EBUILD erlang-21.1.1.ebuild 4448 BLAKE2B 7ef3e149f4564939a86ad407326ffdb4df53abe4b50ab916e598ec18f4090a800347b544d7845835b674ffc06c6f7bf3200cb71c71cab405a6a3e2743a6ebc1e SHA512 ffe1f1daeb279907c96c5711fbe81df26a8c21311c94a1d686b39122fe3c217e2c7e646471c3a3c3e7c0a689213f1732cf1c484be24e46ecdb496acbbd979c6e EBUILD erlang-21.1.ebuild 4451 BLAKE2B 51029e626d6cc24b9eacd6e3360890a3b01c2ca855e210b278a12c32f1e43be408709f9d2ebd177130fe52425e7645cdaa933070ac2db8392dd99ff5dcf8f243 SHA512 e4e3605c8943b5370e4745c87a49d946ff50414279d834e1567c2125d0c695ca18760c36d7f9e21d033804bc461ddfc857d315f014473de68529fa20e173566b MISC metadata.xml 767 BLAKE2B 7b4e24e035cc581418aa0509baad9913b3abb195414f2e91136510a5910b69a186853b352557f1e49280aae7871cc2e033b6e2ea6f22b3b73c88d78853937309 SHA512 c816f414d07fac9433a22bdfb083db600200f45cc0fcc0eb06389056df4ccdfa31767ff0a25b8f7caf1b17dffc303ff3f766a642cfd263c0c723623c31c5a716 diff --git a/dev-lang/erlang/erlang-20.3.ebuild b/dev-lang/erlang/erlang-20.3.ebuild index 6d717177588c..afdfa64d151c 100644 --- a/dev-lang/erlang/erlang-20.3.ebuild +++ b/dev-lang/erlang/erlang-20.3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -17,7 +17,7 @@ SRC_URI="http://erlang.org/download/otp_src_${PV}.tar.gz LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris" +KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris" IUSE="compat-ethread dirty-schedulers doc emacs hipe java kpoll libressl odbc smp sctp ssl systemd tk wxwidgets" REQUIRED_USE="dirty-schedulers? ( smp )" #621610 diff --git a/dev-lang/gnat-gpl/Manifest b/dev-lang/gnat-gpl/Manifest index b25572de3063..ee2e4f46277a 100644 --- a/dev-lang/gnat-gpl/Manifest +++ b/dev-lang/gnat-gpl/Manifest @@ -6,13 +6,13 @@ AUX gcc-configure-LANG.patch 2052 BLAKE2B 28c36f4992e41305ee421dade5eaaac34e3bdc AUX gcc-configure-texinfo.patch 337 BLAKE2B 6408817927f71c5c55a19510a95e1aaad9b56be216ec1c753920b55a435d70579e27ff5bb8ecbeea1b9ff1c8ae62b940fbf10bf876c3d7ecf6cd662d9b693100 SHA512 a15fba8bf2ff02bdeca54d6f186bfa08c1079c6a8ba0a3beef154483ce5c1b8c497e7ffeec32371968f0037e0ff8384609eb0c367d0155a4e5a7eef8aad084d5 AUX gcc-spec-env-r1.patch 3148 BLAKE2B 30ceb113a510092a907b445c4b2131f148f7fef54a00a88b5c389bbf93b8b61bc12c86a07df03d57280759e5485ac0cd89ea69826ace01b5720681ca3102640b SHA512 ecae71577543772cfe1711f1b4a8815c0b5d706ebd01edacd1f07586637d4805e25771f970a6e6d1bb696d4b1b5ef3e0036088a96a9f6beff7ddaee704175d16 AUX gnat-gpl-2016-bootstrap.patch 2698 BLAKE2B 2fe9519590f0870aa201d550e027eaec311961c07b62f470d77f1de125fdf81cab6f884f08dfd8b957b7c2880ad04a7400f3fb395f5404d6c467373042e2fb0c SHA512 c712234b87aa66379bc52b43bce31a2dfd8de996030588a26261bb08471cd6e92587bc5aa35bb8f776a5128b1deb524e37aebe1c0b970a98210d653b5094d95b +AUX gnat-gpl-2016-finalization.patch 8125 BLAKE2B dae1c3f3bc98c6d4e56388888576487af5df0aab3d68bd30b991e9a87d49411592acbab989739c02b27a5789087d8913a0b8ab1764ce01e7709f9838e42232a2 SHA512 b304cebf1461fb50dc9a3e3e7a87f25474d7e10e483226bef6c1de576f0f59d83e2f0a048fab17c3772865770b34f3e7f67ec70f5cd60ea2db4314d7f6d45e6b AUX gnat-gpl-2016-gentoo.patch 2811 BLAKE2B 495e66d5fb3c184be946269a9f360bfaf8dc2b6b38449a74a7ec61ac9c1c3790833480f1f9614e8e152d9fab45366c7284747c3f05891c77812aa14248671644 SHA512 ba147b3cb4374eb3c8fe530b92a5ffa564170d8df26dc455a48dae3ec92ca0fee9525cb67229855b34c8b8d48a985a083f7ea70ec2b4d13f652296f04c03e4a0 AUX gnat-gpl-2017-gentoo.patch 4510 BLAKE2B 468059269978e5bbf85d09f2d4086c5fade1f7cdb4c14e9a12b596a96b3cf93e0bf894cf77ef2f81dd56b3aa2e7dc65c8642f7b688ec7cf8514152051e33564f SHA512 48ed94e3e5a2473f98ac6877640f64fc5e5a705a95e0c92a2d19b6a77597e49e77ed409af15302fba0c2403b38c13847c6eeb1f4626f57bc3c128f542dfaa893 AUX gnat-gpl-2018-gentoo.patch 634 BLAKE2B 949911111848fd4834de4b3a0d93d6f617b4ae05f9911564a01ab377c5715dfe21ec33c94c5d52815ad2a636809ce01b617cd8a2f132783b084bafc6c4265ead SHA512 f4a541780b6d00af32d38b71ce6a39516aff9c2df15429c40d297ebba03ab148786aa0f1218b90aedb36eb36a9c4a490b52883e3830a5e58bfc5d22987c00ece DIST ecj-4.5.jar 1470676 BLAKE2B 793c10ba09fd8040c0e1181204141aea16780c9c9088e07126e00da2b510af2ad6f58d876357d7e98cbb02d783a3be434469d5de1df134ccb8cc508e45028d80 SHA512 d4e1bf7538ace56e3d69fa91da5bbd16c272923b4de0a9d8dee23ea2b75f9f38c603de72fc4061df49285c450b63f3df211cee5270e9fffc5447445d1a9c9e4e DIST gcc-4.4.3-specs-0.2.0.tar.bz2 2004 BLAKE2B 96f5ba2028bc6e0ef71e009857c37118a54d13d30de24d697c85e5772f9f2b7853615648cf2e4ee81d8385f6518c64588c0b56675c00f95ef39fca2a808f075e SHA512 779ecb0a064d2138b54569c8ae501975b8a6b72e5a3acbf8597619a8db77ee42ef9b0e62608d5192a15e4393e7dfc009bb50b994782236faa744b2c46b5fe517 DIST gcc-4.9-gpl-2016-src.tar.gz 76361760 BLAKE2B 681aac3dd2e04110f58637cc9fe1eb663ce55af16a929a446eb59ce338bec9357e65517890f7fa01d61eec9c5041336722b2b94a5fea27a55ade686fe1fe9fbc SHA512 da1e26b4dbbe0ec634eab4e64d1cdb2632300c24f0885bc72fb57edba6ce29ab92b04eaedd8f8077ea623f1ef1428f53616e8c8d6630328d9790d968b60c67cf -DIST gcc-4.9.4-patches-1.2.tar.bz2 25447 BLAKE2B 3141897688409c84cab4ffea67deb220d2218107f279a0cc1758d08c858f3a3856150df48ae37d2f14c6f69bc82de1e87f22cc356f179dfdf47ae9eef28a4182 SHA512 61b1e86e8dbc2838e7b5c88c4a3bab9ed5b6485258b7971799850ffd97cb67ad2564552af4e9ebc860dcc2a4b786c91d2079469468fb95f8e28e2fc981b4c812 DIST gcc-4.9.4-patches-1.3.tar.bz2 26060 BLAKE2B a61cb29111e8a9e35d810c0c557e901fc0d78e3b62027f5ea622d29becff9492e350c932824b23e5a38604bc3fa6c39fed9db902df4f830a3a362f1a1c2d9f58 SHA512 0214da6712a1b583f028be60e562f742d3d484d930976e2fce7be090113517c0e07faa20f750411b5125902f38a9944fe0c1dc8605d161c5bb11843acdebab75 DIST gcc-4.9.4-piepatches-v0.6.4.tar.bz2 14414 BLAKE2B 2eccd4f2a164fbb32d13c7fe91627a2424c0a5570fe0cac97c2bb1c95294ba3d770832da7c445f75c91791466c5139a1e13753a3a40d87ff5e44e42749adee27 SHA512 243fa272ea0e49f700a76508bab3e03bbb353bcb930581b2f87f9a47df5cd3880e29f20b71612b21190adc463849e1e6ac2a38a49c0002b562d93d436f538285 DIST gcc-4.9.4-uclibc-patches-1.0.tar.bz2 2618 BLAKE2B bff85a4088fb94fdb7a8b0bd552be98ace3e6d145889b6f8b4a1f2db2dad14342d155890ab159b42d5b55d88dfb7c392eb7f92590084e1958f6284c561da30f1 SHA512 5a1f44caa9261f4947101379628143869b31dec67fa28605e8e1f3894d4b7120c3f68ba6deb59da7a74fa906e27ab32cd3767761837dc3dfebc37865d349d6db @@ -31,8 +31,7 @@ DIST gnat-gpl-2014-x86_64-linux-bin.tar.gz 236253400 BLAKE2B c1db70db9442ba24688 DIST gnat-gpl-2016-src.tar.gz 8857249 BLAKE2B 3ff0fe247990e2a612ac989aa389e9ccae2e29c16177975c327b53ae1471030d0a70e5a2e3af219ad9a3288c241f2d18da349d0650f7fde01d439f4e4720de88 SHA512 4a5cb58ede5b4ae2887e64f0f2e12e0e06470d320796f06d02f7ddd932ff0d3b40e6d3e98a81138fff6906548a55153c2a186ff4a6e3d23b9dbe01ca582da1f8 DIST gnat-gpl-2017-src.tar.gz 8783473 BLAKE2B b0415b42f4d3a5e8675591a5602ff0a96945670104064671a232c0c12271ee141a3a5d148b8507bdab83cb8a0677c57b78e690060088308c51732bad3715964f SHA512 ae7314a2241107ed4d962dce08306eeb34c5f11e26183935bbb1ccf3a5eb011d6457c1b6fcded93dd0ee9ba31d791971ebe2a5a5a0ae04ff80d87a670325a098 DIST gnat-gpl-2018-src.tar.gz 8706578 BLAKE2B ba245fd91cc5263d5b8c159d9e75caf6bed21dcaa5fa43734af8775a4008ce5f96bfb84a8b5e6e734ff883314ab3219dacec3fe95a5baa33fb712bfb5ff8bce8 SHA512 0ff7e848ef77f7e772e2a1b01905307a91c332f32329456f5238c4b7eb46cc118709e8682a5fc826d98a7d99fd15a92c194f4a278f04bc465165cfa616cc3c2e -EBUILD gnat-gpl-2016-r1.ebuild 5680 BLAKE2B 60f04ec0a78d589656ca1c7307c67051cbfe9c97cf2125fc90531631d61e8f28f7b5d8039820033f37145f6780878c4270216c236744b791eb180c577ccbc5b4 SHA512 3879af661544424ef47dd02461e9a815e96411064e1bc12d7ad52dce29ec90a1f836a9619a08d3feb513a245a21f5eaa04e919ba6ff60081fea7bd6faa4f8801 -EBUILD gnat-gpl-2016.ebuild 5681 BLAKE2B d1c5db2018a8e8d5c9dbb10caf800aa2b3ea220ed7276fa77c43bdef541e523377ea6024d89db75277a68c28796d8fc5d339bdac52802682cc33e6cb458b3922 SHA512 3a6180130b11c3fc9c417f6cfb0303ee21b6e5c183a547e23e9510ea119d3a5becb31a4a073d5b160f9b7146b35c82ab12ea7bb7cdb53b899e89ca1177c3aebf +EBUILD gnat-gpl-2016-r2.ebuild 5759 BLAKE2B 455b0fb15a18a170a6358724afa4a350cbb8016106f77becb9cd9f7e1d231facf6caccbd7552d7dc0ddd3d46e2dbbbfb1fc2c4c208413de80cc9a6e5d2b15582 SHA512 e6e18e7bd565ef4816fde987042624641be986b5de0192ecc8c58152a464f88f4a396ac99a8a9c24a6b384d01559b73daffd7e468655f7229c81ad363941e180 EBUILD gnat-gpl-2017.ebuild 4916 BLAKE2B 63c46822894529952dec8f45723b09e590c69269bfc4b3408dc6d720fa72b574956aa3e2a8adc51c400baf02414454d3153022e59cb69ebb4c5c9214fefcc40f SHA512 3d7d6b8fac5e9d0be36df050451a959437796d63f30a678d756af7e9aa5a036d13d2a25a2dcbd16aee799c44cb41ade35ca5771a43dc779ec74d341cd835d99b -EBUILD gnat-gpl-2018-r1.ebuild 5001 BLAKE2B 162100c8960728c1c161bf5f7abc89e1e20919e456968b68faaf6a76fb0ca40cd01f223a245a9cc46ccaba0c741a34ff5c2c3a5c6dcc1697f54b2999a6769d63 SHA512 f29bfbfe1e122e6c517f740b9da3a65953cdcae14394810446f3a26c26db81164d48275281d14ad2aa205feaf88780669fe31d8b65c746e84cc39a87c0dba740 +EBUILD gnat-gpl-2018-r1.ebuild 4999 BLAKE2B 3c9bfaaeab7166d326a87301baee8c151462726fcf61af58dbd9921cbfc5dafa78205c0169e2a54f14a568ce1d958980b2d20113daa65ce10cc7a60328ed0d1b SHA512 4daba04ee89a83dbebb325955dd47c54468fd5a33c56370be432553b47a0fd27df408d62b70af4321bad69b9e51463d4e6cfba7f24480704bf4c6b30d01c971a MISC metadata.xml 1960 BLAKE2B e66552f4c0655619e736b6af14822d84e6c49aa6c019cb8c8b0e215629f9c8ab68aa55758639e35107120a39c578d82e1036bc0be82ff67728104f44c875d107 SHA512 04f14bcdd96ae4f6e285abfd07de89828eb989ce779aa59decf689920a179d859ffe809d7960e9c3599c2f6fff6ab2aafbb54458da07fa91841c61e0dfca47ab diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2016-finalization.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2016-finalization.patch new file mode 100644 index 000000000000..44503ae6b72e --- /dev/null +++ b/dev-lang/gnat-gpl/files/gnat-gpl-2016-finalization.patch @@ -0,0 +1,220 @@ +--- a/gcc/ada/exp_attr.adb 2018-11-16 20:23:21.775906196 +0100 ++++ b/gcc/ada/exp_attr.adb 2018-11-16 20:25:57.418211404 +0100 +@@ -3121,6 +3121,121 @@ + Analyze_And_Resolve (N, Standard_String); + end External_Tag; + ++ ----------------------- ++ -- Finalization_Size -- ++ ----------------------- ++ ++ when Attribute_Finalization_Size => Finalization_Size : declare ++ function Calculate_Header_Size return Node_Id; ++ -- Generate a runtime call to calculate the size of the hidden header ++ -- along with any added padding which would precede a heap-allocated ++ -- object of the prefix type. ++ ++ --------------------------- ++ -- Calculate_Header_Size -- ++ --------------------------- ++ ++ function Calculate_Header_Size return Node_Id is ++ begin ++ -- Generate: ++ -- Universal_Integer ++ -- (Header_Size_With_Padding (Pref'Alignment)) ++ ++ return ++ Convert_To (Universal_Integer, ++ Make_Function_Call (Loc, ++ Name => ++ New_Occurrence_Of (RTE (RE_Header_Size_With_Padding), Loc), ++ ++ Parameter_Associations => New_List ( ++ Make_Attribute_Reference (Loc, ++ Prefix => New_Copy_Tree (Pref), ++ Attribute_Name => Name_Alignment)))); ++ end Calculate_Header_Size; ++ ++ -- Local variables ++ ++ Size : Entity_Id; ++ ++ -- Start of Finalization_Size ++ ++ begin ++ -- An object of a class-wide type first requires a runtime check to ++ -- determine whether it is actually controlled or not. Depending on ++ -- the outcome of this check, the Finalization_Size of the object ++ -- may be zero or some positive value. ++ -- ++ -- In this scenario, Pref'Finalization_Size is expanded into ++ -- ++ -- Size : Integer := 0; ++ -- ++ -- if Needs_Finalization (Pref'Tag) then ++ -- Size := ++ -- Universal_Integer ++ -- (Header_Size_With_Padding (Pref'Alignment)); ++ -- end if; ++ -- ++ -- and the attribute reference is replaced with a reference to Size. ++ ++ if Is_Class_Wide_Type (Ptyp) then ++ Size := Make_Temporary (Loc, 'S'); ++ ++ Insert_Actions (N, New_List ( ++ ++ -- Generate: ++ -- Size : Integer := 0; ++ ++ Make_Object_Declaration (Loc, ++ Defining_Identifier => Size, ++ Object_Definition => ++ New_Occurrence_Of (Standard_Integer, Loc), ++ Expression => Make_Integer_Literal (Loc, 0)), ++ ++ -- Generate: ++ -- if Needs_Finalization (Pref'Tag) then ++ -- Size := ++ -- Universal_Integer ++ -- (Header_Size_With_Padding (Pref'Alignment)); ++ -- end if; ++ ++ Make_If_Statement (Loc, ++ Condition => ++ Make_Function_Call (Loc, ++ Name => ++ New_Occurrence_Of (RTE (RE_Needs_Finalization), Loc), ++ ++ Parameter_Associations => New_List ( ++ Make_Attribute_Reference (Loc, ++ Prefix => New_Copy_Tree (Pref), ++ Attribute_Name => Name_Tag))), ++ ++ Then_Statements => New_List ( ++ Make_Assignment_Statement (Loc, ++ Name => New_Occurrence_Of (Size, Loc), ++ Expression => Calculate_Header_Size))))); ++ ++ Rewrite (N, New_Occurrence_Of (Size, Loc)); ++ ++ -- The prefix is known to be controlled at compile time. Calculate ++ -- Finalization_Size by calling function Header_Size_With_Padding. ++ ++ elsif Needs_Finalization (Ptyp) then ++ Rewrite (N, Calculate_Header_Size); ++ ++ -- The prefix is not an object with controlled parts, so its ++ -- Finalization_Size is zero. ++ ++ else ++ Rewrite (N, Make_Integer_Literal (Loc, 0)); ++ end if; ++ ++ -- Due to cases where the entity type of the attribute is already ++ -- resolved the rewritten N must get re-resolved to its appropriate ++ -- type. ++ ++ Analyze_And_Resolve (N, Typ); ++ end Finalization_Size; ++ + ----------- + -- First -- + ----------- +--- a/gcc/ada/snames.ads-tmpl 2016-05-16 11:29:28.000000000 +0200 +--- b/gcc/ada/snames.ads-tmpl 2016-05-16 11:29:28.000000000 +0200 +@@ -884,6 +884,7 @@ + Name_Exponent : constant Name_Id := N + $; + Name_External_Tag : constant Name_Id := N + $; + Name_Fast_Math : constant Name_Id := N + $; -- GNAT ++ Name_Finalization_Size : constant Name_Id := N + $; -- GNAT + Name_First : constant Name_Id := N + $; + Name_First_Bit : constant Name_Id := N + $; + Name_First_Valid : constant Name_Id := N + $; -- Ada 12 +@@ -1523,6 +1524,7 @@ + Attribute_Exponent, + Attribute_External_Tag, + Attribute_Fast_Math, ++ Attribute_Finalization_Size, + Attribute_First, + Attribute_First_Bit, + Attribute_First_Valid, +--- a/gcc/ada/sem_attr.ads 2018-11-16 21:35:46.821279875 +0100 ++++ b/gcc/ada/sem_attr.ads 2018-11-16 21:36:00.028057464 +0100 +@@ -242,6 +242,16 @@ + -- enumeration value. Constraint_Error is raised if no value of the + -- enumeration type corresponds to the given integer value. + ++ ----------------------- ++ -- Finalization_Size -- ++ ----------------------- ++ ++ Attribute_Finalization_Size => True, ++ -- For every object or non-class-wide-type, Finalization_Size returns ++ -- the size of the hidden header used for finalization purposes as if ++ -- the object or type was allocated on the heap. The size of the header ++ -- does take into account any extra padding due to alignment issues. ++ + ----------------- + -- Fixed_Value -- + ----------------- +--- a/gcc/ada/sem_attr.adb 2018-11-16 21:35:49.698231429 +0100 ++++ b/gcc/ada/sem_attr.adb 2018-11-16 21:36:00.028057464 +0100 +@@ -3828,6 +3828,42 @@ + Check_Standard_Prefix; + Rewrite (N, New_Occurrence_Of (Boolean_Literals (Fast_Math), Loc)); + ++ ----------------------- ++ -- Finalization_Size -- ++ ----------------------- ++ ++ when Attribute_Finalization_Size => ++ Check_E0; ++ ++ -- The prefix denotes an object ++ ++ if Is_Object_Reference (P) then ++ Check_Object_Reference (P); ++ ++ -- The prefix denotes a type ++ ++ elsif Is_Entity_Name (P) and then Is_Type (Entity (P)) then ++ Check_Type; ++ Check_Not_Incomplete_Type; ++ ++ -- Attribute 'Finalization_Size is not defined for class-wide ++ -- types because it is not possible to know statically whether ++ -- a definite type will have controlled components or not. ++ ++ if Is_Class_Wide_Type (Etype (P)) then ++ Error_Attr_P ++ ("prefix of % attribute cannot denote a class-wide type"); ++ end if; ++ ++ -- The prefix denotes an illegal construct ++ ++ else ++ Error_Attr_P ++ ("prefix of % attribute must be a definite type or an object"); ++ end if; ++ ++ Set_Etype (N, Universal_Integer); ++ + ----------- + -- First -- + ----------- +@@ -8264,6 +8300,13 @@ + Fold_Uint (N, + Eval_Fat.Exponent (P_Base_Type, Expr_Value_R (E1)), Static); + ++ ----------------------- ++ -- Finalization_Size -- ++ ----------------------- ++ ++ when Attribute_Finalization_Size => ++ null; ++ + ----------- + -- First -- + ----------- diff --git a/dev-lang/gnat-gpl/gnat-gpl-2016-r1.ebuild b/dev-lang/gnat-gpl/gnat-gpl-2016-r1.ebuild deleted file mode 100644 index ac29e3d9590c..000000000000 --- a/dev-lang/gnat-gpl/gnat-gpl-2016-r1.ebuild +++ /dev/null @@ -1,214 +0,0 @@ -# Copyright 1999-2018 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="5" - -PATCH_VER="1.3" -UCLIBC_VER="1.0" - -# Hardened gcc 4 stuff -PIE_VER="0.6.4" -SPECS_VER="0.2.0" -SPECS_GCC_VER="4.4.3" -# arch/libc configurations known to be stable with {PIE,SSP}-by-default -PIE_GLIBC_STABLE="x86 amd64 mips ppc ppc64 arm ia64" -PIE_UCLIBC_STABLE="x86 arm amd64 mips ppc ppc64" -SSP_STABLE="amd64 x86 mips ppc ppc64 arm" -# uclibc need tls and nptl support for SSP support -# uclibc need to be >= 0.9.33 -SSP_UCLIBC_STABLE="x86 amd64 mips ppc ppc64 arm" -#end Hardened stuff - -TOOLCHAIN_GCC_PV=4.9.4 - -inherit eutils toolchain-funcs toolchain - -REL=4.9 -MYP=gcc-${REL}-gpl-${PV}-src -BTSTRP_X86=gnat-gpl-2014-x86-linux-bin -BTSTRP_AMD64=gnat-gpl-2014-x86_64-linux-bin - -DESCRIPTION="GNAT Ada Compiler - GPL version" -HOMEPAGE="http://libre.adacore.com/" -SRC_URI+=" - http://mirrors.cdn.adacore.com/art/57399304c7a447658e0aff7f - -> ${P}-src.tar.gz - http://mirrors.cdn.adacore.com/art/573992d4c7a447658d00e1db - -> ${MYP}.tar.gz - http://mirrors.cdn.adacore.com/art/57399232c7a447658e0aff7d - -> gcc-interface-${REL}-gpl-${PV}-src.tar.gz - bootstrap? ( - amd64? ( - http://mirrors.cdn.adacore.com/art/564b3ebec8e196b040fbe66c -> - ${BTSTRP_AMD64}.tar.gz - ) - x86? ( - http://mirrors.cdn.adacore.com/art/564b3e9dc8e196b040fbe248 -> - ${BTSTRP_X86}.tar.gz - ) - )" - -LICENSE+=" GPL-2 GPL-3" -SLOT="${TOOLCHAIN_GCC_PV}" -KEYWORDS="~amd64 ~x86" -IUSE="bootstrap" - -RDEPEND="!sys-devel/gcc:${TOOLCHAIN_GCC_PV}" -DEPEND="${RDEPEND} - elibc_glibc? ( >=sys-libs/glibc-2.8 ) - >=sys-devel/binutils-2.20" - -PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.8 )" - -S="${WORKDIR}"/${MYP} - -FSFGCC=gcc-${TOOLCHAIN_GCC_PV} - -pkg_setup() { - toolchain_pkg_setup - - if use amd64; then - BTSTRP=${BTSTRP_AMD64} - else - BTSTRP=${BTSTRP_X86} - fi - if use bootstrap; then - GCC="${WORKDIR}"/${BTSTRP}/bin/gcc - else - GCC=${ADA:-$(tc-getCC)} - fi - CC=${GCC} - local base=$(basename ${GCC}) - CXX="${base/gcc/g++}" - GNATMAKE="${base/gcc/gnatmake}" - GNATBIND="${base/gcc/gnatbind}" - if [[ ${base} != ${GCC} ]] ; then - local path=$(dirname ${GCC}) - GNATMAKE="${path}/${GNATMAKE}" - GNATBIND="${path}/${GNATBIND}" - CXX="${path}/${CXX}" - fi -} - -src_unpack() { - if ! use bootstrap && [[ -z "$(type ${GNATMAKE} 2>/dev/null)" ]] ; then - eerror "You need a gcc compiler that provides the Ada Compiler:" - eerror "1) use gcc-config to select the right compiler or" - eerror "2) set the bootstrap use flag" - die "ada compiler not available" - fi - - GCC_A_FAKEIT="${P}-src.tar.gz - ${MYP}.tar.gz - ${FSFGCC}.tar.bz2 - gcc-interface-${REL}-gpl-${PV}-src.tar.gz" - if use bootstrap; then - GCC_A_FAKEIT="${GCC_A_FAKEIT} ${BTSTRP}.tar.gz" - fi - - toolchain_src_unpack - if use bootstrap; then - rm ${BTSTRP}/libexec/gcc/${CHOST}/4.7.4/ld || die - fi -} - -src_prepare() { - mv ../${P}-src/src/ada gcc/ || die - mv ../gcc-interface-${REL}-gpl-${PV}-src gcc/ada/gcc-interface || die - - sed -i \ - -e "s:gnatmake:${GNATMAKE}:g" \ - gcc/ada/Make-generated.in || die "sed failed" - - sed -i \ - -e "/xoscons/s:gnatmake:${GNATMAKE}:g" \ - gcc/ada/gcc-interface/Makefile.in || die "sed failed" - - mv ../${FSFGCC}/gcc/doc/gcc.info gcc/doc/ || die - mv ../${FSFGCC}/libjava . || die - rm -r ../${FSFGCC} || die - - cd .. - epatch "${FILESDIR}"/${P}-gentoo.patch - rm patch/10_all_default-fortify-source.patch - rm piepatch/34_all_gcc48_config_i386.patch - cd - - - if has_version '=glibc-2.12 #362315" - EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch" - fi - - # Bug 638056 - epatch "${FILESDIR}/${P}-bootstrap.patch" - - toolchain_src_prepare - - use vanilla && return 0 - # Use -r1 for newer piepatchet that use DRIVER_SELF_SPECS for the hardened specs. - [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env-r1.patch -} - -src_configure() { - local trueGCC_BRANCH_VER=${GCC_BRANCH_VER} - GCC_BRANCH_VER=$(gcc-version) - downgrade_arch_flags - GCC_BRANCH_VER=${trueGCC_BRANCH_VER} - toolchain_src_configure \ - --enable-languages=ada \ - --disable-libada \ - CC=${GCC} \ - GNATBIND=${GNATBIND} \ - GNATMAKE=yes -} - -src_compile() { - unset ADAFLAGS - toolchain_src_compile - gcc_do_make "-C gcc gnatlib-shared" - ln -s gcc ../build/prev-gcc || die - ln -s ${CHOST} ../build/prev-${CHOST} || die - gcc_do_make "-C gcc gnattools" -} - -src_install() { - toolchain_src_install - cd "${D}"${BINPATH} - for x in gnat*; do - # For some reason, g77 gets made instead of ${CTARGET}-g77... - # this should take care of that - if [[ -f ${x} ]] ; then - # In case they're hardlinks, clear out the target first - # otherwise the mv below will complain. - rm -f ${CTARGET}-${x} - mv ${x} ${CTARGET}-${x} - fi - - if [[ -f ${CTARGET}-${x} ]] ; then - if ! is_crosscompile ; then - ln -sf ${CTARGET}-${x} ${x} - dosym ${BINPATH#${EPREFIX}}/${CTARGET}-${x} \ - /usr/bin/${x}-${GCC_CONFIG_VER} - fi - # Create versioned symlinks - dosym ${BINPATH#${EPREFIX}}/${CTARGET}-${x} \ - /usr/bin/${CTARGET}-${x}-${GCC_CONFIG_VER} - fi - - if [[ -f ${CTARGET}-${x}-${GCC_CONFIG_VER} ]] ; then - rm -f ${CTARGET}-${x}-${GCC_CONFIG_VER} - ln -sf ${CTARGET}-${x} ${CTARGET}-${x}-${GCC_CONFIG_VER} - fi - done -} - -pkg_postinst () { - toolchain_pkg_postinst - einfo "This provide the GNAT compiler with gcc for ada/c/c++ and more" - einfo "The compiler binary is gcc-${TOOLCHAIN_GCC_PV}" - einfo "Even if the c/c++ compilers are using almost the same patched" - einfo "source as the sys-devel/gcc package its use is not extensively" - einfo "tested, and not supported for updating your system, except for ada" - einfo "related packages" -} diff --git a/dev-lang/gnat-gpl/gnat-gpl-2016-r2.ebuild b/dev-lang/gnat-gpl/gnat-gpl-2016-r2.ebuild new file mode 100644 index 000000000000..ff06786dc4d5 --- /dev/null +++ b/dev-lang/gnat-gpl/gnat-gpl-2016-r2.ebuild @@ -0,0 +1,216 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +PATCH_VER="1.3" +UCLIBC_VER="1.0" + +# Hardened gcc 4 stuff +PIE_VER="0.6.4" +SPECS_VER="0.2.0" +SPECS_GCC_VER="4.4.3" +# arch/libc configurations known to be stable with {PIE,SSP}-by-default +PIE_GLIBC_STABLE="x86 amd64 mips ppc ppc64 arm ia64" +PIE_UCLIBC_STABLE="x86 arm amd64 mips ppc ppc64" +SSP_STABLE="amd64 x86 mips ppc ppc64 arm" +# uclibc need tls and nptl support for SSP support +# uclibc need to be >= 0.9.33 +SSP_UCLIBC_STABLE="x86 amd64 mips ppc ppc64 arm" +#end Hardened stuff + +TOOLCHAIN_GCC_PV=4.9.4 + +inherit eutils toolchain-funcs toolchain + +REL=4.9 +MYP=gcc-${REL}-gpl-${PV}-src +BTSTRP_X86=gnat-gpl-2014-x86-linux-bin +BTSTRP_AMD64=gnat-gpl-2014-x86_64-linux-bin + +DESCRIPTION="GNAT Ada Compiler - GPL version" +HOMEPAGE="http://libre.adacore.com/" +SRC_URI+=" + http://mirrors.cdn.adacore.com/art/57399304c7a447658e0aff7f + -> ${P}-src.tar.gz + http://mirrors.cdn.adacore.com/art/573992d4c7a447658d00e1db + -> ${MYP}.tar.gz + http://mirrors.cdn.adacore.com/art/57399232c7a447658e0aff7d + -> gcc-interface-${REL}-gpl-${PV}-src.tar.gz + bootstrap? ( + amd64? ( + http://mirrors.cdn.adacore.com/art/564b3ebec8e196b040fbe66c -> + ${BTSTRP_AMD64}.tar.gz + ) + x86? ( + http://mirrors.cdn.adacore.com/art/564b3e9dc8e196b040fbe248 -> + ${BTSTRP_X86}.tar.gz + ) + )" + +LICENSE+=" GPL-2 GPL-3" +SLOT="${TOOLCHAIN_GCC_PV}" +KEYWORDS="amd64 x86" +IUSE="bootstrap" + +RDEPEND="!sys-devel/gcc:${TOOLCHAIN_GCC_PV}" +DEPEND="${RDEPEND} + elibc_glibc? ( >=sys-libs/glibc-2.8 ) + >=sys-devel/binutils-2.20" + +PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.8 )" + +S="${WORKDIR}"/${MYP} + +FSFGCC=gcc-${TOOLCHAIN_GCC_PV} + +pkg_setup() { + toolchain_pkg_setup + + if use amd64; then + BTSTRP=${BTSTRP_AMD64} + else + BTSTRP=${BTSTRP_X86} + fi + if use bootstrap; then + GCC="${WORKDIR}"/${BTSTRP}/bin/gcc + else + GCC=${ADA:-$(tc-getCC)} + fi + CC=${GCC} + local base=$(basename ${GCC}) + CXX="${base/gcc/g++}" + GNATMAKE="${base/gcc/gnatmake}" + GNATBIND="${base/gcc/gnatbind}" + if [[ ${base} != ${GCC} ]] ; then + local path=$(dirname ${GCC}) + GNATMAKE="${path}/${GNATMAKE}" + GNATBIND="${path}/${GNATBIND}" + CXX="${path}/${CXX}" + fi +} + +src_unpack() { + if ! use bootstrap && [[ -z "$(type ${GNATMAKE} 2>/dev/null)" ]] ; then + eerror "You need a gcc compiler that provides the Ada Compiler:" + eerror "1) use gcc-config to select the right compiler or" + eerror "2) set the bootstrap use flag" + die "ada compiler not available" + fi + + GCC_A_FAKEIT="${P}-src.tar.gz + ${MYP}.tar.gz + ${FSFGCC}.tar.bz2 + gcc-interface-${REL}-gpl-${PV}-src.tar.gz" + if use bootstrap; then + GCC_A_FAKEIT="${GCC_A_FAKEIT} ${BTSTRP}.tar.gz" + fi + + toolchain_src_unpack + if use bootstrap; then + rm ${BTSTRP}/libexec/gcc/${CHOST}/4.7.4/ld || die + fi +} + +src_prepare() { + mv ../${P}-src/src/ada gcc/ || die + mv ../gcc-interface-${REL}-gpl-${PV}-src gcc/ada/gcc-interface || die + + sed -i \ + -e "s:gnatmake:${GNATMAKE}:g" \ + gcc/ada/Make-generated.in || die "sed failed" + + sed -i \ + -e "/xoscons/s:gnatmake:${GNATMAKE}:g" \ + gcc/ada/gcc-interface/Makefile.in || die "sed failed" + + mv ../${FSFGCC}/gcc/doc/gcc.info gcc/doc/ || die + mv ../${FSFGCC}/libjava . || die + rm -r ../${FSFGCC} || die + + cd .. + epatch "${FILESDIR}"/${P}-gentoo.patch + rm patch/10_all_default-fortify-source.patch + rm piepatch/34_all_gcc48_config_i386.patch + cd - + + if has_version '=glibc-2.12 #362315" + EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch" + fi + + # Bug 638056 + epatch "${FILESDIR}/${P}-bootstrap.patch" + # add Finalization_Size Attribute + epatch "${FILESDIR}/${P}-finalization.patch" + + toolchain_src_prepare + + use vanilla && return 0 + # Use -r1 for newer piepatchet that use DRIVER_SELF_SPECS for the hardened specs. + [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env-r1.patch +} + +src_configure() { + local trueGCC_BRANCH_VER=${GCC_BRANCH_VER} + GCC_BRANCH_VER=$(gcc-version) + downgrade_arch_flags + GCC_BRANCH_VER=${trueGCC_BRANCH_VER} + toolchain_src_configure \ + --enable-languages=ada \ + --disable-libada \ + CC=${GCC} \ + GNATBIND=${GNATBIND} \ + GNATMAKE=yes +} + +src_compile() { + unset ADAFLAGS + toolchain_src_compile + gcc_do_make "-C gcc gnatlib-shared" + ln -s gcc ../build/prev-gcc || die + ln -s ${CHOST} ../build/prev-${CHOST} || die + gcc_do_make "-C gcc gnattools" +} + +src_install() { + toolchain_src_install + cd "${D}"${BINPATH} + for x in gnat*; do + # For some reason, g77 gets made instead of ${CTARGET}-g77... + # this should take care of that + if [[ -f ${x} ]] ; then + # In case they're hardlinks, clear out the target first + # otherwise the mv below will complain. + rm -f ${CTARGET}-${x} + mv ${x} ${CTARGET}-${x} + fi + + if [[ -f ${CTARGET}-${x} ]] ; then + if ! is_crosscompile ; then + ln -sf ${CTARGET}-${x} ${x} + dosym ${BINPATH#${EPREFIX}}/${CTARGET}-${x} \ + /usr/bin/${x}-${GCC_CONFIG_VER} + fi + # Create versioned symlinks + dosym ${BINPATH#${EPREFIX}}/${CTARGET}-${x} \ + /usr/bin/${CTARGET}-${x}-${GCC_CONFIG_VER} + fi + + if [[ -f ${CTARGET}-${x}-${GCC_CONFIG_VER} ]] ; then + rm -f ${CTARGET}-${x}-${GCC_CONFIG_VER} + ln -sf ${CTARGET}-${x} ${CTARGET}-${x}-${GCC_CONFIG_VER} + fi + done +} + +pkg_postinst () { + toolchain_pkg_postinst + einfo "This provide the GNAT compiler with gcc for ada/c/c++ and more" + einfo "The compiler binary is gcc-${TOOLCHAIN_GCC_PV}" + einfo "Even if the c/c++ compilers are using almost the same patched" + einfo "source as the sys-devel/gcc package its use is not extensively" + einfo "tested, and not supported for updating your system, except for ada" + einfo "related packages" +} diff --git a/dev-lang/gnat-gpl/gnat-gpl-2016.ebuild b/dev-lang/gnat-gpl/gnat-gpl-2016.ebuild deleted file mode 100644 index 89ae61b4668c..000000000000 --- a/dev-lang/gnat-gpl/gnat-gpl-2016.ebuild +++ /dev/null @@ -1,214 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI="5" - -PATCH_VER="1.2" -UCLIBC_VER="1.0" - -# Hardened gcc 4 stuff -PIE_VER="0.6.4" -SPECS_VER="0.2.0" -SPECS_GCC_VER="4.4.3" -# arch/libc configurations known to be stable with {PIE,SSP}-by-default -PIE_GLIBC_STABLE="x86 amd64 mips ppc ppc64 arm ia64" -PIE_UCLIBC_STABLE="x86 arm amd64 mips ppc ppc64" -SSP_STABLE="amd64 x86 mips ppc ppc64 arm" -# uclibc need tls and nptl support for SSP support -# uclibc need to be >= 0.9.33 -SSP_UCLIBC_STABLE="x86 amd64 mips ppc ppc64 arm" -#end Hardened stuff - -TOOLCHAIN_GCC_PV=4.9.4 - -inherit eutils toolchain-funcs toolchain - -REL=4.9 -MYP=gcc-${REL}-gpl-${PV}-src -BTSTRP_X86=gnat-gpl-2014-x86-linux-bin -BTSTRP_AMD64=gnat-gpl-2014-x86_64-linux-bin - -DESCRIPTION="GNAT Ada Compiler - GPL version" -HOMEPAGE="http://libre.adacore.com/" -SRC_URI+=" - http://mirrors.cdn.adacore.com/art/57399304c7a447658e0aff7f - -> ${P}-src.tar.gz - http://mirrors.cdn.adacore.com/art/573992d4c7a447658d00e1db - -> ${MYP}.tar.gz - http://mirrors.cdn.adacore.com/art/57399232c7a447658e0aff7d - -> gcc-interface-${REL}-gpl-${PV}-src.tar.gz - bootstrap? ( - amd64? ( - http://mirrors.cdn.adacore.com/art/564b3ebec8e196b040fbe66c -> - ${BTSTRP_AMD64}.tar.gz - ) - x86? ( - http://mirrors.cdn.adacore.com/art/564b3e9dc8e196b040fbe248 -> - ${BTSTRP_X86}.tar.gz - ) - )" - -LICENSE+=" GPL-2 GPL-3" -SLOT="${TOOLCHAIN_GCC_PV}" -KEYWORDS="amd64 x86" -IUSE="bootstrap" - -RDEPEND="!sys-devel/gcc:${TOOLCHAIN_GCC_PV}" -DEPEND="${RDEPEND} - elibc_glibc? ( >=sys-libs/glibc-2.8 ) - >=sys-devel/binutils-2.20" - -PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.8 )" - -S="${WORKDIR}"/${MYP} - -FSFGCC=gcc-${TOOLCHAIN_GCC_PV} - -pkg_setup() { - toolchain_pkg_setup - - if use amd64; then - BTSTRP=${BTSTRP_AMD64} - else - BTSTRP=${BTSTRP_X86} - fi - if use bootstrap; then - GCC="${WORKDIR}"/${BTSTRP}/bin/gcc - else - GCC=${ADA:-$(tc-getCC)} - fi - CC=${GCC} - local base=$(basename ${GCC}) - CXX="${base/gcc/g++}" - GNATMAKE="${base/gcc/gnatmake}" - GNATBIND="${base/gcc/gnatbind}" - if [[ ${base} != ${GCC} ]] ; then - local path=$(dirname ${GCC}) - GNATMAKE="${path}/${GNATMAKE}" - GNATBIND="${path}/${GNATBIND}" - CXX="${path}/${CXX}" - fi -} - -src_unpack() { - if ! use bootstrap && [[ -z "$(type ${GNATMAKE} 2>/dev/null)" ]] ; then - eerror "You need a gcc compiler that provides the Ada Compiler:" - eerror "1) use gcc-config to select the right compiler or" - eerror "2) set the bootstrap use flag" - die "ada compiler not available" - fi - - GCC_A_FAKEIT="${P}-src.tar.gz - ${MYP}.tar.gz - ${FSFGCC}.tar.bz2 - gcc-interface-${REL}-gpl-${PV}-src.tar.gz" - if use bootstrap; then - GCC_A_FAKEIT="${GCC_A_FAKEIT} ${BTSTRP}.tar.gz" - fi - - toolchain_src_unpack - if use bootstrap; then - rm ${BTSTRP}/libexec/gcc/${CHOST}/4.7.4/ld || die - fi -} - -src_prepare() { - mv ../${P}-src/src/ada gcc/ || die - mv ../gcc-interface-${REL}-gpl-${PV}-src gcc/ada/gcc-interface || die - - sed -i \ - -e "s:gnatmake:${GNATMAKE}:g" \ - gcc/ada/Make-generated.in || die "sed failed" - - sed -i \ - -e "/xoscons/s:gnatmake:${GNATMAKE}:g" \ - gcc/ada/gcc-interface/Makefile.in || die "sed failed" - - mv ../${FSFGCC}/gcc/doc/gcc.info gcc/doc/ || die - mv ../${FSFGCC}/libjava . || die - rm -r ../${FSFGCC} || die - - cd .. - epatch "${FILESDIR}"/${P}-gentoo.patch - rm patch/10_all_default-fortify-source.patch - rm piepatch/34_all_gcc48_config_i386.patch - cd - - - if has_version '=glibc-2.12 #362315" - EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch" - fi - - # Bug 638056 - epatch "${FILESDIR}/${P}-bootstrap.patch" - - toolchain_src_prepare - - use vanilla && return 0 - # Use -r1 for newer piepatchet that use DRIVER_SELF_SPECS for the hardened specs. - [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env-r1.patch -} - -src_configure() { - local trueGCC_BRANCH_VER=${GCC_BRANCH_VER} - GCC_BRANCH_VER=$(gcc-version) - downgrade_arch_flags - GCC_BRANCH_VER=${trueGCC_BRANCH_VER} - toolchain_src_configure \ - --enable-languages=ada \ - --disable-libada \ - CC=${GCC} \ - GNATBIND=${GNATBIND} \ - GNATMAKE=yes -} - -src_compile() { - unset ADAFLAGS - toolchain_src_compile - gcc_do_make "-C gcc gnatlib-shared" - ln -s gcc ../build/prev-gcc || die - ln -s ${CHOST} ../build/prev-${CHOST} || die - gcc_do_make "-C gcc gnattools" -} - -src_install() { - toolchain_src_install - cd "${D}"${BINPATH} - for x in gnat*; do - # For some reason, g77 gets made instead of ${CTARGET}-g77... - # this should take care of that - if [[ -f ${x} ]] ; then - # In case they're hardlinks, clear out the target first - # otherwise the mv below will complain. - rm -f ${CTARGET}-${x} - mv ${x} ${CTARGET}-${x} - fi - - if [[ -f ${CTARGET}-${x} ]] ; then - if ! is_crosscompile ; then - ln -sf ${CTARGET}-${x} ${x} - dosym ${BINPATH#${EPREFIX}}/${CTARGET}-${x} \ - /usr/bin/${x}-${GCC_CONFIG_VER} - fi - # Create versioned symlinks - dosym ${BINPATH#${EPREFIX}}/${CTARGET}-${x} \ - /usr/bin/${CTARGET}-${x}-${GCC_CONFIG_VER} - fi - - if [[ -f ${CTARGET}-${x}-${GCC_CONFIG_VER} ]] ; then - rm -f ${CTARGET}-${x}-${GCC_CONFIG_VER} - ln -sf ${CTARGET}-${x} ${CTARGET}-${x}-${GCC_CONFIG_VER} - fi - done -} - -pkg_postinst () { - toolchain_pkg_postinst - einfo "This provide the GNAT compiler with gcc for ada/c/c++ and more" - einfo "The compiler binary is gcc-${TOOLCHAIN_GCC_PV}" - einfo "Even if the c/c++ compilers are using almost the same patched" - einfo "source as the sys-devel/gcc package its use is not extensively" - einfo "tested, and not supported for updating your system, except for ada" - einfo "related packages" -} diff --git a/dev-lang/gnat-gpl/gnat-gpl-2018-r1.ebuild b/dev-lang/gnat-gpl/gnat-gpl-2018-r1.ebuild index 13a8539ec192..997ac8068954 100644 --- a/dev-lang/gnat-gpl/gnat-gpl-2018-r1.ebuild +++ b/dev-lang/gnat-gpl/gnat-gpl-2018-r1.ebuild @@ -36,7 +36,7 @@ SRC_URI+=" )" LICENSE+=" GPL-2 GPL-3" -KEYWORDS="~amd64 ~x86" +KEYWORDS="amd64 x86" IUSE="+bootstrap" RDEPEND="!sys-devel/gcc:${GCC_CONFIG_VER}" diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest index 358a35be05e0..333a3fb6ff2d 100644 --- a/dev-lang/go/Manifest +++ b/dev-lang/go/Manifest @@ -12,12 +12,16 @@ DIST go-solaris-amd64-bootstrap-1.8.tbz 54926326 BLAKE2B 0a45312f090d81ebf46fe59 DIST go1.10.1.src.tar.gz 18305765 BLAKE2B 61b8db22c50b9a4653244dc18267f405607755932d84ea2c475338a9f4a5421da2bb8cc808dbd166aa35c3c8778180bf47d6e51ebe303bc62e582516919058f9 SHA512 13f6b0643a4f92eeca04444b9fa10de38fc3427daea9aa3227cf9a5738ffee1a3f2e355ba5faf711b8506f7de118bdcd3b9064b65407a22613523e29ffd73415 DIST go1.10.3.src.tar.gz 18323736 BLAKE2B f07ea774378eb25e28fc29ce6d8d7ed84227d4b93bfa93d38a071fe294da30c3cdc3a559d643e7379873df56b0e2731dbd772e385ffcb4b2e93819db3b4e33f2 SHA512 fd2bd5fcb5c6d0a5336c4b1d2cacb368edbb01359297a83bdedc53f6018642598232f00633fc60fde879050f5f26a810c828d46b5d6626cbcc0702d93ad33fbb DIST go1.10.4.src.tar.gz 18331174 BLAKE2B e16998d81d286f132894fefd31f4139f757b7da3dfc829c389e41ef770bed22b3c9ae7bcf190fb4c83da16cf8e8c34681cfdc5bbc786f9036710e821c9bbd483 SHA512 ead2c06d903670ff4530748aa2fa6a1140fdf32cf3b8d74cd7d6e046af73c79fd5f98d2188062e6845e5c0513c080ed7079a210720c30338cb8730b95aede9f5 +DIST go1.10.5.src.tar.gz 18332628 BLAKE2B 2ef1ea8985a2ae294f9cbaac099de9246f0ced3085b9bca07b2dd5f28c2051383239607f4014bdb7b0415b652237926567ccb1beff9208b8e3d855276f18a2aa SHA512 ef6991a21f822cec08446f1aa18a5b79d85619c8d2d622114ec948c3bc6260ef6591b400efbfdff09900c63f1e96245df0ffe513adcfa648e9ca324b822b7968 DIST go1.11.1.src.tar.gz 21097206 BLAKE2B 12303f57a92ec64badffea9e98a0361f48b844d423f3ed454ba4bfdd367425e7b318de1cf9b3e7835585f6dbb01f5c07bfb43adbfcc90a590b35984752ef8d3c SHA512 9c19f40b24f2180563705511a5692932c0db3585939053e6d78eea1f394902d37f05b0386f0e7d0c0266178de7e9bd7b003324ed232ce2e5050c9faafafdd979 +DIST go1.11.2.src.tar.gz 21100145 BLAKE2B 11b9fbc7aa9e07e3f84be4cd13d8fe8a076ba10dcb830e65a069fc0348b163e4dfa7e5b8a9040222f33e60d39b1c8b75f0531eca4354bd62c5eb2caf881b3f56 SHA512 3d9b182718c7615975a4b47cecb9ff2a8ce62156461e4112452c14617ea226121e7ab736a469050f14c89861cc4934ddd2df295b80fffff0a2dd6c155eaf0aee DIST go1.11.src.tar.gz 21091932 BLAKE2B 029b1c43b6244ab320b24fccca2bac693a0df0f975da2880a24e85fafbd7d6c836f63c609f1df44fb3eacc1c66c3d147858b7a2b9c0c370bb8fdbc8614b35713 SHA512 2758b7924b4b8cffc30b56fbf039b8e23d1a3c42506ed4997bd64531ba742e2c60e95d1fa70cae2ccda45d1959fadccfd2404af87d962530e4b1d3556c4aaf43 EBUILD go-1.10.1.ebuild 5653 BLAKE2B 4807f630943168bc970ee2f94acdd82b7619c55d0ea7fd33fbc5f5f0107342f1edf18edfe8e4c6f1a75063755c67a8b0c5d578ca3de275d8c960315dead33c5a SHA512 f51d57aa2a504ae77b3f117f2a3f1d088d534a3dcf9ec16d102e71b42a479618a18b495b6aacf967f90d7cbaf47f3e7c39e16d65fa120be1bba7726c552d1e48 EBUILD go-1.10.3.ebuild 5653 BLAKE2B 4807f630943168bc970ee2f94acdd82b7619c55d0ea7fd33fbc5f5f0107342f1edf18edfe8e4c6f1a75063755c67a8b0c5d578ca3de275d8c960315dead33c5a SHA512 f51d57aa2a504ae77b3f117f2a3f1d088d534a3dcf9ec16d102e71b42a479618a18b495b6aacf967f90d7cbaf47f3e7c39e16d65fa120be1bba7726c552d1e48 EBUILD go-1.10.4.ebuild 5653 BLAKE2B 06e491cb9a25870709a9cc04f6e5d45121153bc02b9ff9f6390a006ba175550a2b3ca0adf4f9245b6726ae0b9db39146547f764dd0d466e04fb6552b7f0a26d6 SHA512 30f3f945be04c191e44cbaf2fff47a89cbe910bb2230bafe2817c39cfe4f3da7ea7ad586fa2752bdf378a1e7334e2fd6f392ffeb6d9b3d924c4be765b89a628e +EBUILD go-1.10.5.ebuild 5653 BLAKE2B 06e491cb9a25870709a9cc04f6e5d45121153bc02b9ff9f6390a006ba175550a2b3ca0adf4f9245b6726ae0b9db39146547f764dd0d466e04fb6552b7f0a26d6 SHA512 30f3f945be04c191e44cbaf2fff47a89cbe910bb2230bafe2817c39cfe4f3da7ea7ad586fa2752bdf378a1e7334e2fd6f392ffeb6d9b3d924c4be765b89a628e EBUILD go-1.11.1.ebuild 5653 BLAKE2B 06e491cb9a25870709a9cc04f6e5d45121153bc02b9ff9f6390a006ba175550a2b3ca0adf4f9245b6726ae0b9db39146547f764dd0d466e04fb6552b7f0a26d6 SHA512 30f3f945be04c191e44cbaf2fff47a89cbe910bb2230bafe2817c39cfe4f3da7ea7ad586fa2752bdf378a1e7334e2fd6f392ffeb6d9b3d924c4be765b89a628e +EBUILD go-1.11.2.ebuild 5653 BLAKE2B 06e491cb9a25870709a9cc04f6e5d45121153bc02b9ff9f6390a006ba175550a2b3ca0adf4f9245b6726ae0b9db39146547f764dd0d466e04fb6552b7f0a26d6 SHA512 30f3f945be04c191e44cbaf2fff47a89cbe910bb2230bafe2817c39cfe4f3da7ea7ad586fa2752bdf378a1e7334e2fd6f392ffeb6d9b3d924c4be765b89a628e EBUILD go-1.11.ebuild 5656 BLAKE2B 1a140da0f482e46eaf80aa9836e934440fb309a61519c164999e75340614b383fc18dcc4cf3d70addd42f5ef289c9b167dfdc99abf52159aedb163c7426684e2 SHA512 630d6003c12c9f512f4c259be18e5c5716627968cc4725ed6d016076984aae3f90b30ce542ed8407f95a9db377502265e30b6a36d5725ce36ca3005d2c00535a EBUILD go-9999.ebuild 5650 BLAKE2B ad97b072bf73db28d60b1afb3bc3fea2159d87edc3ed0433b3e010979b01568caf81f7d6f22959ed854b7870ca5e0397a0f71e2e9488c4bb277ce0bc0a591a9f SHA512 a5a1c5037c52422d98b42c5688ba88918e548c8679d722d7d85dc3c51228ac944400a339a8e6a4018f2f438afec8365cd3550b35e6b595b097eecdec08befc84 MISC metadata.xml 538 BLAKE2B 78502c369a490804b2c69eef864276c2be5d0ee84ec189b6cc8584f8f42668a35f3c74bd25ceb53c469716337cbab908c576ca880c492f5961fedafc74cc346f SHA512 514a441a522218fdca543a22370e965a2bfc1f1f2c37e77431143329bb3d3f4f53e99ad5d7f7d7c61877f77387a777f7b4f339b9a3e45322d01d39d3d0ea1309 diff --git a/dev-lang/go/go-1.10.5.ebuild b/dev-lang/go/go-1.10.5.ebuild new file mode 100644 index 000000000000..3eecca0eb622 --- /dev/null +++ b/dev-lang/go/go-1.10.5.ebuild @@ -0,0 +1,228 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} + +MY_PV=${PV/_/} + +inherit toolchain-funcs + +BOOTSTRAP_DIST="https://dev.gentoo.org/~williamh/dist" +BOOTSTRAP_VERSION="bootstrap-1.8" +BOOTSTRAP_URI=" +amd64? ( ${BOOTSTRAP_DIST}/go-linux-amd64-${BOOTSTRAP_VERSION}.tbz ) +arm? ( ${BOOTSTRAP_DIST}/go-linux-arm-${BOOTSTRAP_VERSION}.tbz ) +arm64? ( ${BOOTSTRAP_DIST}/go-linux-arm64-${BOOTSTRAP_VERSION}.tbz ) +ppc64? ( + ${BOOTSTRAP_DIST}/go-linux-ppc64-${BOOTSTRAP_VERSION}.tbz + ${BOOTSTRAP_DIST}/go-linux-ppc64le-${BOOTSTRAP_VERSION}.tbz +) +s390? ( ${BOOTSTRAP_DIST}/go-linux-s390x-${BOOTSTRAP_VERSION}.tbz ) +x86? ( ${BOOTSTRAP_DIST}/go-linux-386-${BOOTSTRAP_VERSION}.tbz ) +amd64-fbsd? ( ${BOOTSTRAP_DIST}/go-freebsd-amd64-${BOOTSTRAP_VERSION}.tbz ) +x86-fbsd? ( ${BOOTSTRAP_DIST}/go-freebsd-386-${BOOTSTRAP_VERSION}.tbz ) +x64-macos? ( ${BOOTSTRAP_DIST}/go-darwin-amd64-${BOOTSTRAP_VERSION}.tbz ) +x64-solaris? ( ${BOOTSTRAP_DIST}/go-solaris-amd64-${BOOTSTRAP_VERSION}.tbz ) +" + +case ${PV} in +*9999*) + EGIT_REPO_URI="https://github.com/golang/go.git" + inherit git-r3 + ;; +*) + SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz " + S="${WORKDIR}"/go + case ${PV} in + *_beta*|*_rc*) ;; + *) + KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc64 ~s390 ~x86 ~amd64-fbsd ~x86-fbsd ~x64-macos ~x64-solaris" + # The upstream tests fail under portage but pass if the build is + # run according to their documentation [1]. + # I am restricting the tests on released versions until this is + # solved. + # [1] https://golang.org/issues/18442 + RESTRICT="test" + ;; + esac +esac +SRC_URI+="!gccgo? ( ${BOOTSTRAP_URI} )" + +DESCRIPTION="A concurrent garbage collected and typesafe programming language" +HOMEPAGE="https://golang.org" + +LICENSE="BSD" +SLOT="0/${PV}" +IUSE="gccgo" + +DEPEND="gccgo? ( >=sys-devel/gcc-5[go] )" +RDEPEND="!> \ + "${D}/${PHP_EXT_INI_DIR}"/opcache.ini + dosym "${PHP_EXT_INI_DIR#${EPREFIX}}/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_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 crypt mcrypt "${EPREFIX}/usr") + $(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 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 zlib zlib "${EPREFIX}/usr") + $(use_enable debug debug) + ) + + # DBA support + if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ + || use qdbm ; 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") + ) + + # 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 + our_conf+=( + --with-pcre-regex="${EPREFIX}/usr" + --with-pcre-dir="${EPREFIX}/usr" + ) + + # 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 + + 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 + + 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="" + 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 sapi="", 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" + ;; + 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}/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 + 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.12.ebuild b/dev-lang/php/php-7.2.12.ebuild new file mode 100644 index 000000000000..818e210d1a58 --- /dev/null +++ b/dev-lang/php/php-7.2.12.ebuild @@ -0,0 +1,746 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit flag-o-matic eapi7-ver systemd autotools + +DESCRIPTION="The PHP language runtime engine" +HOMEPAGE="https://secure.php.net/" +SRC_URI="https://secure.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 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~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-2.4[apache2_modules_unixd,threads=] + =net-misc/curl-7.10.5 ) + enchant? ( =sys-libs/gdbm-1.8.0:0= ) + gmp? ( dev-libs/gmp:0= ) + iconv? ( virtual/libiconv ) + imap? ( virtual/imap-c-client[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? ( || ( sys-freebsd/freebsd-lib 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" + +# 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 ) +" +PATCHES=( + "${FILESDIR}/php-freetype-2.9.1.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 + + dodir "${PHP_INI_DIR#${EPREFIX}}" + 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 "${PHP_EXT_INI_DIR#${EPREFIX}}/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 + + 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 + + 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="" + 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 sapi="", 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" + ;; + 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}/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 + 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.3.0_rc5.ebuild b/dev-lang/php/php-7.3.0_rc5.ebuild new file mode 100644 index 000000000000..865dac62201a --- /dev/null +++ b/dev-lang/php/php-7.3.0_rc5.ebuild @@ -0,0 +1,748 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit flag-o-matic eapi7-ver systemd autotools + +MY_PV=${PV/_rc/RC} +DESCRIPTION="The PHP language runtime engine" +HOMEPAGE="https://secure.php.net/" +SRC_URI="https://downloads.php.net/~cmb/${PN}-${MY_PV}.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 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" + +S="${WORKDIR}/${PN}-${MY_PV}" + +# 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/libpcre2-10.30[unicode] + fpm? ( acl? ( sys-apps/acl ) ) + apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=] + =net-misc/curl-7.10.5 ) + enchant? ( =sys-libs/zlib-1.2.0.4 ) + gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) + gmp? ( dev-libs/gmp:0= ) + iconv? ( virtual/libiconv ) + imap? ( virtual/imap-c-client[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? ( || ( sys-freebsd/freebsd-lib 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-1.0.1: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-1.2.0.4:0= ) + zip-encryption? ( >=dev-libs/libzip-1.2.0:= ) + zlib? ( >=sys-libs/zlib-1.2.0.4: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" + +# 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? ( || ( mysqli pdo ) ) + zip-encryption? ( zip ) +" +PATCHES=( + "${FILESDIR}/php-freetype-2.9.1.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 + + dodir "${PHP_INI_DIR#${EPREFIX}}" + 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 "${PHP_EXT_INI_DIR#${EPREFIX}}/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 + + 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 + + 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="" + 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 sapi="", 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" + ;; + 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}/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 + 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/ruby/Manifest b/dev-lang/ruby/Manifest index eb79a5825916..42af35e0c684 100644 --- a/dev-lang/ruby/Manifest +++ b/dev-lang/ruby/Manifest @@ -9,20 +9,12 @@ AUX 2.5/009_no-gems.patch 3454 BLAKE2B f2439a799776c39ba16f1503d573c90ea6d74fc2b AUX 2.5/010-libressl_2.7.patch 638 BLAKE2B 53f5f5d275e2c5482a608a947a1b3c41e9dcdd1763cc57a075e3abd536567852387506ec0ce2f5f49f5eed2246ca9f860d56637a9f18cd17cd49fff6fc92d340 SHA512 986aff99fd35814c94581cdc169cfc5a5f75c87889db5556941809ecaf878b6af838afe2ee108dd7147ea70be6fe9e47f98cce3c1804af0a34f7c1aab8c13d89 DIST ruby-2.3.7.tar.xz 11438124 BLAKE2B 4f7e0422291794b254cb80edd2f0841bbc1e85cd62635024b6d43b23b1bcdc512d92b57d8885b253465cc8ef3c6cbcec97a6ef239dc11cc8b252e941d25e0487 SHA512 fd91c8db3d3aa4cc962a62f27b4d1a71f6b5567ab836e6dbfbbb1553eb269d11e12faf9e36af6c489c33b54fd89dab99bfe81a563158b704877f0628d6f5bc5a DIST ruby-2.3.8.tar.xz 11465792 BLAKE2B b9c8ef5c943872e3d1426c30cbd720acc66d17cc7bc926f3294e68f17fbc78edef42f6496295800c3d4efd3ae441730723bfcfbc1111e46239359930622697d9 SHA512 06373050e6c1af9cb6a5863aef878b21c8a45fd0e68414e3d546cb73ec3028207d3acc0a9326428f172b9347a30bbe69a16f9dc0bdb739161d677adb2d888095 -DIST ruby-2.4.4.tar.xz 10049304 BLAKE2B 76bb2c3f63cda8e6f3814c74dded23568b2f7f12036d745bf55fc4a68e281ef3ae0fe29bf8e194db71f72e724ffe750a31bec9246ad1c01eb05ed93512a6422e SHA512 4dc112a149273d4221484ccbf1260c6c5fcad7e0a6e4bc91e4ef69cbc093d3191f7abd71420f80d680f8ea5d111e6803ba2af32166aa501913639e6d5696fde0 DIST ruby-2.4.5.tar.xz 10064712 BLAKE2B 0846125e617b43ea302b4c5309b20503577937865d445a6fee766323a188aa552d3a13740c3d38c7be812b19bffb2474021cb7b368cc144d51ea771552f62769 SHA512 658f676c623109f4c7499615e191c98c3dd72cfcaeeaf121337d0b8a33c5243145edd50ec5e2775f988e3cd19788984f105fa165e3049779066566f67172c1b4 -DIST ruby-2.5.1.tar.xz 11348108 BLAKE2B ea1019a81f96169ab8d435215362b36b098df373ac4f53ecda328686ec2c13204a38c66bb1bf9504d18e1762e7e6ae277bab3b16bb53b8e628962df715769f3b SHA512 31bacf58469953282cd5d8b51862dcf4b84dedb927c1871bc3fca32fc157fe49187631575a70838705fe246f4555647577a7ecc26894445a7d64de5503dc11b4 DIST ruby-2.5.3.tar.xz 11453336 BLAKE2B 66c59448a23c22796b43f04a1f84359386b7bee7163da4255426ea75b1c7af0a7a7142991b870a75a72ded56ac49f47c51bc162ebf2be2af0d1b1608b60c02df SHA512 6dcae0e8d0bacdb2cbde636e2030596308b5af53f2eb85d3adccb67b02e6f8f9751e8117d12f8484829fdd9d995f6e327f701d9b433bcf94f1f59d13a1fd7518 DIST ruby-patches-2.3.7.tar.bz2 3030 BLAKE2B 7c1e80ff0569a03672f53820c665933056b46bcf791c9132cb9f358f72df693749f02da65ca7469c3dd0f652d7dc7bfaa03dccd4eb900562361876023fb65b42 SHA512 54cc3f2bfd1967b8558736e5a5240b886a56b22defca5813f45b1f4dca9af169b4d59d60b327ec8411e824970ac6da1cec53cfc31833403742e9d6941e5a78f1 DIST ruby-patches-2.3.8.tar.bz2 3030 BLAKE2B 7c1e80ff0569a03672f53820c665933056b46bcf791c9132cb9f358f72df693749f02da65ca7469c3dd0f652d7dc7bfaa03dccd4eb900562361876023fb65b42 SHA512 54cc3f2bfd1967b8558736e5a5240b886a56b22defca5813f45b1f4dca9af169b4d59d60b327ec8411e824970ac6da1cec53cfc31833403742e9d6941e5a78f1 -DIST ruby-patches-2.4.4.tar.bz2 2898 BLAKE2B e46502dbb0aa25c3d71693a6c04b433bd4de60f194cdd283517c4b08da190356885d9bca4a6765402088185fa8ec681156e8e8eecf0703a2c1ea7bb81adc0bf9 SHA512 d767d43c7df737469247e42e1c4205b8c6850c8f335a2869c884f145c037e9bab10492cc7cd2903f5c33e232cdc5bbdabb3e8da837c7bf420b9d58d1d33149ed -DIST ruby-patches-2.5.1.tar.bz2 2986 BLAKE2B 64d64eda19bff94f205a6314c2af59896064fb64c118e0f3859d82aeb7e58478170b9160804ab8faf569054b65228abeecc5900e568e17133c21e9aed9bdf589 SHA512 c2bca3f98c7bb1de267b9f07eb1b0903c499c79e9c9d0166a6924e88e837434f27ddedd7aead7ebbe32f0530f751601ac5486a0db46ee28b94d7cea13e0e7924 EBUILD ruby-2.3.7.ebuild 6872 BLAKE2B d7cf4b0319f63d9485130c17a393671da672e4f6a4227147be161f0f3e941b8f9b2da4b43168018909ac38b002bea7348f8781fa5a7868913e0b88261dbbd874 SHA512 302d8e3feb1d532eab9e9b5e60d258ceec22a44d40c9adba4cc27d5460dc05deb932777163f06e39975756090a448a73af96c801288b0c3912cca4c591a3cd43 -EBUILD ruby-2.3.8.ebuild 6874 BLAKE2B dc6b76393df4be938ad1fdfdac3befdcb6d671cc6693f3b70ab4ee127dc84420bde4610da0c305d071a3394b515755840b3ca00a15bc85420bb2be61e7e59618 SHA512 ade1134fec8ef9f764f0fe5ef436c5bb9992d96bbb7e5baff9571d6328330dfca49e132733bfbec96d28cf91935a2bd4737ff7c5f5728070eeb67d5077529fe8 -EBUILD ruby-2.4.4-r1.ebuild 6613 BLAKE2B 22c7fc546104b77e29e507bcf7a57d23d34df1aaaa3bc7e9e6a865152977718bfe0af970a8defbd5ee2bb22ef1f2d1b4724ef5d80501d000dc109ba5fa5a1715 SHA512 efcdcb89d71e85d03c8b6d076f85ee87fb850327a509ac2f7f1b94e55f212310b5983c3494c8c1a60ace8df3624b0c6518d4421339c63b27d56f967734213291 -EBUILD ruby-2.4.4.ebuild 6979 BLAKE2B 70d16f9f2f92572be797934936f8dd25fe074e8bb0aa24e80b86043f38b2dd8f0fc41e2bc4b603894d4026c1d724170dfe094e7a97e621c2bab37a2c968cd224 SHA512 0186b663596a9304c90e18e679f5736a509fd9cb7b456a0294c2b7da5be406467552da80dcfd2d50a5033de03a4ddf213642c139263282228aa3db02ca180c17 -EBUILD ruby-2.4.5.ebuild 6626 BLAKE2B 80e2a13b383820d0cc72a55f8e90b6bda55eac48bcd8b6f5701c1f74c4df18a136ff1e283c6f5d798414d8123f0dc496b1a00dca06568afecb1824fd0037d016 SHA512 95de895451d3688cbba12da2de466b88fd0396960be3309bb2add42d477d19898f2f904339bc4dc5b2c0301765d01c5db47cc1564427e1a30ed6c01877323ff0 -EBUILD ruby-2.5.1-r1.ebuild 6405 BLAKE2B 995547ae8855c9abacd956e07a08d250d3dd02d6374bbad0868a281bd712d8234285dc9256776e24dccaa138dc3e2e1ada5801c7425bc7eca44d487b082fb978 SHA512 3172a415da2caefbdec5802ee5a981d1e2a5a442bc0091a88722e61c01e5d90b0679334d50a62ed16b226db4335e610c9c504c3cf43ca5a3ee5e3c096f3b856e -EBUILD ruby-2.5.1.ebuild 6771 BLAKE2B ae92da61788df6fc265539f4fac48f2edd7ebbd9625277b9a19b6463c7ba5473e7c83ab6bc3c00d2d85b3acebedc2dc4ca49c60c9fe2313b7fcb16443b245df6 SHA512 8d9d27fbe99aff48991cc6531646fcddb6f97a46b7c4a43e436b27d77f092337c30af7febe3aef74dde2d47056ffa93f78ac63dbb8cc99b5e623599aab9e394c +EBUILD ruby-2.3.8.ebuild 6873 BLAKE2B 2566082717e130c2f982b5b7e0abd8791636de6321b8b27684b1da935138dde506069d2214cbfb7d3961550a2a0063093121f812951538b3fbb21a61586f0940 SHA512 c078fd91363fb0e7650bf3c6764e409be364a029ac1d3389e37b101137f8a6a59ffebc50c81c658de044ae8977bb1808ffa9f19b77524623d944f33097b1d159 +EBUILD ruby-2.4.5.ebuild 6624 BLAKE2B d05822cfaa03ef9c3d161f3996de262256e7c6795d88bb04d3340c329b691b74397e7b0aa3205b6babca7fb1dde2d822a7f7b3230c4eedfaa8f51de62332efed SHA512 c93b16d3291ddc053bb118f8442419366b1ab0f491b8e0dbcb50e909cc28f11f101a9a14b4d91ae8035babe8948df492eacf98f01163b808ff1c5605af4d8e87 EBUILD ruby-2.5.3.ebuild 6418 BLAKE2B 40d7c916a9d83b0cee36d793c95aae501c7778e4cfe7a83a14f2a54223a4d1984b4fc8fea70712b8e65eabe31beaa98a12040ee4a3ff6f1263d9a3dfa8cca983 SHA512 826075b481abb9656c905a38bf70fbb5067b408afba0bd12f965ae129f3c6bd1f14e307bacd6f922ca212522ee1f016b6d6954a69c5b1054507d41883435a026 MISC metadata.xml 824 BLAKE2B e426ed390cdea118f3301d329ce93729095bafb0a04db9a64edfd709251d6f16f91153d56976f99b82d7a9df4a452513d65593732ccbd7f71332870b52f369a7 SHA512 b6f4fab5888fb9605164d7f627edc86514ec2f83d9dd8c74003ccc5a0d9b6a306986930e027e81f09928fc7ac6677a7de58cebf75c31c2ada73e2a506a447453 diff --git a/dev-lang/ruby/ruby-2.3.8.ebuild b/dev-lang/ruby/ruby-2.3.8.ebuild index e0269766d19d..a15c71349c75 100644 --- a/dev-lang/ruby/ruby-2.3.8.ebuild +++ b/dev-lang/ruby/ruby-2.3.8.ebuild @@ -30,7 +30,7 @@ SRC_URI="mirror://ruby/${SLOT}/${MY_P}.tar.xz https://dev.gentoo.org/~flameeyes/ruby-team/${PN}-patches-${PATCHSET}.tar.bz2" LICENSE="|| ( Ruby-BSD BSD-2 )" -KEYWORDS="alpha amd64 arm ~arm64 ~hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd" +KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd" IUSE="berkdb debug doc examples gdbm ipv6 jemalloc libressl +rdoc rubytests socks5 ssl tk xemacs ncurses +readline" RDEPEND=" diff --git a/dev-lang/ruby/ruby-2.4.4-r1.ebuild b/dev-lang/ruby/ruby-2.4.4-r1.ebuild deleted file mode 100644 index f56853e06c91..000000000000 --- a/dev-lang/ruby/ruby-2.4.4-r1.ebuild +++ /dev/null @@ -1,229 +0,0 @@ -# Copyright 1999-2018 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="mirror://ruby/${SLOT}/${MY_P}.tar.xz" - -LICENSE="|| ( Ruby-BSD BSD-2 )" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd" -IUSE="berkdb debug doc examples gdbm ipv6 jemalloc libressl +rdoc rubytests socks5 ssl static-libs tk xemacs" - -RDEPEND=" - berkdb? ( sys-libs/db:= ) - gdbm? ( sys-libs/gdbm:= ) - jemalloc? ( dev-libs/jemalloc ) - 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 - virtual/libffi:= - sys-libs/zlib - >=app-eselect/eselect-ruby-20161226 - ! "${T}"/50${P} + LDPATH="/opt/${P}/lib" + MANPATH="/usr/share/${P}/man" + EOF + doenvd "${T}"/50${P} + + cat <<-EOF > "${T}/provider-${P}" + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-lldb + EOF + if use cargo; then + echo /usr/bin/cargo >> "${T}/provider-${P}" + fi + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" + fi + dodir /etc/env.d/rust + insinto /etc/env.d/rust + doins "${T}/provider-${P}" +} + +pkg_postinst() { + eselect rust update --if-unset + + elog "Rust installs a helper script for calling GDB now," + elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}," + + if has_version app-editors/emacs || has_version app-editors/emacs-vcs; then + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi + + if has_version 'app-shells/zsh'; then + elog "install app-shells/rust-zshcomp to get zsh completion for rust." + fi +} + +pkg_postrm() { + eselect rust unset --if-invalid +} diff --git a/dev-lang/rust-bin/rust-bin-1.29.1.ebuild b/dev-lang/rust-bin/rust-bin-1.29.1.ebuild deleted file mode 100644 index 509e6014d003..000000000000 --- a/dev-lang/rust-bin/rust-bin-1.29.1.ebuild +++ /dev/null @@ -1,176 +0,0 @@ -# Copyright 1999-2018 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit eutils bash-completion-r1 versionator toolchain-funcs - -MY_P="rust-${PV}" - -DESCRIPTION="Systems programming language from Mozilla" -HOMEPAGE="https://www.rust-lang.org/" -SRC_URI="amd64? ( https://static.rust-lang.org/dist/${MY_P}-x86_64-unknown-linux-gnu.tar.xz ) - arm? ( - https://static.rust-lang.org/dist/${MY_P}-arm-unknown-linux-gnueabi.tar.xz - https://static.rust-lang.org/dist/${MY_P}-arm-unknown-linux-gnueabihf.tar.xz - https://static.rust-lang.org/dist/${MY_P}-armv7-unknown-linux-gnueabihf.tar.xz - ) - arm64? ( https://static.rust-lang.org/dist/${MY_P}-aarch64-unknown-linux-gnu.tar.xz ) - x86? ( https://static.rust-lang.org/dist/${MY_P}-i686-unknown-linux-gnu.tar.xz )" - -LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" -SLOT="stable" -KEYWORDS="amd64 ~arm64 x86" -IUSE="cargo clippy cpu_flags_x86_sse2 doc libressl rustfmt" - -CARGO_DEPEND_VERSION="0.$(($(get_version_component_range 2) + 1)).0" - -DEPEND=">=app-eselect/eselect-rust-0.3_pre20150425 - !dev-lang/rust:0 - cargo? ( !dev-util/cargo ) - rustfmt? ( !dev-util/rustfmt ) -" -RDEPEND="${DEPEND} - cargo? ( - sys-libs/zlib - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - net-libs/libssh2 - net-misc/curl[ssl] - )" -PDEPEND="!cargo? ( >=dev-util/cargo-${CARGO_DEPEND_VERSION} )" -REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" - -QA_PREBUILT=" - opt/${P}/bin/*-${PV} - opt/${P}/lib/*.so - opt/${P}/lib/rustlib/*/lib/*.so - opt/${P}/lib/rustlib/*/lib/*.rlib* -" - -pkg_pretend () { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - -src_unpack() { - default - - local postfix - use amd64 && postfix=x86_64-unknown-linux-gnu - - if use arm && [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv6* ]]; then - postfix=arm-unknown-linux-gnueabi - elif use arm && [[ ${CHOST} == armv6*h* ]]; then - postfix=arm-unknown-linux-gnueabihf - elif use arm && [[ ${CHOST} == armv7*h* ]]; then - postfix=armv7-unknown-linux-gnueabihf - fi - - use arm64 && postfix=aarch64-unknown-linux-gnu - use x86 && postfix=i686-unknown-linux-gnu - mv "${WORKDIR}/${MY_P}-${postfix}" "${S}" || die -} - -src_install() { - local std=$(grep 'std' ./components) - local components="rustc,${std}" - use doc && components="${components},rust-docs" - use cargo && components="${components},cargo" - use clippy && components="${components},clippy-preview" - use rustfmt && components="${components},rustfmt-preview" - ./install.sh \ - --components="${components}" \ - --disable-verify \ - --prefix="${D}/opt/${P}" \ - --mandir="${D}/usr/share/${P}/man" \ - --disable-ldconfig \ - || die - - local rustc=rustc-bin-${PV} - local rustdoc=rustdoc-bin-${PV} - local rustgdb=rust-gdb-bin-${PV} - local rustlldb=rust-lldb-bin-${PV} - - mv "${D}/opt/${P}/bin/rustc" "${D}/opt/${P}/bin/${rustc}" || die - mv "${D}/opt/${P}/bin/rustdoc" "${D}/opt/${P}/bin/${rustdoc}" || die - mv "${D}/opt/${P}/bin/rust-gdb" "${D}/opt/${P}/bin/${rustgdb}" || die - mv "${D}/opt/${P}/bin/rust-lldb" "${D}/opt/${P}/bin/${rustlldb}" || die - - dosym "../../opt/${P}/bin/${rustc}" "/usr/bin/${rustc}" - dosym "../../opt/${P}/bin/${rustdoc}" "/usr/bin/${rustdoc}" - dosym "../../opt/${P}/bin/${rustgdb}" "/usr/bin/${rustgdb}" - dosym "../../opt/${P}/bin/${rustlldb}" "/usr/bin/${rustlldb}" - - if use cargo; then - local cargo=cargo-bin-${PV} - mv "${D}/opt/${P}/bin/cargo" "${D}/opt/${P}/bin/${cargo}" || die - dosym "../../opt/${P}/bin/${cargo}" "/usr/bin/${cargo}" - fi - if use clippy; then - local clippy_driver=clippy-driver-bin-${PV} - local cargo_clippy=cargo-clippy-bin-${PV} - mv "${D}/opt/${P}/bin/clippy-driver" "${D}/opt/${P}/bin/${clippy_driver}" || die - mv "${D}/opt/${P}/bin/cargo-clippy" "${D}/opt/${P}/bin/${cargo_clippy}" || die - dosym "../../opt/${P}/bin/${clippy_driver}" "/usr/bin/${clippy_driver}" - dosym "../../opt/${P}/bin/${cargo_clippy}" "/usr/bin/${cargo_clippy}" - fi - if use rustfmt; then - local rustfmt=rustfmt-bin-${PV} - local cargo_fmt=cargo-fmt-bin-${PV} - mv "${D}/opt/${P}/bin/rustfmt" "${D}/opt/${P}/bin/${rustfmt}" || die - mv "${D}/opt/${P}/bin/cargo-fmt" "${D}/opt/${P}/bin/${cargo_fmt}" || die - dosym "../../opt/${P}/bin/${rustfmt}" "/usr/bin/${rustfmt}" - dosym "../../opt/${P}/bin/${cargo_fmt}" "/usr/bin/${cargo_fmt}" - fi - - cat <<-EOF > "${T}"/50${P} - LDPATH="/opt/${P}/lib" - MANPATH="/usr/share/${P}/man" - EOF - doenvd "${T}"/50${P} - - cat <<-EOF > "${T}/provider-${P}" - /usr/bin/rustdoc - /usr/bin/rust-gdb - /usr/bin/rust-lldb - EOF - if use cargo; then - echo /usr/bin/cargo >> "${T}/provider-${P}" - fi - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" - fi - dodir /etc/env.d/rust - insinto /etc/env.d/rust - doins "${T}/provider-${P}" -} - -pkg_postinst() { - eselect rust update --if-unset - - elog "Rust installs a helper script for calling GDB now," - elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}," - - if has_version app-editors/emacs || has_version app-editors/emacs-vcs; then - elog "install app-emacs/rust-mode to get emacs support for rust." - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - elog "install app-vim/rust-vim to get vim support for rust." - fi - - if has_version 'app-shells/zsh'; then - elog "install app-shells/rust-zshcomp to get zsh completion for rust." - fi -} - -pkg_postrm() { - eselect rust unset --if-invalid -} diff --git a/dev-lang/rust-bin/rust-bin-1.29.2-r1.ebuild b/dev-lang/rust-bin/rust-bin-1.29.2-r1.ebuild new file mode 100644 index 000000000000..83af1207dcbb --- /dev/null +++ b/dev-lang/rust-bin/rust-bin-1.29.2-r1.ebuild @@ -0,0 +1,154 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit eutils bash-completion-r1 rust-toolchain versionator toolchain-funcs + +MY_P="rust-${PV}" + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P})" + +LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" +SLOT="stable" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="cargo clippy cpu_flags_x86_sse2 doc libressl rustfmt" + +CARGO_DEPEND_VERSION="0.$(($(get_version_component_range 2) + 1)).0" + +DEPEND="" +RDEPEND=">=app-eselect/eselect-rust-0.3_pre20150425 + cargo? ( + sys-libs/zlib + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + net-libs/libssh2 + net-misc/curl[ssl] + !dev-util/cargo + ) + !dev-lang/rust:0 + rustfmt? ( !dev-util/rustfmt )" +PDEPEND="!cargo? ( >=dev-util/cargo-${CARGO_DEPEND_VERSION} )" +REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" + +QA_PREBUILT=" + opt/${P}/bin/*-${PV} + opt/${P}/lib/*.so + opt/${P}/lib/rustlib/*/lib/*.so + opt/${P}/lib/rustlib/*/lib/*.rlib* +" + +pkg_pretend () { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + default + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +src_install() { + local std=$(grep 'std' ./components) + local components="rustc,${std}" + use doc && components="${components},rust-docs" + use cargo && components="${components},cargo" + use clippy && components="${components},clippy-preview" + use rustfmt && components="${components},rustfmt-preview" + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${D}/opt/${P}" \ + --mandir="${D}/usr/share/${P}/man" \ + --disable-ldconfig \ + || die + + local rustc=rustc-bin-${PV} + local rustdoc=rustdoc-bin-${PV} + local rustgdb=rust-gdb-bin-${PV} + local rustlldb=rust-lldb-bin-${PV} + + mv "${D}/opt/${P}/bin/rustc" "${D}/opt/${P}/bin/${rustc}" || die + mv "${D}/opt/${P}/bin/rustdoc" "${D}/opt/${P}/bin/${rustdoc}" || die + mv "${D}/opt/${P}/bin/rust-gdb" "${D}/opt/${P}/bin/${rustgdb}" || die + mv "${D}/opt/${P}/bin/rust-lldb" "${D}/opt/${P}/bin/${rustlldb}" || die + + dosym "../../opt/${P}/bin/${rustc}" "/usr/bin/${rustc}" + dosym "../../opt/${P}/bin/${rustdoc}" "/usr/bin/${rustdoc}" + dosym "../../opt/${P}/bin/${rustgdb}" "/usr/bin/${rustgdb}" + dosym "../../opt/${P}/bin/${rustlldb}" "/usr/bin/${rustlldb}" + + if use cargo; then + local cargo=cargo-bin-${PV} + mv "${D}/opt/${P}/bin/cargo" "${D}/opt/${P}/bin/${cargo}" || die + dosym "../../opt/${P}/bin/${cargo}" "/usr/bin/${cargo}" + fi + if use clippy; then + local clippy_driver=clippy-driver-bin-${PV} + local cargo_clippy=cargo-clippy-bin-${PV} + mv "${D}/opt/${P}/bin/clippy-driver" "${D}/opt/${P}/bin/${clippy_driver}" || die + mv "${D}/opt/${P}/bin/cargo-clippy" "${D}/opt/${P}/bin/${cargo_clippy}" || die + dosym "../../opt/${P}/bin/${clippy_driver}" "/usr/bin/${clippy_driver}" + dosym "../../opt/${P}/bin/${cargo_clippy}" "/usr/bin/${cargo_clippy}" + fi + if use rustfmt; then + local rustfmt=rustfmt-bin-${PV} + local cargo_fmt=cargo-fmt-bin-${PV} + mv "${D}/opt/${P}/bin/rustfmt" "${D}/opt/${P}/bin/${rustfmt}" || die + mv "${D}/opt/${P}/bin/cargo-fmt" "${D}/opt/${P}/bin/${cargo_fmt}" || die + dosym "../../opt/${P}/bin/${rustfmt}" "/usr/bin/${rustfmt}" + dosym "../../opt/${P}/bin/${cargo_fmt}" "/usr/bin/${cargo_fmt}" + fi + + cat <<-EOF > "${T}"/50${P} + LDPATH="/opt/${P}/lib" + MANPATH="/usr/share/${P}/man" + EOF + doenvd "${T}"/50${P} + + cat <<-EOF > "${T}/provider-${P}" + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-lldb + EOF + if use cargo; then + echo /usr/bin/cargo >> "${T}/provider-${P}" + fi + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" + fi + dodir /etc/env.d/rust + insinto /etc/env.d/rust + doins "${T}/provider-${P}" +} + +pkg_postinst() { + eselect rust update --if-unset + + elog "Rust installs a helper script for calling GDB now," + elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}," + + if has_version app-editors/emacs || has_version app-editors/emacs-vcs; then + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi + + if has_version 'app-shells/zsh'; then + elog "install app-shells/rust-zshcomp to get zsh completion for rust." + fi +} + +pkg_postrm() { + eselect rust unset --if-invalid +} diff --git a/dev-lang/rust-bin/rust-bin-1.29.2.ebuild b/dev-lang/rust-bin/rust-bin-1.29.2.ebuild deleted file mode 100644 index afca3183a7a0..000000000000 --- a/dev-lang/rust-bin/rust-bin-1.29.2.ebuild +++ /dev/null @@ -1,155 +0,0 @@ -# Copyright 1999-2018 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit eutils bash-completion-r1 rust-toolchain versionator toolchain-funcs - -MY_P="rust-${PV}" - -DESCRIPTION="Systems programming language from Mozilla" -HOMEPAGE="https://www.rust-lang.org/" -SRC_URI="$(rust_all_arch_uris ${MY_P})" - -LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" -SLOT="stable" -KEYWORDS="~amd64 ~arm64 ~x86" -IUSE="cargo clippy cpu_flags_x86_sse2 doc libressl rustfmt" - -CARGO_DEPEND_VERSION="0.$(($(get_version_component_range 2) + 1)).0" - -DEPEND=">=app-eselect/eselect-rust-0.3_pre20150425 - !dev-lang/rust:0 - cargo? ( !dev-util/cargo ) - rustfmt? ( !dev-util/rustfmt ) -" -RDEPEND="${DEPEND} - cargo? ( - sys-libs/zlib - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - net-libs/libssh2 - net-misc/curl[ssl] - )" -PDEPEND="!cargo? ( >=dev-util/cargo-${CARGO_DEPEND_VERSION} )" -REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" - -QA_PREBUILT=" - opt/${P}/bin/*-${PV} - opt/${P}/lib/*.so - opt/${P}/lib/rustlib/*/lib/*.so - opt/${P}/lib/rustlib/*/lib/*.rlib* -" - -pkg_pretend () { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - -src_unpack() { - default - mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die -} - -src_install() { - local std=$(grep 'std' ./components) - local components="rustc,${std}" - use doc && components="${components},rust-docs" - use cargo && components="${components},cargo" - use clippy && components="${components},clippy-preview" - use rustfmt && components="${components},rustfmt-preview" - ./install.sh \ - --components="${components}" \ - --disable-verify \ - --prefix="${D}/opt/${P}" \ - --mandir="${D}/usr/share/${P}/man" \ - --disable-ldconfig \ - || die - - local rustc=rustc-bin-${PV} - local rustdoc=rustdoc-bin-${PV} - local rustgdb=rust-gdb-bin-${PV} - local rustlldb=rust-lldb-bin-${PV} - - mv "${D}/opt/${P}/bin/rustc" "${D}/opt/${P}/bin/${rustc}" || die - mv "${D}/opt/${P}/bin/rustdoc" "${D}/opt/${P}/bin/${rustdoc}" || die - mv "${D}/opt/${P}/bin/rust-gdb" "${D}/opt/${P}/bin/${rustgdb}" || die - mv "${D}/opt/${P}/bin/rust-lldb" "${D}/opt/${P}/bin/${rustlldb}" || die - - dosym "../../opt/${P}/bin/${rustc}" "/usr/bin/${rustc}" - dosym "../../opt/${P}/bin/${rustdoc}" "/usr/bin/${rustdoc}" - dosym "../../opt/${P}/bin/${rustgdb}" "/usr/bin/${rustgdb}" - dosym "../../opt/${P}/bin/${rustlldb}" "/usr/bin/${rustlldb}" - - if use cargo; then - local cargo=cargo-bin-${PV} - mv "${D}/opt/${P}/bin/cargo" "${D}/opt/${P}/bin/${cargo}" || die - dosym "../../opt/${P}/bin/${cargo}" "/usr/bin/${cargo}" - fi - if use clippy; then - local clippy_driver=clippy-driver-bin-${PV} - local cargo_clippy=cargo-clippy-bin-${PV} - mv "${D}/opt/${P}/bin/clippy-driver" "${D}/opt/${P}/bin/${clippy_driver}" || die - mv "${D}/opt/${P}/bin/cargo-clippy" "${D}/opt/${P}/bin/${cargo_clippy}" || die - dosym "../../opt/${P}/bin/${clippy_driver}" "/usr/bin/${clippy_driver}" - dosym "../../opt/${P}/bin/${cargo_clippy}" "/usr/bin/${cargo_clippy}" - fi - if use rustfmt; then - local rustfmt=rustfmt-bin-${PV} - local cargo_fmt=cargo-fmt-bin-${PV} - mv "${D}/opt/${P}/bin/rustfmt" "${D}/opt/${P}/bin/${rustfmt}" || die - mv "${D}/opt/${P}/bin/cargo-fmt" "${D}/opt/${P}/bin/${cargo_fmt}" || die - dosym "../../opt/${P}/bin/${rustfmt}" "/usr/bin/${rustfmt}" - dosym "../../opt/${P}/bin/${cargo_fmt}" "/usr/bin/${cargo_fmt}" - fi - - cat <<-EOF > "${T}"/50${P} - LDPATH="/opt/${P}/lib" - MANPATH="/usr/share/${P}/man" - EOF - doenvd "${T}"/50${P} - - cat <<-EOF > "${T}/provider-${P}" - /usr/bin/rustdoc - /usr/bin/rust-gdb - /usr/bin/rust-lldb - EOF - if use cargo; then - echo /usr/bin/cargo >> "${T}/provider-${P}" - fi - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" - fi - dodir /etc/env.d/rust - insinto /etc/env.d/rust - doins "${T}/provider-${P}" -} - -pkg_postinst() { - eselect rust update --if-unset - - elog "Rust installs a helper script for calling GDB now," - elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}," - - if has_version app-editors/emacs || has_version app-editors/emacs-vcs; then - elog "install app-emacs/rust-mode to get emacs support for rust." - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - elog "install app-vim/rust-vim to get vim support for rust." - fi - - if has_version 'app-shells/zsh'; then - elog "install app-shells/rust-zshcomp to get zsh completion for rust." - fi -} - -pkg_postrm() { - eselect rust unset --if-invalid -} diff --git a/dev-lang/rust-bin/rust-bin-1.30.1-r1.ebuild b/dev-lang/rust-bin/rust-bin-1.30.1-r1.ebuild new file mode 100644 index 000000000000..570cc004968c --- /dev/null +++ b/dev-lang/rust-bin/rust-bin-1.30.1-r1.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit eutils bash-completion-r1 rust-toolchain versionator toolchain-funcs + +MY_P="rust-${PV}" + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P})" + +LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" +SLOT="stable" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="clippy cpu_flags_x86_sse2 doc libressl rustfmt" + +DEPEND="" +RDEPEND=">=app-eselect/eselect-rust-0.3_pre20150425 + sys-libs/zlib + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + net-libs/libssh2 + net-misc/curl[ssl] + !dev-lang/rust:0 + !dev-util/cargo + rustfmt? ( !dev-util/rustfmt )" +REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" + +QA_PREBUILT=" + opt/${P}/bin/*-${PV} + opt/${P}/lib/*.so + opt/${P}/lib/rustlib/*/lib/*.so + opt/${P}/lib/rustlib/*/lib/*.rlib* +" + +pkg_pretend () { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + default + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +src_install() { + local std=$(grep 'std' ./components) + local components="rustc,cargo,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use rustfmt && components="${components},rustfmt-preview" + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${D}/opt/${P}" \ + --mandir="${D}/usr/share/${P}/man" \ + --disable-ldconfig \ + || die + + local rustc=rustc-bin-${PV} + local rustdoc=rustdoc-bin-${PV} + local rustgdb=rust-gdb-bin-${PV} + local rustlldb=rust-lldb-bin-${PV} + + mv "${D}/opt/${P}/bin/rustc" "${D}/opt/${P}/bin/${rustc}" || die + mv "${D}/opt/${P}/bin/rustdoc" "${D}/opt/${P}/bin/${rustdoc}" || die + mv "${D}/opt/${P}/bin/rust-gdb" "${D}/opt/${P}/bin/${rustgdb}" || die + mv "${D}/opt/${P}/bin/rust-lldb" "${D}/opt/${P}/bin/${rustlldb}" || die + + dosym "../../opt/${P}/bin/${rustc}" "/usr/bin/${rustc}" + dosym "../../opt/${P}/bin/${rustdoc}" "/usr/bin/${rustdoc}" + dosym "../../opt/${P}/bin/${rustgdb}" "/usr/bin/${rustgdb}" + dosym "../../opt/${P}/bin/${rustlldb}" "/usr/bin/${rustlldb}" + + local cargo=cargo-bin-${PV} + mv "${D}/opt/${P}/bin/cargo" "${D}/opt/${P}/bin/${cargo}" || die + dosym "../../opt/${P}/bin/${cargo}" "/usr/bin/${cargo}" + if use clippy; then + local clippy_driver=clippy-driver-bin-${PV} + local cargo_clippy=cargo-clippy-bin-${PV} + mv "${D}/opt/${P}/bin/clippy-driver" "${D}/opt/${P}/bin/${clippy_driver}" || die + mv "${D}/opt/${P}/bin/cargo-clippy" "${D}/opt/${P}/bin/${cargo_clippy}" || die + dosym "../../opt/${P}/bin/${clippy_driver}" "/usr/bin/${clippy_driver}" + dosym "../../opt/${P}/bin/${cargo_clippy}" "/usr/bin/${cargo_clippy}" + fi + if use rustfmt; then + local rustfmt=rustfmt-bin-${PV} + local cargo_fmt=cargo-fmt-bin-${PV} + mv "${D}/opt/${P}/bin/rustfmt" "${D}/opt/${P}/bin/${rustfmt}" || die + mv "${D}/opt/${P}/bin/cargo-fmt" "${D}/opt/${P}/bin/${cargo_fmt}" || die + dosym "../../opt/${P}/bin/${rustfmt}" "/usr/bin/${rustfmt}" + dosym "../../opt/${P}/bin/${cargo_fmt}" "/usr/bin/${cargo_fmt}" + fi + + cat <<-EOF > "${T}"/50${P} + LDPATH="/opt/${P}/lib" + MANPATH="/usr/share/${P}/man" + EOF + doenvd "${T}"/50${P} + + cat <<-EOF > "${T}/provider-${P}" + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-lldb + EOF + echo /usr/bin/cargo >> "${T}/provider-${P}" + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" + fi + dodir /etc/env.d/rust + insinto /etc/env.d/rust + doins "${T}/provider-${P}" +} + +pkg_postinst() { + eselect rust update --if-unset + + elog "Rust installs a helper script for calling GDB now," + elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}," + + if has_version app-editors/emacs || has_version app-editors/emacs-vcs; then + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi + + if has_version 'app-shells/zsh'; then + elog "install app-shells/rust-zshcomp to get zsh completion for rust." + fi +} + +pkg_postrm() { + eselect rust unset --if-invalid +} diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest index 898cc405c36f..77d5893cdf45 100644 --- a/dev-lang/rust/Manifest +++ b/dev-lang/rust/Manifest @@ -1,4 +1,5 @@ AUX 1.29.2-clippy-sysroot.patch 2571 BLAKE2B 1f65355cf47fb1ee2bd15f7424b6bf98106028fa46a8f89ab639acdc3a131684898dcda42abd6d5d7bc09c857990dcea86467b3c96e8e6d47b90726d9176a221 SHA512 2577c7540be9a197343bc06b5de52ba42832cbb2799997bb9778e6e392a421cfe6bce9ce48793d60af7a8f3e0ade0c79e0adbfc1125fbcd89b01e97ab96b8d30 +AUX 1.30.1-clippy-sysroot.patch 2870 BLAKE2B 84f6c52fc8f757b509655852810d52c7aef50c7a5678e746d525e41888c50995d23f030373e4c37d829ed794d1890f380bc944eae601b97957d2b35d733b5d6b SHA512 8b2601e7699d3a1b004ac5559add37eb939332aacf136b9b6397f314dbcbe9015f1ff5ac906e80a4a913b0cdf4f5410d779721b136ecbe1a4af8380668bb7765 DIST rust-1.28.0-aarch64-unknown-linux-gnu.tar.xz 98937652 BLAKE2B 836d3dd4e583fa50dd317c3bea56257e6ea19defdb38c16be6debb2854e147c8a92c4832263e4ac314136022a176526fe7d3774a3c5a84cd8d364cd2a1532860 SHA512 8d9acbc90ddaa1e0de0234a21798b19b5365ea371a12f9a143c6ebacbb48f57344da6e827e867513be502bce2801de27a0dbbacdf8618c653aeb58026b6c469c DIST rust-1.28.0-arm-unknown-linux-gnueabi.tar.xz 104676648 BLAKE2B b26b23c3605e6584c51e0e914dbb3be60996e079e52ff2d4850ed43c1f1f7cd5ac575b40dbe852f927d36654f5ab7e384548f3a92b3466bfbb1cda7f9f069bcb SHA512 a1eaf1d7826ebfe222d233cabd8b88073ca2c8dd42a0b870e324dfc63e7290308418222c56802bc421c9bda119dc7c5f3e225ff33cacad5776b79cbcc1a877b2 DIST rust-1.28.0-arm-unknown-linux-gnueabihf.tar.xz 104992084 BLAKE2B df97766d7abf73f668a2936834bc0f35739289eeeb5395276a2fdfd5b6c0baee3ba1eee1099f19d4f4f1cbd1a33cf62ad888dd3d1856b613ac853c6a17650741 SHA512 3b58b83f38bf8d8e841ae6614d72bb6e6faf75fb7c19abc5451548b0e6de0ef3b64dfbc70481a1e40f74074bfad701aa7a58296b4a0d07957a418bd3cd769917 @@ -12,8 +13,23 @@ DIST rust-1.28.0-powerpc64-unknown-linux-gnu.tar.xz 105788856 BLAKE2B 8280826125 DIST rust-1.28.0-powerpc64le-unknown-linux-gnu.tar.xz 105822856 BLAKE2B 0cf534a55efff99daf700127fc7bc7b82b93054d054fbf8479a8b247b41381fd82f8672ac12f3e3f53566d816964d83069593817d1932b33902f83994f1bdc33 SHA512 bdbdf3a64a184dd4510a113bbe20c058f42e35321cd2fb7c938487dfc9b1f04320b523ea215dd92a23c2537292eeb064097119e2097d6e24a1c4e237d9d4fc8b DIST rust-1.28.0-s390x-unknown-linux-gnu.tar.xz 98839840 BLAKE2B bbff015b3d2daf1443781cccb80527cf8c7f86a01ed928b49cc7e87e17f8c6354f6a47dd2356ff75357e09f7f79ec85812bd8458aee9455800fdf88761243e94 SHA512 5ffb44d16c990b8a6377b64e5042a3b2e709bcc7187013dbe4ab3c9d8cd781b6bf07b0d374340e2ccabe9f84fd4731b606cb05a10a739ebcfa49652518a2aa46 DIST rust-1.28.0-x86_64-unknown-linux-gnu.tar.xz 134120432 BLAKE2B 56fb79a98659d9c8e56b8eef87dea3302ee5901bc4507d1c204628370b20cf34b2875c9586faa0acc2bc2b1a5beedeb9b5ba199cfb85d52f268f084a02f04f27 SHA512 4f427c11a9cd22aedd01bd7ed5bee2ba5e00a27db25af4f596cf8627d88eff8e72625eb83729d2e6c6780aaffd44c0e7065a1c8fa22f4899349b72c726cf6a5f +DIST rust-1.29.2-aarch64-unknown-linux-gnu.tar.xz 99702524 BLAKE2B 669066ada5c88ad966125edca77723fbe0ebc0e19859a96cf02eb28a107df87647bc552358cb5e1f8be1fb79d836f8202f4e59349f123bd95383a3a9cb82d0f0 SHA512 f871359a3b1ac54fb237921204d98ef4fac06830e9835849538397c27d40283662c0f6ab3f6eafe0e9ef63182a460e26d615111055430ece0fe94ddf7ad03914 +DIST rust-1.29.2-arm-unknown-linux-gnueabi.tar.xz 105368092 BLAKE2B 7764689fdaeb2ade9aff248707f472ed35d06d4240b138ddf083ef614227845bf6e1d0be38ebc771e95b0998dab3f550de5abe50ffe89625690611d4bdf53aad SHA512 2ef8fda575b00bf7c6f20a8f2a1b6cb8c3b1de6287c9e07889c9a3a682f73f9470bb5649425652ac47af8f61f49abf21209f6b151c4a5ae42dcea59f6e79f84b +DIST rust-1.29.2-arm-unknown-linux-gnueabihf.tar.xz 105657004 BLAKE2B 5813dde3020afda41e307f4d9ba57c3840ff800bceb0ef494d743095ce6d4da333da208fc72bb36e21209a9ae16e081ca3e7580d59a984ce561d85bcf4b2e2dc SHA512 81d4e392afe3f4bd1ad76a78610e92e8a27afe8f6d0ff1773dbdf35f2041a587c2a0d71db0658ff50fb43460b4f15f23bbb1cc03a018d49d153314e636befb8a +DIST rust-1.29.2-armv7-unknown-linux-gnueabihf.tar.xz 105958932 BLAKE2B 569cbee0ad0eba41c280be934fc5a59c52331b0853d890aad2188c1979a259d90f4092d72dc9e8027255e2ea6b5ea422a06dd9d82f6b2a865fb1d3bcf146c13d SHA512 bff1220781eca904a93d2cefafed3587e3f76e1dc04fbef09a0281295b6c06491c5fa327830c430d31df80eb7a3e64eac7f45739bc118e3626854f96dce246e2 +DIST rust-1.29.2-i686-unknown-linux-gnu.tar.xz 150567444 BLAKE2B d3b3cfa88e89e29cf2e502a2ee11b22ea45cf9fa5ca0611de273062a8885dc0b9206a43175895a873cbfbaa08bf0bbdcf38cca45436b77b47dbac1b09e0fdb68 SHA512 faac22aec54d0754ff991f2a34ed7b8bfefa8dc9720d247eec1c6b671bbc701907146a796699591e4a677a0f378b9d96bfea5b33452f05dd876c668525f9f33d +DIST rust-1.29.2-mips-unknown-linux-gnu.tar.xz 96027696 BLAKE2B e12dbd41e45a5009c218be07f085d75ce99bd7a7daf8917db0127aa03ac78f4883b344b566d3a8947b836d55750388ea5387264e036c75de7ef4ba5dda081d63 SHA512 21d860c6f7219f51b65dced57e0173500e054d2d13300f0ee7721262a8354e5dbc272deb8387fcaaeb16ad793808f87edc6c087f7e442e7434264a3302acf537 +DIST rust-1.29.2-mips64-unknown-linux-gnuabi64.tar.xz 102149796 BLAKE2B 1f40dd40e461769cfb75a671d6f83c650c74031302bd8872861cfdd3432e270e47c150382c6f02c38e7823f35a158de395cbc33f0061e51632d130b6fd0910f9 SHA512 5b98632b80d2ed4cef17bd068adabbe26146a6df68e6e70f2535f61f981c8f935b2491a2dcf388a2afe0cc225f10f9f262342457ce9def8c800364253cac7e67 +DIST rust-1.29.2-mipsel-unknown-linux-gnu.tar.xz 97362256 BLAKE2B 4d3170a8c48a68a606eff5631d198b16ca09953b0d8079c39f5edc6284a037c0b2212c74d098da4fa0a40a0917139022a9746734e9fdeb62e2564337430a4edb SHA512 9c5ca864da672a975730073e3291c2be218c2624a11ec5fc9a2637bdf58c7437ae77910bccbc6678d584a3464036377d4717d7f6ebdd5712e9bc86973e91d0ad +DIST rust-1.29.2-powerpc-unknown-linux-gnu.tar.xz 93639612 BLAKE2B 54fe353f32bedb2567784bfe28ac741f137cc55928e874157f420460831cdb4617fee262c4d3b56d6720dba37bb7b6281c970d4a3002c673aaa85aa70eed922d SHA512 f217cd5169225b290870821b5ba17ad9dfffc99906057c79e91e2a2db5cfd8bc5a83d4e20023e9b73171d15c988e4b28cdbf3f8af2c70657566e6d89658998b0 +DIST rust-1.29.2-powerpc64-unknown-linux-gnu.tar.xz 103432092 BLAKE2B ed700d298770b621767f5439841e3be79c3c02d2b05feb211b8508933d4ca2d13c30cf689c5376cfc93bd374c09aaa4fdc4fb84dd4db264eef6a70cba62b6647 SHA512 1af0b55bc62d7641d33e2d33aadaf474298d3284cb2d914be0240eae54e20f464513db4b04f7518385dc5135498c58ec18e0d4cc6341c9e165847536479f44dc +DIST rust-1.29.2-powerpc64le-unknown-linux-gnu.tar.xz 106607384 BLAKE2B de19f341dcc1cc580e68865d3b0034f781ed4ca0ac1b07c89352409684670c7d0fd5c95ea6018fc7de4fbfacf4f7d0ebeec34c036c0062ca7f776403511df7dd SHA512 b9181da601a467f46713f2f438fc7ad69c46fc310e62a8d45f665744c8578491d832b8624ff454c19c94f1694fa406846a82289250241030a70b2cb4b88913d1 +DIST rust-1.29.2-s390x-unknown-linux-gnu.tar.xz 99114900 BLAKE2B 08e9251bd8e9c9ac6352ab81735b720052b3288b5fd344f6ba69205c7971f362270f0acce7dbd3763b20d3b1e976ff5404151253acb9c29708f36038d23299f1 SHA512 f76a030257edbdd993d7a4e83da895c8b4749904fb2252a125b3e4ef4331a1cb2c389ec54a372bea413718e3dad987e4b17eb29d301c29ba330222502e6b9b75 +DIST rust-1.29.2-x86_64-unknown-linux-gnu.tar.xz 148275708 BLAKE2B bd7c974f5c8cf78a1fbfc73544ecdab97b7f9ab28ed9ab66759eca3e0fa085fdb2689ba5dfc6dccc6746bab91b6b0b544c44cb729e493dddde2f9ed84c96a247 SHA512 8bc05942a72b186ea1765831bea6921f734e2dd58790a8e427a6d63a2db0d9064937d3198ca3febffeba73b1cc3bef716155ef6cb32127ddeef29ac884cde4b8 DIST rustc-1.29.1-src.tar.xz 61937676 BLAKE2B 6a60249538e1ec62471f4d0e3fc31c0a648433aa6f85ca7341657ea07772e338eb92a629941685808f4b80e84cb025d78aee9d0d6fa71c6635a1647c61bca9bc SHA512 1ded651b4c460e11e5e44c26de88a80fb13c2000097de2ee1e5af89638e12a7e8f43dd756689d4cc4fad45c52d4d43a3c70dd6a3ae550735b9dad5f8defea6a7 DIST rustc-1.29.2-src.tar.xz 61888912 BLAKE2B f59b0bf45caa6f6136f92ffbaa612bbc6a340c8694ec69d75aadace9180c36753f985641915524388b52cc108f8f5b71840ee3a6c0b1fcff6decb61d2d8a161e SHA512 d8fa9501764348ace8f60f2069bcd016925abe56c8bbc2b87fb52ff796e4bc7284c1fccbb1671416437bb82fde7d9240eeae875d6099914e27e75cfe050e2d38 -EBUILD rust-1.29.1.ebuild 7965 BLAKE2B f84b3e11c73b20abf236f457435c56fc2ef160cbd174bb048a24c307a6627680ce266cdd276974a569d0ba715c13f0e1e2e36c2fef3d1600bc4eefefdbc0e3da SHA512 23d46b6feff4016ad6b9e508c58a7d41dfe1568b45b6332efd56c08100d8790f40509cc16b0aed699a839b47ae6bdba700b428c74ed7aa6bd03d8927d6af7233 -EBUILD rust-1.29.2.ebuild 7496 BLAKE2B a51ef2ee6137a2e8f7fb700614af173b6f6ccafbf37cff705f9188a74009d56a0dc3333b1f3b419bd1fdf9b8aa5c59168d23b75b36efd2864200e0bc54bc8918 SHA512 c473c48286ba8cc512ea045f65ab25bfc2343d166ebaa17f0d4738a63e9f1039ab4fdbbe1427b0f5df38ac05447bbece40e7e972c111818389f8d1990cddaebe -MISC metadata.xml 570 BLAKE2B 84133a816858a9787c2e5c5ca839e8e1c4586bd428711f356c64ea23396b0fd2d4f00abb66f0de8f9c81f34058c537491dee5c539c27be58e709972a5d344dc0 SHA512 f3c7511b766a86fb0ebc7a8a9c88226ec71761da29f0b2a12eb593f3205170504d733cf09b0fb72103fea12ac323fa115a121ab9deb0609c6115ac571330ad01 +DIST rustc-1.30.1-src.tar.xz 96086232 BLAKE2B 170767b64efe670086e7c4e73838b489a155a72c703148f83cad29d401a825a94a1def3aa462ba527e1bd08181c7a9be0e404c25f012906541c3d739eb57e9e5 SHA512 e466db81b9a82239670c48b876dc7390fcdda28c6390308691ddf2e0c12a39b57bd5ddb18322d1b4cd58165f69a666c7d83bee6573049da3b94e401657459bf5 +EBUILD rust-1.29.1-r1.ebuild 8003 BLAKE2B f6f026fd27037603c83b0b68f5cc202d118322e11fce7448f764f81fcb6f55f26ec0b5d7c484b515e54066ca6c65be2c07b91df0175daf1ea0b4d3ae6c0dc1a3 SHA512 c31e38c3294c11355504e6fc8a5e2e199250cd6d0ab471ec72d08c5f62d31642fb76b1de1b5d0c097af3fd57a9299700ebf39ff01d07e2c06c9b868cbf7db1d6 +EBUILD rust-1.29.2-r1.ebuild 7535 BLAKE2B 91d1465b4a5265d019b7cfeeb6b7154e5bce0b83f3d4b36449457875df55823b2319803a68ea59724c6703962471b489af76b773063dbccce84768ae52d61ef9 SHA512 69827d7fd22cfc8fbcdf2885af62c1c9468a8d6afa982fba34435b40430151467fda0715258cb4e3b8db9a861a921dacf5fcd7bd34c3474846516e067fc71931 +EBUILD rust-1.30.1-r1.ebuild 7521 BLAKE2B 2535af0a7add7a05b428732f5a23fb8ce6f9b30d19a2c1627b1743d9810ad45f9536b605b150bf898d50518c9ef471a53b24b1ee9acc6bc021b2ca845d2c48b2 SHA512 0846956025a49f4edc88dd66dd8c60c443b9346a48b533da12fb767743375cdeb31ef078ce106b8f57235cc74e3d87c7b1745579b29b44d3946d41cca1fa6f16 +MISC metadata.xml 634 BLAKE2B 394e75b1b5b5d9fad1d87dca27d7807bfce9eb723bc339dbb7c0630dc5abd3669e9469a9e75da74925d16d63c78971b0e7c84710db9b2cd15e87d81f49968903 SHA512 9e02acc0ad17e2f502c6082b5df9aeb6b9655783892a85d67855b3f6a79ec36dca610170bb002116c354626d44282c4e35e30cdf6b5e49745cfc6a990f55731c diff --git a/dev-lang/rust/files/1.30.1-clippy-sysroot.patch b/dev-lang/rust/files/1.30.1-clippy-sysroot.patch new file mode 100644 index 000000000000..d38f8ba5bae8 --- /dev/null +++ b/dev-lang/rust/files/1.30.1-clippy-sysroot.patch @@ -0,0 +1,62 @@ +--- a/src/tools/clippy/src/driver.rs 2018-10-25 20:09:06.143109996 +0300 ++++ b/src/tools/clippy/src/driver.rs 2018-10-25 20:11:09.204106005 +0300 +@@ -29,54 +29,22 @@ + exit(0); + } + +- let sys_root = option_env!("SYSROOT") +- .map(String::from) +- .or_else(|| std::env::var("SYSROOT").ok()) +- .or_else(|| { +- let home = option_env!("RUSTUP_HOME").or(option_env!("MULTIRUST_HOME")); +- let toolchain = option_env!("RUSTUP_TOOLCHAIN").or(option_env!("MULTIRUST_TOOLCHAIN")); +- home.and_then(|home| toolchain.map(|toolchain| format!("{}/toolchains/{}", home, toolchain))) +- }) +- .or_else(|| { +- Command::new("rustc") +- .arg("--print") +- .arg("sysroot") +- .output() +- .ok() +- .and_then(|out| String::from_utf8(out.stdout).ok()) +- .map(|s| s.trim().to_owned()) +- }) +- .expect("need to specify SYSROOT env var during clippy compilation, or use rustup or multirust"); +- + // Setting RUSTC_WRAPPER causes Cargo to pass 'rustc' as the first argument. + // We're invoking the compiler programmatically, so we ignore this/ +- let mut orig_args: Vec = env::args().collect(); +- if orig_args.len() <= 1 { ++ let mut args: Vec = env::args().collect(); ++ if args.len() <= 1 { + std::process::exit(1); + } +- if Path::new(&orig_args[1]).file_stem() == Some("rustc".as_ref()) { ++ if Path::new(&args[1]).file_stem() == Some("rustc".as_ref()) { + // we still want to be able to invoke it normally though +- orig_args.remove(1); ++ args.remove(1); + } +- // this conditional check for the --sysroot flag is there so users can call +- // `clippy_driver` directly +- // without having to pass --sysroot or anything +- let mut args: Vec = if orig_args.iter().any(|s| s == "--sysroot") { +- orig_args.clone() +- } else { +- orig_args +- .clone() +- .into_iter() +- .chain(Some("--sysroot".to_owned())) +- .chain(Some(sys_root)) +- .collect() +- }; + + // this check ensures that dependencies are built but not linted and the final + // crate is + // linted but not built + let clippy_enabled = env::var("CLIPPY_TESTS").ok().map_or(false, |val| val == "true") +- || orig_args.iter().any(|s| s == "--emit=dep-info,metadata"); ++ || args.iter().any(|s| s == "--emit=dep-info,metadata"); + + if clippy_enabled { + args.extend_from_slice(&["--cfg".to_owned(), r#"feature="cargo-clippy""#.to_owned()]); diff --git a/dev-lang/rust/metadata.xml b/dev-lang/rust/metadata.xml index c6a534bebad8..cd1133751de1 100644 --- a/dev-lang/rust/metadata.xml +++ b/dev-lang/rust/metadata.xml @@ -8,6 +8,7 @@ Install cargo component Install clippy component + Use the system LLVM install Install rls component Install rustfmt component Build support for the wasm32-unknown-unknown diff --git a/dev-lang/rust/rust-1.29.1-r1.ebuild b/dev-lang/rust/rust-1.29.1-r1.ebuild new file mode 100644 index 000000000000..7e2cf6102204 --- /dev/null +++ b/dev-lang/rust/rust-1.29.1-r1.ebuild @@ -0,0 +1,290 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 python3_{5,6} pypy ) + +inherit eapi7-ver multiprocessing multilib-build python-any-r1 toolchain-funcs + +if [[ ${PV} = *beta* ]]; then + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + MY_P="rustc-beta" + SLOT="beta/${PV}" + SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz" +else + ABI_VER="$(ver_cut 1-2)" + SLOT="stable/${ABI_VER}" + MY_P="rustc-${PV}" + SRC="${MY_P}-src.tar.xz" + KEYWORDS="amd64 ~arm64 x86" +fi + +CHOST_amd64=x86_64-unknown-linux-gnu +CHOST_x86=i686-unknown-linux-gnu +CHOST_arm64=aarch64-unknown-linux-gnu + +RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" +RUST_STAGE0_amd64="rust-${RUST_STAGE0_VERSION}-${CHOST_amd64}" +RUST_STAGE0_x86="rust-${RUST_STAGE0_VERSION}-${CHOST_x86}" +RUST_STAGE0_arm64="rust-${RUST_STAGE0_VERSION}-${CHOST_arm64}" + +CARGO_DEPEND_VERSION="0.$(($(ver_cut 2) + 1)).0" + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +SRC_URI="https://static.rust-lang.org/dist/${SRC} -> rustc-${PV}-src.tar.xz + amd64? ( https://static.rust-lang.org/dist/${RUST_STAGE0_amd64}.tar.xz ) + x86? ( https://static.rust-lang.org/dist/${RUST_STAGE0_x86}.tar.xz ) + arm64? ( https://static.rust-lang.org/dist/${RUST_STAGE0_arm64}.tar.xz ) +" + +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 + NVPTX PowerPC Sparc SystemZ X86 XCore ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} + +LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" + +IUSE="cargo clippy cpu_flags_x86_sse2 debug doc +jemalloc libressl rls rustfmt wasm ${ALL_LLVM_TARGETS[*]}" + +COMMON_DEPEND=">=app-eselect/eselect-rust-0.3_pre20150425 + jemalloc? ( dev-libs/jemalloc ) + cargo? ( + sys-libs/zlib + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + net-libs/libssh2 + net-libs/http-parser:= + net-misc/curl[ssl] + )" +DEPEND="${COMMON_DEPEND} + ${PYTHON_DEPS} + || ( + >=sys-devel/gcc-4.7 + >=sys-devel/clang-3.5 + ) + dev-util/cmake" +RDEPEND="${COMMON_DEPEND} + cargo? ( !dev-util/cargo ) + rustfmt? ( !dev-util/rustfmt )" +PDEPEND="!cargo? ( >=dev-util/cargo-${CARGO_DEPEND_VERSION} )" + +REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) + x86? ( cpu_flags_x86_sse2 )" + +S="${WORKDIR}/${MY_P}-src" + +toml_usex() { + usex "$1" true false +} + +src_prepare() { + local rust_stage0_root="${WORKDIR}"/rust-stage0 + + local rust_stage0_name="RUST_STAGE0_${ARCH}" + local rust_stage0="${!rust_stage0_name}" + + "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig --destdir="${rust_stage0_root}" --prefix=/ || die + + default +} + +src_configure() { + local rust_target="" rust_targets="" rust_target_name arch_cflags + + # Collect rust target names to compile standard libs for all ABIs. + for v in $(multilib_get_enabled_abi_pairs); do + rust_target_name="CHOST_${v##*.}" + rust_targets="${rust_targets},\"${!rust_target_name}\"" + done + if use wasm; then + rust_targets="${rust_targets},\"wasm32-unknown-unknown\"" + fi + rust_targets="${rust_targets#,}" + + local extended="false" tools="" + if use cargo; then + extended="true" + tools="\"cargo\"," + fi + if use clippy; then + extended="true" + tools="\"clippy\",$tools" + fi + if use rls; then + extended="true" + tools="\"rls\",\"analysis\",\"src\",$tools" + fi + if use rustfmt; then + extended="true" + tools="\"rustfmt\",$tools" + fi + + local rust_stage0_root="${WORKDIR}"/rust-stage0 + + rust_target_name="CHOST_${ARCH}" + rust_target="${!rust_target_name}" + + cat <<- EOF > "${S}"/config.toml + [llvm] + optimize = $(toml_usex !debug) + release-debuginfo = $(toml_usex debug) + assertions = $(toml_usex debug) + targets = "${LLVM_TARGETS// /;}" + [build] + build = "${rust_target}" + host = ["${rust_target}"] + target = [${rust_targets}] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + docs = $(toml_usex doc) + submodules = false + python = "${EPYTHON}" + locked-deps = true + vendor = true + extended = ${extended} + tools = [${tools}] + [install] + prefix = "${EPREFIX}/usr" + libdir = "$(get_libdir)" + docdir = "share/doc/${P}" + mandir = "share/${P}/man" + [rust] + optimize = $(toml_usex !debug) + debuginfo = $(toml_usex debug) + debug-assertions = $(toml_usex debug) + use-jemalloc = $(toml_usex jemalloc) + default-linker = "$(tc-getCC)" + channel = "stable" + rpath = false + lld = $(toml_usex wasm) + EOF + + for v in $(multilib_get_enabled_abi_pairs); do + rust_target=$(get_abi_CHOST ${v##*.}) + arch_cflags="$(get_abi_CFLAGS ${v##*.})" + + cat <<- EOF >> "${S}"/config.env + CFLAGS_${rust_target}=${arch_cflags} + EOF + + cat <<- EOF >> "${S}"/config.toml + [target.${rust_target}] + cc = "$(tc-getBUILD_CC)" + cxx = "$(tc-getBUILD_CXX)" + linker = "$(tc-getCC)" + ar = "$(tc-getAR)" + EOF + done + + if use wasm; then + cat <<- EOF >> "${S}"/config.toml + [target.wasm32-unknown-unknown] + linker = "rust-lld" + EOF + fi +} + +src_compile() { + env $(cat "${S}"/config.env)\ + "${EPYTHON}" ./x.py build --config="${S}"/config.toml -j$(makeopts_jobs) \ + --exclude src/tools/miri || die # https://github.com/rust-lang/rust/issues/52305 +} + +src_install() { + local rust_target abi_libdir + + env DESTDIR="${D}" "${EPYTHON}" ./x.py install || die + + mv "${D}/usr/bin/rustc" "${D}/usr/bin/rustc-${PV}" || die + mv "${D}/usr/bin/rustdoc" "${D}/usr/bin/rustdoc-${PV}" || die + mv "${D}/usr/bin/rust-gdb" "${D}/usr/bin/rust-gdb-${PV}" || die + mv "${D}/usr/bin/rust-lldb" "${D}/usr/bin/rust-lldb-${PV}" || die + if use cargo; then + mv "${D}/usr/bin/cargo" "${D}/usr/bin/cargo-${PV}" || die + fi + if use clippy; then + mv "${D}/usr/bin/clippy-driver" "${D}/usr/bin/clippy-driver-${PV}" || die + mv "${D}/usr/bin/cargo-clippy" "${D}/usr/bin/cargo-clippy-${PV}" || die + fi + if use rls; then + mv "${D}/usr/bin/rls" "${D}/usr/bin/rls-${PV}" || die + fi + if use rustfmt; then + mv "${D}/usr/bin/rustfmt" "${D}/usr/bin/rustfmt-${PV}" || die + mv "${D}/usr/bin/cargo-fmt" "${D}/usr/bin/cargo-fmt-${PV}" || die + fi + + # Copy shared library versions of standard libraries for all targets + # into the system's abi-dependent lib directories because the rust + # installer only does so for the native ABI. + for v in $(multilib_get_enabled_abi_pairs); do + if [ ${v##*.} = ${DEFAULT_ABI} ]; then + continue + fi + abi_libdir=$(get_abi_LIBDIR ${v##*.}) + rust_target=$(get_abi_CHOST ${v##*.}) + mkdir -p "${D}/usr/${abi_libdir}" + cp "${D}/usr/$(get_libdir)/rustlib/${rust_target}/lib"/*.so \ + "${D}/usr/${abi_libdir}" || die + done + + dodoc COPYRIGHT + + # FIXME: + # Really not sure if that env is needed, specailly LDPATH + cat <<-EOF > "${T}"/50${P} + LDPATH="/usr/$(get_libdir)/${P}" + MANPATH="/usr/share/${P}/man" + EOF + doenvd "${T}"/50${P} + + cat <<-EOF > "${T}/provider-${P}" + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-lldb + EOF + if use cargo; then + echo /usr/bin/cargo >> "${T}/provider-${P}" + fi + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" + fi + if use rls; then + echo /usr/bin/rls >> "${T}/provider-${P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" + fi + dodir /etc/env.d/rust + insinto /etc/env.d/rust + doins "${T}/provider-${P}" +} + +pkg_postinst() { + eselect rust update --if-unset + + elog "Rust installs a helper script for calling GDB and LLDB," + elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." + + if has_version app-editors/emacs || has_version app-editors/emacs-vcs; then + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi + + if has_version 'app-shells/zsh'; then + elog "install app-shells/rust-zshcomp to get zsh completion for rust." + fi +} + +pkg_postrm() { + eselect rust unset --if-invalid +} diff --git a/dev-lang/rust/rust-1.29.1.ebuild b/dev-lang/rust/rust-1.29.1.ebuild deleted file mode 100644 index 71a52599320e..000000000000 --- a/dev-lang/rust/rust-1.29.1.ebuild +++ /dev/null @@ -1,290 +0,0 @@ -# Copyright 1999-2018 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PYTHON_COMPAT=( python2_7 python3_{5,6} pypy ) - -inherit eapi7-ver multiprocessing multilib-build python-any-r1 toolchain-funcs - -if [[ ${PV} = *beta* ]]; then - betaver=${PV//*beta} - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" - MY_P="rustc-beta" - SLOT="beta/${PV}" - SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz" -else - ABI_VER="$(ver_cut 1-2)" - SLOT="stable/${ABI_VER}" - MY_P="rustc-${PV}" - SRC="${MY_P}-src.tar.xz" - KEYWORDS="amd64 ~arm64 x86" -fi - -CHOST_amd64=x86_64-unknown-linux-gnu -CHOST_x86=i686-unknown-linux-gnu -CHOST_arm64=aarch64-unknown-linux-gnu - -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" -RUST_STAGE0_amd64="rust-${RUST_STAGE0_VERSION}-${CHOST_amd64}" -RUST_STAGE0_x86="rust-${RUST_STAGE0_VERSION}-${CHOST_x86}" -RUST_STAGE0_arm64="rust-${RUST_STAGE0_VERSION}-${CHOST_arm64}" - -CARGO_DEPEND_VERSION="0.$(($(ver_cut 2) + 1)).0" - -DESCRIPTION="Systems programming language from Mozilla" -HOMEPAGE="https://www.rust-lang.org/" - -SRC_URI="https://static.rust-lang.org/dist/${SRC} -> rustc-${PV}-src.tar.xz - amd64? ( https://static.rust-lang.org/dist/${RUST_STAGE0_amd64}.tar.xz ) - x86? ( https://static.rust-lang.org/dist/${RUST_STAGE0_x86}.tar.xz ) - arm64? ( https://static.rust-lang.org/dist/${RUST_STAGE0_arm64}.tar.xz ) -" - -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 - NVPTX PowerPC Sparc SystemZ X86 XCore ) -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) -LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} - -LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" - -IUSE="cargo clippy cpu_flags_x86_sse2 debug doc +jemalloc libressl rls rustfmt wasm ${ALL_LLVM_TARGETS[*]}" - -RDEPEND=">=app-eselect/eselect-rust-0.3_pre20150425 - jemalloc? ( dev-libs/jemalloc ) - cargo? ( - sys-libs/zlib - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - net-libs/libssh2 - net-libs/http-parser:= - net-misc/curl[ssl] - )" -DEPEND="${RDEPEND} - ${PYTHON_DEPS} - || ( - >=sys-devel/gcc-4.7 - >=sys-devel/clang-3.5 - ) - cargo? ( !dev-util/cargo ) - rustfmt? ( !dev-util/rustfmt ) - dev-util/cmake -" -PDEPEND="!cargo? ( >=dev-util/cargo-${CARGO_DEPEND_VERSION} )" - -REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) - x86? ( cpu_flags_x86_sse2 )" - -S="${WORKDIR}/${MY_P}-src" - -toml_usex() { - usex "$1" true false -} - -src_prepare() { - local rust_stage0_root="${WORKDIR}"/rust-stage0 - - local rust_stage0_name="RUST_STAGE0_${ARCH}" - local rust_stage0="${!rust_stage0_name}" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig --destdir="${rust_stage0_root}" --prefix=/ || die - - default -} - -src_configure() { - local rust_target="" rust_targets="" rust_target_name arch_cflags - - # Collect rust target names to compile standard libs for all ABIs. - for v in $(multilib_get_enabled_abi_pairs); do - rust_target_name="CHOST_${v##*.}" - rust_targets="${rust_targets},\"${!rust_target_name}\"" - done - if use wasm; then - rust_targets="${rust_targets},\"wasm32-unknown-unknown\"" - fi - rust_targets="${rust_targets#,}" - - local extended="false" tools="" - if use cargo; then - extended="true" - tools="\"cargo\"," - fi - if use clippy; then - extended="true" - tools="\"clippy\",$tools" - fi - if use rls; then - extended="true" - tools="\"rls\",\"analysis\",\"src\",$tools" - fi - if use rustfmt; then - extended="true" - tools="\"rustfmt\",$tools" - fi - - local rust_stage0_root="${WORKDIR}"/rust-stage0 - - rust_target_name="CHOST_${ARCH}" - rust_target="${!rust_target_name}" - - cat <<- EOF > "${S}"/config.toml - [llvm] - optimize = $(toml_usex !debug) - release-debuginfo = $(toml_usex debug) - assertions = $(toml_usex debug) - targets = "${LLVM_TARGETS// /;}" - [build] - build = "${rust_target}" - host = ["${rust_target}"] - target = [${rust_targets}] - cargo = "${rust_stage0_root}/bin/cargo" - rustc = "${rust_stage0_root}/bin/rustc" - docs = $(toml_usex doc) - submodules = false - python = "${EPYTHON}" - locked-deps = true - vendor = true - extended = ${extended} - tools = [${tools}] - [install] - prefix = "${EPREFIX}/usr" - libdir = "$(get_libdir)" - docdir = "share/doc/${P}" - mandir = "share/${P}/man" - [rust] - optimize = $(toml_usex !debug) - debuginfo = $(toml_usex debug) - debug-assertions = $(toml_usex debug) - use-jemalloc = $(toml_usex jemalloc) - default-linker = "$(tc-getCC)" - channel = "stable" - rpath = false - lld = $(toml_usex wasm) - EOF - - for v in $(multilib_get_enabled_abi_pairs); do - rust_target=$(get_abi_CHOST ${v##*.}) - arch_cflags="$(get_abi_CFLAGS ${v##*.})" - - cat <<- EOF >> "${S}"/config.env - CFLAGS_${rust_target}=${arch_cflags} - EOF - - cat <<- EOF >> "${S}"/config.toml - [target.${rust_target}] - cc = "$(tc-getBUILD_CC)" - cxx = "$(tc-getBUILD_CXX)" - linker = "$(tc-getCC)" - ar = "$(tc-getAR)" - EOF - done - - if use wasm; then - cat <<- EOF >> "${S}"/config.toml - [target.wasm32-unknown-unknown] - linker = "rust-lld" - EOF - fi -} - -src_compile() { - env $(cat "${S}"/config.env)\ - "${EPYTHON}" ./x.py build --config="${S}"/config.toml -j$(makeopts_jobs) \ - --exclude src/tools/miri || die # https://github.com/rust-lang/rust/issues/52305 -} - -src_install() { - local rust_target abi_libdir - - env DESTDIR="${D}" "${EPYTHON}" ./x.py install || die - - mv "${D}/usr/bin/rustc" "${D}/usr/bin/rustc-${PV}" || die - mv "${D}/usr/bin/rustdoc" "${D}/usr/bin/rustdoc-${PV}" || die - mv "${D}/usr/bin/rust-gdb" "${D}/usr/bin/rust-gdb-${PV}" || die - mv "${D}/usr/bin/rust-lldb" "${D}/usr/bin/rust-lldb-${PV}" || die - if use cargo; then - mv "${D}/usr/bin/cargo" "${D}/usr/bin/cargo-${PV}" || die - fi - if use clippy; then - mv "${D}/usr/bin/clippy-driver" "${D}/usr/bin/clippy-driver-${PV}" || die - mv "${D}/usr/bin/cargo-clippy" "${D}/usr/bin/cargo-clippy-${PV}" || die - fi - if use rls; then - mv "${D}/usr/bin/rls" "${D}/usr/bin/rls-${PV}" || die - fi - if use rustfmt; then - mv "${D}/usr/bin/rustfmt" "${D}/usr/bin/rustfmt-${PV}" || die - mv "${D}/usr/bin/cargo-fmt" "${D}/usr/bin/cargo-fmt-${PV}" || die - fi - - # Copy shared library versions of standard libraries for all targets - # into the system's abi-dependent lib directories because the rust - # installer only does so for the native ABI. - for v in $(multilib_get_enabled_abi_pairs); do - if [ ${v##*.} = ${DEFAULT_ABI} ]; then - continue - fi - abi_libdir=$(get_abi_LIBDIR ${v##*.}) - rust_target=$(get_abi_CHOST ${v##*.}) - mkdir -p "${D}/usr/${abi_libdir}" - cp "${D}/usr/$(get_libdir)/rustlib/${rust_target}/lib"/*.so \ - "${D}/usr/${abi_libdir}" || die - done - - dodoc COPYRIGHT - - # FIXME: - # Really not sure if that env is needed, specailly LDPATH - cat <<-EOF > "${T}"/50${P} - LDPATH="/usr/$(get_libdir)/${P}" - MANPATH="/usr/share/${P}/man" - EOF - doenvd "${T}"/50${P} - - cat <<-EOF > "${T}/provider-${P}" - /usr/bin/rustdoc - /usr/bin/rust-gdb - /usr/bin/rust-lldb - EOF - if use cargo; then - echo /usr/bin/cargo >> "${T}/provider-${P}" - fi - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if use rls; then - echo /usr/bin/rls >> "${T}/provider-${P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" - fi - dodir /etc/env.d/rust - insinto /etc/env.d/rust - doins "${T}/provider-${P}" -} - -pkg_postinst() { - eselect rust update --if-unset - - elog "Rust installs a helper script for calling GDB and LLDB," - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." - - if has_version app-editors/emacs || has_version app-editors/emacs-vcs; then - elog "install app-emacs/rust-mode to get emacs support for rust." - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - elog "install app-vim/rust-vim to get vim support for rust." - fi - - if has_version 'app-shells/zsh'; then - elog "install app-shells/rust-zshcomp to get zsh completion for rust." - fi -} - -pkg_postrm() { - eselect rust unset --if-invalid -} diff --git a/dev-lang/rust/rust-1.29.2-r1.ebuild b/dev-lang/rust/rust-1.29.2-r1.ebuild new file mode 100644 index 000000000000..724b161b99d4 --- /dev/null +++ b/dev-lang/rust/rust-1.29.2-r1.ebuild @@ -0,0 +1,279 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 python3_{5,6} pypy ) + +inherit eapi7-ver multiprocessing multilib-build python-any-r1 rust-toolchain toolchain-funcs + +if [[ ${PV} = *beta* ]]; then + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + MY_P="rustc-beta" + SLOT="beta/${PV}" + SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz" +else + ABI_VER="$(ver_cut 1-2)" + SLOT="stable/${ABI_VER}" + MY_P="rustc-${PV}" + SRC="${MY_P}-src.tar.xz" + KEYWORDS="~amd64 ~arm64 ~x86" +fi + +RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" + +CARGO_DEPEND_VERSION="0.$(($(ver_cut 2) + 1)).0" + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +SRC_URI="https://static.rust-lang.org/dist/${SRC} -> rustc-${PV}-src.tar.xz + $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION})" + +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 + NVPTX PowerPC Sparc SystemZ X86 XCore ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} + +LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" + +IUSE="cargo clippy cpu_flags_x86_sse2 debug doc +jemalloc libressl rls rustfmt wasm ${ALL_LLVM_TARGETS[*]}" + +COMMON_DEPEND=">=app-eselect/eselect-rust-0.3_pre20150425 + jemalloc? ( dev-libs/jemalloc ) + cargo? ( + sys-libs/zlib + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + net-libs/libssh2 + net-libs/http-parser:= + net-misc/curl[ssl] + )" +DEPEND="${COMMON_DEPEND} + ${PYTHON_DEPS} + || ( + >=sys-devel/gcc-4.7 + >=sys-devel/clang-3.5 + ) + dev-util/cmake" +RDEPEND="${COMMOND_DEPEND} + cargo? ( !dev-util/cargo ) + rustfmt? ( !dev-util/rustfmt )" +PDEPEND="!cargo? ( >=dev-util/cargo-${CARGO_DEPEND_VERSION} )" + +REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) + x86? ( cpu_flags_x86_sse2 )" + +S="${WORKDIR}/${MY_P}-src" + +PATCHES=( "${FILESDIR}"/${PV}-clippy-sysroot.patch ) + +toml_usex() { + usex "$1" true false +} + +src_prepare() { + local rust_stage0_root="${WORKDIR}"/rust-stage0 + + local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)" + + "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig --destdir="${rust_stage0_root}" --prefix=/ || die + + default +} + +src_configure() { + local rust_target="" rust_targets="" rust_target_name arch_cflags + + # Collect rust target names to compile standard libs for all ABIs. + for v in $(multilib_get_enabled_abi_pairs); do + rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" + done + if use wasm; then + rust_targets="${rust_targets},\"wasm32-unknown-unknown\"" + fi + rust_targets="${rust_targets#,}" + + local extended="false" tools="" + if use cargo; then + extended="true" + tools="\"cargo\"," + fi + if use clippy; then + extended="true" + tools="\"clippy\",$tools" + fi + if use rls; then + extended="true" + tools="\"rls\",\"analysis\",\"src\",$tools" + fi + if use rustfmt; then + extended="true" + tools="\"rustfmt\",$tools" + fi + + local rust_stage0_root="${WORKDIR}"/rust-stage0 + + rust_target="$(rust_abi)" + + cat <<- EOF > "${S}"/config.toml + [llvm] + optimize = $(toml_usex !debug) + release-debuginfo = $(toml_usex debug) + assertions = $(toml_usex debug) + targets = "${LLVM_TARGETS// /;}" + [build] + build = "${rust_target}" + host = ["${rust_target}"] + target = [${rust_targets}] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + docs = $(toml_usex doc) + submodules = false + python = "${EPYTHON}" + locked-deps = true + vendor = true + extended = ${extended} + tools = [${tools}] + [install] + prefix = "${EPREFIX}/usr" + libdir = "$(get_libdir)/${P}" + docdir = "share/doc/${P}" + mandir = "share/${P}/man" + [rust] + optimize = $(toml_usex !debug) + debuginfo = $(toml_usex debug) + debug-assertions = $(toml_usex debug) + use-jemalloc = $(toml_usex jemalloc) + default-linker = "$(tc-getCC)" + channel = "stable" + rpath = false + lld = $(toml_usex wasm) + EOF + + for v in $(multilib_get_enabled_abi_pairs); do + rust_target=$(get_abi_CHOST ${v##*.}) + arch_cflags="$(get_abi_CFLAGS ${v##*.})" + + cat <<- EOF >> "${S}"/config.env + CFLAGS_${rust_target}=${arch_cflags} + EOF + + cat <<- EOF >> "${S}"/config.toml + [target.${rust_target}] + cc = "$(tc-getBUILD_CC)" + cxx = "$(tc-getBUILD_CXX)" + linker = "$(tc-getCC)" + ar = "$(tc-getAR)" + EOF + done + + if use wasm; then + cat <<- EOF >> "${S}"/config.toml + [target.wasm32-unknown-unknown] + linker = "rust-lld" + EOF + fi +} + +src_compile() { + env $(cat "${S}"/config.env)\ + "${EPYTHON}" ./x.py build --config="${S}"/config.toml -j$(makeopts_jobs) \ + --exclude src/tools/miri || die # https://github.com/rust-lang/rust/issues/52305 +} + +src_install() { + local rust_target abi_libdir + + env DESTDIR="${D}" "${EPYTHON}" ./x.py install || die + + mv "${D}/usr/bin/rustc" "${D}/usr/bin/rustc-${PV}" || die + mv "${D}/usr/bin/rustdoc" "${D}/usr/bin/rustdoc-${PV}" || die + mv "${D}/usr/bin/rust-gdb" "${D}/usr/bin/rust-gdb-${PV}" || die + mv "${D}/usr/bin/rust-lldb" "${D}/usr/bin/rust-lldb-${PV}" || die + if use cargo; then + mv "${D}/usr/bin/cargo" "${D}/usr/bin/cargo-${PV}" || die + fi + if use clippy; then + mv "${D}/usr/bin/clippy-driver" "${D}/usr/bin/clippy-driver-${PV}" || die + mv "${D}/usr/bin/cargo-clippy" "${D}/usr/bin/cargo-clippy-${PV}" || die + fi + if use rls; then + mv "${D}/usr/bin/rls" "${D}/usr/bin/rls-${PV}" || die + fi + if use rustfmt; then + mv "${D}/usr/bin/rustfmt" "${D}/usr/bin/rustfmt-${PV}" || die + mv "${D}/usr/bin/cargo-fmt" "${D}/usr/bin/cargo-fmt-${PV}" || die + fi + + # Copy shared library versions of standard libraries for all targets + # into the system's abi-dependent lib directories because the rust + # installer only does so for the native ABI. + for v in $(multilib_get_enabled_abi_pairs); do + if [ ${v##*.} = ${DEFAULT_ABI} ]; then + continue + fi + abi_libdir=$(get_abi_LIBDIR ${v##*.}) + rust_target=$(get_abi_CHOST ${v##*.}) + mkdir -p "${D}/usr/${abi_libdir}" + cp "${D}/usr/$(get_libdir)/${P}/rustlib/${rust_target}/lib"/*.so \ + "${D}/usr/${abi_libdir}" || die + done + + dodoc COPYRIGHT + + # FIXME: + # Really not sure if that env is needed, specailly LDPATH + cat <<-EOF > "${T}"/50${P} + LDPATH="/usr/$(get_libdir)/${P}" + MANPATH="/usr/share/${P}/man" + EOF + doenvd "${T}"/50${P} + + cat <<-EOF > "${T}/provider-${P}" + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-lldb + EOF + if use cargo; then + echo /usr/bin/cargo >> "${T}/provider-${P}" + fi + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" + fi + if use rls; then + echo /usr/bin/rls >> "${T}/provider-${P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" + fi + dodir /etc/env.d/rust + insinto /etc/env.d/rust + doins "${T}/provider-${P}" +} + +pkg_postinst() { + eselect rust update --if-unset + + elog "Rust installs a helper script for calling GDB and LLDB," + elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." + + if has_version app-editors/emacs || has_version app-editors/emacs-vcs; then + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi + + if has_version 'app-shells/zsh'; then + elog "install app-shells/rust-zshcomp to get zsh completion for rust." + fi +} + +pkg_postrm() { + eselect rust unset --if-invalid +} diff --git a/dev-lang/rust/rust-1.29.2.ebuild b/dev-lang/rust/rust-1.29.2.ebuild deleted file mode 100644 index a78fda48444d..000000000000 --- a/dev-lang/rust/rust-1.29.2.ebuild +++ /dev/null @@ -1,279 +0,0 @@ -# Copyright 1999-2018 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PYTHON_COMPAT=( python2_7 python3_{5,6} pypy ) - -inherit eapi7-ver multiprocessing multilib-build python-any-r1 rust-toolchain toolchain-funcs - -if [[ ${PV} = *beta* ]]; then - betaver=${PV//*beta} - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" - MY_P="rustc-beta" - SLOT="beta/${PV}" - SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz" -else - ABI_VER="$(ver_cut 1-2)" - SLOT="stable/${ABI_VER}" - MY_P="rustc-${PV}" - SRC="${MY_P}-src.tar.xz" - KEYWORDS="~amd64 ~arm64 ~x86" -fi - -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" - -CARGO_DEPEND_VERSION="0.$(($(ver_cut 2) + 1)).0" - -DESCRIPTION="Systems programming language from Mozilla" -HOMEPAGE="https://www.rust-lang.org/" - -SRC_URI="https://static.rust-lang.org/dist/${SRC} -> rustc-${PV}-src.tar.xz - $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION})" - -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 - NVPTX PowerPC Sparc SystemZ X86 XCore ) -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) -LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} - -LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" - -IUSE="cargo clippy cpu_flags_x86_sse2 debug doc +jemalloc libressl rls rustfmt wasm ${ALL_LLVM_TARGETS[*]}" - -RDEPEND=">=app-eselect/eselect-rust-0.3_pre20150425 - jemalloc? ( dev-libs/jemalloc ) - cargo? ( - sys-libs/zlib - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - net-libs/libssh2 - net-libs/http-parser:= - net-misc/curl[ssl] - )" -DEPEND="${RDEPEND} - ${PYTHON_DEPS} - || ( - >=sys-devel/gcc-4.7 - >=sys-devel/clang-3.5 - ) - cargo? ( !dev-util/cargo ) - rustfmt? ( !dev-util/rustfmt ) - dev-util/cmake -" -PDEPEND="!cargo? ( >=dev-util/cargo-${CARGO_DEPEND_VERSION} )" - -REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) - x86? ( cpu_flags_x86_sse2 )" - -S="${WORKDIR}/${MY_P}-src" - -PATCHES=( "${FILESDIR}"/${PV}-clippy-sysroot.patch ) - -toml_usex() { - usex "$1" true false -} - -src_prepare() { - local rust_stage0_root="${WORKDIR}"/rust-stage0 - - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig --destdir="${rust_stage0_root}" --prefix=/ || die - - default -} - -src_configure() { - local rust_target="" rust_targets="" rust_target_name arch_cflags - - # Collect rust target names to compile standard libs for all ABIs. - for v in $(multilib_get_enabled_abi_pairs); do - rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" - done - if use wasm; then - rust_targets="${rust_targets},\"wasm32-unknown-unknown\"" - fi - rust_targets="${rust_targets#,}" - - local extended="false" tools="" - if use cargo; then - extended="true" - tools="\"cargo\"," - fi - if use clippy; then - extended="true" - tools="\"clippy\",$tools" - fi - if use rls; then - extended="true" - tools="\"rls\",\"analysis\",\"src\",$tools" - fi - if use rustfmt; then - extended="true" - tools="\"rustfmt\",$tools" - fi - - local rust_stage0_root="${WORKDIR}"/rust-stage0 - - rust_target="$(rust_abi)" - - cat <<- EOF > "${S}"/config.toml - [llvm] - optimize = $(toml_usex !debug) - release-debuginfo = $(toml_usex debug) - assertions = $(toml_usex debug) - targets = "${LLVM_TARGETS// /;}" - [build] - build = "${rust_target}" - host = ["${rust_target}"] - target = [${rust_targets}] - cargo = "${rust_stage0_root}/bin/cargo" - rustc = "${rust_stage0_root}/bin/rustc" - docs = $(toml_usex doc) - submodules = false - python = "${EPYTHON}" - locked-deps = true - vendor = true - extended = ${extended} - tools = [${tools}] - [install] - prefix = "${EPREFIX}/usr" - libdir = "$(get_libdir)/${P}" - docdir = "share/doc/${P}" - mandir = "share/${P}/man" - [rust] - optimize = $(toml_usex !debug) - debuginfo = $(toml_usex debug) - debug-assertions = $(toml_usex debug) - use-jemalloc = $(toml_usex jemalloc) - default-linker = "$(tc-getCC)" - channel = "stable" - rpath = false - lld = $(toml_usex wasm) - EOF - - for v in $(multilib_get_enabled_abi_pairs); do - rust_target=$(get_abi_CHOST ${v##*.}) - arch_cflags="$(get_abi_CFLAGS ${v##*.})" - - cat <<- EOF >> "${S}"/config.env - CFLAGS_${rust_target}=${arch_cflags} - EOF - - cat <<- EOF >> "${S}"/config.toml - [target.${rust_target}] - cc = "$(tc-getBUILD_CC)" - cxx = "$(tc-getBUILD_CXX)" - linker = "$(tc-getCC)" - ar = "$(tc-getAR)" - EOF - done - - if use wasm; then - cat <<- EOF >> "${S}"/config.toml - [target.wasm32-unknown-unknown] - linker = "rust-lld" - EOF - fi -} - -src_compile() { - env $(cat "${S}"/config.env)\ - "${EPYTHON}" ./x.py build --config="${S}"/config.toml -j$(makeopts_jobs) \ - --exclude src/tools/miri || die # https://github.com/rust-lang/rust/issues/52305 -} - -src_install() { - local rust_target abi_libdir - - env DESTDIR="${D}" "${EPYTHON}" ./x.py install || die - - mv "${D}/usr/bin/rustc" "${D}/usr/bin/rustc-${PV}" || die - mv "${D}/usr/bin/rustdoc" "${D}/usr/bin/rustdoc-${PV}" || die - mv "${D}/usr/bin/rust-gdb" "${D}/usr/bin/rust-gdb-${PV}" || die - mv "${D}/usr/bin/rust-lldb" "${D}/usr/bin/rust-lldb-${PV}" || die - if use cargo; then - mv "${D}/usr/bin/cargo" "${D}/usr/bin/cargo-${PV}" || die - fi - if use clippy; then - mv "${D}/usr/bin/clippy-driver" "${D}/usr/bin/clippy-driver-${PV}" || die - mv "${D}/usr/bin/cargo-clippy" "${D}/usr/bin/cargo-clippy-${PV}" || die - fi - if use rls; then - mv "${D}/usr/bin/rls" "${D}/usr/bin/rls-${PV}" || die - fi - if use rustfmt; then - mv "${D}/usr/bin/rustfmt" "${D}/usr/bin/rustfmt-${PV}" || die - mv "${D}/usr/bin/cargo-fmt" "${D}/usr/bin/cargo-fmt-${PV}" || die - fi - - # Copy shared library versions of standard libraries for all targets - # into the system's abi-dependent lib directories because the rust - # installer only does so for the native ABI. - for v in $(multilib_get_enabled_abi_pairs); do - if [ ${v##*.} = ${DEFAULT_ABI} ]; then - continue - fi - abi_libdir=$(get_abi_LIBDIR ${v##*.}) - rust_target=$(get_abi_CHOST ${v##*.}) - mkdir -p "${D}/usr/${abi_libdir}" - cp "${D}/usr/$(get_libdir)/${P}/rustlib/${rust_target}/lib"/*.so \ - "${D}/usr/${abi_libdir}" || die - done - - dodoc COPYRIGHT - - # FIXME: - # Really not sure if that env is needed, specailly LDPATH - cat <<-EOF > "${T}"/50${P} - LDPATH="/usr/$(get_libdir)/${P}" - MANPATH="/usr/share/${P}/man" - EOF - doenvd "${T}"/50${P} - - cat <<-EOF > "${T}/provider-${P}" - /usr/bin/rustdoc - /usr/bin/rust-gdb - /usr/bin/rust-lldb - EOF - if use cargo; then - echo /usr/bin/cargo >> "${T}/provider-${P}" - fi - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if use rls; then - echo /usr/bin/rls >> "${T}/provider-${P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" - fi - dodir /etc/env.d/rust - insinto /etc/env.d/rust - doins "${T}/provider-${P}" -} - -pkg_postinst() { - eselect rust update --if-unset - - elog "Rust installs a helper script for calling GDB and LLDB," - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." - - if has_version app-editors/emacs || has_version app-editors/emacs-vcs; then - elog "install app-emacs/rust-mode to get emacs support for rust." - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - elog "install app-vim/rust-vim to get vim support for rust." - fi - - if has_version 'app-shells/zsh'; then - elog "install app-shells/rust-zshcomp to get zsh completion for rust." - fi -} - -pkg_postrm() { - eselect rust unset --if-invalid -} diff --git a/dev-lang/rust/rust-1.30.1-r1.ebuild b/dev-lang/rust/rust-1.30.1-r1.ebuild new file mode 100644 index 000000000000..620583b6ecb9 --- /dev/null +++ b/dev-lang/rust/rust-1.30.1-r1.ebuild @@ -0,0 +1,274 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 python3_{5,6} pypy ) + +inherit eapi7-ver llvm multiprocessing multilib-build python-any-r1 rust-toolchain toolchain-funcs + +if [[ ${PV} = *beta* ]]; then + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + MY_P="rustc-beta" + SLOT="beta/${PV}" + SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz" +else + ABI_VER="$(ver_cut 1-2)" + SLOT="stable/${ABI_VER}" + MY_P="rustc-${PV}" + SRC="${MY_P}-src.tar.xz" + KEYWORDS="~amd64 ~arm64 ~x86" +fi + +RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).2" + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +SRC_URI="https://static.rust-lang.org/dist/${SRC} -> rustc-${PV}-src.tar.xz + $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION})" + +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 + NVPTX PowerPC Sparc SystemZ X86 XCore ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} + +LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" + +IUSE="clippy cpu_flags_x86_sse2 debug doc +jemalloc libressl rls rustfmt system-llvm wasm ${ALL_LLVM_TARGETS[*]}" + +COMMON_DEPEND=">=app-eselect/eselect-rust-0.3_pre20150425 + jemalloc? ( dev-libs/jemalloc ) + sys-libs/zlib + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + net-libs/libssh2 + net-libs/http-parser:= + net-misc/curl[ssl] + system-llvm? ( >=sys-devel/llvm-6:= )" +DEPEND="${COMMON_DEPEND} + ${PYTHON_DEPS} + || ( + >=sys-devel/gcc-4.7 + >=sys-devel/clang-3.5 + ) + dev-util/cmake" +RDEPEND="${COMMON_DEPEND} + !dev-util/cargo + rustfmt? ( !dev-util/rustfmt )" +REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) + x86? ( cpu_flags_x86_sse2 )" + +S="${WORKDIR}/${MY_P}-src" + +PATCHES=( "${FILESDIR}"/${PV}-clippy-sysroot.patch ) + +toml_usex() { + usex "$1" true false +} + +pkg_setup() { + python-any-r1_pkg_setup + llvm_pkg_setup +} + +src_prepare() { + local rust_stage0_root="${WORKDIR}"/rust-stage0 + + local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)" + + "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig --destdir="${rust_stage0_root}" --prefix=/ || die + + default +} + +src_configure() { + local rust_target="" rust_targets="" arch_cflags + + # Collect rust target names to compile standard libs for all ABIs. + for v in $(multilib_get_enabled_abi_pairs); do + rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" + done + if use wasm; then + rust_targets="${rust_targets},\"wasm32-unknown-unknown\"" + fi + rust_targets="${rust_targets#,}" + + local extended="true" tools="\"cargo\"," + if use clippy; then + tools="\"clippy\",$tools" + fi + if use rls; then + tools="\"rls\",\"analysis\",\"src\",$tools" + fi + if use rustfmt; then + tools="\"rustfmt\",$tools" + fi + + local rust_stage0_root="${WORKDIR}"/rust-stage0 + + rust_target="$(rust_abi)" + + cat <<- EOF > "${S}"/config.toml + [llvm] + optimize = $(toml_usex !debug) + release-debuginfo = $(toml_usex debug) + assertions = $(toml_usex debug) + targets = "${LLVM_TARGETS// /;}" + link-shared = $(toml_usex system-llvm) + [build] + build = "${rust_target}" + host = ["${rust_target}"] + target = [${rust_targets}] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + docs = $(toml_usex doc) + submodules = false + python = "${EPYTHON}" + locked-deps = true + vendor = true + extended = ${extended} + tools = [${tools}] + [install] + prefix = "${EPREFIX}/usr" + libdir = "$(get_libdir)/${P}" + docdir = "share/doc/${P}" + mandir = "share/${P}/man" + [rust] + optimize = $(toml_usex !debug) + debuginfo = $(toml_usex debug) + debug-assertions = $(toml_usex debug) + use-jemalloc = $(toml_usex jemalloc) + default-linker = "$(tc-getCC)" + channel = "stable" + rpath = false + lld = $(toml_usex wasm) + EOF + + for v in $(multilib_get_enabled_abi_pairs); do + rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) + arch_cflags="$(get_abi_CFLAGS ${v##*.})" + + cat <<- EOF >> "${S}"/config.env + CFLAGS_${rust_target}=${arch_cflags} + EOF + + cat <<- EOF >> "${S}"/config.toml + [target.${rust_target}] + cc = "$(tc-getBUILD_CC)" + cxx = "$(tc-getBUILD_CXX)" + linker = "$(tc-getCC)" + ar = "$(tc-getAR)" + EOF + if use system-llvm; then + cat <<- EOF >> "${S}"/config.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + EOF + fi + done + + if use wasm; then + cat <<- EOF >> "${S}"/config.toml + [target.wasm32-unknown-unknown] + linker = "rust-lld" + EOF + fi +} + +src_compile() { + env $(cat "${S}"/config.env)\ + "${EPYTHON}" ./x.py build --config="${S}"/config.toml -j$(makeopts_jobs) \ + --exclude src/tools/miri || die # https://github.com/rust-lang/rust/issues/52305 +} + +src_install() { + local rust_target abi_libdir + + env DESTDIR="${D}" "${EPYTHON}" ./x.py install || die + + mv "${D}/usr/bin/rustc" "${D}/usr/bin/rustc-${PV}" || die + mv "${D}/usr/bin/rustdoc" "${D}/usr/bin/rustdoc-${PV}" || die + mv "${D}/usr/bin/rust-gdb" "${D}/usr/bin/rust-gdb-${PV}" || die + mv "${D}/usr/bin/rust-lldb" "${D}/usr/bin/rust-lldb-${PV}" || die + mv "${D}/usr/bin/cargo" "${D}/usr/bin/cargo-${PV}" || die + if use clippy; then + mv "${D}/usr/bin/clippy-driver" "${D}/usr/bin/clippy-driver-${PV}" || die + mv "${D}/usr/bin/cargo-clippy" "${D}/usr/bin/cargo-clippy-${PV}" || die + fi + if use rls; then + mv "${D}/usr/bin/rls" "${D}/usr/bin/rls-${PV}" || die + fi + if use rustfmt; then + mv "${D}/usr/bin/rustfmt" "${D}/usr/bin/rustfmt-${PV}" || die + mv "${D}/usr/bin/cargo-fmt" "${D}/usr/bin/cargo-fmt-${PV}" || die + fi + + # Copy shared library versions of standard libraries for all targets + # into the system's abi-dependent lib directories because the rust + # installer only does so for the native ABI. + for v in $(multilib_get_enabled_abi_pairs); do + if [ ${v##*.} = ${DEFAULT_ABI} ]; then + continue + fi + abi_libdir=$(get_abi_LIBDIR ${v##*.}) + rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) + mkdir -p "${D}/usr/${abi_libdir}" + cp "${D}/usr/$(get_libdir)/${P}/rustlib/${rust_target}/lib"/*.so \ + "${D}/usr/${abi_libdir}" || die + done + + dodoc COPYRIGHT + + # FIXME: + # Really not sure if that env is needed, specailly LDPATH + cat <<-EOF > "${T}"/50${P} + LDPATH="/usr/$(get_libdir)/${P}" + MANPATH="/usr/share/${P}/man" + EOF + doenvd "${T}"/50${P} + + cat <<-EOF > "${T}/provider-${P}" + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-lldb + EOF + echo /usr/bin/cargo >> "${T}/provider-${P}" + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" + fi + if use rls; then + echo /usr/bin/rls >> "${T}/provider-${P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" + fi + dodir /etc/env.d/rust + insinto /etc/env.d/rust + doins "${T}/provider-${P}" +} + +pkg_postinst() { + eselect rust update --if-unset + + elog "Rust installs a helper script for calling GDB and LLDB," + elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." + + if has_version app-editors/emacs || has_version app-editors/emacs-vcs; then + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi + + if has_version 'app-shells/zsh'; then + elog "install app-shells/rust-zshcomp to get zsh completion for rust." + fi +} + +pkg_postrm() { + eselect rust unset --if-invalid +} diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest index 8b9442fc70ad..b8d6132b8d33 100644 --- a/dev-lang/spidermonkey/Manifest +++ b/dev-lang/spidermonkey/Manifest @@ -1,5 +1,6 @@ AUX moz38-dont-hardcode-libc-soname.patch 637 BLAKE2B d78f53814955c3e0842040f47330d8216b3f496574fadc045294b534f2ec7d049b14564cb495c37ae2d084db2f5671e447d1d98aa19a367f8b96ec97201b4f30 SHA512 f3d447996da3bf445f082a0b5c3018eb618b6b08a49bc43f275dc6cc77d7d906928e99264378472e96213df8f8b5d279a0af72d9d6a0a3417b266d7752c7f1fd AUX spidermonkey-52-baseconfig.patch 963 BLAKE2B 4652a28774677933a2974b50336ca772908892097b533a6c13f943a9179d8112e004e4aeba336e9e5565f165d6dee5d424a68d80896f66b8a69632f570f2199d SHA512 22870d6ee8a0a0b4359d78173aef0ade49063bfad495fd40815852684a1cdf17f9f50585e0d693eb712c2a2225ea43c4387cf454f3b9bd39e01899f3936775f1 +AUX spidermonkey-52.0-fix-alpha-bitness.patch 836 BLAKE2B bf89aadfdceab9d1460c31b496618dc19d2461d27e0713887d8c59b7a565a70d38cbaa2ca099b50555417beba54c2b207f80cf13ba633da35be7fab6b3c41faf SHA512 67ccafd8e2b84d59d13ff93bd12930b4804f8cf64cc896a4edf99c962481f583866ea6c4f84b3fd9d1093ad8ca7d23712615470dfadb57d293258754dd612484 AUX spidermonkey-perl-defined-array-check.patch 341 BLAKE2B e11a74cc2afbea5e39ec5f3fb4c108278a8b71b57ce71644184bc4e19188059f6cb9c164ab87877605028241ed0b68a1447414f1aa0f5453fa26a603ecd4f6a6 SHA512 5d178b68cf0744da874624da79cd31555bd882aed205e697a3f0bfc3cb91a149d74da79b7af5883ea5a23e1d1692753ebfda0d83e7a25ac000105849db5c1548 DIST js-1.7.0.tar.gz 1165607 BLAKE2B 61749e10886bbb9e4958a41925fae8dcbd7d943b9bf838878368c30e26ba61f300bc2ec37982653b87fedf76707dda2ffd510282de4bce87d1da11ca42fa108c SHA512 9d9fbd9c1dae969ca19ddb0f977ac56f3e0479ec393b859de252fcdd8b7fc325e80399073540884ed365ce56a3219be34c0db9300d5e50f32969660c90527e51 DIST js185-1.0.0.tar.gz 6164605 BLAKE2B 76a37f0ceae05d3475853875bd0ce4be6e525e4114816f8f281ea6fc6b60a71060975a0fa1cb843f57ad1e2f842dfb26b24244fa0fd6c20f6ae2ebbe430f70be SHA512 2af7122a7c7007fd7b6668776fe1222515a810b3e43bbf0f76b8f94e1ef406ffd3fb5ccec393021b00274c05b38a77235bc8d6886994c56762fcaf0aa7cf6718 @@ -22,5 +23,5 @@ EBUILD spidermonkey-24.2.0-r3.ebuild 4016 BLAKE2B 4f52b07f5f156f701ba6e1dc7837a1 EBUILD spidermonkey-24.2.0-r4.ebuild 3989 BLAKE2B a859c05afcfe262398de5f0b4d0c148eaf2d94f57e9f029814982efcc740acbfc8349e756f75b3ce83a746571e27a31d88c78126b1b1e0cc9154e4b86f53dc8e SHA512 ca080e9993b2c10aed9abd0d54bd0722e8f4a53ed755f60389e9bf6b0d3347115ca7cc347b708592619ef69f6f1f38e5c9778c949f7224e579e7da09cd269067 EBUILD spidermonkey-38.3.0.ebuild 3874 BLAKE2B 7b5584b2dc11f445605a5a718914b689b8fee1b259ca92011b6efe6e4f71160c3c8cc19359d4f253ea7325691d0d06a47c46ab61dc691812727456b1accaf7c4 SHA512 51e6a9eb249e7c7467ff7cd0db48d9587ff9e5c3a63ca730382867cef9d8c6600ae9c87f2b4b41dfc92fbd21fb92addcff597370ab6570d6a15c0d5372cdc909 EBUILD spidermonkey-45.0.2.ebuild 3980 BLAKE2B 8f5b8aaba2c9ffc9adf16ff14216375434ddb3511add9817022e2913b41b415fdb3a2899ab341dc3e389460dbdf6d00cfb86270e8fd7a8de78eda6bbfc73b6ee SHA512 f99a6f6385e9cd39b8f6acb63b4c5f6e05250eb475e7906c6b06251c2a3de593d2617cbed3ef9f5c13b6009bcac6cb9b989ec362e0bfc6e351adcbec033d2806 -EBUILD spidermonkey-52.9.1_pre1.ebuild 4065 BLAKE2B 3506ec3f1879ba3d0b5030553e36137f024851d2e96aa508c469af8d1fbafbba12f1607e2f11e33ccfafc690f7e738b258392dd78aa139e24f91b866c88938b8 SHA512 16ce1efc58e8d8cef79cb53cde77dd1ede34e35543b4c09eef353491dd7b47912d8554263a798c626cef72bc69b53f55440f1465602961110024e6e85433a479 +EBUILD spidermonkey-52.9.1_pre1.ebuild 4229 BLAKE2B eb2d9f09aa55fa3882d48e56e1c7584dbed1fdde7e5df5ddb76cbd649af5aa95fe941eead19b97bc7e08a74ee358a51c428598317a36b8f6910f01e92c538a99 SHA512 a4510d988db6f78770c0e1520e48aa54e4c8ceb60c92396eeb9427222f64bf193c3a282ac14b9966d246e9a5c66bb9d77d78f8625ebb92428b1304b4b1d7a364 MISC metadata.xml 906 BLAKE2B 8557bb4bfdce358f543be3ff571177d61beb5713ba6fa4c24c8e91522ca30f8c5b1bf42abd0324164cc6febd04d07c1ae3a311d6d68d62992be6368c20650ca9 SHA512 a411a781913fe81801799d4d801645fd8029ee4fb727431589cb948f97464edd828b8d86969b2207880432db8e8e627fad829fd95394fa121bb0ae97ae8249b0 diff --git a/dev-lang/spidermonkey/files/spidermonkey-52.0-fix-alpha-bitness.patch b/dev-lang/spidermonkey/files/spidermonkey-52.0-fix-alpha-bitness.patch new file mode 100644 index 000000000000..b0f872964388 --- /dev/null +++ b/dev-lang/spidermonkey/files/spidermonkey-52.0-fix-alpha-bitness.patch @@ -0,0 +1,32 @@ + +# HG changeset patch +# User John Paul Adrian Glaubitz +# Date 1482966103 -3600 +# Node ID 1f4d99d8dff27bcc25eff21dc6a16dae63f48595 +# Parent ce9e9f0dc752896ac7ba00bb0610b3f731e948b0 +Bug 1326496 - mozbuild: Fix bitness from 32 to 64 bits on alpha. r=glandium + + +diff --git a/python/mozbuild/mozbuild/configure/constants.py b/python/mozbuild/mozbuild/configure/constants.py +--- a/python/mozbuild/mozbuild/configure/constants.py ++++ b/python/mozbuild/mozbuild/configure/constants.py +@@ -35,17 +35,17 @@ Kernel = EnumString.subclass( + 'Linux', + 'NetBSD', + 'OpenBSD', + 'WINNT', + ) + + CPU_bitness = { + 'aarch64': 64, +- 'Alpha': 32, ++ 'Alpha': 64, + 'arm': 32, + 'hppa': 32, + 'ia64': 64, + 'mips32': 32, + 'mips64': 64, + 'ppc': 32, + 'ppc64': 64, + 's390': 32, + diff --git a/dev-lang/spidermonkey/spidermonkey-52.9.1_pre1.ebuild b/dev-lang/spidermonkey/spidermonkey-52.9.1_pre1.ebuild index a0bc863ec2ec..7faa00344684 100644 --- a/dev-lang/spidermonkey/spidermonkey-52.9.1_pre1.ebuild +++ b/dev-lang/spidermonkey/spidermonkey-52.9.1_pre1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -16,7 +16,7 @@ SRC_URI="http://ftp.mozilla.org/pub/spidermonkey/prereleases/52/pre1/mozjs-52.9. LICENSE="NPL-1.1" SLOT="52" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~x86-fbsd" IUSE="debug minimal +system-icu test" RESTRICT="ia64? ( test )" @@ -34,6 +34,8 @@ DEPEND="${RDEPEND}" pkg_setup(){ [[ ${MERGE_TYPE} == "binary" ]] || \ moz_pkgsetup + + export SHELL="${EPREFIX}/bin/bash" } src_prepare() { @@ -46,7 +48,7 @@ src_prepare() { eapply "${WORKDIR}/${PN}" eapply "${FILESDIR}"/moz38-dont-hardcode-libc-soname.patch - #eapply "${FILESDIR}"/${PN}-52-baseconfig.patch + eapply "${FILESDIR}"/${PN}-52.0-fix-alpha-bitness.patch eapply_user @@ -91,6 +93,7 @@ cross_make() { CC="${BUILD_CC}" \ CXX="${BUILD_CXX}" \ RANLIB="${BUILD_RANLIB}" \ + SHELL="${SHELL:-${EPREFIX}/bin/bash}" \ "$@" } src_compile() { @@ -120,6 +123,7 @@ src_compile() { fi MOZ_MAKE_FLAGS="${MAKEOPTS}" \ + SHELL="${SHELL:-${EPREFIX}/bin/bash}" \ emake \ MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \ HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \ @@ -133,6 +137,7 @@ src_test() { src_install() { cd "${BUILDDIR}" || die + SHELL="${SHELL:-${EPREFIX}/bin/bash}" \ emake DESTDIR="${D}" install if ! use minimal; then diff --git a/dev-lang/vala/Manifest b/dev-lang/vala/Manifest index 051e5d9f88b6..435e30c568ef 100644 --- a/dev-lang/vala/Manifest +++ b/dev-lang/vala/Manifest @@ -9,5 +9,5 @@ EBUILD vala-0.34.16.ebuild 780 BLAKE2B c531790f0f07a15a169f27ed7fb76533368646bee EBUILD vala-0.34.9.ebuild 779 BLAKE2B c5afaae1aba3eca78c7cbb50a3c854e7ecabb3545f897d61038df5fccf69d1b7993a79a526926eaeec2a082445fd1eccebeeeb737ec2256431cfd66b6b479755 SHA512 d4ba98022a7077701ea670d411cc50d8c2470cf9d6444a2db4e7fd18a0fa83f9d45b9370899ea2ecdc6a371046fca714528ee9f34b95e60aff29819b981ea41f EBUILD vala-0.36.13.ebuild 863 BLAKE2B 5cb3b23680d753af86c276d793b5598647ed88fe1fbcf906de472174e33102c5436b5cdbe99cf967e7062bdc7c6aa34589a74d4b4d6405a261639d9be034653d SHA512 111b109dc32b5347fcccd8fdca7b09b0603ecbdfa47ac56c4e384c161aef6e91071f78fa3f80fb2ac71347a2fa456b2d750b240f5688c5563a4e0c3a24236c33 EBUILD vala-0.36.14.ebuild 871 BLAKE2B c5bfd2a68071e30f53904f35582b0883c499afd8577c07309b3d42e2396943191657f63d14ff480e2a34eae0d0a5babc0add33f56b939d5fccb4f776eff8f4a4 SHA512 753f6b4887d55231438bfd89636624979d838248625cc0f83b4e878f31f6832f4da614deac99585af3dd26459e2e69654d4f0c6cd3179d0e8ecf6f1b43c45319 -EBUILD vala-0.36.15.ebuild 871 BLAKE2B c5bfd2a68071e30f53904f35582b0883c499afd8577c07309b3d42e2396943191657f63d14ff480e2a34eae0d0a5babc0add33f56b939d5fccb4f776eff8f4a4 SHA512 753f6b4887d55231438bfd89636624979d838248625cc0f83b4e878f31f6832f4da614deac99585af3dd26459e2e69654d4f0c6cd3179d0e8ecf6f1b43c45319 +EBUILD vala-0.36.15.ebuild 867 BLAKE2B 288e6bebffe384eafa3573f689e62f8693c8ab53c0dd9875208660cc69eebd2d37da0eab1533df7108900827c4459c5ca42c011d45ea0240b9e98c4fab212535 SHA512 57c536c70288407c2e98b1ac2181af0894b8bc7ff5eee6748f19695bd6e6bf967bf0aab44fc88a41e698f8a145024b880160a32b6cfdbc4ac162cadf82ea5c4a MISC metadata.xml 255 BLAKE2B 51dc9e0030d68ac68f075bb4a7b4c5f42122c16f354e10463d7338e652b272b26fa1eb12a144ed4a00d29a020af4df19029d909b4591162347184b1684402c94 SHA512 1970039db79f50391650a9fea933485c6102d1165946ab8efe9395403a02f49d4b17c2942795282469ac7c0306e7353002dcbaa797fb1060982b31ea3540b98b diff --git a/dev-lang/vala/vala-0.36.15.ebuild b/dev-lang/vala/vala-0.36.15.ebuild index 357b5f50d91f..addfb029c79e 100644 --- a/dev-lang/vala/vala-0.36.15.ebuild +++ b/dev-lang/vala/vala-0.36.15.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -9,7 +9,7 @@ HOMEPAGE="https://wiki.gnome.org/Projects/Vala" LICENSE="LGPL-2.1" SLOT="0.36" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-linux" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-linux" IUSE="test" RDEPEND=" -- cgit v1.2.3