summaryrefslogtreecommitdiff
path: root/dev-lang
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-12-24 14:11:38 +0000
committerV3n3RiX <venerix@redcorelinux.org>2018-12-24 14:11:38 +0000
commitde49812990871e1705b64051c35161d5e6400269 (patch)
tree5e1e8fcb0ff4579dbd22a1bfee28a6b97dc8aaeb /dev-lang
parent536c3711867ec947c1738f2c4b96f22e4863322d (diff)
gentoo resync : 24.12.2018
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/Manifest.gzbin18027 -> 17850 bytes
-rw-r--r--dev-lang/crystal/Manifest7
-rw-r--r--dev-lang/crystal/crystal-0.27.0.ebuild5
-rw-r--r--dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-long-unix-2.patch13
-rw-r--r--dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-long-unix.patch90
-rw-r--r--dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-network-sandbox.patch44
-rw-r--r--dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch14
-rw-r--r--dev-lang/crystal/files/crystal-0.27.0-tcp-server-test.patch12
-rw-r--r--dev-lang/gnat-gpl/Manifest5
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2016-profile.patch113
-rw-r--r--dev-lang/gnat-gpl/gnat-gpl-2016-r3.ebuild (renamed from dev-lang/gnat-gpl/gnat-gpl-2016-r2.ebuild)2
-rw-r--r--dev-lang/gnat-gpl/metadata.xml5
-rw-r--r--dev-lang/gnu-smalltalk/Manifest5
-rw-r--r--dev-lang/gnu-smalltalk/files/50gnu-smalltalk-gentoo.el7
-rw-r--r--dev-lang/gnu-smalltalk/files/gnu-smalltalk-3.2_use-result.patch16
-rw-r--r--dev-lang/gnu-smalltalk/gnu-smalltalk-3.2.5.ebuild79
-rw-r--r--dev-lang/gnu-smalltalk/metadata.xml11
-rw-r--r--dev-lang/go/Manifest20
-rw-r--r--dev-lang/go/go-1.10.4.ebuild228
-rw-r--r--dev-lang/go/go-1.10.5.ebuild228
-rw-r--r--dev-lang/go/go-1.10.7.ebuild (renamed from dev-lang/go/go-1.10.1.ebuild)2
-rw-r--r--dev-lang/go/go-1.11.1.ebuild228
-rw-r--r--dev-lang/go/go-1.11.2.ebuild228
-rw-r--r--dev-lang/go/go-1.11.4.ebuild (renamed from dev-lang/go/go-1.10.3.ebuild)10
-rw-r--r--dev-lang/go/go-1.11.ebuild228
-rw-r--r--dev-lang/go/go-9999.ebuild10
-rw-r--r--dev-lang/hy/Manifest3
-rw-r--r--dev-lang/hy/files/hy-0.15.0-do-not-install-get_version.py.patch22
-rw-r--r--dev-lang/hy/hy-0.15.0.ebuild45
-rw-r--r--dev-lang/icon/Manifest2
-rw-r--r--dev-lang/icon/files/icon-9.5.1-fpoll.patch27
-rw-r--r--dev-lang/icon/icon-9.5.1-r2.ebuild114
-rw-r--r--dev-lang/lua/Manifest3
-rw-r--r--dev-lang/lua/lua-5.1.5-r102.ebuild144
-rw-r--r--dev-lang/lua/lua-5.2.3-r3.ebuild143
-rw-r--r--dev-lang/lua/lua-5.3.3-r2.ebuild143
-rw-r--r--dev-lang/mono/Manifest8
-rw-r--r--dev-lang/mono/mono-4.8.0.524.ebuild4
-rw-r--r--dev-lang/mono/mono-5.14.0.177.ebuild2
-rw-r--r--dev-lang/mono/mono-5.16.0.220.ebuild (renamed from dev-lang/mono/mono-5.16.0.179-r1.ebuild)3
-rw-r--r--dev-lang/nasm/Manifest3
-rw-r--r--dev-lang/nasm/files/nasm-2.14-default-path-BR-3392529.patch41
-rw-r--r--dev-lang/nasm/nasm-2.14-r1.ebuild (renamed from dev-lang/nasm/nasm-2.14.ebuild)1
-rw-r--r--dev-lang/perl/Manifest8
-rw-r--r--dev-lang/perl/perl-5.26.2.ebuild9
-rw-r--r--dev-lang/perl/perl-5.26.9999.ebuild9
-rw-r--r--dev-lang/perl/perl-5.28.0.ebuild9
-rw-r--r--dev-lang/perl/perl-5.28.9999.ebuild9
-rw-r--r--dev-lang/php/Manifest27
-rw-r--r--dev-lang/php/files/php-5.6-intl-detect-icu-via-pkg-config.patch154
-rw-r--r--dev-lang/php/files/php-5.6-intl-icu-memory-corruption.patch88
-rw-r--r--dev-lang/php/files/php-5.6-intl-use-icu-namespace.patch365
-rw-r--r--dev-lang/php/files/php-7.0.33-intl-detect-icu-via-pkg-config.patch159
-rw-r--r--dev-lang/php/files/php-7.0.33-intl-icu-memory-corruption.patch91
-rw-r--r--dev-lang/php/files/php-7.0.33-intl-use-icu-namespace.patch369
-rw-r--r--dev-lang/php/files/php-7.1.25-intl-detect-icu-via-pkg-config.patch121
-rw-r--r--dev-lang/php/files/php-7.1.25-intl-use-icu-namespace.patch379
-rw-r--r--dev-lang/php/files/php-7.2.13-intl-use-icu-namespace.patch379
-rw-r--r--dev-lang/php/php-5.6.38-r1.ebuild779
-rw-r--r--dev-lang/php/php-5.6.39.ebuild785
-rw-r--r--dev-lang/php/php-7.0.33.ebuild754
-rw-r--r--dev-lang/php/php-7.1.25.ebuild (renamed from dev-lang/php/php-7.3.0_rc2.ebuild)59
-rw-r--r--dev-lang/php/php-7.2.13.ebuild (renamed from dev-lang/php/php-7.3.0_rc5.ebuild)24
-rw-r--r--dev-lang/php/php-7.3.0.ebuild (renamed from dev-lang/php/php-7.3.0_rc3.ebuild)2
-rw-r--r--dev-lang/python/Manifest4
-rw-r--r--dev-lang/python/python-2.7.14-r1.ebuild363
-rw-r--r--dev-lang/python/python-2.7.14-r2.ebuild367
-rw-r--r--dev-lang/ruby/Manifest11
-rw-r--r--dev-lang/ruby/files/2.4/012-openssl_1.1.patch339
-rw-r--r--dev-lang/ruby/ruby-2.3.8-r1.ebuild (renamed from dev-lang/ruby/ruby-2.3.7.ebuild)2
-rw-r--r--dev-lang/ruby/ruby-2.4.5-r1.ebuild229
-rw-r--r--dev-lang/ruby/ruby-2.4.5.ebuild4
-rw-r--r--dev-lang/ruby/ruby-2.5.3.ebuild2
-rw-r--r--dev-lang/rust-bin/Manifest14
-rw-r--r--dev-lang/rust-bin/rust-bin-1.31.1.ebuild144
-rw-r--r--dev-lang/rust/Manifest17
-rw-r--r--dev-lang/rust/rust-1.30.1-r1.ebuild27
-rw-r--r--dev-lang/rust/rust-1.31.1.ebuild297
-rw-r--r--dev-lang/spark/Manifest6
-rw-r--r--dev-lang/spark/metadata.xml5
-rw-r--r--dev-lang/spark/spark-2017.ebuild4
-rw-r--r--dev-lang/spark/spark-2018.ebuild4
-rw-r--r--dev-lang/spidermonkey/Manifest4
-rw-r--r--dev-lang/spidermonkey/spidermonkey-38.3.0.ebuild4
-rw-r--r--dev-lang/spidermonkey/spidermonkey-52.9.1_pre1.ebuild2
-rw-r--r--dev-lang/swi-prolog/Manifest12
-rw-r--r--dev-lang/swi-prolog/swi-prolog-7.7.17.ebuild148
-rw-r--r--dev-lang/swi-prolog/swi-prolog-7.7.18-r1.ebuild150
-rw-r--r--dev-lang/swi-prolog/swi-prolog-7.7.18.ebuild148
-rw-r--r--dev-lang/swi-prolog/swi-prolog-7.7.19.ebuild150
-rw-r--r--dev-lang/swi-prolog/swi-prolog-7.7.22.ebuild99
-rw-r--r--dev-lang/swi-prolog/swi-prolog-7.7.23.ebuild98
-rw-r--r--dev-lang/tcl/Manifest3
-rw-r--r--dev-lang/tcl/tcl-8.6.9.ebuild (renamed from dev-lang/tcl/tcl-8.5.17.ebuild)45
-rw-r--r--dev-lang/tk/Manifest1
-rw-r--r--dev-lang/tk/tk-8.5.17.ebuild123
-rw-r--r--dev-lang/vala/Manifest2
-rw-r--r--dev-lang/vala/vala-0.36.15.ebuild2
98 files changed, 6865 insertions, 2862 deletions
diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz
index d914183a09e4..7650a342d671 100644
--- a/dev-lang/Manifest.gz
+++ b/dev-lang/Manifest.gz
Binary files differ
diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest
index 181b076568c0..e5873e2d6888 100644
--- a/dev-lang/crystal/Manifest
+++ b/dev-lang/crystal/Manifest
@@ -8,6 +8,11 @@ AUX crystal-0.26.0-gentoo-tests-network-sandbox-2.patch 905 BLAKE2B 8e70f71a7a2b
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
+AUX crystal-0.27.0-gentoo-tests-long-unix-2.patch 469 BLAKE2B 66bcc1d0dd9582cac4ba89a2ccc2c7a2ac3ff4994cd687191470f2d481f9a6e3a91aaaf705f92f7600118a9cda015a9554056520502df7ae6462e111665c7330 SHA512 d840ac343ef566e404dc84e908bead5a020dfd88b8c0432f17bceea8d710d435626dc72b4be6622dbcd683a149bca16e781320cf74fc3f2598f84d169c6f7faa
+AUX crystal-0.27.0-gentoo-tests-long-unix.patch 3317 BLAKE2B df1040abdb587ac3fffb8129d4f1bafc492e38ad5dcfdea5cfbf4426849b099c4d94dac61c93ae7fcae46b60dea1809f52ad373efcd89796a3c1f119614063c1 SHA512 a9ed819a864465e062b4d6a568f14fbb8adc1db01071c79164dede8b2b8d83e07b785cd8196826097de5119e0bdc7d6e194cf4e10cc677bd2bdf158d124c2ad2
+AUX crystal-0.27.0-gentoo-tests-network-sandbox.patch 2028 BLAKE2B ed1fa244adc61688cb23e7cc41d64f74d80b8342912b518ac874c1ac07995d8ba2c0d12dcf61740fc2ebfa0c9f3eb9417b40ee91ce115fdac1a64e172dd10cd5 SHA512 82ae83f186f46cbdce5a75b7296af4b01b328f33ab79de067ba1bf3aaf69f569f6d29a3116cc9aea8ad0551ecc8efaba27ca250c9fc0bec92009e61449e1e995
+AUX crystal-0.27.0-max-age-0-test.patch 632 BLAKE2B d41416f4045b23d0a9c4e11e525d8537277090ee316d01cab9cce0373b07583b9e80a495c8f4db997fc4f1b15b17c080d590f8cb8b6f454dc1c0d1d48015a127 SHA512 7608cb37850e52af406fab0378f0748af7db9239f878720041d56751ce36e0f5874a79b1a971fdc6f261292d23868e3e35c9ddb0d3c10c2bb987767954a77988
+AUX crystal-0.27.0-tcp-server-test.patch 377 BLAKE2B 47e9985c9ecc93483bc0d7e970ebb62648ec5778924d055c345ef2ceadb19f07e23c63767ccd62251df1e63bcaca4cf270730b32f24bfd7a6422939911edfe8a SHA512 7c5f0c97b80bf9cffe0b385a02ea2a8573fa88c174eda49a4adab46376e0ef9c957b16c72ca77386f8b88a98356565a31976113f2a78fa3b7bec85b16b692f58
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
@@ -27,5 +32,5 @@ EBUILD crystal-0.24.2.ebuild 2374 BLAKE2B 62f5e228fc38ad340d2e77ee1817410a5ef418
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
+EBUILD crystal-0.27.0.ebuild 3125 BLAKE2B ec1bcc46d303723566f9c90d8532483b1de2113ba7d105f7d6b8d413f23261feb61b6a46dc0a6bb461d4d436f8175f6f2576fb97a2d154852a434819f66164c3 SHA512 1e7a4ed435535b1479f7bf972258159a264275e43c300b2864ef96601bebd9a5772f26f70e1c04fac13766cc984786030e8d7cafbca313972484c3f132e2f2c8
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
index b7dcd5f70cfe..cb040059d964 100644
--- a/dev-lang/crystal/crystal-0.27.0.ebuild
+++ b/dev-lang/crystal/crystal-0.27.0.ebuild
@@ -44,6 +44,11 @@ PATCHES=(
"${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
+ "${FILESDIR}"/${PN}-0.27.0-max-age-0-test.patch
+ "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-network-sandbox.patch
+ "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix.patch
+ "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix-2.patch
+ "${FILESDIR}"/${PN}-0.27.0-tcp-server-test.patch
)
src_prepare() {
diff --git a/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-long-unix-2.patch b/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-long-unix-2.patch
new file mode 100644
index 000000000000..61cec14afcbc
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-long-unix-2.patch
@@ -0,0 +1,13 @@
+--- a/spec/std/socket/unix_socket_spec.cr
++++ b/spec/std/socket/unix_socket_spec.cr
+@@ -37,7 +37,9 @@ describe UNIXSocket do
+ end
+ end
+
+- it "sync flag after accept" do
++ # On large non-standard temp paths the test fails as:
++ # Path size exceeds the maximum size of 107 bytes
++ pending "sync flag after accept" do
+ with_tempfile("unix_socket-accept.sock") do |path|
+ UNIXServer.open(path) do |server|
+ UNIXSocket.open(path) do |client|
diff --git a/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-long-unix.patch b/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-long-unix.patch
new file mode 100644
index 000000000000..51b049ee9801
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-long-unix.patch
@@ -0,0 +1,90 @@
+--- a/spec/std/socket/unix_server_spec.cr
++++ b/spec/std/socket/unix_server_spec.cr
+@@ -14,7 +14,9 @@ describe UNIXServer do
+ end
+ end
+
+- it "creates the socket file" do
++ # On large non-standard temp paths the test fails as:
++ # Path size exceeds the maximum size of 107 bytes
++ pending "creates the socket file" do
+ with_tempfile("unix_server.sock") do |path|
+ UNIXServer.open(path) do
+ File.exists?(path).should be_true
+@@ -24,7 +26,9 @@ describe UNIXServer do
+ end
+ end
+
+- it "deletes socket file on close" do
++ # On large non-standard temp paths the test fails as:
++ # Path size exceeds the maximum size of 107 bytes
++ pending "deletes socket file on close" do
+ with_tempfile("unix_server-close.sock") do |path|
+ server = UNIXServer.new(path)
+ server.close
+@@ -33,7 +37,9 @@ describe UNIXServer do
+ end
+ end
+
+- it "raises when socket file already exists" do
++ # On large non-standard temp paths the test fails as:
++ # Path size exceeds the maximum size of 107 bytes
++ pending "raises when socket file already exists" do
+ with_tempfile("unix_server-twice.sock") do |path|
+ server = UNIXServer.new(path)
+
+@@ -45,7 +51,9 @@ describe UNIXServer do
+ end
+ end
+
+- it "won't delete existing file on bind failure" do
++ # On large non-standard temp paths the test fails as:
++ # Path size exceeds the maximum size of 107 bytes
++ pending "won't delete existing file on bind failure" do
+ with_tempfile("unix_server-exist.sock") do |path|
+ File.write(path, "")
+ File.exists?(path).should be_true
+@@ -60,7 +68,9 @@ describe UNIXServer do
+ end
+
+ describe "accept" do
+- it "returns the client UNIXSocket" do
++ # On large non-standard temp paths the test fails as:
++ # Path size exceeds the maximum size of 107 bytes
++ pending "returns the client UNIXSocket" do
+ with_tempfile("unix_server-accept.sock") do |path|
+ UNIXServer.open(path) do |server|
+ UNIXSocket.open(path) do |_|
+@@ -72,7 +82,9 @@ describe UNIXServer do
+ end
+ end
+
+- it "raises when server is closed" do
++ # On large non-standard temp paths the test fails as:
++ # Path size exceeds the maximum size of 107 bytes
++ pending "raises when server is closed" do
+ with_tempfile("unix_server-closed.sock") do |path|
+ server = UNIXServer.new(path)
+ exception = nil
+@@ -97,7 +109,9 @@ describe UNIXServer do
+ end
+
+ describe "accept?" do
+- it "returns the client UNIXSocket" do
++ # On large non-standard temp paths the test fails as:
++ # Path size exceeds the maximum size of 107 bytes
++ pending "returns the client UNIXSocket" do
+ with_tempfile("unix_server-accept_.sock") do |path|
+ UNIXServer.open(path) do |server|
+ UNIXSocket.open(path) do |_|
+@@ -109,7 +123,9 @@ describe UNIXServer do
+ end
+ end
+
+- it "returns nil when server is closed" do
++ # On large non-standard temp paths the test fails as:
++ # Path size exceeds the maximum size of 107 bytes
++ pending "returns nil when server is closed" do
+ with_tempfile("unix_server-accept2.sock") do |path|
+ server = UNIXServer.new(path)
+ ret = :initial
diff --git a/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-network-sandbox.patch b/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-network-sandbox.patch
new file mode 100644
index 000000000000..0ba0f18f73d8
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-network-sandbox.patch
@@ -0,0 +1,44 @@
+--- a/spec/std/socket/tcp_server_spec.cr
++++ b/spec/std/socket/tcp_server_spec.cr
+@@ -76,13 +76,17 @@ describe TCPServer do
+ TCPServer.new("localhost", unused_local_port)
+ end
+
+- it "raises when host doesn't exist" do
++ # gentoo's FEATURES=network-sandbox blocks external network:
++ # Socket::Error: getaddrinfo: Temporary failure in name resolution
++ pending "raises when host doesn't exist" do
+ expect_raises(Socket::Error, "No address") do
+ TCPServer.new("doesnotexist.example.org.", 12345)
+ end
+ end
+
+- it "raises (rather than segfault on darwin) when host doesn't exist and port is 0" do
++ # gentoo's FEATURES=network-sandbox blocks external network:
++ # Socket::Error: getaddrinfo: Temporary failure in name resolution
++ pending "raises (rather than segfault on darwin) when host doesn't exist and port is 0" do
+ expect_raises(Socket::Error, "No address") do
+ TCPServer.new("doesnotexist.example.org.", 0)
+ end
+--- a/spec/std/socket/tcp_socket_spec.cr
++++ b/spec/std/socket/tcp_socket_spec.cr
+@@ -56,13 +56,17 @@ describe TCPSocket do
+ end
+ end
+
+- it "raises when host doesn't exist" do
++ # gentoo's FEATURES=network-sandbox blocks external network:
++ # Socket::Error: getaddrinfo: Temporary failure in name resolution
++ pending "raises when host doesn't exist" do
+ expect_raises(Socket::Error, "No address") do
+ TCPSocket.new("doesnotexist.example.org.", 12345)
+ end
+ end
+
+- it "raises (rather than segfault on darwin) when host doesn't exist and port is 0" do
++ # gentoo's FEATURES=network-sandbox blocks external network:
++ # Socket::Error: getaddrinfo: Temporary failure in name resolution
++ pending "raises (rather than segfault on darwin) when host doesn't exist and port is 0" do
+ expect_raises(Socket::Error, "No address") do
+ TCPSocket.new("doesnotexist.example.org.", 0)
+ end
diff --git a/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch b/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch
new file mode 100644
index 000000000000..d78927ab3eef
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch
@@ -0,0 +1,14 @@
+--- a/spec/std/http/cookie_spec.cr
++++ b/spec/std/http/cookie_spec.cr
+@@ -150,7 +150,10 @@ module HTTP
+ parse_set_cookie("a=1; domain=127.0.0.1; path=/; HttpOnly").domain.should eq "127.0.0.1"
+ end
+
+- it "parse max-age as seconds from Time.now" do
++ # unstable test: sometimes 'now - max-age=0' == 0.0:
++ # Failure/Error: delta.should be > 0.seconds
++ # Expected 00:00:00 to be > 00:00:00
++ pending "parse max-age as seconds from Time.now" do
+ cookie = parse_set_cookie("a=1; max-age=10")
+ delta = cookie.expires.not_nil! - Time.now
+ delta.should be > 9.seconds
diff --git a/dev-lang/crystal/files/crystal-0.27.0-tcp-server-test.patch b/dev-lang/crystal/files/crystal-0.27.0-tcp-server-test.patch
new file mode 100644
index 000000000000..8f61c8aeef47
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.27.0-tcp-server-test.patch
@@ -0,0 +1,12 @@
+--- a/spec/std/http/server/server_spec.cr
++++ b/spec/std/http/server/server_spec.cr
+@@ -524,7 +524,8 @@ module HTTP
+ end
+
+ describe "#close" do
+- it "closes gracefully" do
++ # fails under gentoo's sandbox
++ pending "closes gracefully" do
+ server = Server.new do |context|
+ context.response.flush
+ context.response.puts "foo"
diff --git a/dev-lang/gnat-gpl/Manifest b/dev-lang/gnat-gpl/Manifest
index ee2e4f46277a..95709217af43 100644
--- a/dev-lang/gnat-gpl/Manifest
+++ b/dev-lang/gnat-gpl/Manifest
@@ -8,6 +8,7 @@ AUX gcc-spec-env-r1.patch 3148 BLAKE2B 30ceb113a510092a907b445c4b2131f148f7fef54
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-2016-profile.patch 5593 BLAKE2B fe874e0543be671a9ede195c3cb01b9902357df4b412eaf3bf300bf032abd6e0a26fe2fd0dc0e71528ce9a6e454b83d9621a437c9efab629086f354eb1b3ff9f SHA512 ea45d2fcf98f4859676afb01439639e54e30cced8dbaf12fd9562dd805bd35ed2711a618834fe3acc8ad855386e58c9aeed007d046e300b60bbe6155d07386b7
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
@@ -31,7 +32,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-r2.ebuild 5759 BLAKE2B 455b0fb15a18a170a6358724afa4a350cbb8016106f77becb9cd9f7e1d231facf6caccbd7552d7dc0ddd3d46e2dbbbfb1fc2c4c208413de80cc9a6e5d2b15582 SHA512 e6e18e7bd565ef4816fde987042624641be986b5de0192ecc8c58152a464f88f4a396ac99a8a9c24a6b384d01559b73daffd7e468655f7229c81ad363941e180
+EBUILD gnat-gpl-2016-r3.ebuild 5843 BLAKE2B c7878a2fc6f24724039124ea8167e4b6709f7897772cdf181d8b868deb25df7a106a4b0d22f52d008ec340f67471cb25e4522f0282140d1fa1294d2e98bdd4c1 SHA512 bd955748b1648c9e3ab446e560a9696efc10e7d185d1e90835bb01da5b5d18b658acec76a4f84e45e09de0d148c5b83a2048849bd42536270599fa21dd92adac
EBUILD gnat-gpl-2017.ebuild 4916 BLAKE2B 63c46822894529952dec8f45723b09e590c69269bfc4b3408dc6d720fa72b574956aa3e2a8adc51c400baf02414454d3153022e59cb69ebb4c5c9214fefcc40f SHA512 3d7d6b8fac5e9d0be36df050451a959437796d63f30a678d756af7e9aa5a036d13d2a25a2dcbd16aee799c44cb41ade35ca5771a43dc779ec74d341cd835d99b
EBUILD gnat-gpl-2018-r1.ebuild 4999 BLAKE2B 3c9bfaaeab7166d326a87301baee8c151462726fcf61af58dbd9921cbfc5dafa78205c0169e2a54f14a568ce1d958980b2d20113daa65ce10cc7a60328ed0d1b SHA512 4daba04ee89a83dbebb325955dd47c54468fd5a33c56370be432553b47a0fd27df408d62b70af4321bad69b9e51463d4e6cfba7f24480704bf4c6b30d01c971a
-MISC metadata.xml 1960 BLAKE2B e66552f4c0655619e736b6af14822d84e6c49aa6c019cb8c8b0e215629f9c8ab68aa55758639e35107120a39c578d82e1036bc0be82ff67728104f44c875d107 SHA512 04f14bcdd96ae4f6e285abfd07de89828eb989ce779aa59decf689920a179d859ffe809d7960e9c3599c2f6fff6ab2aafbb54458da07fa91841c61e0dfca47ab
+MISC metadata.xml 1928 BLAKE2B b1caee350b6656a838a0f83698760edfa7f53d0715a3ce18f443c5bef26827ccf9a858a918a8822b89a2fa70e34cb282ddcd9f0746691a0f10cbda4b368ac1ac SHA512 bd0b8cb4961903f004fb2d5fdd260e6b15936730148d192edf4e59b04c5f1dc991940069edc02b38f859ad1470e16e028c122403043a4f99ba7af753085867fd
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2016-profile.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2016-profile.patch
new file mode 100644
index 000000000000..561c012a23e6
--- /dev/null
+++ b/dev-lang/gnat-gpl/files/gnat-gpl-2016-profile.patch
@@ -0,0 +1,113 @@
+--- a/gcc/ada/s-rident.ads 2018-11-18 18:47:39.042412895 +0100
++++ b/gcc/ada/s-rident.ads 2018-11-18 19:02:31.736559044 +0100
+@@ -378,15 +378,17 @@
+ type Profile_Name is
+ (No_Profile,
+ No_Implementation_Extensions,
++ Restricted_Tasking,
++ Restricted,
+ Ravenscar,
+ GNAT_Extended_Ravenscar,
+- Restricted);
++ GNAT_Ravenscar_EDF);
+ -- Names of recognized profiles. No_Profile is used to indicate that a
+ -- restriction came from pragma Restrictions[_Warning], as opposed to
+ -- pragma Profile[_Warning].
+
+ subtype Profile_Name_Actual is Profile_Name
+- range No_Implementation_Extensions .. Restricted;
++ range No_Implementation_Extensions .. Profile_Name'Last;
+ -- Actual used profile names
+
+ type Profile_Data is record
+@@ -456,6 +458,40 @@
+ Max_Task_Entries => 0,
+ others => 0)),
+
++ -- Restricted_Tasking Profile
++
++ Restricted_Tasking =>
++
++ -- Restrictions for Restricted_Tasking profile
++
++ (Set =>
++ (No_Abort_Statements => True,
++ No_Asynchronous_Control => True,
++ No_Dynamic_Attachment => True,
++ No_Dynamic_Priorities => True,
++ No_Entry_Queue => True,
++ No_Local_Protected_Objects => True,
++ No_Protected_Type_Allocators => True,
++ No_Requeue_Statements => True,
++ No_Task_Allocators => True,
++ No_Task_Attributes_Package => True,
++ No_Task_Hierarchy => True,
++ No_Terminate_Alternatives => True,
++ Max_Asynchronous_Select_Nesting => True,
++ Max_Protected_Entries => True,
++ Max_Select_Alternatives => True,
++ Max_Task_Entries => True,
++ others => False),
++
++ -- Value settings for Restricted profile
++
++ Value =>
++ (Max_Asynchronous_Select_Nesting => 0,
++ Max_Protected_Entries => 1,
++ Max_Select_Alternatives => 0,
++ Max_Task_Entries => 0,
++ others => 0)),
++
+ -- Ravenscar Profile
+
+ -- Note: the table entries here only represent the
+@@ -509,6 +545,49 @@
+ Max_Task_Entries => 0,
+ others => 0)),
+
++ GNAT_Ravenscar_EDF =>
++
++ -- Restrictions for Ravenscar = Restricted profile ..
++
++ (Set =>
++ (No_Abort_Statements => True,
++ No_Asynchronous_Control => True,
++ No_Dynamic_Attachment => True,
++ No_Dynamic_Priorities => True,
++ No_Entry_Queue => True,
++ No_Local_Protected_Objects => True,
++ No_Protected_Type_Allocators => True,
++ No_Requeue_Statements => True,
++ No_Task_Allocators => True,
++ No_Task_Attributes_Package => True,
++ No_Task_Hierarchy => True,
++ No_Terminate_Alternatives => True,
++ Max_Asynchronous_Select_Nesting => True,
++ Max_Protected_Entries => True,
++ Max_Select_Alternatives => True,
++ Max_Task_Entries => True,
++
++ -- plus these additional restrictions:
++
++ No_Calendar => True,
++ No_Implicit_Heap_Allocations => True,
++ No_Local_Timing_Events => True,
++ No_Relative_Delay => True,
++ No_Select_Statements => True,
++ No_Specific_Termination_Handlers => True,
++ No_Task_Termination => True,
++ Simple_Barriers => True,
++ others => False),
++
++ -- Value settings for Ravenscar (same as Restricted)
++
++ Value =>
++ (Max_Asynchronous_Select_Nesting => 0,
++ Max_Protected_Entries => 1,
++ Max_Select_Alternatives => 0,
++ Max_Task_Entries => 0,
++ others => 0)),
++
+ GNAT_Extended_Ravenscar =>
+
+ -- Restrictions for GNAT_Extended_Ravenscar =
diff --git a/dev-lang/gnat-gpl/gnat-gpl-2016-r2.ebuild b/dev-lang/gnat-gpl/gnat-gpl-2016-r3.ebuild
index ff06786dc4d5..b9eabc786360 100644
--- a/dev-lang/gnat-gpl/gnat-gpl-2016-r2.ebuild
+++ b/dev-lang/gnat-gpl/gnat-gpl-2016-r3.ebuild
@@ -144,6 +144,8 @@ src_prepare() {
epatch "${FILESDIR}/${P}-bootstrap.patch"
# add Finalization_Size Attribute
epatch "${FILESDIR}/${P}-finalization.patch"
+ # add profile for gnat_util compatibility
+ epatch "${FILESDIR}/${P}-profile.patch"
toolchain_src_prepare
diff --git a/dev-lang/gnat-gpl/metadata.xml b/dev-lang/gnat-gpl/metadata.xml
index 5018efb098ac..1e9066797159 100644
--- a/dev-lang/gnat-gpl/metadata.xml
+++ b/dev-lang/gnat-gpl/metadata.xml
@@ -1,9 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>tupone@gentoo.org</email>
- <name>Tupone Alfredo</name>
+ <maintainer type="project">
+ <email>ada@gentoo.org</email>
</maintainer>
<use>
<flag name="awt">Useful only when building GCJ, this enables Abstract
diff --git a/dev-lang/gnu-smalltalk/Manifest b/dev-lang/gnu-smalltalk/Manifest
deleted file mode 100644
index 5e5737059ca1..000000000000
--- a/dev-lang/gnu-smalltalk/Manifest
+++ /dev/null
@@ -1,5 +0,0 @@
-AUX 50gnu-smalltalk-gentoo.el 268 BLAKE2B c11bc39ffa744d4908e30e5394e81083e4b3a1c06922f3b5159e7ca075716eae9ddb01c25131117f5379762471609037fbbb26508fa9343db3cabab0596aa60b SHA512 0341a9a35c17987ab7b93badf1b7ebf31b5a38df66d372d6a26eb49f5a9fec881e1886024a1b5ffa87cafb37aaef483201bb10827c121c782e4f554961bb9c41
-AUX gnu-smalltalk-3.2_use-result.patch 657 BLAKE2B ed67ccbd1d111a17906f615885216bb777b263beb2f51fba2c7d4d2f9d97b3263d5f41fb3a8fd6495e567257cf9323a2836962dcdf677ffc0f986e6770eab629 SHA512 126544344f92f20463846855c9388d411ce70795438186a87d4c40c3a9311f35c0432ce7a237d2112718da270ab099df92a79975dd3a2734e49832cb0cc20623
-DIST smalltalk-3.2.5.tar.gz 5779293 BLAKE2B 67eb58be2d6403cbd742f3c9dddb2d8f3cf65bbcc4127785b32501ca2c4c0fef2a08cea3faa7dc991deae27f5a260e2c772fc5f628f66a2ef5aca440e42ad3ef SHA512 385e5fba2acb8870759e5178282210c09c45685d0cf776bc50f4ed10c9afacf9164547ba8099ea3ed9a92a2a253aa9c2b011a7a9f2dff47ea9cfdf3b42029ebc
-EBUILD gnu-smalltalk-3.2.5.ebuild 1795 BLAKE2B 880376b65d36113ef40a722cac11582d1ef6260a43f95dee0344fba6b14582fe0b317ae52d8795b0b010cfb6edbb9e2b6866c292dd85abae48c36b323a26dc2c SHA512 6269ea2a49e5b50b2dc8e38cf6be9e232e3b2e1c3859f0787a8c205f514a8ff82ef9ff39f169ea2275b08bc56a6f124917a37758bbf7c12707126ada93e08a49
-MISC metadata.xml 469 BLAKE2B 1f3dbeb63b9f4ef08a573203416746efe0bfe14eb11cd8f81b11aba979b19f7a0b8eb4908e3862417cb986d1a9c792b3c33d4fd8ea15b9ca443461ebc749b7ac SHA512 e0ef2c7778ddfdbbd9dd33705bc5ce9e7b2ce2bdf5d1f2a844ee93bf842df93e708ad04467ee84aadea80bbfa6e1c90b04aa1f6e1cc4b75ab0bbcfcda56e160f
diff --git a/dev-lang/gnu-smalltalk/files/50gnu-smalltalk-gentoo.el b/dev-lang/gnu-smalltalk/files/50gnu-smalltalk-gentoo.el
deleted file mode 100644
index e9e18d43bb3c..000000000000
--- a/dev-lang/gnu-smalltalk/files/50gnu-smalltalk-gentoo.el
+++ /dev/null
@@ -1,7 +0,0 @@
-
-;;; gnu-smalltalk site-lisp configuration
-
-(add-to-list 'load-path "@SITELISP@")
-(autoload 'smalltalk-mode "smalltalk-mode" "Autoload for smalltalk-mode" t)
-(autoload 'gst "gst-mode" "Autoload for gst" t)
-(add-to-list 'auto-mode-alist '("\\.st\\'" . smalltalk-mode))
diff --git a/dev-lang/gnu-smalltalk/files/gnu-smalltalk-3.2_use-result.patch b/dev-lang/gnu-smalltalk/files/gnu-smalltalk-3.2_use-result.patch
deleted file mode 100644
index 7f3fb907d895..000000000000
--- a/dev-lang/gnu-smalltalk/files/gnu-smalltalk-3.2_use-result.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/config.h.in
-+++ b/config.h.in
-@@ -879,6 +879,13 @@
- #define below would cause a syntax error. */
- #undef _UINT64_T
-
-+/* Kludgey fix for Gentoo bug #492710, caused by improper use of the Tcl API.
-+ * Upstream should be using Tcl_SetObjResult, Tcl_GetObjResult, and/or
-+ * Tcl_GetStringResult. This is the simplest way for us to fix it, and should
-+ * be removed as soon as GST uses the Tcl interface correctly.
-+ */
-+#define USE_INTERP_RESULT 1
-+
- /* Define for Solaris 2.5.1 so the uint8_t typedef from <sys/synch.h>,
- <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
- #define below would cause a syntax error. */
diff --git a/dev-lang/gnu-smalltalk/gnu-smalltalk-3.2.5.ebuild b/dev-lang/gnu-smalltalk/gnu-smalltalk-3.2.5.ebuild
deleted file mode 100644
index 00461089e252..000000000000
--- a/dev-lang/gnu-smalltalk/gnu-smalltalk-3.2.5.ebuild
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit elisp-common flag-o-matic
-
-DESCRIPTION="GNU Smalltalk"
-HOMEPAGE="http://smalltalk.gnu.org"
-SRC_URI="mirror://gnu/smalltalk/smalltalk-${PV}.tar.gz"
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="tk readline emacs gtk gmp"
-
-DEPEND="app-arch/zip
- sys-libs/gdbm
- sys-apps/debianutils
- dev-libs/libsigsegv
- virtual/libffi
- emacs? ( virtual/emacs )
- readline? ( sys-libs/readline )
- tk? ( dev-lang/tk )
- gtk? ( =x11-libs/gtk+-2* )
- gmp? ( dev-libs/gmp )"
-RDEPEND=""
-
-S="${WORKDIR}/smalltalk-${PV}"
-
-SITEFILE=50gnu-smalltalk-gentoo.el
-
-PATCHES=(
- # fix misuse of the Tcl API, bug 492710
- "${FILESDIR}"/${PN}-3.2_use-result.patch
-)
-
-src_configure() {
- replace-flags '-O3' '-O2'
- econf \
- --libdir=/usr/$(get_libdir) \
- --with-system-libsigsegv \
- --with-system-libffi \
- --with-system-libltdl \
- $(use_with emacs emacs) \
- $(use_with readline readline) \
- $(use_with gmp gmp) \
- $(use_with tk tcl /usr/$(get_libdir)) \
- $(use_with tk tk /usr/$(get_libdir)) \
- $(use_enable gtk gtk)
-}
-
-src_compile() {
- emake || die "emake failed"
- use emacs && elisp-compile *.el
-}
-
-src_install() {
- emake DESTDIR="${D}" install || die
- dodoc AUTHORS COPYING* ChangeLog NEWS README THANKS TODO
- if use emacs; then
- elisp-install "${PN}" *.el *.elc
- elisp-site-file-install "${FILESDIR}/${SITEFILE}"
- fi
- fperms 0444 /usr/share/smalltalk/packages.xml
- # Fix QA notice complaining about dangling symlink.
- # There's probably a better way to do this but I couldn't find it.
- pushd "${D}"/usr/share/man/man1
- rm gst-reload.1
- ln -s $(find . -name "gst-load*") gst-reload.1
- popd
-}
-
-pkg_postinst() {
- use emacs && elisp-site-regen
-}
-
-pkg_postrm() {
- use emacs && elisp-site-regen
-}
diff --git a/dev-lang/gnu-smalltalk/metadata.xml b/dev-lang/gnu-smalltalk/metadata.xml
deleted file mode 100644
index e7804d3fbd23..000000000000
--- a/dev-lang/gnu-smalltalk/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <longdescription>
- GNU Smalltalk is a free implementation of the Smalltalk-80
- language which runs on most versions on Unix and, in general,
- everywhere you can find a POSIX-compliance library. An uncommon
- feature of it is that it is well-versed to scripting tasks and
- headless processing.
- </longdescription>
-</pkgmetadata>
diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest
index 333a3fb6ff2d..81fb29383a33 100644
--- a/dev-lang/go/Manifest
+++ b/dev-lang/go/Manifest
@@ -9,19 +9,9 @@ DIST go-linux-ppc64-bootstrap-1.8.tbz 52315782 BLAKE2B 6be0a48e8bc4e5fed4d34f8aa
DIST go-linux-ppc64le-bootstrap-1.8.tbz 52211575 BLAKE2B 7a28ec5a381369c4e9415c8360e904c2545380513afd328077c584e8af0bf6bd818aa03e5a58c350cbb98facc1c9dccb02b06adcb27233875497cf5d33265912 SHA512 6931d999dd0ee1ff44c4cec48acb27af061f57f87aa74802dcebab78553b46bc8ac732f07fe91e5074dbdd32c55b707994875934bfb12bb4276d71eb1d06c4ba
DIST go-linux-s390x-bootstrap-1.8.tbz 57124869 BLAKE2B 920a176b8f4fc3a816e724324bbb30a383d599e31a0d2093d24797dbcd0e799a662a3589dbb87d2f5dd16df07c4cf8f1e444e87b540ec732746bb025dc9271f8 SHA512 d429cae870d66217ab2e07c74209d3031d97baa4f899b4d70ae6283a1a5b1434b037904c4cfca0b2bc798d5ba0b358c3739e000eccbc74809baf564c5686df5a
DIST go-solaris-amd64-bootstrap-1.8.tbz 54926326 BLAKE2B 0a45312f090d81ebf46fe5950cb65c059e2801394231e715e94145d1f918eb59b10472b2385e57ebd5cfb9eca0ad7290fb118436486b665520bb540970f971ab SHA512 52b849e5b9a940e10de7ba3df0ebdf6e1c5d631de9581d936c9edf8f38e6bb3314acbc2b2d5202b0528fde2a359d52bc0c6f39acf9b1b614725e4b4a947ed10d
-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
+DIST go1.10.7.src.tar.gz 18333472 BLAKE2B 8e1d85ced41541f1c7a02208da6ff518d7af76e078c47b2b269b31868fad8578b70494aad0ab35a33b1273d2f55523ee5e97e688991a62bf2289821c1c669c1f SHA512 798e0ea053b38f4b4f5a6fbdefb30ad09d95b7e8af424bd5f1aa7856bf7ca4e9c9bbd32926e2936f2b332f88a1980e92e6b61862fd9e779edf64f965fd8d1ffe
+DIST go1.11.4.src.tar.gz 21108067 BLAKE2B 3e9e433d9f85cadcf4c62bbc7a27d80944d4dbe4f4e43bdeddc407a7957a51b28082d5b90d4e27f06cc554792bb9eb7ccbf221003f012c91cd1f329af998ae4e SHA512 9aa2e1800807841ec0432289b672c1607bdcb295f29c02d38adfaf1e3bf043040c9f916e4cb170875d92fe168c5ba6baef2b3d1f824a56ff9138ca2cdcc646e0
+EBUILD go-1.10.7.ebuild 5650 BLAKE2B c3812d6c74ddb4bd89b32213974a879223ae61266de385e12647b5decb9e4de2aa39a52d8bc307ae057be6d81e666006fc6b9156dc53469ea435584f1caf8562 SHA512 de3bc87153de87cf2bb44a99fdf851ac81c57707ab6db021843c87c628e8940d8ac85cd263121554dd6d2ed1432fc3781f4ec20132aeed996473326c2a0e9ae0
+EBUILD go-1.11.4.ebuild 5994 BLAKE2B 8d65b61d9f1fec87e09b1615eb423e094649f99b5c96f4bdb0e64032b8b6b506277d33d2f45c2771864e89efa5f6bb244e75edd40a5582d0ecb866c2314d535e SHA512 5642f4147ad262d121f0f7c1b3cc30318241937b9e1ed8010e2103e1dfd17646a03736d97675aa71c1c507475c1aecb37b7f1985b92cda991af189be4643de85
+EBUILD go-9999.ebuild 5991 BLAKE2B d5679b2d7fc97084a0b8b3c3cf07698f15a831a8a60ca98669a9eff704ec9545c318472936bc6dec83aa0c943a2db294e74f027de4a650d2514f31cba035b7e4 SHA512 3a5973f3094a4196ec3afbab69fd6453c488c84abd83d70490a5573246616b8d7605412d22946bf2f23a2c315ad988220472cef32ba2b116e79f945e86224e1a
MISC metadata.xml 538 BLAKE2B 78502c369a490804b2c69eef864276c2be5d0ee84ec189b6cc8584f8f42668a35f3c74bd25ceb53c469716337cbab908c576ca880c492f5961fedafc74cc346f SHA512 514a441a522218fdca543a22370e965a2bfc1f1f2c37e77431143329bb3d3f4f53e99ad5d7f7d7c61877f77387a777f7b4f339b9a3e45322d01d39d3d0ea1309
diff --git a/dev-lang/go/go-1.10.4.ebuild b/dev-lang/go/go-1.10.4.ebuild
deleted file mode 100644
index 3eecca0eb622..000000000000
--- a/dev-lang/go/go-1.10.4.ebuild
+++ /dev/null
@@ -1,228 +0,0 @@
-# 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="!<dev-go/go-tools-0_pre20150902"
-
-# These test data objects have writable/executable stacks.
-QA_EXECSTACK="
- usr/lib/go/src/debug/elf/testdata/*.obj
- usr/lib/go/src/go/internal/gccgoimporter/testdata/escapeinfo.gox
- usr/lib/go/src/go/internal/gccgoimporter/testdata/unicode.gox
- usr/lib/go/src/go/internal/gccgoimporter/testdata/time.gox
- "
-
-# Do not complain about CFLAGS, etc, since Go doesn't use them.
-QA_FLAGS_IGNORED='.*'
-
-REQUIRES_EXCLUDE="/usr/lib/go/src/debug/elf/testdata/*"
-
-# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
-QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
-
-# Do not strip this package. Stripping is unsupported upstream and may
-# fail.
-RESTRICT+=" strip"
-
-DOCS=(
-AUTHORS
-CONTRIBUTING.md
-CONTRIBUTORS
-PATENTS
-README.md
-)
-
-go_arch()
-{
- # By chance most portage arch names match Go
- local portage_arch=$(tc-arch $@)
- case "${portage_arch}" in
- x86) echo 386;;
- x64-*) echo amd64;;
- ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
- s390) echo s390x ;;
- *) echo "${portage_arch}";;
- esac
-}
-
-go_arm()
-{
- case "${1:-${CHOST}}" in
- armv5*) echo 5;;
- armv6*) echo 6;;
- armv7*) echo 7;;
- *)
- die "unknown GOARM for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_os()
-{
- case "${1:-${CHOST}}" in
- *-linux*) echo linux;;
- *-darwin*) echo darwin;;
- *-freebsd*) echo freebsd;;
- *-netbsd*) echo netbsd;;
- *-openbsd*) echo openbsd;;
- *-solaris*) echo solaris;;
- *-cygwin*|*-interix*|*-winnt*)
- echo windows
- ;;
- *)
- die "unknown GOOS for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_tuple()
-{
- echo "$(go_os $@)_$(go_arch $@)"
-}
-
-go_cross_compile()
-{
- [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
-}
-
-pkg_pretend()
-{
- # make.bash does not understand cross-compiling a cross-compiler
- if [[ $(go_tuple) != $(go_tuple ${CTARGET}) ]]; then
- die "CHOST CTARGET pair unsupported: CHOST=${CHOST} CTARGET=${CTARGET}"
- fi
-}
-
-src_unpack()
-{
- if [[ ${PV} = 9999 ]]; then
- git-r3_src_unpack
- fi
- default
-}
-
-src_compile()
-{
- export GOROOT_BOOTSTRAP="${WORKDIR}"/go-$(go_os)-$(go_arch)-bootstrap
- if use gccgo; then
- mkdir -p "${GOROOT_BOOTSTRAP}/bin" || die
- local go_binary=$(gcc-config --get-bin-path)/go-$(gcc-major-version)
- [[ -x ${go_binary} ]] || go_binary=$(
- find "${EPREFIX}"/usr/${CHOST}/gcc-bin/*/go-$(gcc-major-version) |
- sort -V | tail -n1)
- [[ -x ${go_binary} ]] ||
- die "go-$(gcc-major-version): command not found"
- ln -s "${go_binary}" "${GOROOT_BOOTSTRAP}/bin/go" || die
- fi
- export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
- export GOROOT="$(pwd)"
- export GOBIN="${GOROOT}/bin"
-
- # Go's build script does not use BUILD/HOST/TARGET consistently. :(
- export GOHOSTARCH=$(go_arch ${CBUILD})
- export GOHOSTOS=$(go_os ${CBUILD})
- export CC=$(tc-getBUILD_CC)
-
- export GOARCH=$(go_arch)
- export GOOS=$(go_os)
- export CC_FOR_TARGET=$(tc-getCC)
- export CXX_FOR_TARGET=$(tc-getCXX)
- if [[ ${ARCH} == arm ]]; then
- export GOARM=$(go_arm)
- fi
- einfo "GOROOT_BOOTSTRAP is ${GOROOT_BOOTSTRAP}"
-
- cd src
- ./make.bash || die "build failed"
-}
-
-src_test()
-{
- go_cross_compile && return 0
-
- cd src
- PATH="${GOBIN}:${PATH}" \
- ./run.bash -no-rebuild || die "tests failed"
-}
-
-src_install()
-{
- local bin_path f x
-
- dodir /usr/lib/go
-
- # There is a known issue which requires the source tree to be installed [1].
- # Once this is fixed, we can consider using the doc use flag to control
- # installing the doc and src directories.
- # [1] https://golang.org/issue/2775
- #
- # deliberately use cp to retain permissions
- cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
- if go_cross_compile; then
- bin_path="bin/$(go_tuple)"
- else
- bin_path=bin
- fi
- for x in ${bin_path}/*; do
- f=${x##*/}
- dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
- done
- einstalldocs
-}
diff --git a/dev-lang/go/go-1.10.5.ebuild b/dev-lang/go/go-1.10.5.ebuild
deleted file mode 100644
index 3eecca0eb622..000000000000
--- a/dev-lang/go/go-1.10.5.ebuild
+++ /dev/null
@@ -1,228 +0,0 @@
-# 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="!<dev-go/go-tools-0_pre20150902"
-
-# These test data objects have writable/executable stacks.
-QA_EXECSTACK="
- usr/lib/go/src/debug/elf/testdata/*.obj
- usr/lib/go/src/go/internal/gccgoimporter/testdata/escapeinfo.gox
- usr/lib/go/src/go/internal/gccgoimporter/testdata/unicode.gox
- usr/lib/go/src/go/internal/gccgoimporter/testdata/time.gox
- "
-
-# Do not complain about CFLAGS, etc, since Go doesn't use them.
-QA_FLAGS_IGNORED='.*'
-
-REQUIRES_EXCLUDE="/usr/lib/go/src/debug/elf/testdata/*"
-
-# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
-QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
-
-# Do not strip this package. Stripping is unsupported upstream and may
-# fail.
-RESTRICT+=" strip"
-
-DOCS=(
-AUTHORS
-CONTRIBUTING.md
-CONTRIBUTORS
-PATENTS
-README.md
-)
-
-go_arch()
-{
- # By chance most portage arch names match Go
- local portage_arch=$(tc-arch $@)
- case "${portage_arch}" in
- x86) echo 386;;
- x64-*) echo amd64;;
- ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
- s390) echo s390x ;;
- *) echo "${portage_arch}";;
- esac
-}
-
-go_arm()
-{
- case "${1:-${CHOST}}" in
- armv5*) echo 5;;
- armv6*) echo 6;;
- armv7*) echo 7;;
- *)
- die "unknown GOARM for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_os()
-{
- case "${1:-${CHOST}}" in
- *-linux*) echo linux;;
- *-darwin*) echo darwin;;
- *-freebsd*) echo freebsd;;
- *-netbsd*) echo netbsd;;
- *-openbsd*) echo openbsd;;
- *-solaris*) echo solaris;;
- *-cygwin*|*-interix*|*-winnt*)
- echo windows
- ;;
- *)
- die "unknown GOOS for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_tuple()
-{
- echo "$(go_os $@)_$(go_arch $@)"
-}
-
-go_cross_compile()
-{
- [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
-}
-
-pkg_pretend()
-{
- # make.bash does not understand cross-compiling a cross-compiler
- if [[ $(go_tuple) != $(go_tuple ${CTARGET}) ]]; then
- die "CHOST CTARGET pair unsupported: CHOST=${CHOST} CTARGET=${CTARGET}"
- fi
-}
-
-src_unpack()
-{
- if [[ ${PV} = 9999 ]]; then
- git-r3_src_unpack
- fi
- default
-}
-
-src_compile()
-{
- export GOROOT_BOOTSTRAP="${WORKDIR}"/go-$(go_os)-$(go_arch)-bootstrap
- if use gccgo; then
- mkdir -p "${GOROOT_BOOTSTRAP}/bin" || die
- local go_binary=$(gcc-config --get-bin-path)/go-$(gcc-major-version)
- [[ -x ${go_binary} ]] || go_binary=$(
- find "${EPREFIX}"/usr/${CHOST}/gcc-bin/*/go-$(gcc-major-version) |
- sort -V | tail -n1)
- [[ -x ${go_binary} ]] ||
- die "go-$(gcc-major-version): command not found"
- ln -s "${go_binary}" "${GOROOT_BOOTSTRAP}/bin/go" || die
- fi
- export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
- export GOROOT="$(pwd)"
- export GOBIN="${GOROOT}/bin"
-
- # Go's build script does not use BUILD/HOST/TARGET consistently. :(
- export GOHOSTARCH=$(go_arch ${CBUILD})
- export GOHOSTOS=$(go_os ${CBUILD})
- export CC=$(tc-getBUILD_CC)
-
- export GOARCH=$(go_arch)
- export GOOS=$(go_os)
- export CC_FOR_TARGET=$(tc-getCC)
- export CXX_FOR_TARGET=$(tc-getCXX)
- if [[ ${ARCH} == arm ]]; then
- export GOARM=$(go_arm)
- fi
- einfo "GOROOT_BOOTSTRAP is ${GOROOT_BOOTSTRAP}"
-
- cd src
- ./make.bash || die "build failed"
-}
-
-src_test()
-{
- go_cross_compile && return 0
-
- cd src
- PATH="${GOBIN}:${PATH}" \
- ./run.bash -no-rebuild || die "tests failed"
-}
-
-src_install()
-{
- local bin_path f x
-
- dodir /usr/lib/go
-
- # There is a known issue which requires the source tree to be installed [1].
- # Once this is fixed, we can consider using the doc use flag to control
- # installing the doc and src directories.
- # [1] https://golang.org/issue/2775
- #
- # deliberately use cp to retain permissions
- cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
- if go_cross_compile; then
- bin_path="bin/$(go_tuple)"
- else
- bin_path=bin
- fi
- for x in ${bin_path}/*; do
- f=${x##*/}
- dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
- done
- einstalldocs
-}
diff --git a/dev-lang/go/go-1.10.1.ebuild b/dev-lang/go/go-1.10.7.ebuild
index d383981a727b..9ce0ac6ccf5a 100644
--- a/dev-lang/go/go-1.10.1.ebuild
+++ b/dev-lang/go/go-1.10.7.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
diff --git a/dev-lang/go/go-1.11.1.ebuild b/dev-lang/go/go-1.11.1.ebuild
deleted file mode 100644
index 3eecca0eb622..000000000000
--- a/dev-lang/go/go-1.11.1.ebuild
+++ /dev/null
@@ -1,228 +0,0 @@
-# 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="!<dev-go/go-tools-0_pre20150902"
-
-# These test data objects have writable/executable stacks.
-QA_EXECSTACK="
- usr/lib/go/src/debug/elf/testdata/*.obj
- usr/lib/go/src/go/internal/gccgoimporter/testdata/escapeinfo.gox
- usr/lib/go/src/go/internal/gccgoimporter/testdata/unicode.gox
- usr/lib/go/src/go/internal/gccgoimporter/testdata/time.gox
- "
-
-# Do not complain about CFLAGS, etc, since Go doesn't use them.
-QA_FLAGS_IGNORED='.*'
-
-REQUIRES_EXCLUDE="/usr/lib/go/src/debug/elf/testdata/*"
-
-# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
-QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
-
-# Do not strip this package. Stripping is unsupported upstream and may
-# fail.
-RESTRICT+=" strip"
-
-DOCS=(
-AUTHORS
-CONTRIBUTING.md
-CONTRIBUTORS
-PATENTS
-README.md
-)
-
-go_arch()
-{
- # By chance most portage arch names match Go
- local portage_arch=$(tc-arch $@)
- case "${portage_arch}" in
- x86) echo 386;;
- x64-*) echo amd64;;
- ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
- s390) echo s390x ;;
- *) echo "${portage_arch}";;
- esac
-}
-
-go_arm()
-{
- case "${1:-${CHOST}}" in
- armv5*) echo 5;;
- armv6*) echo 6;;
- armv7*) echo 7;;
- *)
- die "unknown GOARM for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_os()
-{
- case "${1:-${CHOST}}" in
- *-linux*) echo linux;;
- *-darwin*) echo darwin;;
- *-freebsd*) echo freebsd;;
- *-netbsd*) echo netbsd;;
- *-openbsd*) echo openbsd;;
- *-solaris*) echo solaris;;
- *-cygwin*|*-interix*|*-winnt*)
- echo windows
- ;;
- *)
- die "unknown GOOS for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_tuple()
-{
- echo "$(go_os $@)_$(go_arch $@)"
-}
-
-go_cross_compile()
-{
- [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
-}
-
-pkg_pretend()
-{
- # make.bash does not understand cross-compiling a cross-compiler
- if [[ $(go_tuple) != $(go_tuple ${CTARGET}) ]]; then
- die "CHOST CTARGET pair unsupported: CHOST=${CHOST} CTARGET=${CTARGET}"
- fi
-}
-
-src_unpack()
-{
- if [[ ${PV} = 9999 ]]; then
- git-r3_src_unpack
- fi
- default
-}
-
-src_compile()
-{
- export GOROOT_BOOTSTRAP="${WORKDIR}"/go-$(go_os)-$(go_arch)-bootstrap
- if use gccgo; then
- mkdir -p "${GOROOT_BOOTSTRAP}/bin" || die
- local go_binary=$(gcc-config --get-bin-path)/go-$(gcc-major-version)
- [[ -x ${go_binary} ]] || go_binary=$(
- find "${EPREFIX}"/usr/${CHOST}/gcc-bin/*/go-$(gcc-major-version) |
- sort -V | tail -n1)
- [[ -x ${go_binary} ]] ||
- die "go-$(gcc-major-version): command not found"
- ln -s "${go_binary}" "${GOROOT_BOOTSTRAP}/bin/go" || die
- fi
- export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
- export GOROOT="$(pwd)"
- export GOBIN="${GOROOT}/bin"
-
- # Go's build script does not use BUILD/HOST/TARGET consistently. :(
- export GOHOSTARCH=$(go_arch ${CBUILD})
- export GOHOSTOS=$(go_os ${CBUILD})
- export CC=$(tc-getBUILD_CC)
-
- export GOARCH=$(go_arch)
- export GOOS=$(go_os)
- export CC_FOR_TARGET=$(tc-getCC)
- export CXX_FOR_TARGET=$(tc-getCXX)
- if [[ ${ARCH} == arm ]]; then
- export GOARM=$(go_arm)
- fi
- einfo "GOROOT_BOOTSTRAP is ${GOROOT_BOOTSTRAP}"
-
- cd src
- ./make.bash || die "build failed"
-}
-
-src_test()
-{
- go_cross_compile && return 0
-
- cd src
- PATH="${GOBIN}:${PATH}" \
- ./run.bash -no-rebuild || die "tests failed"
-}
-
-src_install()
-{
- local bin_path f x
-
- dodir /usr/lib/go
-
- # There is a known issue which requires the source tree to be installed [1].
- # Once this is fixed, we can consider using the doc use flag to control
- # installing the doc and src directories.
- # [1] https://golang.org/issue/2775
- #
- # deliberately use cp to retain permissions
- cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
- if go_cross_compile; then
- bin_path="bin/$(go_tuple)"
- else
- bin_path=bin
- fi
- for x in ${bin_path}/*; do
- f=${x##*/}
- dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
- done
- einstalldocs
-}
diff --git a/dev-lang/go/go-1.11.2.ebuild b/dev-lang/go/go-1.11.2.ebuild
deleted file mode 100644
index 3eecca0eb622..000000000000
--- a/dev-lang/go/go-1.11.2.ebuild
+++ /dev/null
@@ -1,228 +0,0 @@
-# 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="!<dev-go/go-tools-0_pre20150902"
-
-# These test data objects have writable/executable stacks.
-QA_EXECSTACK="
- usr/lib/go/src/debug/elf/testdata/*.obj
- usr/lib/go/src/go/internal/gccgoimporter/testdata/escapeinfo.gox
- usr/lib/go/src/go/internal/gccgoimporter/testdata/unicode.gox
- usr/lib/go/src/go/internal/gccgoimporter/testdata/time.gox
- "
-
-# Do not complain about CFLAGS, etc, since Go doesn't use them.
-QA_FLAGS_IGNORED='.*'
-
-REQUIRES_EXCLUDE="/usr/lib/go/src/debug/elf/testdata/*"
-
-# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
-QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
-
-# Do not strip this package. Stripping is unsupported upstream and may
-# fail.
-RESTRICT+=" strip"
-
-DOCS=(
-AUTHORS
-CONTRIBUTING.md
-CONTRIBUTORS
-PATENTS
-README.md
-)
-
-go_arch()
-{
- # By chance most portage arch names match Go
- local portage_arch=$(tc-arch $@)
- case "${portage_arch}" in
- x86) echo 386;;
- x64-*) echo amd64;;
- ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
- s390) echo s390x ;;
- *) echo "${portage_arch}";;
- esac
-}
-
-go_arm()
-{
- case "${1:-${CHOST}}" in
- armv5*) echo 5;;
- armv6*) echo 6;;
- armv7*) echo 7;;
- *)
- die "unknown GOARM for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_os()
-{
- case "${1:-${CHOST}}" in
- *-linux*) echo linux;;
- *-darwin*) echo darwin;;
- *-freebsd*) echo freebsd;;
- *-netbsd*) echo netbsd;;
- *-openbsd*) echo openbsd;;
- *-solaris*) echo solaris;;
- *-cygwin*|*-interix*|*-winnt*)
- echo windows
- ;;
- *)
- die "unknown GOOS for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_tuple()
-{
- echo "$(go_os $@)_$(go_arch $@)"
-}
-
-go_cross_compile()
-{
- [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
-}
-
-pkg_pretend()
-{
- # make.bash does not understand cross-compiling a cross-compiler
- if [[ $(go_tuple) != $(go_tuple ${CTARGET}) ]]; then
- die "CHOST CTARGET pair unsupported: CHOST=${CHOST} CTARGET=${CTARGET}"
- fi
-}
-
-src_unpack()
-{
- if [[ ${PV} = 9999 ]]; then
- git-r3_src_unpack
- fi
- default
-}
-
-src_compile()
-{
- export GOROOT_BOOTSTRAP="${WORKDIR}"/go-$(go_os)-$(go_arch)-bootstrap
- if use gccgo; then
- mkdir -p "${GOROOT_BOOTSTRAP}/bin" || die
- local go_binary=$(gcc-config --get-bin-path)/go-$(gcc-major-version)
- [[ -x ${go_binary} ]] || go_binary=$(
- find "${EPREFIX}"/usr/${CHOST}/gcc-bin/*/go-$(gcc-major-version) |
- sort -V | tail -n1)
- [[ -x ${go_binary} ]] ||
- die "go-$(gcc-major-version): command not found"
- ln -s "${go_binary}" "${GOROOT_BOOTSTRAP}/bin/go" || die
- fi
- export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
- export GOROOT="$(pwd)"
- export GOBIN="${GOROOT}/bin"
-
- # Go's build script does not use BUILD/HOST/TARGET consistently. :(
- export GOHOSTARCH=$(go_arch ${CBUILD})
- export GOHOSTOS=$(go_os ${CBUILD})
- export CC=$(tc-getBUILD_CC)
-
- export GOARCH=$(go_arch)
- export GOOS=$(go_os)
- export CC_FOR_TARGET=$(tc-getCC)
- export CXX_FOR_TARGET=$(tc-getCXX)
- if [[ ${ARCH} == arm ]]; then
- export GOARM=$(go_arm)
- fi
- einfo "GOROOT_BOOTSTRAP is ${GOROOT_BOOTSTRAP}"
-
- cd src
- ./make.bash || die "build failed"
-}
-
-src_test()
-{
- go_cross_compile && return 0
-
- cd src
- PATH="${GOBIN}:${PATH}" \
- ./run.bash -no-rebuild || die "tests failed"
-}
-
-src_install()
-{
- local bin_path f x
-
- dodir /usr/lib/go
-
- # There is a known issue which requires the source tree to be installed [1].
- # Once this is fixed, we can consider using the doc use flag to control
- # installing the doc and src directories.
- # [1] https://golang.org/issue/2775
- #
- # deliberately use cp to retain permissions
- cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
- if go_cross_compile; then
- bin_path="bin/$(go_tuple)"
- else
- bin_path=bin
- fi
- for x in ${bin_path}/*; do
- f=${x##*/}
- dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
- done
- einstalldocs
-}
diff --git a/dev-lang/go/go-1.10.3.ebuild b/dev-lang/go/go-1.11.4.ebuild
index d383981a727b..3e74892a018f 100644
--- a/dev-lang/go/go-1.10.3.ebuild
+++ b/dev-lang/go/go-1.11.4.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
@@ -225,4 +225,12 @@ src_install()
dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
done
einstalldocs
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # fix install_name for test object (binutils_test) on Darwin, it
+ # is never used in real circumstances
+ local libmac64="${EPREFIX}"/usr/lib/go/src/cmd/vendor/github.com/
+ libmac64+=google/pprof/internal/binutils/testdata/lib_mac_64
+ install_name_tool -id "${libmac64}" "${D}${libmac64}"
+ fi
}
diff --git a/dev-lang/go/go-1.11.ebuild b/dev-lang/go/go-1.11.ebuild
deleted file mode 100644
index 8c2ff8874012..000000000000
--- a/dev-lang/go/go-1.11.ebuild
+++ /dev/null
@@ -1,228 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# 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="!<dev-go/go-tools-0_pre20150902"
-
-# These test data objects have writable/executable stacks.
-QA_EXECSTACK="
- usr/lib/go/src/debug/elf/testdata/*.obj
- usr/lib/go/src/go/internal/gccgoimporter/testdata/escapeinfo.gox
- usr/lib/go/src/go/internal/gccgoimporter/testdata/unicode.gox
- usr/lib/go/src/go/internal/gccgoimporter/testdata/time.gox
- "
-
-# Do not complain about CFLAGS, etc, since Go doesn't use them.
-QA_FLAGS_IGNORED='.*'
-
-REQUIRES_EXCLUDE="/usr/lib/go/src/debug/elf/testdata/*"
-
-# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
-QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
-
-# Do not strip this package. Stripping is unsupported upstream and may
-# fail.
-RESTRICT+=" strip"
-
-DOCS=(
-AUTHORS
-CONTRIBUTING.md
-CONTRIBUTORS
-PATENTS
-README.md
-)
-
-go_arch()
-{
- # By chance most portage arch names match Go
- local portage_arch=$(tc-arch $@)
- case "${portage_arch}" in
- x86) echo 386;;
- x64-*) echo amd64;;
- ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
- s390) echo s390x ;;
- *) echo "${portage_arch}";;
- esac
-}
-
-go_arm()
-{
- case "${1:-${CHOST}}" in
- armv5*) echo 5;;
- armv6*) echo 6;;
- armv7*) echo 7;;
- *)
- die "unknown GOARM for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_os()
-{
- case "${1:-${CHOST}}" in
- *-linux*) echo linux;;
- *-darwin*) echo darwin;;
- *-freebsd*) echo freebsd;;
- *-netbsd*) echo netbsd;;
- *-openbsd*) echo openbsd;;
- *-solaris*) echo solaris;;
- *-cygwin*|*-interix*|*-winnt*)
- echo windows
- ;;
- *)
- die "unknown GOOS for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_tuple()
-{
- echo "$(go_os $@)_$(go_arch $@)"
-}
-
-go_cross_compile()
-{
- [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
-}
-
-pkg_pretend()
-{
- # make.bash does not understand cross-compiling a cross-compiler
- if [[ $(go_tuple) != $(go_tuple ${CTARGET}) ]]; then
- die "CHOST CTARGET pair unsupported: CHOST=${CHOST} CTARGET=${CTARGET}"
- fi
-}
-
-src_unpack()
-{
- if [[ ${PV} = 9999 ]]; then
- git-r3_src_unpack
- fi
- default
-}
-
-src_compile()
-{
- export GOROOT_BOOTSTRAP="${WORKDIR}"/go-$(go_os)-$(go_arch)-bootstrap
- if use gccgo; then
- mkdir -p "${GOROOT_BOOTSTRAP}/bin" || die
- local go_binary=$(gcc-config --get-bin-path)/go-$(gcc-major-version)
- [[ -x ${go_binary} ]] || go_binary=$(
- find "${EPREFIX}"/usr/${CHOST}/gcc-bin/*/go-$(gcc-major-version) |
- sort -V | tail -n1)
- [[ -x ${go_binary} ]] ||
- die "go-$(gcc-major-version): command not found"
- ln -s "${go_binary}" "${GOROOT_BOOTSTRAP}/bin/go" || die
- fi
- export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
- export GOROOT="$(pwd)"
- export GOBIN="${GOROOT}/bin"
-
- # Go's build script does not use BUILD/HOST/TARGET consistently. :(
- export GOHOSTARCH=$(go_arch ${CBUILD})
- export GOHOSTOS=$(go_os ${CBUILD})
- export CC=$(tc-getBUILD_CC)
-
- export GOARCH=$(go_arch)
- export GOOS=$(go_os)
- export CC_FOR_TARGET=$(tc-getCC)
- export CXX_FOR_TARGET=$(tc-getCXX)
- if [[ ${ARCH} == arm ]]; then
- export GOARM=$(go_arm)
- fi
- einfo "GOROOT_BOOTSTRAP is ${GOROOT_BOOTSTRAP}"
-
- cd src
- ./make.bash || die "build failed"
-}
-
-src_test()
-{
- go_cross_compile && return 0
-
- cd src
- PATH="${GOBIN}:${PATH}" \
- ./run.bash -no-rebuild || die "tests failed"
-}
-
-src_install()
-{
- local bin_path f x
-
- dodir /usr/lib/go
-
- # There is a known issue which requires the source tree to be installed [1].
- # Once this is fixed, we can consider using the doc use flag to control
- # installing the doc and src directories.
- # [1] https://golang.org/issue/2775
- #
- # deliberately use cp to retain permissions
- cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
- if go_cross_compile; then
- bin_path="bin/$(go_tuple)"
- else
- bin_path=bin
- fi
- for x in ${bin_path}/*; do
- f=${x##*/}
- dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
- done
- einstalldocs
-}
diff --git a/dev-lang/go/go-9999.ebuild b/dev-lang/go/go-9999.ebuild
index 503bf3c4a123..dd4aa9a0894b 100644
--- a/dev-lang/go/go-9999.ebuild
+++ b/dev-lang/go/go-9999.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
@@ -225,4 +225,12 @@ src_install()
dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
done
einstalldocs
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # fix install_name for test object (binutils_test) on Darwin, it
+ # is never used in real circumstances
+ local libmac64="${EPREFIX}"/usr/lib/go/src/cmd/vendor/github.com/
+ libmac64+=google/pprof/internal/binutils/testdata/lib_mac_64
+ install_name_tool -id "${libmac64}" "${D}${libmac64}"
+ fi
}
diff --git a/dev-lang/hy/Manifest b/dev-lang/hy/Manifest
index a3741d2b572c..427dbad7dcf9 100644
--- a/dev-lang/hy/Manifest
+++ b/dev-lang/hy/Manifest
@@ -1,3 +1,4 @@
+AUX hy-0.15.0-do-not-install-get_version.py.patch 569 BLAKE2B 548cec5bc35f65721b4c8109256e79f2cbf8d2ba6620b66f88618678f73c6117c354622ffdce4936ccbd3574d3f3ce3517eb7f763bf5d770ac652992c81a1cea SHA512 c9ea2ae683ec8391192918cf0173e598732f1d5c1e4cd0814c63b20055c781b8a194694f6ed2585cb4acd43756650a8d9e6d3918956521c24b7c798ee8bdcec1
DIST hy-0.10.0.tar.gz 340981 BLAKE2B d9f163ce1d8eaf6e333444e1329a9d08552682a0dddb3c2d27c989d788425c3aabf822c36030ec5fc421ac1b2f25962a5c353b6fc89f75612cd4607ed2da9aa4 SHA512 4f994289a00f16ed9c914fe8f37332d1bea9ddf3d2f42c30793da1030983d66d368d4bf75853dd76be14e440fca72aa3cccd3ddb5544e1db2b892a543bb1093b
DIST hy-0.10.1.tar.gz 348807 BLAKE2B 3ff499b4922c47534baa83eb7b151d1b43787cb07a652ffd36e99eff5551b794f7e186379c9985c338356f48d67d03f96173c062f8ff280c97bdf55ed04d2fc8 SHA512 d96a5857fc6985fe044a152b276572f7943d3c579cf54daa675ec5d3e5d44836c151eb58f8e5cea8811f3bcb32b724fb24f8d61dc9ba917972673630e9cff7dc
DIST hy-0.11.1.tar.gz 358882 BLAKE2B c488079bd660f747d7a90abaef5563111bebe401eadb967689435f8fa38605c7fbffc8b9c4ed3660d3e2805bf0017224f6a5299a45762f45f5192c7d274ff879 SHA512 c3bb39e41bba306a529051aa214350dd51118bce956670b9688ecbd08d8e85c23efd4eae06977bab7f3a50f8cca1626d7a6442de6b59972fe1d91bdb791aa836
@@ -6,6 +7,7 @@ DIST hy-0.12.1.tar.gz 379361 BLAKE2B 212a902f287d5b358e9fa4a54ad7bcbf21ed693d6ad
DIST hy-0.13.0.tar.gz 383197 BLAKE2B 5ec7826ebe8b4809c1a49d5dac333fd9e60b5a1a5aee947194df47c5f05bada34f2341e779dcf371c0736721cf93d0d114bb0fe4cd46d124b81c226e39aad533 SHA512 a1138c73584f5dc839d8085aaef24da6450789a0d466cea61ecb3740f865ee2aadc52dde3e5c76d945f16fb88c5fdfa4fd9bbcf35cdcd3fc2337fd1f13548b54
DIST hy-0.13.1.tar.gz 383213 BLAKE2B e002218811cadf8db558284e7124114891c76df334ac3cda7b02c57bcdc37c0e65fb202f07f694d6948159051b88631ec9cb22f22207bf23b39c75125bcfcad3 SHA512 40ec426152ef20ff3d4e23043d9ab178a924a2dca3586fd2dfddf5477612246024222b50e62e6f356649c0d035fd202da89e974acf345db6e5c807883dbb86c5
DIST hy-0.14.0.tar.gz 403692 BLAKE2B 4d20574151c443e002e365bceecc11b2bdcd7aa294073c58cba4ec8a958534c9f1256848ef57e4d5dd3ec345decaa53db43768a78af542ba8a59ff50489486b1 SHA512 a04da48592058b8ad3e7d2a787149622bfcf61c01a341ccc166c2e25e18ed7616b6567b529cf4f6d80a9cecf44aac175577ebf185c77e941a11a258f8563da9e
+DIST hy-0.15.0.tar.gz 411900 BLAKE2B 88a7500ecebacd7995aba1efbabead22ce656b1d6e275c5c726ce9b27746729344adfd35f2dfb4247c6d41101317eecfd98e0379e84f88ffea85bfaef2101797 SHA512 d4a08c7df494c5f9ae9a48e51b642cf8c30850209765fb80304132b57fb1133a839c82945662550d1417f4cae4e15f25da388be180143ed7b28fe8d5129844cc
EBUILD hy-0.10.0.ebuild 807 BLAKE2B 03d4a01ecf3f0446e80ea3e2e925540a9544a5539f558246f6701b2e9fb536b843e9415d4ec525b6d2f2cbc9b619185c930f79d67910d6247a75cb6cf080f2ae SHA512 19341e28a59212b19ac3713773b2f0111b85302b581a0068dbcc433500935f9d8f7289011e4e03211c8fd7ca047aff210236b01be3877f0a4a9c08143b48bc9f
EBUILD hy-0.10.1.ebuild 817 BLAKE2B 999099c504645da0849beee79a99b8b6f55b55bc25ba7986c2e3f8e72e92c164ddf3acb0fe3d648f172ee40c49ea7b853d0c5d7ba1033a709ff60a430b9d3391 SHA512 673d7dea190c41d50c68e396da6c9c336e5c879c1271aeeac195d9ca5f99d61b04f2fd0c57097283727f2b9318d08f859774de273916249feb89bdd1511f69a3
EBUILD hy-0.11.1.ebuild 1074 BLAKE2B 020f79c22d1ee7ac106b4514d185f9acd4f633c5c1e7e253b017586b7c47ad50f9a379cf9cb6ac6b544d45371b2002d2c3d1c363654d56f99dbbc0c037971377 SHA512 31ef5c2a2a4b95b2ffa8d42a89ee3cc43bf460bdef00e3d33d264bff824fb04579764363a2b549f27792f556dcfdcbbebb0b261b6d3d08a533ac121bb6995aaf
@@ -14,4 +16,5 @@ EBUILD hy-0.12.1.ebuild 1080 BLAKE2B 54a1eb432f10c82d461cc1568696c17d81ab4bcc985
EBUILD hy-0.13.0.ebuild 1036 BLAKE2B f818641b2cd4792715b677baf83f3e13fc5098774297fbc93f1d8c3a006637fcd8c6db549da65b2debd0fdd242e4ab933c087f13d42a82be33660df38c144ce1 SHA512 9c2605a00ec3ccbdcb6d5a5fde924f9a72b386d126469e38434c2eaccc9791b48a19cb92c2e84b32eadf6d99225d59aacbdc8c809643120fac61fbd85b89a35c
EBUILD hy-0.13.1.ebuild 1036 BLAKE2B f818641b2cd4792715b677baf83f3e13fc5098774297fbc93f1d8c3a006637fcd8c6db549da65b2debd0fdd242e4ab933c087f13d42a82be33660df38c144ce1 SHA512 9c2605a00ec3ccbdcb6d5a5fde924f9a72b386d126469e38434c2eaccc9791b48a19cb92c2e84b32eadf6d99225d59aacbdc8c809643120fac61fbd85b89a35c
EBUILD hy-0.14.0.ebuild 967 BLAKE2B 7ae59ec7fdf62805b804f67ed312f69a9bd8f79c868ecb412c274981d414c4e33d404e7c4d90acf8a4e14ec6d0802f3494b67ccdfdda3aafbfe278c4c974abf1 SHA512 aedd6cabbbaa45ef21d135a45f171ae403914e152d04509be1d35c04bb3c495d56225203d636cb401953a32fa234d231f093b33027eab0c8073ad2122ea6cd82
+EBUILD hy-0.15.0.ebuild 1106 BLAKE2B 3612f3d31e1e24e88f02c809cdf6f2696dccfc7446c2d8ac858c9c4494747a28994ab18ca1f0d20c1c01570eed80779c2164cac3b9ea2ee44c6e65853f75c486 SHA512 cc99dd55a60a38e8241f3116e0725a7a0fc9871061f60780e54e679f7d492c93529b0535ca7c95ae4d668dea605622dbeac00522e9005ea389c0b5ab4277a493
MISC metadata.xml 331 BLAKE2B 1377771edc92d3cd1ea685b43816a4ffd6c84d06245f00414df594d9d1aee498ca2a5ede2d92c2f0607fd26127730a8f7e1e6eadf6fd916325967b282e32f092 SHA512 97afa7992933d5088e939afd4005e188fd2979ccf7fc21561561b14e1eecfee61e867288c21b4a396fc5ca4926fd3d62c9d8c5be217b9392a5208371fa3aa719
diff --git a/dev-lang/hy/files/hy-0.15.0-do-not-install-get_version.py.patch b/dev-lang/hy/files/hy-0.15.0-do-not-install-get_version.py.patch
new file mode 100644
index 000000000000..088b382a8913
--- /dev/null
+++ b/dev-lang/hy/files/hy-0.15.0-do-not-install-get_version.py.patch
@@ -0,0 +1,22 @@
+Don't install get_version.py
+
+This reverts commit 7361b37a7580bb5caaf7696b7bff5954042fd52b.
+
+This file is not used at runtime, and the way it was installed violated FHS.
+
+---
+ setup.py | 3 ---
+ 1 file changed, 3 deletions(-)
+
+--- a/setup.py
++++ b/setup.py
+@@ -58,9 +58,6 @@ def run(self):
+ 'hy.core': ['*.hy', '__pycache__/*'],
+ 'hy.extra': ['*.hy', '__pycache__/*'],
+ },
+- data_files=[
+- ('get_version', ['get_version.py'])
+- ],
+ author="Paul Tagliamonte",
+ author_email="tag@pault.ag",
+ long_description=long_description,
diff --git a/dev-lang/hy/hy-0.15.0.ebuild b/dev-lang/hy/hy-0.15.0.ebuild
new file mode 100644
index 000000000000..ad923928b2f8
--- /dev/null
+++ b/dev-lang/hy/hy-0.15.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+RESTRICT="test" # needs some pointy sticks. Seriously.
+PYTHON_COMPAT=(python{2_7,3_5,3_6})
+
+inherit distutils-r1 eutils
+DESCRIPTION="A LISP dialect running in python"
+HOMEPAGE="http://hylang.org/"
+SRC_URI="https://github.com/hylang/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="MIT"
+SLOT="0"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="test doc"
+
+RDEPEND=">=dev-python/astor-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/clint-0.4[${PYTHON_USEDEP}]
+ dev-python/flake8[${PYTHON_USEDEP}]
+ >=dev-python/funcparserlib-0.3.6[${PYTHON_USEDEP}]
+ >=dev-python/rply-0.7.6[${PYTHON_USEDEP}]
+ "
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ )"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.15.0-do-not-install-get_version.py.patch )
+
+src_prepare() {
+ default
+ use doc && HTML_DOCS=( docs/_build/html/. )
+}
+
+python_compile_all() {
+ use doc && emake docs
+}
+
+python_test() {
+ nosetests -vv || die "Tests failed under ${EPYTHON}"
+}
diff --git a/dev-lang/icon/Manifest b/dev-lang/icon/Manifest
index c89c82afd8fd..90d81a199f45 100644
--- a/dev-lang/icon/Manifest
+++ b/dev-lang/icon/Manifest
@@ -1,4 +1,6 @@
AUX icon-9.5.1-flags.patch 2148 BLAKE2B 37fcaca92f67be74caddbf7789ca4e666a4e0b98e7cac3a89376bae5c50fd248eae0f0b282a46ec8d6dc55f5c423ad6dc69744d2999e96ec183d9bb369f7e7b0 SHA512 28b201a1347167b028187d6d35cb50450cf6a13b48fbf65a616683fb6c5d3373d9ba9e64c3d6fe397e858388c88a52ab330a00dc5e4ca087567089e8cdd3c897
+AUX icon-9.5.1-fpoll.patch 977 BLAKE2B 720fac1a8109d3400b6a718f708904d14e2d4207840a2e4d31888dd4be2d02c241c2f40271b89f6e3273732288e203e9298f061dfb485ca4eb0c24baea02534c SHA512 4b9d471d7d2992a75cccea98790339318b8a622d993a34affc69e0dbbbfa7103e8b994494eb33aaf26168bdb18623c5419f2c34471dee4adb1a004b420b793ab
DIST icon-v951src.tgz 3133040 BLAKE2B 790a66a8210c1b9c55514a560590f08d3e52d7c5115d60554183f1118b5705fc1754b8188dcc3b5b739318374d568b6eafc1e3c4266de5416709e7ce6056925b SHA512 032dc9cfa57af5af2eb84b2116d0537124b5efb87b7cf744ecace2ccf49e461d5be5f91df99d85e8a988520d144fe4ecf06a6e78f7fff997b78afa95355449ad
EBUILD icon-9.5.1-r1.ebuild 2519 BLAKE2B 0c2cfb5c74878481e6d0b6926705497e565505052ca3969aa405941700b4d58ccf03623449ca4d327d5b067e978e852e44494abe0ed3f51b3994b2a566f8a1d0 SHA512 880a9d3d48715d20846592c61196eef061446dcaaaef6620475f38955c5218c9792d3c20b3069048d6075b31ba74f76a481c3e5e507fd2f8a41e624578088b74
+EBUILD icon-9.5.1-r2.ebuild 2677 BLAKE2B 0e4c2c69d4129cca02150a4b99b19e39fafdf70e0cd69399f4799be449498ab9af1fa5e2fff29e15a684aee0ad881e55bb7f81c1157f64af29452013584b8255 SHA512 b60f02abf351ddb63afb4852189983efc46b0888bdaaf20c500a9203e0d11345d07274a22b2c0691b5a87c6c5913efeea7e9f696ce2e868fbd9580929d0fa04e
MISC metadata.xml 467 BLAKE2B b480285505dec662f62038d22a88323f01f21b100de7ee652f2e3d5f5f4cdf4345ad7d303f2713b1a2816157c46610c2f5287cb385c61998f68fd95d09bf9d5b SHA512 1a77000b72ae453ecb2bd4452e32ea917328a61bb882e107b96f013ddaa218e951743569e38e97210a341755bd7c891324123d96e56da9a5a7caa93ad4dbb93a
diff --git a/dev-lang/icon/files/icon-9.5.1-fpoll.patch b/dev-lang/icon/files/icon-9.5.1-fpoll.patch
new file mode 100644
index 000000000000..d2a4d5f33d21
--- /dev/null
+++ b/dev-lang/icon/files/icon-9.5.1-fpoll.patch
@@ -0,0 +1,27 @@
+diff --git a/ipl/cfuncs/fpoll.c b/ipl/cfuncs/fpoll.c
+index 9230e18..33b8121 100644
+--- a/ipl/cfuncs/fpoll.c
++++ b/ipl/cfuncs/fpoll.c
+@@ -60,12 +60,9 @@ int fpoll(int argc, descriptor *argv) /*: await data from file */
+
+ /* check for data already in buffer */
+ /* there's no legal way to do this in C; we cheat */
+-#if defined(__GLIBC__) && defined(_STDIO_USES_IOSTREAM) /* new GCC library */
++#if defined(__GLIBC__) /* New GCC library */
+ if (f->_IO_read_ptr < f->_IO_read_end)
+ RetArg(1);
+-#elif defined(__GLIBC__) /* old GCC library */
+- if (f->__bufp < f->__get_limit)
+- RetArg(1);
+ #elif defined(_FSTDIO) /* new BSD library */
+ if (f->_r > 0)
+ RetArg(1);
+@@ -92,7 +89,7 @@ int fpoll(int argc, descriptor *argv) /*: await data from file */
+
+ if (r > 0)
+ RetArg(1); /* success */
+- else if (r == 0)
++ else if (r == 0)
+ Fail; /* timeout */
+ else
+ ArgError(1, 214); /* I/O error */
diff --git a/dev-lang/icon/icon-9.5.1-r2.ebuild b/dev-lang/icon/icon-9.5.1-r2.ebuild
new file mode 100644
index 000000000000..5f313ed60aae
--- /dev/null
+++ b/dev-lang/icon/icon-9.5.1-r2.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit flag-o-matic toolchain-funcs
+
+DESCRIPTION="very high level language"
+HOMEPAGE="http://www.cs.arizona.edu/icon/"
+
+MY_PV=${PV//./}
+SRC_URI="http://www.cs.arizona.edu/icon/ftp/packages/unix/icon-v${MY_PV}src.tgz"
+
+LICENSE="public-domain HPND"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="X iplsrc"
+
+S="${WORKDIR}/icon-v${MY_PV}src"
+
+RDEPEND="
+ X? ( x11-libs/libX11:= )"
+DEPEND="
+ ${RDEPEND}
+ X? (
+ x11-libs/libXpm
+ x11-libs/libXt
+ )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-9.5.1-flags.patch
+ # https://bugs.gentoo.org/669330
+ # Fix glibc 2.28 problem.
+ # Patch has also been submitted for upstream approval
+ "${FILESDIR}"/${PN}-9.5.1-fpoll.patch
+)
+
+src_prepare() {
+ default
+
+ # do not prestrip files
+ find src -name 'Makefile' | xargs sed -i -e "/strip/d" || die
+}
+
+src_configure() {
+ # select the right compile target. Note there are many platforms
+ # available
+ local mytarget;
+ if [[ ${CHOST} == *-darwin* ]]; then
+ mytarget="macintosh"
+ else
+ mytarget="linux"
+ fi
+
+ # Fails if more then one make job process.
+ # This is an upstream requirement.
+ emake -j1 $(usex X X-Configure Configure) name=${mytarget}
+
+ # sanitise the Makedefs file generated by Configure
+ sed -i \
+ -e 's:-L/usr/X11R6/lib64::g' \
+ -e 's:-L/usr/X11R6/lib::g' \
+ -e 's:-I/usr/X11R6/include::g' \
+ Makedefs || die "sed of Makedefs failed"
+
+ append-flags $(test-flags -fno-strict-aliasing -fwrapv)
+}
+
+src_compile() {
+ # Fails if more then one make job process.
+ # This is an upstream requirement.
+ emake -j1 CC="$(tc-getCC)" CFLAGS="${CFLAGS}"
+}
+
+src_test() {
+ emake Samples
+ emake Test
+}
+
+src_install() {
+ # Needed for make Install
+ dodir /usr/$(get_libdir)
+
+ emake Install dest="${D}/usr/$(get_libdir)/icon"
+ dosym ../$(get_libdir)/icon/bin/icont /usr/bin/icont
+ dosym ../$(get_libdir)/icon/bin/iconx /usr/bin/iconx
+ dosym ../$(get_libdir)/icon/bin/icon /usr/bin/icon
+ dosym ../$(get_libdir)/icon/bin/vib /usr/bin/vib
+
+ cd "${S}/man/man1" || die
+ doman "${PN}"t.1
+ doman "${PN}".1
+
+ cd "${S}/doc" || die
+ DOCS=( *.txt ../README )
+
+ HTML_DOCS=( *.{htm,gif,jpg,css} )
+ einstalldocs
+
+ # Clean up items from make Install that get installed elsewhere
+ rm -rf "${ED}"/usr/$(get_libdir)/${PN}/man || die
+ rm -rf "${ED}"/usr/$(get_libdir)/icon/{doc,README} || die
+
+ # optional Icon Programming Library
+ if use iplsrc; then
+ cd "${S}" || die
+
+ # Remove unneeded files before copy
+ rm -fv ipl/{BuildBin,BuildExe,CheckAll,Makefile} || die
+
+ insinto /usr/$(get_libdir)/icon
+ doins -r ipl
+ fi
+}
diff --git a/dev-lang/lua/Manifest b/dev-lang/lua/Manifest
index cf0090bf5fa7..0a07d86da321 100644
--- a/dev-lang/lua/Manifest
+++ b/dev-lang/lua/Manifest
@@ -26,10 +26,13 @@ DIST lua-5.2.3.tar.gz 251195 BLAKE2B f3d11e180fe070cb5be98f0694081d26067e21eddeb
DIST lua-5.3.3.tar.gz 294290 BLAKE2B 8052d3fa5f34636df314886a62d63e46fc76ada765679da9352e751f484a458404ac55e5b32ad63ced9d2b16d629d62a52240b1b1a509bcdf5d5df85e405646d SHA512 7b8122ed48ea2a9faa47d1b69b4a5b1523bb7be67e78f252bb4339bf75e957a88c5405156e22b4b63ccf607a5407bf017a4cee1ce12b1aa5262047655960a3cc
EBUILD lua-5.1.5-r100.ebuild 3759 BLAKE2B 191eb7aef48ba9b8e08254e1e7717e47a48ddbc21810274b3063c8d0d98790dd0da1bfe52128e1da5472285dc89c3f9770cb5b02a0121316c16121df5f1161dd SHA512 7191cf605f57063dabeb201f9fb747d0df1c4b7b9ede34bec21d8e0f0eeb8edebc4be82f7157a8b23b18f352f5b07bb03a83cd645856e6a019fcd5c2bd0c990a
EBUILD lua-5.1.5-r101.ebuild 4020 BLAKE2B 9c151be5dd2bcbd340280f647e55d3db580b3e56367b3a18924e35223f9ccb9d4f9f2e05bd41ec8dd43e984bb28afd12bfe02a569776216d9dc78e518c32ba06 SHA512 16ef9fa4f9036aa7ab9683d3cf25cd3015fafbea13248b51d65ea47ceddd2c5ed378d5b5df36fd87398c5220389ae08c08103aa4ae789a03412ec7f4b6501a02
+EBUILD lua-5.1.5-r102.ebuild 4020 BLAKE2B b357a5e5f7831d6c98d716f651c4bfa2ebb8e2377a9e1c5be64f4eb0da6e818e2146feacd0e38328cf5ee9b66827b25795a70cb273a8a32ccb576abada6f0bdb SHA512 ace218026ab6fef8b758d6c9a2a6ab5126fbedf5a1bf6a8d3402c2e5c4423f56613bfd71226d7423e8e457d68eda03fb653226812399bbad45ccd1cc146489d3
EBUILD lua-5.1.5-r4.ebuild 3654 BLAKE2B 128f6ef3404aa231626dd7ee14e777a4b67a78ad2133db0f50269636b87e876f433cf526398ab4520c46e1c3d31787185a53515b16c69cddf7bd6fd0ef860ead SHA512 1f2f70d49cbb1934442812d8f1cbab485e097585118aaf41500041832681dc4cf54a7ecdb4ac18c9403444842dfb5484e20e7716d68f1f54d97b2b5454543283
EBUILD lua-5.2.3-r1.ebuild 3782 BLAKE2B e600a525fa3762916ce36307969d15e97155df36aff7d4ef9f9e540811d7fbdbfe82b40252bc7681e11350613c933e7d1c2c37796a2f21157e8996aa44b43826 SHA512 1f682778d613ed1bb9f56122d156e616a8e03e6de647d52362263f37f459e7ce785e9d7491bf2139cdedf60a6466699e6562ae394a6a9e11a1ba4fbcfa157659
EBUILD lua-5.2.3-r2.ebuild 4043 BLAKE2B a257fca93afc3dfda9e41e2222c40eb6cfb9f7cd221ab6b499c72273f90bdb5ae5e1a11e0b75c2b097c110565817124093b23da6ae5702552e6be43ac924da80 SHA512 2e7604989198e659d96fc807e820a118639a870f78bcacc18c8e87446252d8cb9d3fae4edc04f57448efbc92edaac104f296fd61321ded4c8fd7b1a983c63047
+EBUILD lua-5.2.3-r3.ebuild 4043 BLAKE2B 06127a7c35a4dc1ec47b0fb447fd1dd265625ef92da2427b8f09f82dec9aab0726c36b88f254b7a6aff6a2916c723c49f800db64b6b74859c01346dcbd2a1a4c SHA512 4bf9770781c348e3a71203a341c39a37b2a32804b2ce1304ed41fb39ff25a916d0729183bce49f994d8ca44c9c79dfb9c72501ad3d0ba2dc9ee21dad48c814e5
EBUILD lua-5.2.3.ebuild 3268 BLAKE2B dc5a23765550709bb876b200c7ca6e33aa51ca79c5599344a6a111429b0e5ad9d785184bac372fa4e4db440cfdefe100d5abdfff59084e5143323b5d79afebd5 SHA512 1fac24f9f6526a9c75fa35796dbbd87cd0906d7913184301045ba184d259612316f1a7fe21d92c1f562fef1fdf7c59c9c20da8a6f62bbfa1fc93bcffcd99fb2c
EBUILD lua-5.3.3-r1.ebuild 4055 BLAKE2B cb840b44fada44b133f0db32a2dab08cebe08a501da6d0ca7979a24b52cd6aaae5e02d7e9dfa6f87e216bbecc3c72aa893457a8c0c7146e62147c2eca1e88b1b SHA512 6a5f0a20d7c684853e5be8a7460771b5329c70af57d4ebf199b7812b4d7bd21d625f20536c4f7d234d3cc2467ff29e724e619afdaa2bef9c29d575d527d993bc
+EBUILD lua-5.3.3-r2.ebuild 4055 BLAKE2B 61ba1948449a7e44f57df783975106fce12ab5e9bb9fa761b6f49a8fef8fd95447856b7a1a84e2a0367259018bd41a96e4f3ad5a4d09198a0a177934cda031c2 SHA512 e210a7577bc6090d53cbb0c3863841bc4d649f6d592cdd2a2ce4944b1db1f54c30f5cb71a5603468dac1fe94ab7f0bceed3c668797c469adb6ecc3fe984124e6
EBUILD lua-5.3.3.ebuild 3794 BLAKE2B 6b3222352e83d569651051474a184d4825db92aa4e6c0722c727e660b9c2d748a8354956b7f3baf9bb09b64968110c8ad061e194b766a4cece15692210dac5d0 SHA512 f7c487b9f6be32b49bc8bd71ac2ef601579a20d9936749829d0ca39a5bba8b465b406d6045f15c33dc1d18590ec58791dd92d1d9d9729095f03f187bf96bef92
MISC metadata.xml 451 BLAKE2B 97895c97f22d1d17e8e888a311f8b01b345fb296189016efdd4da71384f2adcae47bfe30b4da92499fbeaa5f1257ddb9e3116aa31167e62366127b578a753b08 SHA512 ee674307c2a1daeeba3e9da078e440648ed379422801989007c15c4c8233e905b14f8e4fae66ae2804a5b39b0676e4cca9ff21fb8985874bccfef15b9dd918a9
diff --git a/dev-lang/lua/lua-5.1.5-r102.ebuild b/dev-lang/lua/lua-5.1.5-r102.ebuild
new file mode 100644
index 000000000000..cfd1cdfe50e5
--- /dev/null
+++ b/dev-lang/lua/lua-5.1.5-r102.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils multilib multilib-minimal portability toolchain-funcs versionator
+
+DESCRIPTION="A powerful light-weight programming language designed for extending applications"
+HOMEPAGE="http://www.lua.org/"
+SRC_URI="http://www.lua.org/ftp/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="5.1"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="+deprecated emacs readline static"
+
+RDEPEND="readline? ( >=sys-libs/readline-6.2_p5-r1:0=[${MULTILIB_USEDEP}] )
+ app-eselect/eselect-lua
+ !dev-lang/lua:0"
+DEPEND="${RDEPEND}
+ sys-devel/libtool"
+PDEPEND="emacs? ( app-emacs/lua-mode )"
+
+SAN_SLOT="${SLOT//.}"
+
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/lua${SLOT}/luaconf.h
+)
+
+src_prepare() {
+ local PATCH_PV=$(get_version_component_range 1-2)
+
+ epatch "${FILESDIR}"/${PN}-${PATCH_PV}-make-r2.patch
+ epatch "${FILESDIR}"/${PN}-${PATCH_PV}-module_paths.patch
+
+ # use glibtool on Darwin (versus Apple libtool)
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ sed -i -e '/LIBTOOL = /s:libtool:glibtool:' \
+ Makefile src/Makefile || die
+ fi
+
+ #EPATCH_SOURCE="${FILESDIR}/${PV}" EPATCH_SUFFIX="upstream.patch" epatch
+
+ # correct lua versioning
+ sed -i -e 's/\(LIB_VERSION = \)6:1:1/\16:5:1/' src/Makefile
+
+ sed -i -e 's:\(/README\)\("\):\1.gz\2:g' doc/readme.html
+
+ if ! use deprecated ; then
+ # patches from 5.1.4 still apply
+ epatch "${FILESDIR}"/${PN}-5.1.4-deprecated.patch
+ epatch "${FILESDIR}"/${PN}-5.1.4-test.patch
+ fi
+
+ if ! use readline ; then
+ epatch "${FILESDIR}"/${PN}-${PATCH_PV}-readline.patch
+ fi
+
+ # Using dynamic linked lua is not recommended for performance
+ # reasons. http://article.gmane.org/gmane.comp.lang.lua.general/18519
+ # Mainly, this is of concern if your arch is poor with GPRs, like x86
+ # Note that this only affects the interpreter binary (named lua), not the lua
+ # compiler (built statically) nor the lua libraries (both shared and static
+ # are installed)
+ if use static ; then
+ epatch "${FILESDIR}"/${PN}-${PATCH_PV}-make_static-r1.patch
+ fi
+
+ # A slotted Lua uses different directories for headers & names for
+ # libraries, and pkgconfig should reflect that.
+ sed -r -i \
+ -e "/^Libs:/s,((-llua)($| )),\2${SLOT}\3," \
+ -e "/^Cflags:/s,((-I..includedir.)($| )),\2/lua${SLOT}\3," \
+ "${S}"/etc/lua.pc
+
+ # custom Makefiles
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ # We want packages to find our things...
+ sed -i \
+ -e 's:/usr/local:'${EPREFIX}'/usr:' \
+ -e "s:\([/\"]\)\<lib\>:\1$(get_libdir):g" \
+ etc/lua.pc src/luaconf.h || die
+}
+
+multilib_src_compile() {
+ tc-export CC
+ myflags=
+ # what to link to liblua
+ liblibs="-lm"
+ liblibs="${liblibs} $(dlopen_lib)"
+
+ # what to link to the executables
+ mylibs=
+ if use readline; then
+ mylibs="-lreadline"
+ fi
+
+ cd src
+ emake CC="${CC}" CFLAGS="-DLUA_USE_LINUX ${CFLAGS}" \
+ RPATH="${EPREFIX}/usr/$(get_libdir)/" \
+ LUA_LIBS="${mylibs}" \
+ LIB_LIBS="${liblibs}" \
+ V=$(get_version_component_range 1-2) \
+ gentoo_all
+
+ mv lua_test ../test/lua.static
+}
+
+multilib_src_install() {
+ emake INSTALL_TOP="${ED}/usr" INSTALL_LIB="${ED}/usr/$(get_libdir)" \
+ V=${SLOT} gentoo_install
+
+ insinto /usr/$(get_libdir)/pkgconfig
+ newins etc/lua.pc lua${SLOT}.pc
+}
+
+multilib_src_install_all() {
+ dodoc HISTORY README
+ dohtml doc/*.html doc/*.png doc/*.css doc/*.gif
+
+ doicon etc/lua.ico
+
+ newman doc/lua.1 lua${SLOT}.1
+ newman doc/luac.1 luac${SLOT}.1
+}
+
+multilib_src_test() {
+ local positive="bisect cf echo env factorial fib fibfor hello printf sieve
+ sort trace-calls trace-globals"
+ local negative="readonly"
+ local test
+
+ cd "${BUILD_DIR}" || die
+ for test in ${positive}; do
+ test/lua.static test/${test}.lua || die "test $test failed"
+ done
+
+ for test in ${negative}; do
+ test/lua.static test/${test}.lua && die "test $test failed"
+ done
+}
diff --git a/dev-lang/lua/lua-5.2.3-r3.ebuild b/dev-lang/lua/lua-5.2.3-r3.ebuild
new file mode 100644
index 000000000000..4096b356b1c9
--- /dev/null
+++ b/dev-lang/lua/lua-5.2.3-r3.ebuild
@@ -0,0 +1,143 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils autotools multilib multilib-minimal portability toolchain-funcs versionator
+
+DESCRIPTION="A powerful light-weight programming language designed for extending applications"
+HOMEPAGE="http://www.lua.org/"
+SRC_URI="http://www.lua.org/ftp/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="5.2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="+deprecated emacs readline static"
+
+RDEPEND="readline? ( sys-libs/readline:0= )
+ app-eselect/eselect-lua
+ !dev-lang/lua:0"
+DEPEND="${RDEPEND}
+ sys-devel/libtool"
+PDEPEND="emacs? ( app-emacs/lua-mode )"
+
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/lua${SLOT}/luaconf.h
+)
+
+src_prepare() {
+ local PATCH_PV=$(get_version_component_range 1-2)
+
+ epatch "${FILESDIR}"/${PN}-${PATCH_PV}-make-r1.patch
+
+ # use glibtool on Darwin (versus Apple libtool)
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ sed -i -e '/LIBTOOL = /s:/libtool:/glibtool:' \
+ Makefile src/Makefile || die
+ fi
+
+ [ -d "${FILESDIR}/${PV}" ] && \
+ EPATCH_SOURCE="${FILESDIR}/${PV}" EPATCH_SUFFIX="upstream.patch" epatch
+
+ # correct lua versioning
+ sed -i -e 's/\(LIB_VERSION = \)6:1:1/\10:0:0/' src/Makefile || die
+
+ sed -i -e 's:\(/README\)\("\):\1.gz\2:g' doc/readme.html || die
+
+ if ! use readline ; then
+ sed -i -e '/#define LUA_USE_READLINE/d' src/luaconf.h || die
+ fi
+
+ # Using dynamic linked lua is not recommended for performance
+ # reasons. http://article.gmane.org/gmane.comp.lang.lua.general/18519
+ # Mainly, this is of concern if your arch is poor with GPRs, like x86
+ # Note that this only affects the interpreter binary (named lua), not the lua
+ # compiler (built statically) nor the lua libraries (both shared and static
+ # are installed)
+ if use static ; then
+ sed -i -e 's:\(-export-dynamic\):-static \1:' src/Makefile || die
+ fi
+
+ # upstream does not use libtool, but we do (see bug #336167)
+ cp "${FILESDIR}/configure.in" "${S}"/ || die
+ eautoreconf
+
+ # A slotted Lua uses different directories for headers & names for
+ # libraries, and pkgconfig should reflect that.
+ sed -r -i \
+ -e "/^Libs:/s,((-llua)($| )),\2${SLOT}\3," \
+ -e "/^Cflags:/s,((-I..includedir.)($| )),\2/lua${SLOT}\3," \
+ "${S}"/etc/lua.pc
+
+ # custom Makefiles
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ sed -i \
+ -e 's:\(define LUA_ROOT\s*\).*:\1"'${EPREFIX}'/usr/":' \
+ -e "s:\(define LUA_CDIR\s*LUA_ROOT \"\)lib:\1$(get_libdir):" \
+ src/luaconf.h \
+ || die "failed patching luaconf.h"
+
+ econf
+}
+
+multilib_src_compile() {
+ tc-export CC
+
+ # what to link to liblua
+ liblibs="-lm"
+ liblibs="${liblibs} $(dlopen_lib)"
+
+ # what to link to the executables
+ mylibs=
+ use readline && mylibs="-lreadline"
+
+ cd src
+
+ local myCFLAGS=""
+ use deprecated && myCFLAGS="-DLUA_COMPAT_ALL"
+
+ case "${CHOST}" in
+ *-mingw*) : ;;
+ *) myCFLAGS+=" -DLUA_USE_LINUX" ;;
+ esac
+
+ emake CC="${CC}" CFLAGS="${myCFLAGS} ${CFLAGS}" \
+ SYSLDFLAGS="${LDFLAGS}" \
+ RPATH="${EPREFIX}/usr/$(get_libdir)/" \
+ LUA_LIBS="${mylibs}" \
+ LIB_LIBS="${liblibs}" \
+ V=$(get_version_component_range 1-2) \
+ gentoo_all
+}
+
+multilib_src_install() {
+ emake INSTALL_TOP="${ED}/usr" INSTALL_LIB="${ED}/usr/$(get_libdir)" \
+ V=${SLOT} gentoo_install
+
+ # We want packages to find our things...
+ cp "${FILESDIR}/lua.pc" "${WORKDIR}"
+ sed -i \
+ -e "s:^prefix= :prefix= ${EPREFIX}:" \
+ -e "s:^V=.*:V= ${PATCH_PV}:" \
+ -e "s:^R=.*:R= ${PV}:" \
+ -e "s:/,lib,:/$(get_libdir):g" \
+ "${WORKDIR}/lua.pc"
+
+ insinto "/usr/$(get_libdir)/pkgconfig"
+ newins "${WORKDIR}/lua.pc" "lua${SLOT}.pc"
+}
+
+multilib_src_install_all() {
+ dodoc README
+ dohtml doc/*.html doc/*.png doc/*.css doc/*.gif
+
+ newman doc/lua.1 lua${SLOT}.1
+ newman doc/luac.1 luac${SLOT}.1
+}
+
+# Makefile contains a dummy target that doesn't do tests
+# but causes issues with slotted lua (bug #510360)
+src_test() { :; }
diff --git a/dev-lang/lua/lua-5.3.3-r2.ebuild b/dev-lang/lua/lua-5.3.3-r2.ebuild
new file mode 100644
index 000000000000..b813a414cb9d
--- /dev/null
+++ b/dev-lang/lua/lua-5.3.3-r2.ebuild
@@ -0,0 +1,143 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils autotools multilib multilib-minimal portability toolchain-funcs versionator
+
+DESCRIPTION="A powerful light-weight programming language designed for extending applications"
+HOMEPAGE="http://www.lua.org/"
+SRC_URI="http://www.lua.org/ftp/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="5.3"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="+deprecated emacs readline static"
+
+RDEPEND="readline? ( sys-libs/readline:0= )
+ app-eselect/eselect-lua
+ !dev-lang/lua:0"
+DEPEND="${RDEPEND}
+ sys-devel/libtool"
+PDEPEND="emacs? ( app-emacs/lua-mode )"
+
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/lua${SLOT}/luaconf.h
+)
+
+src_prepare() {
+ local PATCH_PV=$(get_version_component_range 1-2)
+
+ epatch "${FILESDIR}"/${PN}-${PATCH_PV}-make-r1.patch
+
+ # use glibtool on Darwin (versus Apple libtool)
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ sed -i -e '/LIBTOOL = /s:/libtool:/glibtool:' \
+ Makefile src/Makefile || die
+ fi
+
+ [ -d "${FILESDIR}/${PV}" ] && \
+ EPATCH_SOURCE="${FILESDIR}/${PV}" EPATCH_SUFFIX="upstream.patch" epatch
+
+ # correct lua versioning
+ sed -i -e 's/\(LIB_VERSION = \)6:1:1/\10:0:0/' src/Makefile || die
+
+ sed -i -e 's:\(/README\)\("\):\1.gz\2:g' doc/readme.html || die
+
+ if ! use readline ; then
+ sed -i -e '/#define LUA_USE_READLINE/d' src/luaconf.h || die
+ fi
+
+ # Using dynamic linked lua is not recommended for performance
+ # reasons. http://article.gmane.org/gmane.comp.lang.lua.general/18519
+ # Mainly, this is of concern if your arch is poor with GPRs, like x86
+ # Note that this only affects the interpreter binary (named lua), not the lua
+ # compiler (built statically) nor the lua libraries (both shared and static
+ # are installed)
+ if use static ; then
+ sed -i -e 's:\(-export-dynamic\):-static \1:' src/Makefile || die
+ fi
+
+ # upstream does not use libtool, but we do (see bug #336167)
+ cp "${FILESDIR}/configure.in" "${S}/configure.ac" || die
+ eautoreconf
+
+ # A slotted Lua uses different directories for headers & names for
+ # libraries, and pkgconfig should reflect that.
+ sed -r -i \
+ -e "/^Libs:/s,((-llua)($| )),\2${SLOT}\3," \
+ -e "/^Cflags:/s,((-I..includedir.)($| )),\2/lua${SLOT}\3," \
+ "${S}"/etc/lua.pc
+
+ # custom Makefiles
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ sed -i \
+ -e 's:\(define LUA_ROOT\s*\).*:\1"'${EPREFIX}'/usr/":' \
+ -e "s:\(define LUA_CDIR\s*LUA_ROOT \"\)lib:\1$(get_libdir):" \
+ src/luaconf.h \
+ || die "failed patching luaconf.h"
+
+ econf
+}
+
+multilib_src_compile() {
+ tc-export CC
+
+ # what to link to liblua
+ liblibs="-lm"
+ liblibs="${liblibs} $(dlopen_lib)"
+
+ # what to link to the executables
+ mylibs=
+ use readline && mylibs="-lreadline"
+
+ cd src
+
+ local myCFLAGS=""
+ use deprecated && myCFLAGS="-DLUA_COMPAT_ALL"
+
+ case "${CHOST}" in
+ *-mingw*) : ;;
+ *) myCFLAGS+=" -DLUA_USE_LINUX" ;;
+ esac
+
+ emake CC="${CC}" CFLAGS="${myCFLAGS} ${CFLAGS}" \
+ SYSLDFLAGS="${LDFLAGS}" \
+ RPATH="${EPREFIX}/usr/$(get_libdir)/" \
+ LUA_LIBS="${mylibs}" \
+ LIB_LIBS="${liblibs}" \
+ V=$(get_version_component_range 1-2) \
+ gentoo_all
+}
+
+multilib_src_install() {
+ emake INSTALL_TOP="${ED}/usr" INSTALL_LIB="${ED}/usr/$(get_libdir)" \
+ V=${SLOT} gentoo_install
+
+ # We want packages to find our things...
+ cp "${FILESDIR}/lua.pc" "${WORKDIR}"
+ sed -i \
+ -e "s:^prefix= :prefix= ${EPREFIX}:" \
+ -e "s:^V=.*:V= ${PATCH_PV}:" \
+ -e "s:^R=.*:R= ${PV}:" \
+ -e "s:/,lib,:/$(get_libdir):g" \
+ "${WORKDIR}/lua.pc"
+
+ insinto "/usr/$(get_libdir)/pkgconfig"
+ newins "${WORKDIR}/lua.pc" "lua${SLOT}.pc"
+}
+
+multilib_src_install_all() {
+ dodoc README
+ dohtml doc/*.html doc/*.png doc/*.css doc/*.gif
+
+ newman doc/lua.1 lua${SLOT}.1
+ newman doc/luac.1 luac${SLOT}.1
+}
+
+# Makefile contains a dummy target that doesn't do tests
+# but causes issues with slotted lua (bug #510360)
+src_test() { :; }
diff --git a/dev-lang/mono/Manifest b/dev-lang/mono/Manifest
index 4f43e3304b5b..2e6ecad6d43c 100644
--- a/dev-lang/mono/Manifest
+++ b/dev-lang/mono/Manifest
@@ -6,9 +6,9 @@ AUX mono-5.12-try-catch.patch 1267 BLAKE2B e33836d53fd4c9a4e64614d3f309058b20094
DIST mono-4.4.1.0.tar.bz2 85897587 BLAKE2B 79651189e696aa7352704e1ac659302423b1212c88337da8d522aad8e8a49855b74c43020f506b3455ce1a99566e96ae464fecced584b14470d0c8dfe605c5b6 SHA512 d9b6c57c2d9327ea551083b81a2e6cc222ded9a04862056b0dfded1c5df56efbfc4960097df034595012231fe50d172174ab7b3e3f2d8c4c6953ab2106b1cb6a
DIST mono-4.8.0.524.tar.bz2 87392723 BLAKE2B ac17c3da6d6c08c4cb72c4fa300ded92625bd8c14c1e45ea9539efa42c8d085759f7bb298fe5df57bd41f18abf83f293d26a9e6272944933fcff0a3c16a7e4f3 SHA512 eb77b768a4a26e6a2a872f4845769cdc83f01af3377ecd6d932437d2a1b54bfd1ce727563906146195a54997b4b624fb75449a6f0bcfe818cbc4e6544841bf2b
DIST mono-5.14.0.177.tar.bz2 219729440 BLAKE2B c21af7f541e5fcd456faeaf654ded7937da5241feb94b0de464a880915d758791ff7a645dbcb4023e7cced7ab0854bb8da0cc246abc6ab575bb278aa58fdc8c7 SHA512 f13afbe4289e177705642f79f4236710bdc8db8e956782c5370baf22207d6713f7997ec286c7742416c8206d2da205f295437d1afcdc430628d13e32f0e87d2d
-DIST mono-5.16.0.179.tar.bz2 231379081 BLAKE2B bdcb770d28eea953d428b8d41221bb192adf17bd677711fe17b44e2faa174d59adbe7816297c5eafa2589bb871d3bc2bb84b6e99a11df63758ff6f1b83b8814e SHA512 17d29dc19e3694abd236a50dda99ab85a215d1e88b8d6474c8b8b638dfe8a0f8d60ee3d3d5da600a861cfe6a0dda77cbf3594e9c5dd8b599c80363b4f01d9f1e
+DIST mono-5.16.0.220.tar.bz2 231487021 BLAKE2B e5154c5e356bc277a8809471e5bf8a87092224f54f08535d9860229040bdd3fec304404b893ddd36253f58b351e7023ce9649521a0e850fabfefb3e6700473c1 SHA512 f5266b28747dd7735acb047e1d7a3660d9984126e518885babba6cce5b8dd9959134f7b5c6cd79309b4fb1feaf9af9d0015fdbc2d4bd088928a279b5c1dcefb3
EBUILD mono-4.4.1.0.ebuild 3384 BLAKE2B fd16089b151c1666ceda7d05285fa8a10143a4157e46b75a3412b42dec80c0929f9ba8d9523ac65b64fb827ea8d1ad88fbe98a5e7d0d12423b970912d0ae50e4 SHA512 6c9c9ce5e19a33e4dbc1b0cdb2d17804a67eed5061e422358c971de5a2eb95b2848c4515312a4b082087c50040c1e7f9c687a134ca30354d8f4bde796432b126
-EBUILD mono-4.8.0.524.ebuild 3023 BLAKE2B 8b23acde97ed8ebe05eb7e4c3fab9f1c9b43ee775a460629a122eba13c56120d139c8732267c1fb2cb7ba9d96c3a9943a03c1c9894286205392dac8fd19a467c SHA512 0a229fdcbb0051e96e227f1a2bc2c85eea55f2277b549e866744c650a0c42172f5727abe2b1cf38660254757201b8f577401fb072814d266012058da3a2418ab
-EBUILD mono-5.14.0.177.ebuild 2963 BLAKE2B 0be064f7eedc0b8b1e4eeba3998ce4e0ab10a4696630d0fd0a178407e231e1ce0511a3464c6ea7a00a9e5911d936fda6d1d479a11ed000f5cd1caf4f76f63d0d SHA512 66a592f345915c0a3d56138baec0e2127c3f4e0ec653c7fe8e6eec58846ac426ddf0db75adb07b6f5f13f3cadf7702e1a16a4d3f36bcbb8b361f3c33ecd9b1df
-EBUILD mono-5.16.0.179-r1.ebuild 3035 BLAKE2B 689cd28b9284d3620f772e12a0ce3762204ce4415d5347ef0c2d34ec1e4491bfcc35a132737e482b928f5899b681393fe44fb97b0dfb0ead73130fd407b7717a SHA512 61869e1ec8eeb0662f6bca5615394ae0f341e1ea80d5495ee7a84a22f25cb987bd516abfda8c4bbc361955421c68b80825cbd1ab6f640f9545c9f5d16fb53473
+EBUILD mono-4.8.0.524.ebuild 3025 BLAKE2B e076a2771ffe50f999905f2565e741edc24c5e5b7998a92b528011cc9d03aa0cf0decfc538e9acba41afc7afb42e6486da29353940f4bef467288a5ca2e22998 SHA512 73c6b525881aa71e829214fc3ba05aa172942e3a441d79903af39b385e12eb31cae7083972a69a6bc1e29af98c5fa4828a7d96dc3c8564fca8daa01204ff8a5a
+EBUILD mono-5.14.0.177.ebuild 2968 BLAKE2B 17e110b05811a8c82cda8a5931cfdee4c4cb9b00ec86c4a5c8e4c205ab20743c8e61876822055e3ba065d9ee9d29595cf08cedcb7a87f4b53468b408c1a3f7d7 SHA512 2385767fee4277490ac3be828baf8c09c99534658ea708e025cdaa43830a36df3c96f5b4a089ac9a9026ab9c4989cf6379b93330ffe29ce1b5beac7198fb5047
+EBUILD mono-5.16.0.220.ebuild 3022 BLAKE2B 4596e60c26b9ea401f6322319a61e4a8faaa0245ab43db186102285497cf4a6864dfcf375f1e722664a049cbbe6ec52e4c84e720f63e8585d2f8c06841c906d5 SHA512 396f4e8a6f2d1b3ea4c960fb0fd571b919734b92b940364fef75f4b1f60a69d9604f089d91c88adddd243718dcd14e92c6e803d58f737a58dbb69293b89651f7
MISC metadata.xml 507 BLAKE2B 91655de22fc1ff309c36ecef9d77aa8cada0b8f13ae30677665de837e99b7b43622a1dc0c677b0f5455c06b8e8a295c3c4f39753f66e749163a4f002ee481016 SHA512 e072a1abbf66276b0d139c3e918593010312c2059a0c6feba7b324689cdf90efe28bef0286ad9888125acfdd1fed2dee3e05e79a0aeb7f9ec1809bd128cf8a20
diff --git a/dev-lang/mono/mono-4.8.0.524.ebuild b/dev-lang/mono/mono-4.8.0.524.ebuild
index 2e12a8843385..3381396041ef 100644
--- a/dev-lang/mono/mono-4.8.0.524.ebuild
+++ b/dev-lang/mono/mono-4.8.0.524.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
@@ -12,7 +12,7 @@ SRC_URI="https://download.mono-project.com/sources/${PN}/${P}.tar.bz2"
LICENSE="MIT LGPL-2.1 GPL-2 BSD-4 NPL-1.1 Ms-PL GPL-2-with-linking-exception IDPL"
SLOT="0"
-KEYWORDS="amd64 ~arm64 ppc ~ppc64 x86 ~amd64-linux"
+KEYWORDS="amd64 ~arm ~arm64 ppc ~ppc64 x86 ~amd64-linux"
IUSE="nls minimal pax_kernel xen doc"
diff --git a/dev-lang/mono/mono-5.14.0.177.ebuild b/dev-lang/mono/mono-5.14.0.177.ebuild
index 057c8e099f0a..da0226a8437e 100644
--- a/dev-lang/mono/mono-5.14.0.177.ebuild
+++ b/dev-lang/mono/mono-5.14.0.177.ebuild
@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=6
-KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux"
RESTRICT="mirror"
SLOT="0"
diff --git a/dev-lang/mono/mono-5.16.0.179-r1.ebuild b/dev-lang/mono/mono-5.16.0.220.ebuild
index 8c768a037192..be71a2df69b4 100644
--- a/dev-lang/mono/mono-5.16.0.179-r1.ebuild
+++ b/dev-lang/mono/mono-5.16.0.220.ebuild
@@ -3,9 +3,8 @@
EAPI=6
-KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux"
-RESTRICT="mirror"
SLOT="0"
IUSE="nls minimal pax_kernel xen doc"
diff --git a/dev-lang/nasm/Manifest b/dev-lang/nasm/Manifest
index 9776d86362c7..267b1e40d7b4 100644
--- a/dev-lang/nasm/Manifest
+++ b/dev-lang/nasm/Manifest
@@ -1,10 +1,11 @@
AUX nasm-2.13.01-fix-docdir.patch 5536 BLAKE2B 4eac268b54b33bbf058562ec15870df57af1997530ddf98940abfa67da4e1241a5cf9597261ae9bf7e65c502ce70d0a60834d12dfa9979ac647b9f04fe56c21e SHA512 22bbfac66b75451345a1f3d19816ecc35397c9b95f16f7dffdf8dbde9055bb035880f5cb081686c42ce3f448e250a29c9440775aad929a7e36c1325e6bbc88d7
AUX nasm-2.13.01-gcc-8.patch 817 BLAKE2B ffe883fa68f9fe29e909df2226fdcc6603b739335051ca43740504b7af75798036b19ce647daaf146ab976bce3e645b3cca65b972adbf29e737c8e6f2c32e026 SHA512 eb1b8a4d0d122a7bc797962aea24eb858ad4f1876981496546059155cdc4fcb719b849f692f003706c623c27d116c9188598ea482d33bf091d59964410fd0e15
AUX nasm-2.13.03-bsd-cp-doc.patch 357 BLAKE2B 2611aa3e7f817530c8012f1849d5d80f47105a2e35950795826b3b9d128493ab7e8c1da106b9d22e24a025f8bf24f142cad385c5fca13e09423168bc2fc69f65 SHA512 6562f98e08953b5ac667df4f89f401cc520cf24dfaf112121ca0f7a039b96a328316afd62d118ae98ec9d2c1c3f2c1c9b88d2d66f19197637b7b785a48964f9c
+AUX nasm-2.14-default-path-BR-3392529.patch 1437 BLAKE2B 285c2233277092544c3caedee7678f7537cc701d6066f1b5f30bff4a0bfac77d00887ce6b1ed2f3770c00e6c449f2d004fbad0ad99caff01cb41276cb04911ee SHA512 fcf21448a74ae7b8b4d08b908976962bcd71c98fef35ab4875542413fe7c84e696678ff8a5413f37b2b6a0c194b08da84d2ddd9520b6a2e848af33b7aa3600a6
DIST nasm-2.13.01.tar.xz 800244 BLAKE2B 23a42d9e6c66577cee0e3b6cdff8da7b7b49286011f2d9e2319bd229ca0a1ab5b89a27d71a591777430e577175c935ba2a34b7ba0ca6086853f84fa5f0f648ab SHA512 6561a2efb3ffea77a1a8cd364edf1ecedb2c14e1902469d7c59d743f25ca612529113d1099818abbe0a9f2592f12604f1810855bbdf8dc9de3648094a83529ae
DIST nasm-2.13.03.tar.xz 806636 BLAKE2B 36187dac080dac17efbc1a2319d989bcb0f883fee80668656a6a87bdd83ee4115ffa2f8519f6d267815590f4809aa293aac500f3a5505a391154cb460cbe94ad SHA512 24e6c72b80a878453baf3b525c1bad607431ff672a927f73e742379fa833b3f5d3fa4479addfcec6d96f354aa90a45905ff9c76ab5217c3bcb7091107b32e2b5
DIST nasm-2.14.tar.xz 824780 BLAKE2B c246a357896414aa370ded6e42d076d4d56db62e6519cb421000696d65c6e7581f8e0c3c5d55fb27c876139c368bb739863bb5fc0f9bd76610b054f31ec83b5f SHA512 0f7f1b8b0cd4ac62df1dc203789b74670ebe10f3be10af9984331b1c348745ed31a43aca77c5c771016a718fa2c7c8805c1c9edfdd6b0fe83ee0937cb0dd3d23
EBUILD nasm-2.13.01.ebuild 861 BLAKE2B eff4bea9ce72d6a3d7ade24757a161cfe385cc7fdc6ac86d412c04ec3e5c0ca436e6b23c8d6db3fa48d46a9a7f7cf671ed22a335a78bac5ac1496c4eac66c46f SHA512 4bd6b4573cc9315e605713ae5dd3d0ef5e391d1561df05c710cfe03fa4f94c30ec2d0db4798e1c758b590b931cf078658905806378e182867305ce37dfacd2b2
EBUILD nasm-2.13.03-r1.ebuild 1114 BLAKE2B 27c9c88846dc205695ca4c3de908cc97dddca3e5592f972b6ae1f3d515931ebd36a878c781d5ca486cbf3af63526ef30aa156db3a0b048e9fd091f7c440076cb SHA512 7313abac2666b113be49bea29e8a22aabb259af787746100fa3323536fc5e4692dc7fb54378ec54812700e917b06021e0200669fc6785531820716e8186c15a2
-EBUILD nasm-2.14.ebuild 1047 BLAKE2B 35d1958b760f749441bbddf404c8ff88bbe1db15111b5c22413f36f852b482e727cffd453c65877a9e2e658f99601481c4aeee92b2bb0068052f590e11417228 SHA512 fb2ee002adcc695e90683d1c3e78540a716bf05715dd663ea5b094b13c47b207d17718a3ee3e54bc558717615ae759be58ab7639bb23d2ac89809b7f1ddd72b3
+EBUILD nasm-2.14-r1.ebuild 1097 BLAKE2B 0e12ff8b2c8f00a6ab03b576c054eb2596ecb919f6b52b69500cda33ca0ef80d97d781d53ead8ac2a06752443e73e1a295fe8c276b056dd126a30f5a3598437d SHA512 9af9a666c851b5c4f18afae7369a1eed9275f7c8fe53ae8b36fe9771cc2a981d8a3f05f7d557389dd00ed2ca57b05dd0a319eb86a5631802cb004a2925601cef
MISC metadata.xml 869 BLAKE2B 6acbe39b23e071849e6afd42da7ec5a56f017b708745e5efd09a288775da944fbb1185cead3ceaa573398f5874115139834584323e5b4cff360cf6cd9cca4ccd SHA512 a6bf522dfa6c43ea58a432577fbc31bcc9d262f7262c16d165b3cbacf8394a6d9e6d1eea9480cdb27b692cacada0c5fba3906e913259c2809a48159bce53e5bf
diff --git a/dev-lang/nasm/files/nasm-2.14-default-path-BR-3392529.patch b/dev-lang/nasm/files/nasm-2.14-default-path-BR-3392529.patch
new file mode 100644
index 000000000000..57cbb741505a
--- /dev/null
+++ b/dev-lang/nasm/files/nasm-2.14-default-path-BR-3392529.patch
@@ -0,0 +1,41 @@
+https://bugzilla.nasm.us/show_bug.cgi?id=3392529
+https://bugs.gentoo.org/670944
+
+From 7b6371b9d35705ee3800082ca245f8dd289bb216 Mon Sep 17 00:00:00 2001
+From: "H. Peter Anvin (Intel)" <hpa@zytor.com>
+Date: Tue, 20 Nov 2018 10:56:57 -0800
+Subject: [PATCH] BR 3392529: if the default output name is the same as input
+ -> nasm.out
+
+If no output filename is specified, then a default filename is used
+based on the input filename. If that ends up the *same* as the input
+filename, change the output filename to "nasm.out".
+
+Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
+---
+ asm/nasm.c | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+--- a/asm/nasm.c
++++ b/asm/nasm.c
+@@ -514,9 +514,14 @@ int main(int argc, char **argv)
+ * is a preprocess mode, we're perfectly
+ * fine to output into stdout.
+ */
+- if (!outname) {
+- if (!(operating_mode & OP_PREPROCESS))
+- outname = filename_set_extension(inname, ofmt->extension);
++ if (!outname && !(operating_mode & OP_PREPROCESS)) {
++ outname = filename_set_extension(inname, ofmt->extension);
++ if (!strcmp(outname, inname)) {
++ outname = "nasm.out";
++ nasm_error(ERR_WARNING,
++ "default output file same as input, using `%s' for output\n",
++ inname, outname);
++ }
+ }
+
+ depend_ptr = (depend_file || (operating_mode & OP_DEPEND))
+--
+2.19.2
+
diff --git a/dev-lang/nasm/nasm-2.14.ebuild b/dev-lang/nasm/nasm-2.14-r1.ebuild
index 46c8d440a406..7a17a31be972 100644
--- a/dev-lang/nasm/nasm-2.14.ebuild
+++ b/dev-lang/nasm/nasm-2.14-r1.ebuild
@@ -34,6 +34,7 @@ S=${WORKDIR}/${P/_}
PATCHES=(
"${FILESDIR}"/${PN}-2.13.03-bsd-cp-doc.patch
+ "${FILESDIR}"/${P}-default-path-BR-3392529.patch
)
src_configure() {
diff --git a/dev-lang/perl/Manifest b/dev-lang/perl/Manifest
index 19ff7391bbf8..7e525f7cb93c 100644
--- a/dev-lang/perl/Manifest
+++ b/dev-lang/perl/Manifest
@@ -15,8 +15,8 @@ EBUILD perl-5.24.3-r1.ebuild 17393 BLAKE2B 999d7df269e15390e4f7d146ff94eda530198
EBUILD perl-5.24.4.ebuild 17363 BLAKE2B 84744ba06ce9dc0cab51aae3da10917679a20b5997f13154c269285173a6c6b0ec20ae365b059daa52f86f2addcf97dbe8866a29cd2c9c32ee51030de9a44bf7 SHA512 d393349752cfcdb53bd6d99559ad1eb5385e716f772bc4377e07bc3d7064a293e5cc0369feca2094513e710e8724c2a0a82fcf342ad68c4e1d2c1d0d42200071
EBUILD perl-5.26.1-r1.ebuild 19255 BLAKE2B a29acfd3ea358d0d46886aae104acf8e55ad7c9380848343ad84dfc58294645fa6c72c4cbc598e54072585f880175581ef25e7e6e2a9080764968ab925cdbb9d SHA512 4630da50892ac674de4b9e5858ffd9b1c50b08558a91a1579958f728aaf3d9581b3f960c0d9caf5a460c3435a626c9294d8abc73c7f7da098199018a144a5788
EBUILD perl-5.26.1-r2.ebuild 19668 BLAKE2B 5936c92398cf8a889bd946705f2667abd07fc81a64ea3f8c44cd83f3c29719352f4ea938b8d7fb7e3d5d138dcba12f94692166aaca8d98a3640c772850ec9e5c SHA512 154b021e91b01ecd55a5af50bc530f080745b122cd5a77652589c236d4bceea93f4379a1c8e751eb1787118e3133e1f5daab8dccf88365f7976c8a015591190e
-EBUILD perl-5.26.2.ebuild 19702 BLAKE2B 401194aa30936a6169efca8178810f1401ad501533ce66350bf43ac07b0f33dcaf771e650add413c59bfcb179d10a66e9d51f15ac0399a98fe7ae9c8c69f8d81 SHA512 30c09deb7a1b4d3a87c70a9ef3b431cf43e4c4be8760ba619b7355dec1960f51cfbe75e8ed4fba8e4ce7821c93c1e2ecb6725e88a3f6aa47d40c57b8896a4689
-EBUILD perl-5.26.9999.ebuild 19702 BLAKE2B 401194aa30936a6169efca8178810f1401ad501533ce66350bf43ac07b0f33dcaf771e650add413c59bfcb179d10a66e9d51f15ac0399a98fe7ae9c8c69f8d81 SHA512 30c09deb7a1b4d3a87c70a9ef3b431cf43e4c4be8760ba619b7355dec1960f51cfbe75e8ed4fba8e4ce7821c93c1e2ecb6725e88a3f6aa47d40c57b8896a4689
-EBUILD perl-5.28.0.ebuild 19891 BLAKE2B 67f3a7f862c9db4e9fd4d417f96390014b5b4ed70890622c5e5a9bc6841c6ebb0aba2e2f6ac1aa77a4569c72b5353e78aef4ab98b20d6e31c8a6e1401d2a220d SHA512 4f3925efb263bf2a8b3bc66febc468001918b6f9b1880b38bac62e8eaabdb9a67ac11e72adcbadbfa2948a15402cf117619a894e0c4334909b2964ab923b38d3
-EBUILD perl-5.28.9999.ebuild 19891 BLAKE2B 67f3a7f862c9db4e9fd4d417f96390014b5b4ed70890622c5e5a9bc6841c6ebb0aba2e2f6ac1aa77a4569c72b5353e78aef4ab98b20d6e31c8a6e1401d2a220d SHA512 4f3925efb263bf2a8b3bc66febc468001918b6f9b1880b38bac62e8eaabdb9a67ac11e72adcbadbfa2948a15402cf117619a894e0c4334909b2964ab923b38d3
+EBUILD perl-5.26.2.ebuild 19946 BLAKE2B dab57a37146c65c67df2dd225e0b591f9e83e82d2c806687a7a9f7889350e93d0232be299875229a4b1e49044ced9f271b9ca89f05dbaf952887b97a11aee2d8 SHA512 cdc5b46b02b3dd6f0dbf73647041f5995792e19caaf3b0eda6031794f018f1946d14d510d2c8cddbe7e6a7e8ca39aef38ef1ba7760e2b67b073147909d196208
+EBUILD perl-5.26.9999.ebuild 19946 BLAKE2B dab57a37146c65c67df2dd225e0b591f9e83e82d2c806687a7a9f7889350e93d0232be299875229a4b1e49044ced9f271b9ca89f05dbaf952887b97a11aee2d8 SHA512 cdc5b46b02b3dd6f0dbf73647041f5995792e19caaf3b0eda6031794f018f1946d14d510d2c8cddbe7e6a7e8ca39aef38ef1ba7760e2b67b073147909d196208
+EBUILD perl-5.28.0.ebuild 20135 BLAKE2B 24983e5fa8c94f4348445f4e6ad0ff7bb05e252b3cf9df15449e7230c45a1d49c4b5b6f1755f19950448d342aac6c5f2e6ad9603c18a979d65a39a9cc09c4b98 SHA512 aeb037ab4f3ebdd3c3297248a74fef91be34af020979a8a7a53e19006687011530fe362d41624270fbcbd7565f1343e32d08466e06a29dd96f30d5653d273398
+EBUILD perl-5.28.9999.ebuild 20135 BLAKE2B 24983e5fa8c94f4348445f4e6ad0ff7bb05e252b3cf9df15449e7230c45a1d49c4b5b6f1755f19950448d342aac6c5f2e6ad9603c18a979d65a39a9cc09c4b98 SHA512 aeb037ab4f3ebdd3c3297248a74fef91be34af020979a8a7a53e19006687011530fe362d41624270fbcbd7565f1343e32d08466e06a29dd96f30d5653d273398
MISC metadata.xml 430 BLAKE2B 8625fd07f63a7943a85c3919d6ae6db622b752caa2803c56c72a22b270244261331fbab8b760e6d00acb8480770c9ef1d1beaaa22cc6044660821687c0cd8c33 SHA512 ca4c43e2016b7df707894713465700a90d2b8551b57fc4d660cff75edb1e8cc2456f9ae10431839ad6738f290d4f5911fae360eaa1d4670859d855de3d568583
diff --git a/dev-lang/perl/perl-5.26.2.ebuild b/dev-lang/perl/perl-5.26.2.ebuild
index 602748dc4a26..e2af84bf47de 100644
--- a/dev-lang/perl/perl-5.26.2.ebuild
+++ b/dev-lang/perl/perl-5.26.2.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
@@ -331,7 +331,7 @@ src_prepare() {
fi
# Use errno.h from prefix rather than from host system, bug #645804
- if use prefix && ! use prefix-guest; then
+ if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
fi
@@ -455,6 +455,11 @@ src_configure() {
[[ ${CHOST} == *-darwin* ]] && \
myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
+ # Older macOS with non-Apple GCC chokes on inline in system headers
+ # using c89 mode as injected by cflags.SH
+ [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
+ append-cflags -Dinline=__inline__
+
# Prefix: the host system needs not to follow Gentoo multilib stuff, and in
# Prefix itself we don't do multilib either, so make sure perl can find
# something compatible.
diff --git a/dev-lang/perl/perl-5.26.9999.ebuild b/dev-lang/perl/perl-5.26.9999.ebuild
index 602748dc4a26..e2af84bf47de 100644
--- a/dev-lang/perl/perl-5.26.9999.ebuild
+++ b/dev-lang/perl/perl-5.26.9999.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
@@ -331,7 +331,7 @@ src_prepare() {
fi
# Use errno.h from prefix rather than from host system, bug #645804
- if use prefix && ! use prefix-guest; then
+ if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
fi
@@ -455,6 +455,11 @@ src_configure() {
[[ ${CHOST} == *-darwin* ]] && \
myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
+ # Older macOS with non-Apple GCC chokes on inline in system headers
+ # using c89 mode as injected by cflags.SH
+ [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
+ append-cflags -Dinline=__inline__
+
# Prefix: the host system needs not to follow Gentoo multilib stuff, and in
# Prefix itself we don't do multilib either, so make sure perl can find
# something compatible.
diff --git a/dev-lang/perl/perl-5.28.0.ebuild b/dev-lang/perl/perl-5.28.0.ebuild
index 3fee6ac8677a..a88e2d54acf9 100644
--- a/dev-lang/perl/perl-5.28.0.ebuild
+++ b/dev-lang/perl/perl-5.28.0.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
@@ -331,7 +331,7 @@ src_prepare() {
fi
# Use errno.h from prefix rather than from host system, bug #645804
- if use prefix && ! use prefix-guest; then
+ if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
fi
@@ -458,6 +458,11 @@ src_configure() {
[[ ${CHOST} == *-darwin* ]] && \
myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
+ # Older macOS with non-Apple GCC chokes on inline in system headers
+ # using c89 mode as injected by cflags.SH
+ [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
+ append-cflags -Dinline=__inline__
+
# Prefix: the host system needs not to follow Gentoo multilib stuff, and in
# Prefix itself we don't do multilib either, so make sure perl can find
# something compatible.
diff --git a/dev-lang/perl/perl-5.28.9999.ebuild b/dev-lang/perl/perl-5.28.9999.ebuild
index 3fee6ac8677a..a88e2d54acf9 100644
--- a/dev-lang/perl/perl-5.28.9999.ebuild
+++ b/dev-lang/perl/perl-5.28.9999.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
@@ -331,7 +331,7 @@ src_prepare() {
fi
# Use errno.h from prefix rather than from host system, bug #645804
- if use prefix && ! use prefix-guest; then
+ if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
fi
@@ -458,6 +458,11 @@ src_configure() {
[[ ${CHOST} == *-darwin* ]] && \
myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
+ # Older macOS with non-Apple GCC chokes on inline in system headers
+ # using c89 mode as injected by cflags.SH
+ [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
+ append-cflags -Dinline=__inline__
+
# Prefix: the host system needs not to follow Gentoo multilib stuff, and in
# Prefix itself we don't do multilib either, so make sure perl can find
# something compatible.
diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest
index 02950a307087..b384a485b567 100644
--- a/dev-lang/php/Manifest
+++ b/dev-lang/php/Manifest
@@ -2,30 +2,45 @@ AUX 20php5-envd 145 BLAKE2B 06476b8fc04d1e835496b417ac752f0834ddbe8584e4fddc6db0
AUX 5.6-mbstring-oniguruma-6.8.patch 880 BLAKE2B 7526874436b0fee12d0bc80487abe8a2e152491b52d2b3c041e4162284a3be580d88649704d360e85b0985d6406d2d26fe55c147a091fef1adbe7631cedafeeb SHA512 8767aa16f72fec2e4d79d8b15559ffe6afcf97c1664d963befc5565ead5eb3a5291982ece941441f57cfac21589c5e8eecf359b111b27a880919f77652e4de65
AUX libressl-compatibility.patch 2978 BLAKE2B 714e268149d973beb0d2d76f90e15adde57acb7aed028131c6dee2a34b11980fedff487ccec67e20d9a9094014878e13bd7e180e98bb0ee304c5916324016823 SHA512 58ed57061f31da72c96cbca6f6e86d1466c96c8562dfa6551b4a8d16bd6e537b848ca34cbe57c5c220c72158e176f9cd7c07d282fe1fd69ebf5475c48bf95c26
AUX mbstring-oniguruma-6.8.patch 1488 BLAKE2B 181aacdd5fc01e5b11246d624cd88a5d3184c00343abb8a9e36d1e224dce185a81521c0498d562e51768e4c035806f007f9cd5ed930b7abe2a3da2e5b519f5b3 SHA512 5a3334ca98da9ac22be67021e4e859c89826aec8393d4b56c4e52336a5fc689acd2579ff44ac984a40711ccaf917a810264b07a0071f8161da18e2bffd3d0c05
+AUX php-5.6-intl-detect-icu-via-pkg-config.patch 5715 BLAKE2B 609192a91736ae7417365b7040606dc4dae43333c63eda79879cd45f74c34613563e4c4625cb5f1401cb59f78db0b9328e808b9293eab63aac34069847b3058a SHA512 89e109422f2eb8efa2408851592528c0bcc2103c902bffdc72208096489c3d2593cc4baeac2bde6266f3e08028f90e7c4960e2b9a17323216dbd68b19fe84c44
+AUX php-5.6-intl-icu-memory-corruption.patch 2374 BLAKE2B eb970251333796622491b40ac9da4aeca4d0775e11f579bb7fd63078a44d35f5fc4987155f190ca07cbdd98e8b6f532e0ba92a770b3f7ed61405f361f888001a SHA512 b5533f2e9665204ca62dcfd24d8988c3dde453068919e00dc26bb02409ac50da2d42ad1fc00815aea2f13410f0d5d95fadfb820d13c944eb2d8be9060f3787f1
+AUX php-5.6-intl-use-icu-namespace.patch 11150 BLAKE2B 0117eba8f33d4ed07484e3dad15fd7ff34282f1ad57b441f4794c0dcec650fb19f32a7fbb345d4feee54efc1ef470d118f8f2d7c6b422a0ba3aa22c0ca5c83f3 SHA512 ef440c9fd157739ea80dc68aecb3d9ea3f97d9347e44152e198eda3763c05d252f0913eae09c5945e372497e2be8eace55a9d004cdfb61281ea17208c6e6aed1
AUX php-5.6-no-bison-warnings.patch 1428 BLAKE2B d37bc7a1ae803aa4a14d32f0ca5613b7bc82610248d6de5ef7b6078fdcfa944cd1c245aa919137ff0d6968c8621b5acf2638386307c46fdbb8c98eba991eb674 SHA512 8f751c638c833d535e022434cd8ace5c175703bf61dfab7bea3e52d9419700e2b85c4cca40da9ab6056e8fd9c0bc1fab55810bb1193bed14ce0a50ce653fe62b
+AUX php-7.0.33-intl-detect-icu-via-pkg-config.patch 5832 BLAKE2B 7f48cb80ee4d51a4385845f1cc10babbbc2dbd40c245f13711467a8cb6244e85eafe59a03c50b99d0d07465a335cefff765296ab92e8b8a8ee2cc8543c4f5e4a SHA512 a08a3e59c77ab5313cdb7f8d8d496071fbaa6765e7bb878012c283eb7103093b511afbf0c234b760fe56ac4e13817746db9990880e5056d36a0d0b1779dd239c
+AUX php-7.0.33-intl-icu-memory-corruption.patch 2385 BLAKE2B 37123710c6cf3f8c99bce365d299079810317cd9aff32e7b725d89fdcedfe0503335b568c5b09f45fdeee8506cd3f691bda24eea1f6101d39a655feff818e57f SHA512 904188088bd2a8a68e2d2019df96d61abfcd7ff7e306f078bcfcd610ea0deda5007392a135c62e2fa2feac27ea6379087835beb36bb76edd1a4055ebe84c1a97
+AUX php-7.0.33-intl-use-icu-namespace.patch 11180 BLAKE2B 5a5d6bd74f2cee846ce58e754443a9b0d689aac1c1705166ea16ea0292f7f4d2b6a83519db5391414cd97de88bc25b7a4d43ba2adc90427e62b134d662ea924d SHA512 faa289791e4ac2c176a27056fb63683cd444c36b6b5118299327179a753e9a1a8589dc6f20e0e3e2d6645312500fbe0d8d9cb4db39e29e7fa22d3d19283b36e8
+AUX php-7.1.25-intl-detect-icu-via-pkg-config.patch 4608 BLAKE2B 3639c5a39bae61d3032c18a85982769c2d8a5837a67cc8b3ec7cd25263d15f4923a04c74f21b10cd5cc17c0cd9d657431dc3052cddaa289a6eb1dac0cf975350 SHA512 567fb3486af02e487cdde11e2a6f706b2fc19722e5e9f4b63320bb2226e30ff79b14780f3f661378bf5bea2150b47af93fb5b39003465895fdf420691d4dbc44
+AUX php-7.1.25-intl-use-icu-namespace.patch 11396 BLAKE2B 7664703a7bafb38d252f5eeec926ee0b7eaf4d75e71ef98c2e7d3f612b7d48d38b66764286d67299a38a704500db2e3215dc375d64a8f277b904aff80211fa60 SHA512 c7b61cade203a338a576aff0b4b76a22f0d686d53e91fbf4c5171e0429317460f7404c78a0c076a3000957100af2d17caba6245bf37afc6177fb43c7fafa7679
+AUX php-7.2.13-intl-use-icu-namespace.patch 11499 BLAKE2B 0dca597d5afd0309595499e3ff860e2d83183e570d02f202a1e2966d430606f09b8dc7427c4007e791914c8ee093a2e7cbf7372baa7896ac06d1912f2e707c09 SHA512 1332eb76feda2100685e319ae046512cf12b55a0d2be537c2172ccf035b547d851f84fb7941389882d7e3d674d91441e018c7b8f1e3f0d4cced05c314d5821fe
AUX php-fpm_at-simple.service 316 BLAKE2B 0ba10f3e3b004fbf14956e1e4f04f59b8a127e6717fe6b92c09b9f931033a11551c75fbbee9010f6b694c5a8758ca0eec9eed457ae304ba0dea8f2c256c3b8d4 SHA512 7367a3f8d3874f8e0c76f331ba613a0250db02f60ad9f87affaf448dcb5bc34bcecb91d88f415764a12b24b46ae3d1b738a002af9f77a4b707e916e83a0021fd
AUX php-fpm_at.service 317 BLAKE2B f13fc38fcc0575a8517ee8d07b120efda37eabd2355061d0fdc303604c6b02ad42d7301180d86c977d5e585f5dd685343c592e37a6e0f44933707be79e0b77e0 SHA512 27982f9e2d958bfa75c89c7d3531e48d17fc388b1cdcbc8e09051b236b1184ee2baabdfcc567c19d9fcd067d4b3b86f171015616d8da42fccdabd89432d865e8
AUX php-freetype-2.9.1.patch 7667 BLAKE2B efc8f829bbad11b3e7b654d0882213ecb9aae766060d51f93446a6293a2f607339faba484c7b0b2f9318a5c5442da3c09e25aeda20dbc5e3258bf1009f8625b4 SHA512 0a06189f6fb3513cd2dcf9ddb590360475e2dd9a7aa8b13ab66c389c1ed40ce2361681f017cd3c6219f5b40a0a9d4978e57ca3ee4bacb7657db3285136fd2875
+DIST php-5.6-openssl-1.1-compatibility.patch 42559 BLAKE2B b7f13866cd8545543143932930f31bcd928fa0b4b36ef63f04798b9ef4699f12b4f4227772ac9e6e5c498aaeacf7b106abcfa48031a12214e123de4b79d3a4cd SHA512 eed695a3dd7ce27e8651b4a4b96ccd0514f256e7d2f0214fac899e9eeea6412aa24f863f1b5d13305bcac50667ccb62709597fb34da1002b005ebf411dd2f5df
DIST php-5.6.38.tar.xz 12467408 BLAKE2B d9ee47e193d80bce8a9ed6ffd3eb13e67ba6d1f597ece2803cd92fddc6245f46cdfe644d6cda12a6bb409b92c1fe748610cc5eb43dea0bf063fda81188ee8b3d SHA512 66c51a8e954b1496c0bad0a2864a2a1537dd1c1c573b553991d6d5bce85fc7bc340e56a21109bc5e9a03799e703204b980b569c95a5c0a1bddb01c8947e7a682
+DIST php-5.6.39.tar.xz 12467096 BLAKE2B 354b147c0fcc13eeec0ab333bcaa32ad26e2f4eef19a0ee52cf596ff96997eaf32cbb6d980cacf643167ed01b06ee9d27eeb7c00c95c8023d305c967c1ce3539 SHA512 814ea2d74df9c3c7041769803ceb4ba20dbfc18885ff85f91dca0c3ab694e3ebfb6a564427d116b35382fe292583a54d449f2528495032ca9724cfbdea82c226
DIST php-7.0.32.tar.xz 12030780 BLAKE2B 0c277eac4c931a6e30954cceb7feef8dea1c3ef4aebac91779b7e1a6f90f608faa93d1750a2dc8f354c73304e0f7a9b9ac17bb0d1da4768ddb68925752c11aef SHA512 4a7c9a6b91ad7da69303916202062d639e6f02dcd483e851a44d8c7a2efeb5c9a666097935ab60d700c4445f86a0c68df1515300c57af1cdb76528b54b757608
+DIST php-7.0.33.tar.xz 12033040 BLAKE2B cb7a4eb3ba8ede93ae8e85b6a11664f33654f7e94fa077ac9a33ab95157c0c2b3b05f98413e13e36f710c6d00b35d49d38bf26092a36e508b88805d092764287 SHA512 9298e185702ea801e9243671ecb0b781c2b04181a2f9fd6490bc14897a333a2c0cc88fe27b0c69c6dd0079629a71c330ed1aa337f48cac6cbd624addb8855500
DIST php-7.1.22.tar.xz 12227848 BLAKE2B 72fab94b1c7ecfd3479f6d6c9a76a9d8813f7789402664201615d79ab8b5bb26fb1b7273769c4898a36f0336e0ce4d50bf2f17b81ddb54acc9583e39623e3a5b SHA512 0fc0907d303711dbc4ba0a18618e3e73550c73d13988c769f8d50066017b1efe3feb0d22d5539f69271ea4e9532a3d997e22841cb59bdbf96313169e1c03538d
DIST php-7.1.23.tar.xz 12227528 BLAKE2B d03470b07ae041c4677e100c1b4f7994d3e15d4830eccba3c654c1f3546345c8205cac057011d2d43ab962ebbc01652f6748270daa40aa1e540453923500288c SHA512 d5a451f1a48415175e3117ffa84ef3504275a407698b59c13eeb403958aa27342e04dc4ffea9791b923ac0cc5d6fdacf2e8672f0e19755bae858707c7fc3627f
DIST php-7.1.24.tar.xz 12205112 BLAKE2B d4dd8bdd980cbb2c8cd813cad44da7a322d75641bb5f4eb986f6be44acf61898e64e43a3206da08b6c68fb1213a95cf5c6bf28bc75356d9abd9711330fa04554 SHA512 ee54d04fa1bb049807e7876baf6a4d12ab8360367bb44ac77c71e53ee8ca078342b4a86f2bc4587838ead27fb8204fea8e739bd582a9e146513ae5d465e59202
+DIST php-7.1.25.tar.xz 12205972 BLAKE2B 3d69cc87d75ee45dc85e5e672ddb6c312fcba12882e227d28e397e1e796e0149588b9519beeb990111315a747a07fa5349ad5f9662c0725b4551478f9e95b51d SHA512 10a75b96d5fa104bc1d5b63f4606d9cfacfc594f7d6ab34f9c5e9e8f209b896516c4121b9cbd323a862724d6dfbd275ef902993cfab619d9a4b9518790b9147c
DIST php-7.2.10.tar.xz 12160864 BLAKE2B f1959a00622c1bd11fa87c61d152c802b307f0b9e89b51ed86b40086cda03eeb6652d47b59df8cc7c9b4e79ab687ae1292b978f453e9f07ac352d209b64c62d8 SHA512 aa90fce17034b2649012d66461626ae74c21ea938b1c71c7eb12419e562c641b432df87a7e900c245ad28df39624cf64a1b2f8ffb123608d94cd35e41f09c0fe
DIST php-7.2.11.tar.xz 12132268 BLAKE2B 8007f6a8f4236efb796681d25f2066deeba98e6e136def0c323aa13399951d58d7f218b3544b3bd0418dfe220f87a38b6515547c50f65c641bd09a2d440eb4e1 SHA512 0cd8578147d17d612e013dfc22b73977719177058b39c7b61dd0bfdfb8c2441aba78af49f58c824f7e66c89b5ad201c36fafb89ccf1e2d20f19b79d6a8fed7e5
DIST php-7.2.12.tar.xz 12141472 BLAKE2B 25d55fcbe63aab64c658e9c4ab52b552831d5c03a8887e1c64f0cadbb8b0d9f3c38cd5d15dac89002c328b737ad864fce392baa0891292ee77d1975562a2bc17 SHA512 bbeaed1278d0d2f1ecb2249dab1ebaab1489ef43be0797dac57d8b523d8e5d284166e6cbf52095f5d34eef447fbdeb0c6916caaa5770221a180ec064f4ffcad8
-DIST php-7.3.0RC2.tar.xz 11924624 BLAKE2B caa2c3752e7fcf2226b8351e96277a5af071cbe13f820f4c81cd54b2e98206b403327a97a7360e6a8e1c7e11687af0ddc24b9a08ef3ac3f18cbe488469c17c35 SHA512 6fca734a4dfbd8ef85838439bc965f6d6773ba270207222b710ab75a0254f6c68378763274ba5d6cfe60b6ea14c134a64cb3ef607cc2ef86c7010bac1e282498
-DIST php-7.3.0RC3.tar.xz 11927028 BLAKE2B b88b2abeac532a5c0de6ee92982514e78ef6ef8ef2436c0edb541b83da9bafa925177d76d54bcdd866f7863442691e6aa721356c123d07c3464f18e85abbdf6a SHA512 ef441fc7608ee5ef5062b252292656d42644307b5623ebd87104ca10191080ba83d44e5984e8eef987d8bec0f0ab8139b7c2d16577fe6dcc5f02e71ba87f5ed8
-DIST php-7.3.0RC5.tar.xz 11916200 BLAKE2B e449bffbd752b9b461878b35ecdc41453c28c103c9c2167d1e50cb923a4172b51efe36d81831897dc00de0c00a9ed38f1ed9d4471f09c82c63b57a307da31189 SHA512 d9628e97494e067b330aa7e75f70c09996c1346aa6c3ab336117853ef15c3f31cf3dda098e00f0aace1fcc51e1c7450fb11f63ae4ece5f8073aa556433ac6c0a
+DIST php-7.2.13.tar.xz 12116484 BLAKE2B 00d265c10343e590772a4de103ae885149a56a7c0ef957cb24d5e81f86021231da5e75b655081e9fcba99b83956d55265b6af1d779ee65cebee9a974f936a634 SHA512 9df1d43e9cd701db10281811b328721b85cb90c6c8dae1842b0fd848cb5388328918b3040bbad7634b340550d82b93746ea479ed45f4d8a80e8a316e6324115d
+DIST php-7.3.0.tar.xz 11928820 BLAKE2B 36fee652cbbc28bbeb1b2df037b4b05084910d94af86c16150d776b82f91fb85691f9846c51538dbf6f3e64ece26894fe9c7a5f272d2848d41cdf8e1338b9805 SHA512 d991101eb833d3a47833aa930341e75c56f26c4cb0249896728ebe209c6c02af1704fccc3052128d8f9fdffc60dcef0ece38a532697131141946898d8b1abcda
+EBUILD php-5.6.38-r1.ebuild 23051 BLAKE2B 2f4bb600718476e7c1f587618c26d60949dab9037f5688688cb4a47cdf1621cde4e7e4065d878b229436feee24e1520e399cd4e532966d4a0e36ddd5b9f606f0 SHA512 fa50618759e8280ca7d81fb92a73f5987b3c52dde2d8cadda2576767ac1eb9423b3f047e5f4eca62c41762d3f65977a22ce22ce56266942975ab07dc79ab30e2
EBUILD php-5.6.38.ebuild 22798 BLAKE2B 8bef3ae060eeb63fcc492a7c8c8a8b642b84f46ef7ed29e69badeecf26c0f853e974c8f224739875fee1b345987775c05f451908d4731550eab156993a55d23a SHA512 0a97787e0b80643e620815c32b29a56063ddb92c31516ad34f89be9769cc3cf9ba07eb0271d433f330d6493df2b1a63af29bf8b7ede81bdd3fbc2751be5ce561
+EBUILD php-5.6.39.ebuild 23265 BLAKE2B 87584041cb4d7e21ef21f6fc25dc3b03f8bf46037caa7aba79c7f5b29fb6af081e34b9f994f2e4df461398181777ab81fda80621f7672dfe1697660252462cd4 SHA512 6b9e20c877b5d7d85b60737dd24f798194fc7b6a2470e6356270645dc39ffa2fd083a63740b3957ed7f5f3d8e94290d35dd96ee98ca8e264fb620ce61397ade5
EBUILD php-7.0.32.ebuild 22008 BLAKE2B 26829e446d9608f52212a32e0092d83d65966a270a8e4d35f8ac4559f0679a4ff955848eb9c9ae3f7d25300d347a226adc1b71d1b322d09fe512188360f2182f SHA512 a9fdfe7a831fa4ad71ddd4bae29582053ee86a824dc93f02581a3add372561f34d457f2c9198c72c619b10666b679d3f929f6aaf309c2d446a60e9447e8d3cc2
+EBUILD php-7.0.33.ebuild 22169 BLAKE2B c42c62525fdb4e5e0de2cd232c2e6c04fa0c561f0095db4f3d05822cbbde8bc8938369870cea1dd3e7c9a0ea87899e2323a185195fe177441eb94a66ea2095c0 SHA512 c909409059798a4cbb2284a71affc0df5c47db6bebafc291323eeb865b118712a4b344b4f556be95d3035333481ed147804e908b1d8e5c68b38bb178ef0651b8
EBUILD php-7.1.22.ebuild 21715 BLAKE2B 13f34b9730b2f0f22cfcbf26af6575259d08d61f158b0c9bd9b6e7756326037e32e92992ec510bc1649eca0beb2044f820888c7e9b1fa48174974e754947f181 SHA512 187fd61cf4df1cda5c53e14aea0ac327c5e9fab193843165de2afe7e13fdb5b8be1ebab70fcb776dcb8ebe1966feedcc075e589c4ddf1f9f6d3d58f45519a9d4
EBUILD php-7.1.23.ebuild 21933 BLAKE2B 4080e9f9bea273c051f26db5ccd8781f5b448cc800999f71e527f7e0a243f84dd5fc420aa9b6ae86d293588e8de13644c14a48212cc77a3197801c4bb118cb19 SHA512 dcc63f2e7373a9b57a2d3bb010a125d3ce74b7bcb030490b4051853cac78964ac59bd7d1309c5c8f1d11cf2b52615c075c846575528eb6968422736b08add279
EBUILD php-7.1.24.ebuild 21933 BLAKE2B 4080e9f9bea273c051f26db5ccd8781f5b448cc800999f71e527f7e0a243f84dd5fc420aa9b6ae86d293588e8de13644c14a48212cc77a3197801c4bb118cb19 SHA512 dcc63f2e7373a9b57a2d3bb010a125d3ce74b7bcb030490b4051853cac78964ac59bd7d1309c5c8f1d11cf2b52615c075c846575528eb6968422736b08add279
+EBUILD php-7.1.25.ebuild 22041 BLAKE2B 29e1e02ede599d151b8ca60fda7ab63cfb84d3a75b14380e680fa886e3f068a61c48b48e89db6b3d45dba4e3a88919175375de584ded8edac6d80d4c48b12df6 SHA512 e39340ed01c7fe6e14ebb8c8b9afe624fe6b2292280457302f53cf9b20308729fcb06cf1a2ec5de69b8e7c4cd12d9c46ca250590df034fa7e16eb7be90b968b7
EBUILD php-7.2.10.ebuild 22246 BLAKE2B e06f62b7f5563d48d9e381b6ab44cc72e9e63831e209ee638321e93b90a1f42abb9a41b757629b45cfa610f7e985f40fbd002c5121acf86d862f8d648ee16f44 SHA512 c662c27b70663131899ffe595476bff326a337d584855e27f62480bf8824e3a3f49caee7c80b4f3aa19ccc40d1f95f3a9c4518621cbd43abd751981ba334e190
EBUILD php-7.2.11.ebuild 22464 BLAKE2B 43c52b71820962862ce7e208e45bea5180014075894125075fbfd0f217412f3cbe5b6bf6642e76ad9145d2cb26a1ae94b6880186c86a196eac851d97f10fe000 SHA512 44b1f8a4eb74480d878fc8e8f9a1eb1ed8cdc35c9f4091cce2b6668d0b9afa86538e7dab5271ef9e6ea07d71e0e3cf4d9325297c3abfe2a63a754134166c02f1
EBUILD php-7.2.12.ebuild 22464 BLAKE2B 43c52b71820962862ce7e208e45bea5180014075894125075fbfd0f217412f3cbe5b6bf6642e76ad9145d2cb26a1ae94b6880186c86a196eac851d97f10fe000 SHA512 44b1f8a4eb74480d878fc8e8f9a1eb1ed8cdc35c9f4091cce2b6668d0b9afa86538e7dab5271ef9e6ea07d71e0e3cf4d9325297c3abfe2a63a754134166c02f1
-EBUILD php-7.3.0_rc2.ebuild 22329 BLAKE2B 7841e7d459849f06a47128e2c0a8f1997b3d1b6be02081d3dafa624f7ea319da13974cd904ce772260c8e001ae5c594508cf5be9f0426d8fd5da9ff6107111ca SHA512 f81a2d251ded29e6f91f72c736c27f44e8f8f6ef9cdfe57d7b8fefc0c3c27869a83972355d03532db95ba0c9c0b3322870174b7c8c0e57a1f9ea8ec4c40ca4c7
-EBUILD php-7.3.0_rc3.ebuild 22535 BLAKE2B add28e6c6a24b502a36417c3afb5b71995f510ecff7ec65380d9413aede5a2f182e7caaf31a4a0e1cb8299a3059f1a5aa70a16ab3f4135a85028bc3793445b8e SHA512 2ba2c9420d73355e3cdedbf46de520933b7cace0f73396f2b999ae2eaa6d64e1d3816b1a3054669f04d03e69453bd80673d9b0ad66c1b920f6bf59faa5daa8f7
-EBUILD php-7.3.0_rc5.ebuild 22535 BLAKE2B add28e6c6a24b502a36417c3afb5b71995f510ecff7ec65380d9413aede5a2f182e7caaf31a4a0e1cb8299a3059f1a5aa70a16ab3f4135a85028bc3793445b8e SHA512 2ba2c9420d73355e3cdedbf46de520933b7cace0f73396f2b999ae2eaa6d64e1d3816b1a3054669f04d03e69453bd80673d9b0ad66c1b920f6bf59faa5daa8f7
+EBUILD php-7.2.13.ebuild 22565 BLAKE2B 3744aa6f80c3de1db2ecd9bf1358d3afdca6fde51a840fdc290ca90ab35859f7c15d3881b6726722486bb22e0d767405f7cbd0cfdb05888496c79f5209b4709f SHA512 614cb46ded4c189475352dce004f2ef20636470c9d289c9482144417defc184a3f6a63407ddda20cef723730fac266c33c204856d9a1796b41cfdd514f9e9ed7
+EBUILD php-7.3.0.ebuild 22531 BLAKE2B 06ff025e987ed3d150fd3309ac3837a9a2f69b50f13ff42977aa7d5977916fddc700f9c95cdba608980d3e95164b0c50b03fbd4939f9faadc77f1b86e6dac046 SHA512 7772c5ea41b650e2e1acb46c79a4a6400bbc760a18b8439b62361b4e49c9d91b9bfaa40dd05b8409bf77f473495987c58ec8c0d5c8d81e9c0386ab358629ca13
MISC metadata.xml 3268 BLAKE2B fcd85522c4dbea03403eee66cd3be945f4f998d5eb483ac9c47bd2be2f5f2f4be8586ecc58d50ced7798fdd63ef2136e56d559fa06e870d242239127a97b7b76 SHA512 c44c7fdf1592ba4c0b2cf6f29a97a4a214d2193cb164dcc90454e4a762860a5f3fa67908217543fe72811d403c2ef3b15d2f80f2657f09c1e078d31ef35c12f4
diff --git a/dev-lang/php/files/php-5.6-intl-detect-icu-via-pkg-config.patch b/dev-lang/php/files/php-5.6-intl-detect-icu-via-pkg-config.patch
new file mode 100644
index 000000000000..dea2949c25ed
--- /dev/null
+++ b/dev-lang/php/files/php-5.6-intl-detect-icu-via-pkg-config.patch
@@ -0,0 +1,154 @@
+Based on the following upstream commits:
+
+https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52
+https://github.com/php/php-src/pull/3701
+https://github.com/php/php-src/commit/2bd299f7318492fd7e5cafffa562d76ba60e69d4
+
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -2201,49 +2201,16 @@ dnl
+ dnl Common setup macro for ICU
+ dnl
+ AC_DEFUN([PHP_SETUP_ICU],[
+- PHP_ARG_WITH(icu-dir,,
+- [ --with-icu-dir=DIR Specify where ICU libraries and headers can be found], DEFAULT, no)
++ PKG_CHECK_MODULES([ICU], [icu-io >= 50.1])
+
+- if test "$PHP_ICU_DIR" = "no"; then
+- PHP_ICU_DIR=DEFAULT
+- fi
+-
+- if test "$PHP_ICU_DIR" = "DEFAULT"; then
+- dnl Try to find icu-config
+- AC_PATH_PROG(ICU_CONFIG, icu-config, no, [$PATH:/usr/local/bin])
+- else
+- ICU_CONFIG="$PHP_ICU_DIR/bin/icu-config"
+- fi
+-
+- AC_MSG_CHECKING([for location of ICU headers and libraries])
+-
+- dnl Trust icu-config to know better what the install prefix is..
+- icu_install_prefix=`$ICU_CONFIG --prefix 2> /dev/null`
+- if test "$?" != "0" || test -z "$icu_install_prefix"; then
+- AC_MSG_RESULT([not found])
+- AC_MSG_ERROR([Unable to detect ICU prefix or $ICU_CONFIG failed. Please verify ICU install prefix and make sure icu-config works.])
+- else
+- AC_MSG_RESULT([$icu_install_prefix])
+-
+- dnl Check ICU version
+- AC_MSG_CHECKING([for ICU 4.0 or greater])
+- icu_version_full=`$ICU_CONFIG --version`
+- ac_IFS=$IFS
+- IFS="."
+- set $icu_version_full
+- IFS=$ac_IFS
+- icu_version=`expr [$]1 \* 1000 + [$]2`
+- AC_MSG_RESULT([found $icu_version_full])
++ PHP_EVAL_INCLINE($ICU_CFLAGS)
++ PHP_EVAL_LIBLINE($ICU_LIBS, $1)
+
+- if test "$icu_version" -lt "4000"; then
+- AC_MSG_ERROR([ICU version 4.0 or later is required])
+- fi
++ ICU_CFLAGS="$ICU_CFLAGS -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
++ ICU_CXXFLAGS="$ICU_CXXFLAGS -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit"
+
+- ICU_VERSION=$icu_version
+- ICU_INCS=`$ICU_CONFIG --cppflags-searchpath`
+- ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio`
+- PHP_EVAL_INCLINE($ICU_INCS)
+- PHP_EVAL_LIBLINE($ICU_LIBS, $1)
++ if test "$PKG_CONFIG icu-io --atleast-version=60"; then
++ ICU_CFLAGS="$ICU_CFLAGS -DU_HIDE_OBSOLETE_UTF_OLD_H=1"
+ fi
+ ])
+
+--- a/ext/intl/config.m4
++++ b/ext/intl/config.m4
+@@ -9,18 +9,10 @@ if test "$PHP_INTL" != "no"; then
+ PHP_SETUP_ICU(INTL_SHARED_LIBADD)
+ PHP_SUBST(INTL_SHARED_LIBADD)
+ PHP_REQUIRE_CXX()
+- if test "$icu_version" -ge "4002"; then
+- icu_spoof_src=" spoofchecker/spoofchecker_class.c \
+- spoofchecker/spoofchecker.c\
+- spoofchecker/spoofchecker_create.c\
+- spoofchecker/spoofchecker_main.c"
+- else
+- icu_spoof_src=""
+- fi
++ INTL_COMMON_FLAGS="$ICU_CFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
+ PHP_NEW_EXTENSION(intl, php_intl.c \
+ intl_error.c \
+ intl_convert.c \
+- intl_convertcpp.cpp \
+ collator/collator.c \
+ collator/collator_class.c \
+ collator/collator_sort.c \
+@@ -32,8 +24,6 @@ if test "$PHP_INTL" != "no"; then
+ collator/collator_is_numeric.c \
+ collator/collator_error.c \
+ common/common_error.c \
+- common/common_enum.cpp \
+- common/common_date.cpp \
+ converter/converter.c \
+ formatter/formatter.c \
+ formatter/formatter_main.c \
+@@ -53,17 +43,12 @@ if test "$PHP_INTL" != "no"; then
+ dateformat/dateformat_attr.c \
+ dateformat/dateformat_data.c \
+ dateformat/dateformat_format.c \
+- dateformat/dateformat_format_object.cpp \
+ dateformat/dateformat_parse.c \
+- dateformat/dateformat_create.cpp \
+- dateformat/dateformat_attrcpp.cpp \
+- dateformat/dateformat_helpers.cpp \
+ msgformat/msgformat.c \
+ msgformat/msgformat_attr.c \
+ msgformat/msgformat_class.c \
+ msgformat/msgformat_data.c \
+ msgformat/msgformat_format.c \
+- msgformat/msgformat_helpers.cpp \
+ msgformat/msgformat_parse.c \
+ grapheme/grapheme_string.c \
+ grapheme/grapheme_util.c \
+@@ -73,6 +58,20 @@ if test "$PHP_INTL" != "no"; then
+ transliterator/transliterator.c \
+ transliterator/transliterator_class.c \
+ transliterator/transliterator_methods.c \
++ idn/idn.c \
++ spoofchecker/spoofchecker_class.c \
++ spoofchecker/spoofchecker.c\
++ spoofchecker/spoofchecker_create.c\
++ spoofchecker/spoofchecker_main.c, $ext_shared,,$INTL_COMMON_FLAGS,cxx)
++
++ PHP_INTL_CPP_SOURCES="intl_convertcpp.cpp \
++ common/common_enum.cpp \
++ common/common_date.cpp \
++ dateformat/dateformat_format_object.cpp \
++ dateformat/dateformat_create.cpp \
++ dateformat/dateformat_attrcpp.cpp \
++ dateformat/dateformat_helpers.cpp \
++ msgformat/msgformat_helpers.cpp \
+ timezone/timezone_class.cpp \
+ timezone/timezone_methods.cpp \
+ calendar/calendar_class.cpp \
+@@ -83,9 +82,15 @@ if test "$PHP_INTL" != "no"; then
+ breakiterator/breakiterator_methods.cpp \
+ breakiterator/rulebasedbreakiterator_methods.cpp \
+ breakiterator/codepointiterator_internal.cpp \
+- breakiterator/codepointiterator_methods.cpp \
+- idn/idn.c \
+- $icu_spoof_src, $ext_shared,,$ICU_INCS -Wno-write-strings)
++ breakiterator/codepointiterator_methods.cpp"
++
++ PHP_INTL_CPP_FLAGS="$ICU_CXXFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
++ if test "$ext_shared" = "no"; then
++ PHP_ADD_SOURCES(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS)
++ else
++ PHP_ADD_SOURCES_X(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS, shared_objects_intl, yes)
++ fi
++
+ PHP_ADD_BUILD_DIR($ext_builddir/collator)
+ PHP_ADD_BUILD_DIR($ext_builddir/converter)
+ PHP_ADD_BUILD_DIR($ext_builddir/common)
diff --git a/dev-lang/php/files/php-5.6-intl-icu-memory-corruption.patch b/dev-lang/php/files/php-5.6-intl-icu-memory-corruption.patch
new file mode 100644
index 000000000000..1b18f7fc5c44
--- /dev/null
+++ b/dev-lang/php/files/php-5.6-intl-icu-memory-corruption.patch
@@ -0,0 +1,88 @@
+Based on the following upstream commits:
+
+https://github.com/php/php-src/commit/45a05f38410d4a67c8c83c09906e2cfb42fc6e4c
+https://github.com/php/php-src/commit/534684d1042978f3c21caf9b665a7aca27f3f325
+
+--- a/ext/intl/msgformat/msgformat_helpers.cpp
++++ b/ext/intl/msgformat/msgformat_helpers.cpp
+@@ -27,6 +27,7 @@
+ #include <unicode/timezone.h>
+ #include <unicode/datefmt.h>
+ #include <unicode/calendar.h>
++#include <unicode/strenum.h>
+
+ #include <vector>
+
+@@ -45,6 +46,7 @@ extern "C" {
+
+ #if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 48
+ #define HAS_MESSAGE_PATTERN 1
++#define HAS_MISALLOCATE_MEMORY_BUG 1
+ #endif
+
+ U_NAMESPACE_BEGIN
+@@ -345,6 +347,26 @@ static void umsg_set_timezone(MessageFormatter_object *mfo,
+ return; /* already done */
+ }
+
++#ifdef HAS_MISALLOCATE_MEMORY_BUG
++ /* There is a bug in ICU which prevents MessageFormatter::getFormats()
++ to handle more than 10 formats correctly. The enumerator could be
++ used to walk through the present formatters using getFormat(), which
++ however seems to provide just a readonly access. This workaround
++ prevents crash when there are > 10 formats but doesn't set any error.
++ As a result, only DateFormatters with > 10 subformats are affected.
++ This workaround should be ifdef'd out, when the bug has been fixed
++ in ICU. */
++ icu::StringEnumeration* fnames = mf->getFormatNames(err.code);
++ if (!fnames || U_FAILURE(err.code)) {
++ return;
++ }
++ count = fnames->count(err.code);
++ delete fnames;
++ if (count > 10) {
++ return;
++ }
++#endif
++
+ formats = mf->getFormats(count);
+
+ if (formats == NULL) {
+--- /dev/null
++++ b/ext/intl/tests/bug74484_MessageFormatter.phpt
+@@ -0,0 +1,35 @@
++--TEST--
++Bug #74484 MessageFormatter::formatMessage memory corruption with 11+ named placeholder
++--SKIPIF--
++<?php
++if (!extension_loaded('intl'))
++ die('skip intl extension not enabled');
++if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
++ die('skip for ICU 4.8+');
++?>
++--FILE--
++<?php
++$text = "{a} {b} {c} {d} {e} {f} {g} {h} {i} {j} {k} {l}";
++
++$vars = array(
++ 'a' => 1,
++ 'b' => 2,
++ 'c' => 3,
++ 'd' => 4,
++ 'e' => 5,
++ 'f' => 6,
++ 'g' => 7,
++ 'h' => 8,
++ 'i' => 9,
++ 'j' => 10,
++ 'k' => 11,
++ 'l' => 12
++);
++
++var_dump(MessageFormatter::formatMessage('en_US', $text, $vars));
++
++?>
++==DONE==
++--EXPECT--
++string(26) "1 2 3 4 5 6 7 8 9 10 11 12"
++==DONE==
diff --git a/dev-lang/php/files/php-5.6-intl-use-icu-namespace.patch b/dev-lang/php/files/php-5.6-intl-use-icu-namespace.patch
new file mode 100644
index 000000000000..715adb303d6b
--- /dev/null
+++ b/dev-lang/php/files/php-5.6-intl-use-icu-namespace.patch
@@ -0,0 +1,365 @@
+Based on the following upstream commits:
+
+https://github.com/php/php-src/commit/8d35a423838eb462cd39ee535c5d003073cc5f22
+https://github.com/php/php-src/commit/d8200e48857aeaf09f7127751efc5632ef7660a7
+https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52
+
+--- a/ext/intl/breakiterator/breakiterator_class.cpp
++++ b/ext/intl/breakiterator/breakiterator_class.cpp
+@@ -38,6 +38,7 @@ extern "C" {
+ }
+
+ using PHP::CodePointBreakIterator;
++using icu::RuleBasedBreakIterator;
+
+ /* {{{ Global variables */
+ zend_class_entry *BreakIterator_ce_ptr;
+--- a/ext/intl/breakiterator/breakiterator_class.h
++++ b/ext/intl/breakiterator/breakiterator_class.h
+@@ -26,6 +26,8 @@
+
+ #ifndef USE_BREAKITERATOR_POINTER
+ typedef void BreakIterator;
++#else
++using icu::BreakIterator;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/breakiterator/breakiterator_methods.cpp
++++ b/ext/intl/breakiterator/breakiterator_methods.cpp
+@@ -32,6 +32,8 @@ extern "C" {
+ }
+
+ using PHP::CodePointBreakIterator;
++using icu::BreakIterator;
++using icu::Locale;
+
+ U_CFUNC PHP_METHOD(BreakIterator, __construct)
+ {
+--- a/ext/intl/breakiterator/codepointiterator_internal.cpp
++++ b/ext/intl/breakiterator/codepointiterator_internal.cpp
+@@ -31,6 +31,8 @@ typedef union {
+
+ using namespace PHP;
+
++using icu::UCharCharacterIterator;
++
+ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CodePointBreakIterator);
+
+ CodePointBreakIterator::CodePointBreakIterator()
+--- a/ext/intl/breakiterator/codepointiterator_internal.h
++++ b/ext/intl/breakiterator/codepointiterator_internal.h
+@@ -18,8 +18,11 @@
+ #define CODEPOINTITERATOR_INTERNAL_H
+
+ #include <unicode/brkiter.h>
++#include <unicode/unistr.h>
+
+-using U_ICU_NAMESPACE::BreakIterator;
++using icu::BreakIterator;
++using icu::CharacterIterator;
++using icu::UnicodeString;
+
+ namespace PHP {
+
+--- a/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
++++ b/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
+@@ -25,6 +25,9 @@ extern "C" {
+
+ #include "../intl_convertcpp.h"
+
++using icu::RuleBasedBreakIterator;
++using icu::Locale;
++
+ static inline RuleBasedBreakIterator *fetch_rbbi(BreakIterator_object *bio) {
+ return (RuleBasedBreakIterator*)bio->biter;
+ }
+--- a/ext/intl/calendar/calendar_class.cpp
++++ b/ext/intl/calendar/calendar_class.cpp
+@@ -34,6 +34,9 @@ extern "C" {
+ #include <assert.h>
+ }
+
++using icu::GregorianCalendar;
++using icu::Locale;
++
+ /* {{{ Global variables */
+ zend_class_entry *Calendar_ce_ptr;
+ zend_class_entry *GregorianCalendar_ce_ptr;
+--- a/ext/intl/calendar/calendar_class.h
++++ b/ext/intl/calendar/calendar_class.h
+@@ -26,6 +26,8 @@
+
+ #ifndef USE_CALENDAR_POINTER
+ typedef void Calendar;
++#else
++using icu::Calendar;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/calendar/calendar_methods.cpp
++++ b/ext/intl/calendar/calendar_methods.cpp
+@@ -40,6 +40,8 @@ extern "C" {
+ }
+ #include "../common/common_enum.h"
+
++using icu::Locale;
++
+ U_CFUNC PHP_METHOD(IntlCalendar, __construct)
+ {
+ zend_throw_exception( NULL,
+--- a/ext/intl/calendar/gregoriancalendar_methods.cpp
++++ b/ext/intl/calendar/gregoriancalendar_methods.cpp
+@@ -23,6 +23,8 @@
+ #include <unicode/locid.h>
+ #include <unicode/calendar.h>
+ #include <unicode/gregocal.h>
++#include <unicode/ustring.h>
++
+ extern "C" {
+ #include "../php_intl.h"
+ #define USE_TIMEZONE_POINTER 1
+@@ -32,6 +34,11 @@ extern "C" {
+ #include <ext/date/php_date.h>
+ }
+
++using icu::GregorianCalendar;
++using icu::Locale;
++using icu::UnicodeString;
++using icu::StringPiece;
++
+ static inline GregorianCalendar *fetch_greg(Calendar_object *co) {
+ return (GregorianCalendar*)co->ucal;
+ }
+--- a/ext/intl/common/common_date.cpp
++++ b/ext/intl/common/common_date.cpp
+@@ -25,6 +25,9 @@ extern "C" {
+ #include <ext/date/php_date.h>
+ }
+
++using icu::TimeZone;
++using icu::UnicodeString;
++
+ #ifndef INFINITY
+ #define INFINITY (DBL_MAX+DBL_MAX)
+ #endif
+--- a/ext/intl/common/common_date.h
++++ b/ext/intl/common/common_date.h
+@@ -28,6 +28,8 @@ U_CDECL_END
+
+ #include <unicode/timezone.h>
+
++using icu::TimeZone;
++
+ U_CFUNC TimeZone *timezone_convert_datetimezone(int type, void *object, int is_datetime, intl_error *outside_error, const char *func TSRMLS_DC);
+ U_CFUNC int intl_datetime_decompose(zval *z, double *millis, TimeZone **tz,
+ intl_error *err, const char *func TSRMLS_DC);
+--- a/ext/intl/common/common_enum.h
++++ b/ext/intl/common/common_enum.h
+@@ -69,6 +69,7 @@ U_CFUNC void zoi_with_current_get_current_data(zend_object_iterator *iter, zval
+ U_CFUNC void zoi_with_current_invalidate_current(zend_object_iterator *iter TSRMLS_DC);
+
+ #ifdef __cplusplus
++using icu::StringEnumeration;
+ U_CFUNC void IntlIterator_from_StringEnumeration(StringEnumeration *se, zval *object TSRMLS_DC);
+ #endif
+
+--- a/ext/intl/converter/converter.c
++++ b/ext/intl/converter/converter.c
+@@ -18,6 +18,8 @@
+ #include "zend_exceptions.h"
+
+ #include <unicode/utypes.h>
++#include <unicode/utf8.h>
++#include <unicode/utf16.h>
+ #include <unicode/ucnv.h>
+ #include <unicode/ustring.h>
+
+--- a/ext/intl/dateformat/dateformat_format_object.cpp
++++ b/ext/intl/dateformat/dateformat_format_object.cpp
+@@ -33,6 +33,12 @@ extern "C" {
+ #include "../common/common_date.h"
+ }
+
++using icu::Locale;
++using icu::DateFormat;
++using icu::GregorianCalendar;
++using icu::StringPiece;
++using icu::SimpleDateFormat;
++
+ static const DateFormat::EStyle valid_styles[] = {
+ DateFormat::kNone,
+ DateFormat::kFull,
+--- a/ext/intl/dateformat/dateformat_helpers.cpp
++++ b/ext/intl/dateformat/dateformat_helpers.cpp
+@@ -28,6 +28,8 @@ extern "C" {
+ #include "../calendar/calendar_class.h"
+ }
+
++using icu::GregorianCalendar;
++
+ int datefmt_process_calendar_arg(zval* calendar_zv,
+ Locale const& locale,
+ const char *func_name,
+--- a/ext/intl/dateformat/dateformat_helpers.h
++++ b/ext/intl/dateformat/dateformat_helpers.h
+@@ -22,11 +22,16 @@
+ #endif
+
+ #include <unicode/calendar.h>
++#include <unicode/datefmt.h>
+
+ extern "C" {
+ #include "../php_intl.h"
+ }
+
++using icu::Locale;
++using icu::Calendar;
++using icu::DateFormat;
++
+ int datefmt_process_calendar_arg(zval* calendar_zv,
+ Locale const& locale,
+ const char *func_name,
+--- a/ext/intl/grapheme/grapheme_string.c
++++ b/ext/intl/grapheme/grapheme_string.c
+@@ -24,6 +24,7 @@
+ #include "grapheme_util.h"
+
+ #include <unicode/utypes.h>
++#include <unicode/utf8.h>
+ #include <unicode/ucol.h>
+ #include <unicode/ustring.h>
+ #include <unicode/ubrk.h>
+@@ -860,10 +861,10 @@ PHP_FUNCTION(grapheme_extract)
+ pstr = str + start;
+
+ /* just in case pstr points in the middle of a character, move forward to the start of the next char */
+- if ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
++ if ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
+ unsigned char *str_end = str + str_len;
+
+- while ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
++ while ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
+ pstr++;
+ if ( pstr >= str_end ) {
+ intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
+--- a/ext/intl/intl_convertcpp.h
++++ b/ext/intl/intl_convertcpp.h
+@@ -25,6 +25,8 @@
+
+ #include <unicode/unistr.h>
+
++using icu::UnicodeString;
++
+ int intl_stringFromChar(UnicodeString &ret, char *str, int32_t str_len, UErrorCode *status);
+
+ int intl_charFromString(const UnicodeString &from, char **res, int *res_len, UErrorCode *status);
+--- a/ext/intl/msgformat/msgformat_helpers.cpp
++++ b/ext/intl/msgformat/msgformat_helpers.cpp
+@@ -76,6 +76,16 @@ MessageFormatAdapter::getMessagePattern(MessageFormat* m) {
+ #endif
+ U_NAMESPACE_END
+
++using icu::Formattable;
++using icu::Format;
++using icu::DateFormat;
++using icu::MessageFormat;
++#ifdef HAS_MESSAGE_PATTERN
++using icu::MessagePattern;
++#endif
++using icu::MessageFormatAdapter;
++using icu::FieldPosition;
++
+ U_CFUNC int32_t umsg_format_arg_count(UMessageFormat *fmt)
+ {
+ int32_t fmt_count = 0;
+@@ -227,15 +237,16 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
+ UnicodeString typeString = mp.getSubstring(type_part);
+ /* This is all based on the rules in the docs for MessageFormat
+ * @see http://icu-project.org/apiref/icu4c/classMessageFormat.html */
+- if (typeString == "number") {
++#define ASCII_LITERAL(s) UNICODE_STRING(s, sizeof(s)-1)
++ if (typeString == ASCII_LITERAL("number")) {
+ MessagePattern::Part style_part = mp.getPart(i + 1); /* Not advancing i */
+ if (style_part.getType() == UMSGPAT_PART_TYPE_ARG_STYLE) {
+ UnicodeString styleString = mp.getSubstring(style_part);
+- if (styleString == "integer") {
++ if (styleString == ASCII_LITERAL("integer")) {
+ type = Formattable::kInt64;
+- } else if (styleString == "currency") {
++ } else if (styleString == ASCII_LITERAL("currency")) {
+ type = Formattable::kDouble;
+- } else if (styleString == "percent") {
++ } else if (styleString == ASCII_LITERAL("percent")) {
+ type = Formattable::kDouble;
+ } else { /* some style invalid/unknown to us */
+ type = Formattable::kDouble;
+@@ -243,12 +254,13 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
+ } else { // if missing style, part, make it a double
+ type = Formattable::kDouble;
+ }
+- } else if ((typeString == "date") || (typeString == "time")) {
++ } else if ((typeString == ASCII_LITERAL("date")) || (typeString == ASCII_LITERAL("time"))) {
+ type = Formattable::kDate;
+- } else if ((typeString == "spellout") || (typeString == "ordinal")
+- || (typeString == "duration")) {
++ } else if ((typeString == ASCII_LITERAL("spellout")) || (typeString == ASCII_LITERAL("ordinal"))
++ || (typeString == ASCII_LITERAL("duration"))) {
+ type = Formattable::kDouble;
+ }
++#undef ASCII_LITERAL
+ } else {
+ /* If there's no UMSGPAT_PART_TYPE_ARG_TYPE right after a
+ * UMSGPAT_ARG_TYPE_SIMPLE argument, then the pattern
+--- a/ext/intl/normalizer/normalizer_normalize.c
++++ b/ext/intl/normalizer/normalizer_normalize.c
+@@ -24,6 +24,7 @@
+ #include "normalizer_class.h"
+ #include "normalizer_normalize.h"
+ #include "intl_convert.h"
++#include <unicode/utf8.h>
+
+ /* {{{ proto string Normalizer::normalize( string $input [, string $form = FORM_C] )
+ * Normalize a string. }}} */
+--- a/ext/intl/timezone/timezone_class.cpp
++++ b/ext/intl/timezone/timezone_class.cpp
+@@ -37,6 +37,8 @@ extern "C" {
+ #include <ext/date/php_date.h>
+ }
+
++using icu::Calendar;
++
+ /* {{{ Global variables */
+ U_CDECL_BEGIN
+ zend_class_entry *TimeZone_ce_ptr = NULL;
+--- a/ext/intl/timezone/timezone_class.h
++++ b/ext/intl/timezone/timezone_class.h
+@@ -29,6 +29,8 @@
+
+ #ifndef USE_TIMEZONE_POINTER
+ typedef void TimeZone;
++#else
++using icu::TimeZone;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/timezone/timezone_methods.cpp
++++ b/ext/intl/timezone/timezone_methods.cpp
+@@ -23,6 +23,7 @@
+ #include <unicode/locid.h>
+ #include <unicode/timezone.h>
+ #include <unicode/ustring.h>
++#include <unicode/calendar.h>
+ #include "intl_convertcpp.h"
+
+ #include "../common/common_date.h"
+@@ -37,6 +38,9 @@ extern "C" {
+ }
+ #include "common/common_enum.h"
+
++using icu::Locale;
++using icu::Calendar;
++
+ U_CFUNC PHP_METHOD(IntlTimeZone, __construct)
+ {
+ zend_throw_exception( NULL,
diff --git a/dev-lang/php/files/php-7.0.33-intl-detect-icu-via-pkg-config.patch b/dev-lang/php/files/php-7.0.33-intl-detect-icu-via-pkg-config.patch
new file mode 100644
index 000000000000..d23ec91fc83f
--- /dev/null
+++ b/dev-lang/php/files/php-7.0.33-intl-detect-icu-via-pkg-config.patch
@@ -0,0 +1,159 @@
+Based on the following upstream commits:
+
+https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52
+https://github.com/php/php-src/pull/3701
+https://github.com/php/php-src/commit/2bd299f7318492fd7e5cafffa562d76ba60e69d4
+
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -2205,49 +2205,16 @@ dnl
+ dnl Common setup macro for ICU
+ dnl
+ AC_DEFUN([PHP_SETUP_ICU],[
+- PHP_ARG_WITH(icu-dir,,
+- [ --with-icu-dir=DIR Specify where ICU libraries and headers can be found], DEFAULT, no)
++ PKG_CHECK_MODULES([ICU], [icu-io >= 50.1])
+
+- if test "$PHP_ICU_DIR" = "no"; then
+- PHP_ICU_DIR=DEFAULT
+- fi
+-
+- if test "$PHP_ICU_DIR" = "DEFAULT"; then
+- dnl Try to find icu-config
+- AC_PATH_PROG(ICU_CONFIG, icu-config, no, [$PATH:/usr/local/bin])
+- else
+- ICU_CONFIG="$PHP_ICU_DIR/bin/icu-config"
+- fi
+-
+- AC_MSG_CHECKING([for location of ICU headers and libraries])
+-
+- dnl Trust icu-config to know better what the install prefix is..
+- icu_install_prefix=`$ICU_CONFIG --prefix 2> /dev/null`
+- if test "$?" != "0" || test -z "$icu_install_prefix"; then
+- AC_MSG_RESULT([not found])
+- AC_MSG_ERROR([Unable to detect ICU prefix or $ICU_CONFIG failed. Please verify ICU install prefix and make sure icu-config works.])
+- else
+- AC_MSG_RESULT([$icu_install_prefix])
+-
+- dnl Check ICU version
+- AC_MSG_CHECKING([for ICU 4.0 or greater])
+- icu_version_full=`$ICU_CONFIG --version`
+- ac_IFS=$IFS
+- IFS="."
+- set $icu_version_full
+- IFS=$ac_IFS
+- icu_version=`expr [$]1 \* 1000 + [$]2`
+- AC_MSG_RESULT([found $icu_version_full])
++ PHP_EVAL_INCLINE($ICU_CFLAGS)
++ PHP_EVAL_LIBLINE($ICU_LIBS, $1)
+
+- if test "$icu_version" -lt "4000"; then
+- AC_MSG_ERROR([ICU version 4.0 or later is required])
+- fi
++ ICU_CFLAGS="$ICU_CFLAGS -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
++ ICU_CXXFLAGS="$ICU_CXXFLAGS -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit"
+
+- ICU_VERSION=$icu_version
+- ICU_INCS=`$ICU_CONFIG --cppflags-searchpath`
+- ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio`
+- PHP_EVAL_INCLINE($ICU_INCS)
+- PHP_EVAL_LIBLINE($ICU_LIBS, $1)
++ if test "$PKG_CONFIG icu-io --atleast-version=60"; then
++ ICU_CFLAGS="$ICU_CFLAGS -DU_HIDE_OBSOLETE_UTF_OLD_H=1"
+ fi
+ ])
+
+--- a/ext/intl/config.m4
++++ b/ext/intl/config.m4
+@@ -9,18 +9,10 @@ if test "$PHP_INTL" != "no"; then
+ PHP_SETUP_ICU(INTL_SHARED_LIBADD)
+ PHP_SUBST(INTL_SHARED_LIBADD)
+ PHP_REQUIRE_CXX()
+- if test "$icu_version" -ge "4002"; then
+- icu_spoof_src=" spoofchecker/spoofchecker_class.c \
+- spoofchecker/spoofchecker.c\
+- spoofchecker/spoofchecker_create.c\
+- spoofchecker/spoofchecker_main.c"
+- else
+- icu_spoof_src=""
+- fi
++ INTL_COMMON_FLAGS="$ICU_CFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
+ PHP_NEW_EXTENSION(intl, php_intl.c \
+ intl_error.c \
+ intl_convert.c \
+- intl_convertcpp.cpp \
+ collator/collator.c \
+ collator/collator_class.c \
+ collator/collator_sort.c \
+@@ -32,8 +24,6 @@ if test "$PHP_INTL" != "no"; then
+ collator/collator_is_numeric.c \
+ collator/collator_error.c \
+ common/common_error.c \
+- common/common_enum.cpp \
+- common/common_date.cpp \
+ converter/converter.c \
+ formatter/formatter.c \
+ formatter/formatter_main.c \
+@@ -53,17 +43,12 @@ if test "$PHP_INTL" != "no"; then
+ dateformat/dateformat_attr.c \
+ dateformat/dateformat_data.c \
+ dateformat/dateformat_format.c \
+- dateformat/dateformat_format_object.cpp \
+ dateformat/dateformat_parse.c \
+- dateformat/dateformat_create.cpp \
+- dateformat/dateformat_attrcpp.cpp \
+- dateformat/dateformat_helpers.cpp \
+ msgformat/msgformat.c \
+ msgformat/msgformat_attr.c \
+ msgformat/msgformat_class.c \
+ msgformat/msgformat_data.c \
+ msgformat/msgformat_format.c \
+- msgformat/msgformat_helpers.cpp \
+ msgformat/msgformat_parse.c \
+ grapheme/grapheme_string.c \
+ grapheme/grapheme_util.c \
+@@ -73,6 +58,21 @@ if test "$PHP_INTL" != "no"; then
+ transliterator/transliterator.c \
+ transliterator/transliterator_class.c \
+ transliterator/transliterator_methods.c \
++ uchar/uchar.c \
++ idn/idn.c \
++ spoofchecker/spoofchecker_class.c \
++ spoofchecker/spoofchecker.c\
++ spoofchecker/spoofchecker_create.c\
++ spoofchecker/spoofchecker_main.c, $ext_shared,,$INTL_COMMON_FLAGS,cxx)
++
++ PHP_INTL_CPP_SOURCES="intl_convertcpp.cpp \
++ common/common_enum.cpp \
++ common/common_date.cpp \
++ dateformat/dateformat_format_object.cpp \
++ dateformat/dateformat_create.cpp \
++ dateformat/dateformat_attrcpp.cpp \
++ dateformat/dateformat_helpers.cpp \
++ msgformat/msgformat_helpers.cpp \
+ timezone/timezone_class.cpp \
+ timezone/timezone_methods.cpp \
+ calendar/calendar_class.cpp \
+@@ -83,10 +83,15 @@ if test "$PHP_INTL" != "no"; then
+ breakiterator/breakiterator_methods.cpp \
+ breakiterator/rulebasedbreakiterator_methods.cpp \
+ breakiterator/codepointiterator_internal.cpp \
+- breakiterator/codepointiterator_methods.cpp \
+- uchar/uchar.c \
+- idn/idn.c \
+- $icu_spoof_src, $ext_shared,,$ICU_INCS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1,cxx)
++ breakiterator/codepointiterator_methods.cpp"
++
++ PHP_INTL_CPP_FLAGS="$ICU_CXXFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
++ if test "$ext_shared" = "no"; then
++ PHP_ADD_SOURCES(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS)
++ else
++ PHP_ADD_SOURCES_X(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS, shared_objects_intl, yes)
++ fi
++
+ PHP_ADD_BUILD_DIR($ext_builddir/collator)
+ PHP_ADD_BUILD_DIR($ext_builddir/converter)
+ PHP_ADD_BUILD_DIR($ext_builddir/common)
+--
+2.19.2
+
diff --git a/dev-lang/php/files/php-7.0.33-intl-icu-memory-corruption.patch b/dev-lang/php/files/php-7.0.33-intl-icu-memory-corruption.patch
new file mode 100644
index 000000000000..e6e7f5917c5b
--- /dev/null
+++ b/dev-lang/php/files/php-7.0.33-intl-icu-memory-corruption.patch
@@ -0,0 +1,91 @@
+Based on the following upstream commits:
+
+https://github.com/php/php-src/commit/45a05f38410d4a67c8c83c09906e2cfb42fc6e4c
+https://github.com/php/php-src/commit/534684d1042978f3c21caf9b665a7aca27f3f325
+
+--- a/ext/intl/msgformat/msgformat_helpers.cpp
++++ b/ext/intl/msgformat/msgformat_helpers.cpp
+@@ -27,6 +27,7 @@
+ #include <unicode/timezone.h>
+ #include <unicode/datefmt.h>
+ #include <unicode/calendar.h>
++#include <unicode/strenum.h>
+
+ #include <vector>
+
+@@ -45,6 +46,7 @@ extern "C" {
+
+ #if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 48
+ #define HAS_MESSAGE_PATTERN 1
++#define HAS_MISALLOCATE_MEMORY_BUG 1
+ #endif
+
+ U_NAMESPACE_BEGIN
+@@ -345,6 +347,26 @@ static void umsg_set_timezone(MessageFormatter_object *mfo,
+ return; /* already done */
+ }
+
++#ifdef HAS_MISALLOCATE_MEMORY_BUG
++ /* There is a bug in ICU which prevents MessageFormatter::getFormats()
++ to handle more than 10 formats correctly. The enumerator could be
++ used to walk through the present formatters using getFormat(), which
++ however seems to provide just a readonly access. This workaround
++ prevents crash when there are > 10 formats but doesn't set any error.
++ As a result, only DateFormatters with > 10 subformats are affected.
++ This workaround should be ifdef'd out, when the bug has been fixed
++ in ICU. */
++ icu::StringEnumeration* fnames = mf->getFormatNames(err.code);
++ if (!fnames || U_FAILURE(err.code)) {
++ return;
++ }
++ count = fnames->count(err.code);
++ delete fnames;
++ if (count > 10) {
++ return;
++ }
++#endif
++
+ formats = mf->getFormats(count);
+
+ if (formats == NULL) {
+--- /dev/null
++++ b/ext/intl/tests/bug74484_MessageFormatter.phpt
+@@ -0,0 +1,35 @@
++--TEST--
++Bug #74484 MessageFormatter::formatMessage memory corruption with 11+ named placeholder
++--SKIPIF--
++<?php
++if (!extension_loaded('intl'))
++ die('skip intl extension not enabled');
++if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
++ die('skip for ICU 4.8+');
++?>
++--FILE--
++<?php
++$text = "{a} {b} {c} {d} {e} {f} {g} {h} {i} {j} {k} {l}";
++
++$vars = array(
++ 'a' => 1,
++ 'b' => 2,
++ 'c' => 3,
++ 'd' => 4,
++ 'e' => 5,
++ 'f' => 6,
++ 'g' => 7,
++ 'h' => 8,
++ 'i' => 9,
++ 'j' => 10,
++ 'k' => 11,
++ 'l' => 12
++);
++
++var_dump(MessageFormatter::formatMessage('en_US', $text, $vars));
++
++?>
++==DONE==
++--EXPECT--
++string(26) "1 2 3 4 5 6 7 8 9 10 11 12"
++==DONE==
+--
+2.19.2
+
diff --git a/dev-lang/php/files/php-7.0.33-intl-use-icu-namespace.patch b/dev-lang/php/files/php-7.0.33-intl-use-icu-namespace.patch
new file mode 100644
index 000000000000..4b25abe20550
--- /dev/null
+++ b/dev-lang/php/files/php-7.0.33-intl-use-icu-namespace.patch
@@ -0,0 +1,369 @@
+Based on the following upstream commits:
+
+https://github.com/php/php-src/commit/8d35a423838eb462cd39ee535c5d003073cc5f22
+https://github.com/php/php-src/commit/d8200e48857aeaf09f7127751efc5632ef7660a7
+https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52
+
+--- a/ext/intl/breakiterator/breakiterator_class.cpp
++++ b/ext/intl/breakiterator/breakiterator_class.cpp
+@@ -38,6 +38,7 @@ extern "C" {
+ }
+
+ using PHP::CodePointBreakIterator;
++using icu::RuleBasedBreakIterator;
+
+ /* {{{ Global variables */
+ zend_class_entry *BreakIterator_ce_ptr;
+--- a/ext/intl/breakiterator/breakiterator_class.h
++++ b/ext/intl/breakiterator/breakiterator_class.h
+@@ -26,6 +26,8 @@
+
+ #ifndef USE_BREAKITERATOR_POINTER
+ typedef void BreakIterator;
++#else
++using icu::BreakIterator;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/breakiterator/breakiterator_methods.cpp
++++ b/ext/intl/breakiterator/breakiterator_methods.cpp
+@@ -32,6 +32,8 @@ extern "C" {
+ }
+
+ using PHP::CodePointBreakIterator;
++using icu::BreakIterator;
++using icu::Locale;
+
+ U_CFUNC PHP_METHOD(BreakIterator, __construct)
+ {
+--- a/ext/intl/breakiterator/codepointiterator_internal.cpp
++++ b/ext/intl/breakiterator/codepointiterator_internal.cpp
+@@ -33,6 +33,8 @@ typedef union {
+
+ using namespace PHP;
+
++using icu::UCharCharacterIterator;
++
+ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CodePointBreakIterator);
+
+ CodePointBreakIterator::CodePointBreakIterator()
+--- a/ext/intl/breakiterator/codepointiterator_internal.h
++++ b/ext/intl/breakiterator/codepointiterator_internal.h
+@@ -18,8 +18,11 @@
+ #define CODEPOINTITERATOR_INTERNAL_H
+
+ #include <unicode/brkiter.h>
++#include <unicode/unistr.h>
+
+-using U_ICU_NAMESPACE::BreakIterator;
++using icu::BreakIterator;
++using icu::CharacterIterator;
++using icu::UnicodeString;
+
+ namespace PHP {
+
+--- a/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
++++ b/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
+@@ -26,6 +26,9 @@ extern "C" {
+ #include "../intl_convertcpp.h"
+ #include "../intl_common.h"
+
++using icu::RuleBasedBreakIterator;
++using icu::Locale;
++
+ static inline RuleBasedBreakIterator *fetch_rbbi(BreakIterator_object *bio) {
+ return (RuleBasedBreakIterator*)bio->biter;
+ }
+--- a/ext/intl/calendar/calendar_class.cpp
++++ b/ext/intl/calendar/calendar_class.cpp
+@@ -34,6 +34,9 @@ extern "C" {
+ #include <assert.h>
+ }
+
++using icu::GregorianCalendar;
++using icu::Locale;
++
+ /* {{{ Global variables */
+ zend_class_entry *Calendar_ce_ptr;
+ zend_class_entry *GregorianCalendar_ce_ptr;
+--- a/ext/intl/calendar/calendar_class.h
++++ b/ext/intl/calendar/calendar_class.h
+@@ -26,6 +26,8 @@
+
+ #ifndef USE_CALENDAR_POINTER
+ typedef void Calendar;
++#else
++using icu::Calendar;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/calendar/calendar_methods.cpp
++++ b/ext/intl/calendar/calendar_methods.cpp
+@@ -40,6 +40,8 @@ extern "C" {
+ }
+ #include "../common/common_enum.h"
+
++using icu::Locale;
++
+ U_CFUNC PHP_METHOD(IntlCalendar, __construct)
+ {
+ zend_throw_exception( NULL,
+--- a/ext/intl/calendar/gregoriancalendar_methods.cpp
++++ b/ext/intl/calendar/gregoriancalendar_methods.cpp
+@@ -23,6 +23,8 @@
+ #include <unicode/locid.h>
+ #include <unicode/calendar.h>
+ #include <unicode/gregocal.h>
++#include <unicode/ustring.h>
++
+ extern "C" {
+ #include "../php_intl.h"
+ #include "../intl_common.h"
+@@ -34,6 +36,11 @@ extern "C" {
+ #include "zend_exceptions.h"
+ }
+
++using icu::GregorianCalendar;
++using icu::Locale;
++using icu::UnicodeString;
++using icu::StringPiece;
++
+ static inline GregorianCalendar *fetch_greg(Calendar_object *co) {
+ return (GregorianCalendar*)co->ucal;
+ }
+--- a/ext/intl/common/common_date.cpp
++++ b/ext/intl/common/common_date.cpp
+@@ -25,6 +25,9 @@ extern "C" {
+ #include <ext/date/php_date.h>
+ }
+
++using icu::TimeZone;
++using icu::UnicodeString;
++
+ #ifndef INFINITY
+ #define INFINITY (DBL_MAX+DBL_MAX)
+ #endif
+--- a/ext/intl/common/common_date.h
++++ b/ext/intl/common/common_date.h
+@@ -28,6 +28,8 @@ U_CDECL_END
+
+ #include <unicode/timezone.h>
+
++using icu::TimeZone;
++
+ U_CFUNC TimeZone *timezone_convert_datetimezone(int type, void *object, int is_datetime, intl_error *outside_error, const char *func);
+ U_CFUNC int intl_datetime_decompose(zval *z, double *millis, TimeZone **tz,
+ intl_error *err, const char *func);
+--- a/ext/intl/common/common_enum.h
++++ b/ext/intl/common/common_enum.h
+@@ -75,6 +75,7 @@ U_CFUNC zval *zoi_with_current_get_current_data(zend_object_iterator *iter);
+ U_CFUNC void zoi_with_current_invalidate_current(zend_object_iterator *iter);
+
+ #ifdef __cplusplus
++using icu::StringEnumeration;
+ U_CFUNC void IntlIterator_from_StringEnumeration(StringEnumeration *se, zval *object);
+ #endif
+
+--- a/ext/intl/converter/converter.c
++++ b/ext/intl/converter/converter.c
+@@ -18,6 +18,8 @@
+ #include "zend_exceptions.h"
+
+ #include <unicode/utypes.h>
++#include <unicode/utf8.h>
++#include <unicode/utf16.h>
+ #include <unicode/ucnv.h>
+ #include <unicode/ustring.h>
+
+--- a/ext/intl/dateformat/dateformat_format_object.cpp
++++ b/ext/intl/dateformat/dateformat_format_object.cpp
+@@ -33,6 +33,12 @@ extern "C" {
+ #include "../common/common_date.h"
+ }
+
++using icu::Locale;
++using icu::DateFormat;
++using icu::GregorianCalendar;
++using icu::StringPiece;
++using icu::SimpleDateFormat;
++
+ static const DateFormat::EStyle valid_styles[] = {
+ DateFormat::kNone,
+ DateFormat::kFull,
+--- a/ext/intl/dateformat/dateformat_helpers.cpp
++++ b/ext/intl/dateformat/dateformat_helpers.cpp
+@@ -28,6 +28,8 @@ extern "C" {
+ #include "../calendar/calendar_class.h"
+ }
+
++using icu::GregorianCalendar;
++
+ int datefmt_process_calendar_arg(zval* calendar_zv,
+ Locale const& locale,
+ const char *func_name,
+--- a/ext/intl/dateformat/dateformat_helpers.h
++++ b/ext/intl/dateformat/dateformat_helpers.h
+@@ -22,11 +22,16 @@
+ #endif
+
+ #include <unicode/calendar.h>
++#include <unicode/datefmt.h>
+
+ extern "C" {
+ #include "../php_intl.h"
+ }
+
++using icu::Locale;
++using icu::Calendar;
++using icu::DateFormat;
++
+ int datefmt_process_calendar_arg(zval* calendar_zv,
+ Locale const& locale,
+ const char *func_name,
+--- a/ext/intl/grapheme/grapheme_string.c
++++ b/ext/intl/grapheme/grapheme_string.c
+@@ -24,6 +24,7 @@
+ #include "grapheme_util.h"
+
+ #include <unicode/utypes.h>
++#include <unicode/utf8.h>
+ #include <unicode/ucol.h>
+ #include <unicode/ustring.h>
+ #include <unicode/ubrk.h>
+@@ -831,10 +832,10 @@ PHP_FUNCTION(grapheme_extract)
+ pstr = str + start;
+
+ /* just in case pstr points in the middle of a character, move forward to the start of the next char */
+- if ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
+- char *str_end = str + str_len;
++ if ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
++ unsigned char *str_end = str + str_len;
+
+- while ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
++ while ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
+ pstr++;
+ if ( pstr >= str_end ) {
+ intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
+--- a/ext/intl/intl_convertcpp.h
++++ b/ext/intl/intl_convertcpp.h
+@@ -26,6 +26,8 @@
+ #include <unicode/unistr.h>
+ #include <zend_types.h>
+
++using icu::UnicodeString;
++
+ int intl_stringFromChar(UnicodeString &ret, char *str, size_t str_len, UErrorCode *status);
+
+ zend_string* intl_charFromString(const UnicodeString &from, UErrorCode *status);
+--- a/ext/intl/msgformat/msgformat_helpers.cpp
++++ b/ext/intl/msgformat/msgformat_helpers.cpp
+@@ -76,6 +76,16 @@ MessageFormatAdapter::getMessagePattern(MessageFormat* m) {
+ #endif
+ U_NAMESPACE_END
+
++using icu::Formattable;
++using icu::Format;
++using icu::DateFormat;
++using icu::MessageFormat;
++#ifdef HAS_MESSAGE_PATTERN
++using icu::MessagePattern;
++#endif
++using icu::MessageFormatAdapter;
++using icu::FieldPosition;
++
+ U_CFUNC int32_t umsg_format_arg_count(UMessageFormat *fmt)
+ {
+ int32_t fmt_count = 0;
+@@ -227,15 +237,16 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
+ UnicodeString typeString = mp.getSubstring(type_part);
+ /* This is all based on the rules in the docs for MessageFormat
+ * @see http://icu-project.org/apiref/icu4c/classMessageFormat.html */
+- if (typeString == "number") {
++#define ASCII_LITERAL(s) UNICODE_STRING(s, sizeof(s)-1)
++ if (typeString == ASCII_LITERAL("number")) {
+ MessagePattern::Part style_part = mp.getPart(i + 1); /* Not advancing i */
+ if (style_part.getType() == UMSGPAT_PART_TYPE_ARG_STYLE) {
+ UnicodeString styleString = mp.getSubstring(style_part);
+- if (styleString == "integer") {
++ if (styleString == ASCII_LITERAL("integer")) {
+ type = Formattable::kInt64;
+- } else if (styleString == "currency") {
++ } else if (styleString == ASCII_LITERAL("currency")) {
+ type = Formattable::kDouble;
+- } else if (styleString == "percent") {
++ } else if (styleString == ASCII_LITERAL("percent")) {
+ type = Formattable::kDouble;
+ } else { /* some style invalid/unknown to us */
+ type = Formattable::kDouble;
+@@ -243,12 +254,13 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
+ } else { // if missing style, part, make it a double
+ type = Formattable::kDouble;
+ }
+- } else if ((typeString == "date") || (typeString == "time")) {
++ } else if ((typeString == ASCII_LITERAL("date")) || (typeString == ASCII_LITERAL("time"))) {
+ type = Formattable::kDate;
+- } else if ((typeString == "spellout") || (typeString == "ordinal")
+- || (typeString == "duration")) {
++ } else if ((typeString == ASCII_LITERAL("spellout")) || (typeString == ASCII_LITERAL("ordinal"))
++ || (typeString == ASCII_LITERAL("duration"))) {
+ type = Formattable::kDouble;
+ }
++#undef ASCII_LITERAL
+ } else {
+ /* If there's no UMSGPAT_PART_TYPE_ARG_TYPE right after a
+ * UMSGPAT_ARG_TYPE_SIMPLE argument, then the pattern
+--- a/ext/intl/normalizer/normalizer_normalize.c
++++ b/ext/intl/normalizer/normalizer_normalize.c
+@@ -24,6 +24,7 @@
+ #include "normalizer_class.h"
+ #include "normalizer_normalize.h"
+ #include "intl_convert.h"
++#include <unicode/utf8.h>
+
+ /* {{{ proto string Normalizer::normalize( string $input [, string $form = FORM_C] )
+ * Normalize a string. }}} */
+--- a/ext/intl/timezone/timezone_class.cpp
++++ b/ext/intl/timezone/timezone_class.cpp
+@@ -37,6 +37,8 @@ extern "C" {
+ #include <ext/date/php_date.h>
+ }
+
++using icu::Calendar;
++
+ /* {{{ Global variables */
+ U_CDECL_BEGIN
+ zend_class_entry *TimeZone_ce_ptr = NULL;
+--- a/ext/intl/timezone/timezone_class.h
++++ b/ext/intl/timezone/timezone_class.h
+@@ -29,6 +29,8 @@
+
+ #ifndef USE_TIMEZONE_POINTER
+ typedef void TimeZone;
++#else
++using icu::TimeZone;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/timezone/timezone_methods.cpp
++++ b/ext/intl/timezone/timezone_methods.cpp
+@@ -23,6 +23,7 @@
+ #include <unicode/locid.h>
+ #include <unicode/timezone.h>
+ #include <unicode/ustring.h>
++#include <unicode/calendar.h>
+ #include "intl_convertcpp.h"
+
+ #include "../common/common_date.h"
+@@ -37,6 +38,9 @@ extern "C" {
+ }
+ #include "common/common_enum.h"
+
++using icu::Locale;
++using icu::Calendar;
++
+ U_CFUNC PHP_METHOD(IntlTimeZone, __construct)
+ {
+ zend_throw_exception( NULL,
+--
+2.19.2
+
diff --git a/dev-lang/php/files/php-7.1.25-intl-detect-icu-via-pkg-config.patch b/dev-lang/php/files/php-7.1.25-intl-detect-icu-via-pkg-config.patch
new file mode 100644
index 000000000000..2d4254d6e59e
--- /dev/null
+++ b/dev-lang/php/files/php-7.1.25-intl-detect-icu-via-pkg-config.patch
@@ -0,0 +1,121 @@
+Based on the following upstream commits:
+
+https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52
+https://github.com/php/php-src/pull/3701
+https://github.com/php/php-src/commit/2bd299f7318492fd7e5cafffa562d76ba60e69d4
+
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -2205,52 +2205,16 @@ dnl
+ dnl Common setup macro for ICU
+ dnl
+ AC_DEFUN([PHP_SETUP_ICU],[
+- PHP_ARG_WITH(icu-dir,,
+- [ --with-icu-dir=DIR Specify where ICU libraries and headers can be found], DEFAULT, no)
++ PKG_CHECK_MODULES([ICU], [icu-io >= 50.1])
+
+- if test "$PHP_ICU_DIR" = "no"; then
+- PHP_ICU_DIR=DEFAULT
+- fi
+-
+- if test "$PHP_ICU_DIR" = "DEFAULT"; then
+- dnl Try to find icu-config
+- AC_PATH_PROG(ICU_CONFIG, icu-config, no, [$PATH:/usr/local/bin])
+- else
+- ICU_CONFIG="$PHP_ICU_DIR/bin/icu-config"
+- fi
+-
+- AC_MSG_CHECKING([for location of ICU headers and libraries])
+-
+- dnl Trust icu-config to know better what the install prefix is..
+- icu_install_prefix=`$ICU_CONFIG --prefix 2> /dev/null`
+- if test "$?" != "0" || test -z "$icu_install_prefix"; then
+- AC_MSG_RESULT([not found])
+- AC_MSG_ERROR([Unable to detect ICU prefix or $ICU_CONFIG failed. Please verify ICU install prefix and make sure icu-config works.])
+- else
+- AC_MSG_RESULT([$icu_install_prefix])
+-
+- dnl Check ICU version
+- AC_MSG_CHECKING([for ICU 4.0 or greater])
+- icu_version_full=`$ICU_CONFIG --version`
+- ac_IFS=$IFS
+- IFS="."
+- set $icu_version_full
+- IFS=$ac_IFS
+- icu_version=`expr [$]1 \* 1000 + [$]2`
+- AC_MSG_RESULT([found $icu_version_full])
+-
+- if test "$icu_version" -lt "4000"; then
+- AC_MSG_ERROR([ICU version 4.0 or later is required])
+- fi
++ PHP_EVAL_INCLINE($ICU_CFLAGS)
++ PHP_EVAL_LIBLINE($ICU_LIBS, $1)
+
+- ICU_VERSION=$icu_version
+- ICU_INCS=`$ICU_CONFIG --cppflags-searchpath`
+- ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio`
+- PHP_EVAL_INCLINE($ICU_INCS)
+- PHP_EVAL_LIBLINE($ICU_LIBS, $1)
++ ICU_CFLAGS="$ICU_CFLAGS -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
++ ICU_CXXFLAGS="$ICU_CXXFLAGS -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit"
+
+- ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags`
+- ICU_CXXFLAGS="$ICU_CXXFLAGS -DU_USING_ICU_NAMESPACE=1"
++ if test "$PKG_CONFIG icu-io --atleast-version=60"; then
++ ICU_CFLAGS="$ICU_CFLAGS -DU_HIDE_OBSOLETE_UTF_OLD_H=1"
+ fi
+ ])
+
+--- a/ext/intl/config.m4
++++ b/ext/intl/config.m4
+@@ -9,15 +9,7 @@ if test "$PHP_INTL" != "no"; then
+ PHP_SETUP_ICU(INTL_SHARED_LIBADD)
+ PHP_SUBST(INTL_SHARED_LIBADD)
+ PHP_REQUIRE_CXX()
+- INTL_COMMON_FLAGS="$ICU_INCS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
+- if test "$icu_version" -ge "4002"; then
+- icu_spoof_src=" spoofchecker/spoofchecker_class.c \
+- spoofchecker/spoofchecker.c\
+- spoofchecker/spoofchecker_create.c\
+- spoofchecker/spoofchecker_main.c"
+- else
+- icu_spoof_src=""
+- fi
++ INTL_COMMON_FLAGS="$ICU_CFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
+ PHP_NEW_EXTENSION(intl, php_intl.c \
+ intl_error.c \
+ intl_convert.c \
+@@ -68,9 +60,12 @@ if test "$PHP_INTL" != "no"; then
+ transliterator/transliterator_methods.c \
+ uchar/uchar.c \
+ idn/idn.c \
+- $icu_spoof_src, $ext_shared,,$INTL_COMMON_FLAGS,cxx)
++ spoofchecker/spoofchecker_class.c \
++ spoofchecker/spoofchecker.c\
++ spoofchecker/spoofchecker_create.c\
++ spoofchecker/spoofchecker_main.c, $ext_shared,,$INTL_COMMON_FLAGS,cxx)
+
+- PHP_INTL_CXX_SOURCES="intl_convertcpp.cpp \
++ PHP_INTL_CPP_SOURCES="intl_convertcpp.cpp \
+ common/common_enum.cpp \
+ common/common_date.cpp \
+ dateformat/dateformat_format_object.cpp \
+@@ -89,11 +84,12 @@ if test "$PHP_INTL" != "no"; then
+ breakiterator/rulebasedbreakiterator_methods.cpp \
+ breakiterator/codepointiterator_internal.cpp \
+ breakiterator/codepointiterator_methods.cpp"
+- PHP_INTL_CXX_FLAGS="$INTL_COMMON_FLAGS $ICU_CXXFLAGS"
++
++ PHP_INTL_CPP_FLAGS="$ICU_CXXFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
+ if test "$ext_shared" = "no"; then
+- PHP_ADD_SOURCES(PHP_EXT_DIR(intl), $PHP_INTL_CXX_SOURCES, $PHP_INTL_CXX_FLAGS)
++ PHP_ADD_SOURCES(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS)
+ else
+- PHP_ADD_SOURCES_X(PHP_EXT_DIR(intl), $PHP_INTL_CXX_SOURCES, $PHP_INTL_CXX_FLAGS, shared_objects_intl, yes)
++ PHP_ADD_SOURCES_X(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS, shared_objects_intl, yes)
+ fi
+
+ PHP_ADD_BUILD_DIR($ext_builddir/collator)
+--
+2.19.2
+
diff --git a/dev-lang/php/files/php-7.1.25-intl-use-icu-namespace.patch b/dev-lang/php/files/php-7.1.25-intl-use-icu-namespace.patch
new file mode 100644
index 000000000000..5a1cc472f109
--- /dev/null
+++ b/dev-lang/php/files/php-7.1.25-intl-use-icu-namespace.patch
@@ -0,0 +1,379 @@
+Based on the following upstream commits:
+
+https://github.com/php/php-src/commit/8d35a423838eb462cd39ee535c5d003073cc5f22
+https://github.com/php/php-src/commit/d8200e48857aeaf09f7127751efc5632ef7660a7
+https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52
+
+--- a/ext/intl/breakiterator/breakiterator_class.cpp
++++ b/ext/intl/breakiterator/breakiterator_class.cpp
+@@ -38,6 +38,7 @@ extern "C" {
+ }
+
+ using PHP::CodePointBreakIterator;
++using icu::RuleBasedBreakIterator;
+
+ /* {{{ Global variables */
+ zend_class_entry *BreakIterator_ce_ptr;
+--- a/ext/intl/breakiterator/breakiterator_class.h
++++ b/ext/intl/breakiterator/breakiterator_class.h
+@@ -26,6 +26,8 @@
+
+ #ifndef USE_BREAKITERATOR_POINTER
+ typedef void BreakIterator;
++#else
++using icu::BreakIterator;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/breakiterator/breakiterator_methods.cpp
++++ b/ext/intl/breakiterator/breakiterator_methods.cpp
+@@ -32,6 +32,8 @@ extern "C" {
+ }
+
+ using PHP::CodePointBreakIterator;
++using icu::BreakIterator;
++using icu::Locale;
+
+ U_CFUNC PHP_METHOD(BreakIterator, __construct)
+ {
+--- a/ext/intl/breakiterator/codepointiterator_internal.cpp
++++ b/ext/intl/breakiterator/codepointiterator_internal.cpp
+@@ -33,6 +33,8 @@ typedef union {
+
+ using namespace PHP;
+
++using icu::UCharCharacterIterator;
++
+ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CodePointBreakIterator);
+
+ CodePointBreakIterator::CodePointBreakIterator()
+--- a/ext/intl/breakiterator/codepointiterator_internal.h
++++ b/ext/intl/breakiterator/codepointiterator_internal.h
+@@ -18,8 +18,11 @@
+ #define CODEPOINTITERATOR_INTERNAL_H
+
+ #include <unicode/brkiter.h>
++#include <unicode/unistr.h>
+
+-using U_ICU_NAMESPACE::BreakIterator;
++using icu::BreakIterator;
++using icu::CharacterIterator;
++using icu::UnicodeString;
+
+ namespace PHP {
+
+--- a/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
++++ b/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
+@@ -26,6 +26,9 @@ extern "C" {
+ #include "../intl_convertcpp.h"
+ #include "../intl_common.h"
+
++using icu::RuleBasedBreakIterator;
++using icu::Locale;
++
+ static inline RuleBasedBreakIterator *fetch_rbbi(BreakIterator_object *bio) {
+ return (RuleBasedBreakIterator*)bio->biter;
+ }
+--- a/ext/intl/calendar/calendar_class.cpp
++++ b/ext/intl/calendar/calendar_class.cpp
+@@ -34,6 +34,9 @@ extern "C" {
+ #include <assert.h>
+ }
+
++using icu::GregorianCalendar;
++using icu::Locale;
++
+ /* {{{ Global variables */
+ zend_class_entry *Calendar_ce_ptr;
+ zend_class_entry *GregorianCalendar_ce_ptr;
+--- a/ext/intl/calendar/calendar_class.h
++++ b/ext/intl/calendar/calendar_class.h
+@@ -26,6 +26,8 @@
+
+ #ifndef USE_CALENDAR_POINTER
+ typedef void Calendar;
++#else
++using icu::Calendar;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/calendar/calendar_methods.cpp
++++ b/ext/intl/calendar/calendar_methods.cpp
+@@ -40,6 +40,8 @@ extern "C" {
+ }
+ #include "../common/common_enum.h"
+
++using icu::Locale;
++
+ U_CFUNC PHP_METHOD(IntlCalendar, __construct)
+ {
+ zend_throw_exception( NULL,
+--- a/ext/intl/calendar/gregoriancalendar_methods.cpp
++++ b/ext/intl/calendar/gregoriancalendar_methods.cpp
+@@ -23,6 +23,8 @@
+ #include <unicode/locid.h>
+ #include <unicode/calendar.h>
+ #include <unicode/gregocal.h>
++#include <unicode/ustring.h>
++
+ extern "C" {
+ #include "../php_intl.h"
+ #include "../intl_common.h"
+@@ -34,6 +36,11 @@ extern "C" {
+ #include "zend_exceptions.h"
+ }
+
++using icu::GregorianCalendar;
++using icu::Locale;
++using icu::UnicodeString;
++using icu::StringPiece;
++
+ static inline GregorianCalendar *fetch_greg(Calendar_object *co) {
+ return (GregorianCalendar*)co->ucal;
+ }
+--- a/ext/intl/common/common_date.cpp
++++ b/ext/intl/common/common_date.cpp
+@@ -25,6 +25,9 @@ extern "C" {
+ #include <ext/date/php_date.h>
+ }
+
++using icu::TimeZone;
++using icu::UnicodeString;
++
+ #ifndef INFINITY
+ #define INFINITY (DBL_MAX+DBL_MAX)
+ #endif
+--- a/ext/intl/common/common_date.h
++++ b/ext/intl/common/common_date.h
+@@ -28,6 +28,8 @@ U_CDECL_END
+
+ #include <unicode/timezone.h>
+
++using icu::TimeZone;
++
+ U_CFUNC TimeZone *timezone_convert_datetimezone(int type, void *object, int is_datetime, intl_error *outside_error, const char *func);
+ U_CFUNC int intl_datetime_decompose(zval *z, double *millis, TimeZone **tz,
+ intl_error *err, const char *func);
+--- a/ext/intl/common/common_enum.h
++++ b/ext/intl/common/common_enum.h
+@@ -75,6 +75,7 @@ U_CFUNC zval *zoi_with_current_get_current_data(zend_object_iterator *iter);
+ U_CFUNC void zoi_with_current_invalidate_current(zend_object_iterator *iter);
+
+ #ifdef __cplusplus
++using icu::StringEnumeration;
+ U_CFUNC void IntlIterator_from_StringEnumeration(StringEnumeration *se, zval *object);
+ #endif
+
+--- a/ext/intl/converter/converter.c
++++ b/ext/intl/converter/converter.c
+@@ -18,6 +18,8 @@
+ #include "zend_exceptions.h"
+
+ #include <unicode/utypes.h>
++#include <unicode/utf8.h>
++#include <unicode/utf16.h>
+ #include <unicode/ucnv.h>
+ #include <unicode/ustring.h>
+
+--- a/ext/intl/dateformat/dateformat_format_object.cpp
++++ b/ext/intl/dateformat/dateformat_format_object.cpp
+@@ -33,6 +33,12 @@ extern "C" {
+ #include "../common/common_date.h"
+ }
+
++using icu::Locale;
++using icu::DateFormat;
++using icu::GregorianCalendar;
++using icu::StringPiece;
++using icu::SimpleDateFormat;
++
+ static const DateFormat::EStyle valid_styles[] = {
+ DateFormat::kNone,
+ DateFormat::kFull,
+--- a/ext/intl/dateformat/dateformat_helpers.cpp
++++ b/ext/intl/dateformat/dateformat_helpers.cpp
+@@ -28,6 +28,8 @@ extern "C" {
+ #include "../calendar/calendar_class.h"
+ }
+
++using icu::GregorianCalendar;
++
+ int datefmt_process_calendar_arg(zval* calendar_zv,
+ Locale const& locale,
+ const char *func_name,
+--- a/ext/intl/dateformat/dateformat_helpers.h
++++ b/ext/intl/dateformat/dateformat_helpers.h
+@@ -22,11 +22,16 @@
+ #endif
+
+ #include <unicode/calendar.h>
++#include <unicode/datefmt.h>
+
+ extern "C" {
+ #include "../php_intl.h"
+ }
+
++using icu::Locale;
++using icu::Calendar;
++using icu::DateFormat;
++
+ int datefmt_process_calendar_arg(zval* calendar_zv,
+ Locale const& locale,
+ const char *func_name,
+--- a/ext/intl/grapheme/grapheme_string.c
++++ b/ext/intl/grapheme/grapheme_string.c
+@@ -24,6 +24,7 @@
+ #include "grapheme_util.h"
+
+ #include <unicode/utypes.h>
++#include <unicode/utf8.h>
+ #include <unicode/ucol.h>
+ #include <unicode/ustring.h>
+ #include <unicode/ubrk.h>
+@@ -835,10 +836,10 @@ PHP_FUNCTION(grapheme_extract)
+ pstr = str + start;
+
+ /* just in case pstr points in the middle of a character, move forward to the start of the next char */
+- if ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
+- char *str_end = str + str_len;
++ if ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
++ unsigned char *str_end = str + str_len;
+
+- while ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
++ while ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
+ pstr++;
+ if ( pstr >= str_end ) {
+ intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
+--- a/ext/intl/intl_convertcpp.h
++++ b/ext/intl/intl_convertcpp.h
+@@ -26,6 +26,8 @@
+ #include <unicode/unistr.h>
+ #include <zend_types.h>
+
++using icu::UnicodeString;
++
+ int intl_stringFromChar(UnicodeString &ret, char *str, size_t str_len, UErrorCode *status);
+
+ zend_string* intl_charFromString(const UnicodeString &from, UErrorCode *status);
+--- a/ext/intl/msgformat/msgformat_helpers.cpp
++++ b/ext/intl/msgformat/msgformat_helpers.cpp
+@@ -78,6 +78,16 @@ MessageFormatAdapter::getMessagePattern(MessageFormat* m) {
+ #endif
+ U_NAMESPACE_END
+
++using icu::Formattable;
++using icu::Format;
++using icu::DateFormat;
++using icu::MessageFormat;
++#ifdef HAS_MESSAGE_PATTERN
++using icu::MessagePattern;
++#endif
++using icu::MessageFormatAdapter;
++using icu::FieldPosition;
++
+ U_CFUNC int32_t umsg_format_arg_count(UMessageFormat *fmt)
+ {
+ int32_t fmt_count = 0;
+@@ -229,15 +239,16 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
+ UnicodeString typeString = mp.getSubstring(type_part);
+ /* This is all based on the rules in the docs for MessageFormat
+ * @see http://icu-project.org/apiref/icu4c/classMessageFormat.html */
+- if (typeString == "number") {
++#define ASCII_LITERAL(s) UNICODE_STRING(s, sizeof(s)-1)
++ if (typeString == ASCII_LITERAL("number")) {
+ MessagePattern::Part style_part = mp.getPart(i + 1); /* Not advancing i */
+ if (style_part.getType() == UMSGPAT_PART_TYPE_ARG_STYLE) {
+ UnicodeString styleString = mp.getSubstring(style_part);
+- if (styleString == "integer") {
++ if (styleString == ASCII_LITERAL("integer")) {
+ type = Formattable::kInt64;
+- } else if (styleString == "currency") {
++ } else if (styleString == ASCII_LITERAL("currency")) {
+ type = Formattable::kDouble;
+- } else if (styleString == "percent") {
++ } else if (styleString == ASCII_LITERAL("percent")) {
+ type = Formattable::kDouble;
+ } else { /* some style invalid/unknown to us */
+ type = Formattable::kDouble;
+@@ -245,12 +256,13 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
+ } else { // if missing style, part, make it a double
+ type = Formattable::kDouble;
+ }
+- } else if ((typeString == "date") || (typeString == "time")) {
++ } else if ((typeString == ASCII_LITERAL("date")) || (typeString == ASCII_LITERAL("time"))) {
+ type = Formattable::kDate;
+- } else if ((typeString == "spellout") || (typeString == "ordinal")
+- || (typeString == "duration")) {
++ } else if ((typeString == ASCII_LITERAL("spellout")) || (typeString == ASCII_LITERAL("ordinal"))
++ || (typeString == ASCII_LITERAL("duration"))) {
+ type = Formattable::kDouble;
+ }
++#undef ASCII_LITERAL
+ } else {
+ /* If there's no UMSGPAT_PART_TYPE_ARG_TYPE right after a
+ * UMSGPAT_ARG_TYPE_SIMPLE argument, then the pattern
+--- a/ext/intl/normalizer/normalizer_normalize.c
++++ b/ext/intl/normalizer/normalizer_normalize.c
+@@ -24,6 +24,7 @@
+ #include "normalizer_class.h"
+ #include "normalizer_normalize.h"
+ #include "intl_convert.h"
++#include <unicode/utf8.h>
+
+ /* {{{ proto string Normalizer::normalize( string $input [, string $form = FORM_C] )
+ * Normalize a string. }}} */
+--- a/ext/intl/timezone/timezone_class.cpp
++++ b/ext/intl/timezone/timezone_class.cpp
+@@ -37,6 +37,8 @@ extern "C" {
+ #include <ext/date/php_date.h>
+ }
+
++using icu::Calendar;
++
+ /* {{{ Global variables */
+ U_CDECL_BEGIN
+ zend_class_entry *TimeZone_ce_ptr = NULL;
+--- a/ext/intl/timezone/timezone_class.h
++++ b/ext/intl/timezone/timezone_class.h
+@@ -29,6 +29,8 @@
+
+ #ifndef USE_TIMEZONE_POINTER
+ typedef void TimeZone;
++#else
++using icu::TimeZone;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/timezone/timezone_methods.cpp
++++ b/ext/intl/timezone/timezone_methods.cpp
+@@ -23,6 +23,7 @@
+ #include <unicode/locid.h>
+ #include <unicode/timezone.h>
+ #include <unicode/ustring.h>
++#include <unicode/calendar.h>
+ #include "intl_convertcpp.h"
+
+ #include "../common/common_date.h"
+@@ -37,6 +38,9 @@ extern "C" {
+ }
+ #include "common/common_enum.h"
+
++using icu::Locale;
++using icu::Calendar;
++
+ U_CFUNC PHP_METHOD(IntlTimeZone, __construct)
+ {
+ zend_throw_exception( NULL,
+--- a/ext/intl/uchar/uchar.c
++++ b/ext/intl/uchar/uchar.c
+@@ -3,6 +3,7 @@
+ #include "intl_convert.h"
+
+ #include <unicode/uchar.h>
++#include <unicode/utf8.h>
+
+ #define IC_METHOD(mname) PHP_METHOD(IntlChar, mname)
+
+--
+2.19.2
+
diff --git a/dev-lang/php/files/php-7.2.13-intl-use-icu-namespace.patch b/dev-lang/php/files/php-7.2.13-intl-use-icu-namespace.patch
new file mode 100644
index 000000000000..b5d2b473f1aa
--- /dev/null
+++ b/dev-lang/php/files/php-7.2.13-intl-use-icu-namespace.patch
@@ -0,0 +1,379 @@
+Based on the following upstream commits:
+
+https://github.com/php/php-src/commit/8d35a423838eb462cd39ee535c5d003073cc5f22
+https://github.com/php/php-src/commit/d8200e48857aeaf09f7127751efc5632ef7660a7
+https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52
+
+--- a/ext/intl/breakiterator/breakiterator_class.cpp
++++ b/ext/intl/breakiterator/breakiterator_class.cpp
+@@ -38,6 +38,7 @@ extern "C" {
+ }
+
+ using PHP::CodePointBreakIterator;
++using icu::RuleBasedBreakIterator;
+
+ /* {{{ Global variables */
+ zend_class_entry *BreakIterator_ce_ptr;
+--- a/ext/intl/breakiterator/breakiterator_class.h
++++ b/ext/intl/breakiterator/breakiterator_class.h
+@@ -26,6 +26,8 @@
+
+ #ifndef USE_BREAKITERATOR_POINTER
+ typedef void BreakIterator;
++#else
++using icu::BreakIterator;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/breakiterator/breakiterator_methods.cpp
++++ b/ext/intl/breakiterator/breakiterator_methods.cpp
+@@ -32,6 +32,8 @@ extern "C" {
+ }
+
+ using PHP::CodePointBreakIterator;
++using icu::BreakIterator;
++using icu::Locale;
+
+ U_CFUNC PHP_METHOD(BreakIterator, __construct)
+ {
+--- a/ext/intl/breakiterator/codepointiterator_internal.cpp
++++ b/ext/intl/breakiterator/codepointiterator_internal.cpp
+@@ -33,6 +33,8 @@ typedef union {
+
+ using namespace PHP;
+
++using icu::UCharCharacterIterator;
++
+ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CodePointBreakIterator);
+
+ CodePointBreakIterator::CodePointBreakIterator()
+--- a/ext/intl/breakiterator/codepointiterator_internal.h
++++ b/ext/intl/breakiterator/codepointiterator_internal.h
+@@ -18,8 +18,11 @@
+ #define CODEPOINTITERATOR_INTERNAL_H
+
+ #include <unicode/brkiter.h>
++#include <unicode/unistr.h>
+
+-using U_ICU_NAMESPACE::BreakIterator;
++using icu::BreakIterator;
++using icu::CharacterIterator;
++using icu::UnicodeString;
+
+ namespace PHP {
+
+--- a/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
++++ b/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
+@@ -26,6 +26,9 @@ extern "C" {
+ #include "../intl_convertcpp.h"
+ #include "../intl_common.h"
+
++using icu::RuleBasedBreakIterator;
++using icu::Locale;
++
+ static inline RuleBasedBreakIterator *fetch_rbbi(BreakIterator_object *bio) {
+ return (RuleBasedBreakIterator*)bio->biter;
+ }
+--- a/ext/intl/calendar/calendar_class.cpp
++++ b/ext/intl/calendar/calendar_class.cpp
+@@ -34,6 +34,9 @@ extern "C" {
+ #include <assert.h>
+ }
+
++using icu::GregorianCalendar;
++using icu::Locale;
++
+ /* {{{ Global variables */
+ zend_class_entry *Calendar_ce_ptr;
+ zend_class_entry *GregorianCalendar_ce_ptr;
+--- a/ext/intl/calendar/calendar_class.h
++++ b/ext/intl/calendar/calendar_class.h
+@@ -26,6 +26,8 @@
+
+ #ifndef USE_CALENDAR_POINTER
+ typedef void Calendar;
++#else
++using icu::Calendar;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/calendar/calendar_methods.cpp
++++ b/ext/intl/calendar/calendar_methods.cpp
+@@ -40,6 +40,8 @@ extern "C" {
+ }
+ #include "../common/common_enum.h"
+
++using icu::Locale;
++
+ U_CFUNC PHP_METHOD(IntlCalendar, __construct)
+ {
+ zend_throw_exception( NULL,
+--- a/ext/intl/calendar/gregoriancalendar_methods.cpp
++++ b/ext/intl/calendar/gregoriancalendar_methods.cpp
+@@ -23,6 +23,8 @@
+ #include <unicode/locid.h>
+ #include <unicode/calendar.h>
+ #include <unicode/gregocal.h>
++#include <unicode/ustring.h>
++
+ extern "C" {
+ #include "../php_intl.h"
+ #include "../intl_common.h"
+@@ -34,6 +36,11 @@ extern "C" {
+ #include "zend_exceptions.h"
+ }
+
++using icu::GregorianCalendar;
++using icu::Locale;
++using icu::UnicodeString;
++using icu::StringPiece;
++
+ static inline GregorianCalendar *fetch_greg(Calendar_object *co) {
+ return (GregorianCalendar*)co->ucal;
+ }
+--- a/ext/intl/common/common_date.cpp
++++ b/ext/intl/common/common_date.cpp
+@@ -27,6 +27,9 @@ extern "C" {
+
+ #include "zend_portability.h"
+
++using icu::TimeZone;
++using icu::UnicodeString;
++
+ /* {{{ timezone_convert_datetimezone
+ * The timezone in DateTime and DateTimeZone is not unified. */
+ U_CFUNC TimeZone *timezone_convert_datetimezone(int type,
+--- a/ext/intl/common/common_date.h
++++ b/ext/intl/common/common_date.h
+@@ -28,6 +28,8 @@ U_CDECL_END
+
+ #include <unicode/timezone.h>
+
++using icu::TimeZone;
++
+ U_CFUNC TimeZone *timezone_convert_datetimezone(int type, void *object, int is_datetime, intl_error *outside_error, const char *func);
+ U_CFUNC int intl_datetime_decompose(zval *z, double *millis, TimeZone **tz,
+ intl_error *err, const char *func);
+--- a/ext/intl/common/common_enum.h
++++ b/ext/intl/common/common_enum.h
+@@ -75,6 +75,7 @@ U_CFUNC zval *zoi_with_current_get_current_data(zend_object_iterator *iter);
+ U_CFUNC void zoi_with_current_invalidate_current(zend_object_iterator *iter);
+
+ #ifdef __cplusplus
++using icu::StringEnumeration;
+ U_CFUNC void IntlIterator_from_StringEnumeration(StringEnumeration *se, zval *object);
+ #endif
+
+--- a/ext/intl/converter/converter.c
++++ b/ext/intl/converter/converter.c
+@@ -18,6 +18,8 @@
+ #include "zend_exceptions.h"
+
+ #include <unicode/utypes.h>
++#include <unicode/utf8.h>
++#include <unicode/utf16.h>
+ #include <unicode/ucnv.h>
+ #include <unicode/ustring.h>
+
+--- a/ext/intl/dateformat/dateformat_format_object.cpp
++++ b/ext/intl/dateformat/dateformat_format_object.cpp
+@@ -33,6 +33,12 @@ extern "C" {
+ #include "../common/common_date.h"
+ }
+
++using icu::Locale;
++using icu::DateFormat;
++using icu::GregorianCalendar;
++using icu::StringPiece;
++using icu::SimpleDateFormat;
++
+ static const DateFormat::EStyle valid_styles[] = {
+ DateFormat::kNone,
+ DateFormat::kFull,
+--- a/ext/intl/dateformat/dateformat_helpers.cpp
++++ b/ext/intl/dateformat/dateformat_helpers.cpp
+@@ -28,6 +28,8 @@ extern "C" {
+ #include "../calendar/calendar_class.h"
+ }
+
++using icu::GregorianCalendar;
++
+ int datefmt_process_calendar_arg(zval* calendar_zv,
+ Locale const& locale,
+ const char *func_name,
+--- a/ext/intl/dateformat/dateformat_helpers.h
++++ b/ext/intl/dateformat/dateformat_helpers.h
+@@ -22,11 +22,16 @@
+ #endif
+
+ #include <unicode/calendar.h>
++#include <unicode/datefmt.h>
+
+ extern "C" {
+ #include "../php_intl.h"
+ }
+
++using icu::Locale;
++using icu::Calendar;
++using icu::DateFormat;
++
+ int datefmt_process_calendar_arg(zval* calendar_zv,
+ Locale const& locale,
+ const char *func_name,
+--- a/ext/intl/grapheme/grapheme_string.c
++++ b/ext/intl/grapheme/grapheme_string.c
+@@ -24,6 +24,7 @@
+ #include "grapheme_util.h"
+
+ #include <unicode/utypes.h>
++#include <unicode/utf8.h>
+ #include <unicode/ucol.h>
+ #include <unicode/ustring.h>
+ #include <unicode/ubrk.h>
+@@ -834,10 +835,10 @@ PHP_FUNCTION(grapheme_extract)
+ pstr = str + start;
+
+ /* just in case pstr points in the middle of a character, move forward to the start of the next char */
+- if ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
+- char *str_end = str + str_len;
++ if ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
++ unsigned char *str_end = str + str_len;
+
+- while ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
++ while ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
+ pstr++;
+ if ( pstr >= str_end ) {
+ intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
+--- a/ext/intl/intl_convertcpp.h
++++ b/ext/intl/intl_convertcpp.h
+@@ -26,6 +26,8 @@
+ #include <unicode/unistr.h>
+ #include <zend_types.h>
+
++using icu::UnicodeString;
++
+ int intl_stringFromChar(UnicodeString &ret, char *str, size_t str_len, UErrorCode *status);
+
+ zend_string* intl_charFromString(const UnicodeString &from, UErrorCode *status);
+--- a/ext/intl/msgformat/msgformat_helpers.cpp
++++ b/ext/intl/msgformat/msgformat_helpers.cpp
+@@ -78,6 +78,16 @@ MessageFormatAdapter::getMessagePattern(MessageFormat* m) {
+ #endif
+ U_NAMESPACE_END
+
++using icu::Formattable;
++using icu::Format;
++using icu::DateFormat;
++using icu::MessageFormat;
++#ifdef HAS_MESSAGE_PATTERN
++using icu::MessagePattern;
++#endif
++using icu::MessageFormatAdapter;
++using icu::FieldPosition;
++
+ U_CFUNC int32_t umsg_format_arg_count(UMessageFormat *fmt)
+ {
+ int32_t fmt_count = 0;
+@@ -229,15 +239,16 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
+ UnicodeString typeString = mp.getSubstring(type_part);
+ /* This is all based on the rules in the docs for MessageFormat
+ * @see http://icu-project.org/apiref/icu4c/classMessageFormat.html */
+- if (typeString == "number") {
++#define ASCII_LITERAL(s) UNICODE_STRING(s, sizeof(s)-1)
++ if (typeString == ASCII_LITERAL("number")) {
+ MessagePattern::Part style_part = mp.getPart(i + 1); /* Not advancing i */
+ if (style_part.getType() == UMSGPAT_PART_TYPE_ARG_STYLE) {
+ UnicodeString styleString = mp.getSubstring(style_part);
+- if (styleString == "integer") {
++ if (styleString == ASCII_LITERAL("integer")) {
+ type = Formattable::kInt64;
+- } else if (styleString == "currency") {
++ } else if (styleString == ASCII_LITERAL("currency")) {
+ type = Formattable::kDouble;
+- } else if (styleString == "percent") {
++ } else if (styleString == ASCII_LITERAL("percent")) {
+ type = Formattable::kDouble;
+ } else { /* some style invalid/unknown to us */
+ type = Formattable::kDouble;
+@@ -245,12 +256,13 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
+ } else { // if missing style, part, make it a double
+ type = Formattable::kDouble;
+ }
+- } else if ((typeString == "date") || (typeString == "time")) {
++ } else if ((typeString == ASCII_LITERAL("date")) || (typeString == ASCII_LITERAL("time"))) {
+ type = Formattable::kDate;
+- } else if ((typeString == "spellout") || (typeString == "ordinal")
+- || (typeString == "duration")) {
++ } else if ((typeString == ASCII_LITERAL("spellout")) || (typeString == ASCII_LITERAL("ordinal"))
++ || (typeString == ASCII_LITERAL("duration"))) {
+ type = Formattable::kDouble;
+ }
++#undef ASCII_LITERAL
+ } else {
+ /* If there's no UMSGPAT_PART_TYPE_ARG_TYPE right after a
+ * UMSGPAT_ARG_TYPE_SIMPLE argument, then the pattern
+--- a/ext/intl/normalizer/normalizer_normalize.c
++++ b/ext/intl/normalizer/normalizer_normalize.c
+@@ -24,6 +24,7 @@
+ #include "normalizer_class.h"
+ #include "normalizer_normalize.h"
+ #include "intl_convert.h"
++#include <unicode/utf8.h>
+
+ /* {{{ proto string Normalizer::normalize( string $input [, string $form = FORM_C] )
+ * Normalize a string. }}} */
+--- a/ext/intl/timezone/timezone_class.cpp
++++ b/ext/intl/timezone/timezone_class.cpp
+@@ -37,6 +37,8 @@ extern "C" {
+ #include <ext/date/php_date.h>
+ }
+
++using icu::Calendar;
++
+ /* {{{ Global variables */
+ U_CDECL_BEGIN
+ zend_class_entry *TimeZone_ce_ptr = NULL;
+--- a/ext/intl/timezone/timezone_class.h
++++ b/ext/intl/timezone/timezone_class.h
+@@ -29,6 +29,8 @@
+
+ #ifndef USE_TIMEZONE_POINTER
+ typedef void TimeZone;
++#else
++using icu::TimeZone;
+ #endif
+
+ typedef struct {
+--- a/ext/intl/timezone/timezone_methods.cpp
++++ b/ext/intl/timezone/timezone_methods.cpp
+@@ -23,6 +23,7 @@
+ #include <unicode/locid.h>
+ #include <unicode/timezone.h>
+ #include <unicode/ustring.h>
++#include <unicode/calendar.h>
+ #include "intl_convertcpp.h"
+
+ #include "../common/common_date.h"
+@@ -37,6 +38,9 @@ extern "C" {
+ }
+ #include "common/common_enum.h"
+
++using icu::Locale;
++using icu::Calendar;
++
+ U_CFUNC PHP_METHOD(IntlTimeZone, __construct)
+ {
+ zend_throw_exception( NULL,
+--- a/ext/intl/uchar/uchar.c
++++ b/ext/intl/uchar/uchar.c
+@@ -3,6 +3,7 @@
+ #include "intl_convert.h"
+
+ #include <unicode/uchar.h>
++#include <unicode/utf8.h>
+
+ #define IC_METHOD(mname) PHP_METHOD(IntlChar, mname)
+
+--
+2.19.2
+
diff --git a/dev-lang/php/php-5.6.38-r1.ebuild b/dev-lang/php/php-5.6.38-r1.ebuild
new file mode 100644
index 000000000000..362851c1e1d5
--- /dev/null
+++ b/dev-lang/php/php-5.6.38-r1.ebuild
@@ -0,0 +1,779 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools flag-o-matic eapi7-ver systemd
+
+DESCRIPTION="The PHP language runtime engine"
+HOMEPAGE="https://secure.php.net/"
+SRC_URI="https://php.net/distributions/${P}.tar.xz
+ https://salsa.debian.org/php-team/php/raw/8149a436/debian/patches/0055-Use-OpenSSL-1.1-compatibility-patch-when-built-with-.patch?inline=false -> php-5.6-openssl-1.1-compatibility.patch"
+
+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"
+
+# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
+IUSE="${IUSE}
+ ${SAPIS/cli/+cli}
+ threads"
+
+IUSE="${IUSE} acl bcmath berkdb bzip2 calendar cdb cjk
+ coverage crypt +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
+ mhash mssql mysql libmysqlclient mysqli nls
+ oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
+ readline recode selinux +session sharedmem
+ +simplexml snmp soap sockets spell sqlite ssl
+ sybase-ct sysvipc systemd tidy +tokenizer truetype unicode vpx wddx
+ +xml xmlreader xmlwriter xmlrpc xpm xslt zip 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=]
+ <www-servers/apache-2.4[threads=] ) )
+ berkdb? ( || ( sys-libs/db:5.3
+ sys-libs/db:5.1
+ sys-libs/db:4.8
+ sys-libs/db:4.7
+ sys-libs/db:4.6
+ sys-libs/db:4.5 ) )
+ bzip2? ( app-arch/bzip2:0= )
+ cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
+ cjk? ( !gd? (
+ virtual/jpeg:0
+ media-libs/libpng:0=
+ sys-libs/zlib:0=
+ ) )
+ coverage? ( dev-util/lcov )
+ crypt? ( >=dev-libs/libmcrypt-2.4 )
+ curl? ( >=net-misc/curl-7.10.5 )
+ enchant? ( app-text/enchant )
+ exif? ( !gd? (
+ virtual/jpeg:0
+ media-libs/libpng:0=
+ sys-libs/zlib:0=
+ ) )
+ firebird? ( dev-db/firebird )
+ gd? ( virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib:0= )
+ 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-61.1:= )
+ 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 ) )
+ mssql? ( dev-db/freetds[mssql] )
+ libmysqlclient? (
+ mysql? ( virtual/libmysqlclient:= )
+ mysqli? ( virtual/libmysqlclient:= )
+ )
+ 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 )
+ sharedmem? ( dev-libs/mm )
+ simplexml? ( >=dev-libs/libxml2-2.6.8 )
+ snmp? ( >=net-analyzer/net-snmp-5.2 )
+ soap? ( >=dev-libs/libxml2-2.6.8 )
+ 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= )
+ )
+ sybase-ct? ( dev-db/freetds )
+ tidy? ( app-text/htmltidy )
+ truetype? (
+ =media-libs/freetype-2*
+ >=media-libs/t1lib-5.0.0
+ !gd? (
+ virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib:0= )
+ )
+ unicode? ( dev-libs/oniguruma:= )
+ vpx? ( media-libs/libvpx:0= )
+ wddx? ( >=dev-libs/libxml2-2.6.8 )
+ 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
+ virtual/jpeg:0
+ media-libs/libpng:0= sys-libs/zlib:0=
+ )
+ xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )
+ zip? ( sys-libs/zlib:0= )
+ zlib? ( sys-libs/zlib:0= )
+"
+
+RDEPEND="${COMMON_DEPEND}
+ virtual/mta
+ fpm? (
+ selinux? ( sec-policy/selinux-phpfpm )
+ systemd? ( sys-apps/systemd ) )"
+
+DEPEND="${COMMON_DEPEND}
+ app-arch/xz-utils
+ >=sys-devel/bison-3.0.1
+ sys-devel/flex
+ >=sys-devel/m4-1.4.3
+ >=sys-devel/libtool-1.5.18"
+
+# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
+REQUIRED_USE="
+ || ( cli cgi fpm apache2 embed )
+ cli? ( ^^ ( readline libedit ) )
+ truetype? ( gd zlib )
+ vpx? ( 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 )
+ recode? ( !imap !mysql !mysqli !libmysqlclient )
+ libmysqlclient? ( || (
+ mysql
+ mysqli
+ pdo
+ ) )
+
+ qdbm? ( !gdbm )
+ readline? ( !libedit )
+ sharedmem? ( !threads )
+"
+
+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 file php-fpm.conf"
+ insinto "${PHP_INI_DIR#${EPREFIX}}"
+ doins sapi/fpm/php-fpm.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() {
+ eapply "${FILESDIR}/php-${SLOT}-no-bison-warnings.patch"
+ eapply "${FILESDIR}/5.6-mbstring-oniguruma-6.8.patch"
+ eapply "${DISTDIR}/php-5.6-openssl-1.1-compatibility.patch"
+ eapply "${FILESDIR}/php-freetype-2.9.1.patch"
+
+ # Change PHP branding
+ # Get the alpha/beta/rc version
+ sed -re "s|^(PHP_EXTRA_VERSION=\").*(\")|\1-pl${PR/r/}-gentoo\2|g" \
+ -i configure.in || die "Unable to change PHP branding"
+
+ # Patch PHP to show Gentoo as the server platform
+ sed -e 's/PHP_UNAME=`uname -a | xargs`/PHP_UNAME=`uname -s -n -r -v | xargs`/g' \
+ -i configure.in || die "Failed to fix server platform name"
+
+ # Prevent PHP from activating the Apache config,
+ # as we will do that ourselves
+ sed -i \
+ -e "s,-i -a -n php${PHP_MV},-i -n php${PHP_MV},g" \
+ -e "s,-i -A -n php${PHP_MV},-i -n php${PHP_MV},g" \
+ configure sapi/apache2filter/config.m4 sapi/apache2handler/config.m4 \
+ || die
+
+ # Patch PHP to support heimdal instead of mit-krb5
+ if has_version "app-crypt/heimdal" ; then
+ sed -e 's|gssapi_krb5|gssapi|g' -i acinclude.m4 \
+ || die "Failed to fix heimdal libname"
+ sed -e 's|PHP_ADD_LIBRARY(k5crypto, 1, $1)||g' -i acinclude.m4 \
+ || die "Failed to fix heimdal crypt library reference"
+ fi
+
+ eapply_user
+
+ # Force rebuilding aclocal.m4
+ rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare"
+ eautoreconf
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # http://bugs.php.net/bug.php?id=48795, bug #343481
+ sed -i -e '/BUILD_CGI="\\$(CC)/s/CC/CXX/' configure || die
+ fi
+}
+
+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 mssql mssql "${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_with sybase-ct sybase-ct "${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_with truetype t1lib "${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")
+ $(use_with vpx vpx-dir "${EPREFIX}/usr")
+ )
+ # 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"
+ use libmysqlclient && mysqllib="${EPREFIX}/usr"
+ use libmysqlclient && mysqlilib="${EPREFIX}/usr/bin/mysql_config"
+
+ our_conf+=( $(use_with mysql mysql "${mysqllib}") )
+ 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)
+ $(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 sharedmem 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)
+ 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/libphp5$(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)"
+ ;;
+ *)
+ 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/cgi/php-cgi" ]] ; then
+ export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis/cgi/php-cgi"
+ 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-5.6.39.ebuild b/dev-lang/php/php-5.6.39.ebuild
new file mode 100644
index 000000000000..18d767d93953
--- /dev/null
+++ b/dev-lang/php/php-5.6.39.ebuild
@@ -0,0 +1,785 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit autotools flag-o-matic systemd
+
+DESCRIPTION="The PHP language runtime engine"
+HOMEPAGE="https://secure.php.net/"
+SRC_URI="https://php.net/distributions/${P}.tar.xz
+ https://salsa.debian.org/php-team/php/raw/8149a436/debian/patches/0055-Use-OpenSSL-1.1-compatibility-patch-when-built-with-.patch?inline=false -> php-5.6-openssl-1.1-compatibility.patch"
+
+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"
+
+# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
+IUSE="${IUSE}
+ ${SAPIS/cli/+cli}
+ threads"
+
+IUSE="${IUSE} acl bcmath berkdb bzip2 calendar cdb cjk
+ coverage crypt +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
+ mhash mssql mysql libmysqlclient mysqli nls
+ oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
+ readline recode selinux +session sharedmem
+ +simplexml snmp soap sockets spell sqlite ssl
+ sybase-ct sysvipc systemd tidy +tokenizer truetype unicode vpx wddx
+ +xml xmlreader xmlwriter xmlrpc xpm xslt zip 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=]
+ <www-servers/apache-2.4[threads=] ) )
+ berkdb? ( || ( sys-libs/db:5.3
+ sys-libs/db:5.1
+ sys-libs/db:4.8
+ sys-libs/db:4.7
+ sys-libs/db:4.6
+ sys-libs/db:4.5 ) )
+ bzip2? ( app-arch/bzip2:0= )
+ cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
+ cjk? ( !gd? (
+ virtual/jpeg:0
+ media-libs/libpng:0=
+ sys-libs/zlib:0=
+ ) )
+ coverage? ( dev-util/lcov )
+ crypt? ( >=dev-libs/libmcrypt-2.4 )
+ curl? ( >=net-misc/curl-7.10.5 )
+ enchant? ( app-text/enchant )
+ exif? ( !gd? (
+ virtual/jpeg:0
+ media-libs/libpng:0=
+ sys-libs/zlib:0=
+ ) )
+ firebird? ( dev-db/firebird )
+ gd? ( virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib:0= )
+ 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 ) )
+ mssql? ( dev-db/freetds[mssql] )
+ libmysqlclient? (
+ mysql? ( virtual/libmysqlclient:= )
+ mysqli? ( virtual/libmysqlclient:= )
+ )
+ 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 )
+ sharedmem? ( dev-libs/mm )
+ simplexml? ( >=dev-libs/libxml2-2.6.8 )
+ snmp? ( >=net-analyzer/net-snmp-5.2 )
+ soap? ( >=dev-libs/libxml2-2.6.8 )
+ 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= )
+ )
+ sybase-ct? ( dev-db/freetds )
+ tidy? ( app-text/htmltidy )
+ truetype? (
+ =media-libs/freetype-2*
+ >=media-libs/t1lib-5.0.0
+ !gd? (
+ virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib:0= )
+ )
+ unicode? ( dev-libs/oniguruma:= )
+ vpx? ( media-libs/libvpx:0= )
+ wddx? ( >=dev-libs/libxml2-2.6.8 )
+ 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
+ virtual/jpeg:0
+ media-libs/libpng:0= sys-libs/zlib:0=
+ )
+ xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )
+ zip? ( sys-libs/zlib:0= )
+ zlib? ( sys-libs/zlib:0= )
+"
+
+RDEPEND="${COMMON_DEPEND}
+ virtual/mta
+ fpm? (
+ selinux? ( sec-policy/selinux-phpfpm )
+ systemd? ( sys-apps/systemd ) )"
+
+DEPEND="${COMMON_DEPEND}
+ app-arch/xz-utils
+ >=sys-devel/bison-3.0.1
+ sys-devel/flex
+ >=sys-devel/m4-1.4.3
+ >=sys-devel/libtool-1.5.18"
+
+# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
+REQUIRED_USE="
+ || ( cli cgi fpm apache2 embed )
+ cli? ( ^^ ( readline libedit ) )
+ truetype? ( gd zlib )
+ vpx? ( 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 )
+ recode? ( !imap !mysql !mysqli !libmysqlclient )
+ libmysqlclient? ( || (
+ mysql
+ mysqli
+ pdo
+ ) )
+
+ qdbm? ( !gdbm )
+ readline? ( !libedit )
+ sharedmem? ( !threads )
+"
+
+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 file php-fpm.conf"
+ insinto "${PHP_INI_DIR#${EPREFIX}}"
+ doins sapi/fpm/php-fpm.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() {
+ eapply "${FILESDIR}/php-${SLOT}-no-bison-warnings.patch"
+ eapply "${FILESDIR}/5.6-mbstring-oniguruma-6.8.patch"
+ eapply "${DISTDIR}/php-5.6-openssl-1.1-compatibility.patch"
+ eapply "${FILESDIR}/php-5.6-intl-detect-icu-via-pkg-config.patch"
+ eapply "${FILESDIR}/php-5.6-intl-use-icu-namespace.patch"
+ eapply "${FILESDIR}/php-5.6-intl-icu-memory-corruption.patch"
+ eapply "${FILESDIR}/php-freetype-2.9.1.patch"
+
+ # Change PHP branding
+ # Get the alpha/beta/rc version
+ sed -re "s|^(PHP_EXTRA_VERSION=\").*(\")|\1-pl${PR/r/}-gentoo\2|g" \
+ -i configure.in || die "Unable to change PHP branding"
+
+ # Patch PHP to show Gentoo as the server platform
+ sed -e 's/PHP_UNAME=`uname -a | xargs`/PHP_UNAME=`uname -s -n -r -v | xargs`/g' \
+ -i configure.in || die "Failed to fix server platform name"
+
+ # Prevent PHP from activating the Apache config,
+ # as we will do that ourselves
+ sed -i \
+ -e "s,-i -a -n php${PHP_MV},-i -n php${PHP_MV},g" \
+ -e "s,-i -A -n php${PHP_MV},-i -n php${PHP_MV},g" \
+ configure sapi/apache2filter/config.m4 sapi/apache2handler/config.m4 \
+ || die
+
+ # Patch PHP to support heimdal instead of mit-krb5
+ if has_version "app-crypt/heimdal" ; then
+ sed -e 's|gssapi_krb5|gssapi|g' -i acinclude.m4 \
+ || die "Failed to fix heimdal libname"
+ sed -e 's|PHP_ADD_LIBRARY(k5crypto, 1, $1)||g' -i acinclude.m4 \
+ || die "Failed to fix heimdal crypt library reference"
+ fi
+
+ eapply_user
+
+ # Force rebuilding aclocal.m4
+ rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare"
+
+ mv configure.in configure.ac || die
+
+ eautoreconf
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # http://bugs.php.net/bug.php?id=48795, bug #343481
+ sed -i -e '/BUILD_CGI="\\$(CC)/s/CC/CXX/' configure || die
+ fi
+}
+
+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 mssql mssql "${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_with sybase-ct sybase-ct "${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_with truetype t1lib "${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")
+ $(use_with vpx vpx-dir "${EPREFIX}/usr")
+ )
+ # 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"
+ use libmysqlclient && mysqllib="${EPREFIX}/usr"
+ use libmysqlclient && mysqlilib="${EPREFIX}/usr/bin/mysql_config"
+
+ our_conf+=( $(use_with mysql mysql "${mysqllib}") )
+ 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)
+ $(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 sharedmem 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)
+ 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/libphp5$(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)"
+ ;;
+ *)
+ 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/cgi/php-cgi" ]] ; then
+ export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis/cgi/php-cgi"
+ 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.0.33.ebuild b/dev-lang/php/php-7.0.33.ebuild
new file mode 100644
index 000000000000..2974d4b991dc
--- /dev/null
+++ b/dev-lang/php/php-7.0.33.ebuild
@@ -0,0 +1,754 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit flag-o-matic systemd
+
+DESCRIPTION="The PHP language runtime engine"
+HOMEPAGE="https://secure.php.net/"
+SRC_URI="https://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 bcmath berkdb bzip2 calendar cdb cjk
+ coverage crypt +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
+ mhash mssql mysql mysqli nls
+ oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
+ readline recode selinux +session sharedmem
+ +simplexml snmp soap sockets spell sqlite ssl
+ sysvipc systemd tidy +tokenizer truetype unicode wddx webp
+ +xml xmlreader xmlwriter xmlrpc xpm xslt zip 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=]
+ <www-servers/apache-2.4[threads=] ) )
+ berkdb? ( || ( sys-libs/db:5.3
+ sys-libs/db:5.1
+ sys-libs/db:4.8
+ sys-libs/db:4.7
+ sys-libs/db:4.6
+ sys-libs/db:4.5 ) )
+ bzip2? ( app-arch/bzip2:0= )
+ cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
+ cjk? ( !gd? (
+ virtual/jpeg:0
+ media-libs/libpng:0=
+ sys-libs/zlib:0=
+ ) )
+ coverage? ( dev-util/lcov )
+ crypt? ( >=dev-libs/libmcrypt-2.4 )
+ curl? ( >=net-misc/curl-7.10.5 )
+ enchant? ( app-text/enchant )
+ exif? ( !gd? (
+ virtual/jpeg:0
+ media-libs/libpng:0=
+ sys-libs/zlib:0=
+ ) )
+ firebird? ( dev-db/firebird )
+ gd? ( virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib:0= )
+ 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 ) )
+ 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 )
+ sharedmem? ( dev-libs/mm )
+ simplexml? ( >=dev-libs/libxml2-2.6.8 )
+ snmp? ( >=net-analyzer/net-snmp-5.2 )
+ soap? ( >=dev-libs/libxml2-2.6.8 )
+ 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/htmltidy )
+ truetype? (
+ =media-libs/freetype-2*
+ !gd? (
+ virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib:0= )
+ )
+ 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
+ virtual/jpeg:0
+ media-libs/libpng:0= sys-libs/zlib:0=
+ )
+ xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )
+ zip? ( sys-libs/zlib:0= )
+ zlib? ( sys-libs/zlib:0= )
+"
+
+RDEPEND="${COMMON_DEPEND}
+ virtual/mta
+ fpm? (
+ selinux? ( sec-policy/selinux-phpfpm )
+ systemd? ( sys-apps/systemd ) )"
+
+DEPEND="${COMMON_DEPEND}
+ app-arch/xz-utils
+ >=sys-devel/bison-3.0.1
+ sys-devel/flex
+ >=sys-devel/m4-1.4.3
+ >=sys-devel/libtool-1.5.18"
+
+# 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 )
+ sharedmem? ( !threads )
+ mysql? ( || ( mysqli pdo ) )
+"
+
+PATCHES=(
+ "${FILESDIR}/mbstring-oniguruma-6.8.patch"
+ # hopefully upstream will include the same version check fixes in upcoming releases
+ # patch added 20180429
+ "${FILESDIR}/libressl-compatibility.patch"
+ "${FILESDIR}/php-freetype-2.9.1.patch"
+ "${FILESDIR}/php-7.0.33-intl-detect-icu-via-pkg-config.patch"
+ "${FILESDIR}/php-7.0.33-intl-use-icu-namespace.patch"
+ "${FILESDIR}/php-7.0.33-intl-icu-memory-corruption.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'
+}
+
+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 sharedmem 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.3.0_rc2.ebuild b/dev-lang/php/php-7.1.25.ebuild
index 38dbc82aca6b..4f5aca9bdc9d 100644
--- a/dev-lang/php/php-7.3.0_rc2.ebuild
+++ b/dev-lang/php/php-7.1.25.ebuild
@@ -1,14 +1,13 @@
# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
-inherit flag-o-matic eapi7-ver systemd
+inherit flag-o-matic 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"
+SRC_URI="https://secure.php.net/distributions/${P}.tar.xz"
LICENSE="PHP-3.01
BSD
@@ -21,8 +20,6 @@ LICENSE="PHP-3.01
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"
@@ -31,28 +28,27 @@ IUSE="${IUSE}
${SAPIS/cli/+cli}
threads"
-IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk
- coverage +ctype curl debug
+IUSE="${IUSE} acl bcmath berkdb bzip2 calendar cdb cjk
+ coverage crypt +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
+ intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl
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"
+ +simplexml snmp soap sockets spell sqlite ssl
+ sysvipc systemd test tidy +tokenizer truetype unicode wddx webp
+ +xml xmlreader xmlwriter xmlrpc xpm xslt zip 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]
+ >=dev-libs/libpcre-8.32[unicode]
fpm? ( acl? ( sys-apps/acl ) )
apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=]
<www-servers/apache-2.4[threads=] ) )
- argon2? ( app-crypt/argon2:= )
berkdb? ( || ( sys-libs/db:5.3
sys-libs/db:5.1
sys-libs/db:4.8
@@ -62,10 +58,11 @@ COMMON_DEPEND="
bzip2? ( app-arch/bzip2:0= )
cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
coverage? ( dev-util/lcov )
+ crypt? ( >=dev-libs/libmcrypt-2.4 )
curl? ( >=net-misc/curl-7.10.5 )
enchant? ( <app-text/enchant-2.0:0 )
firebird? ( dev-db/firebird )
- gd? ( virtual/jpeg:0 media-libs/libpng:0= >=sys-libs/zlib-1.2.0.4 )
+ gd? ( virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib )
gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
gmp? ( dev-libs/gmp:0= )
iconv? ( virtual/libiconv )
@@ -76,7 +73,6 @@ COMMON_DEPEND="
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 )
@@ -89,15 +85,13 @@ COMMON_DEPEND="
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/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 )
@@ -108,9 +102,8 @@ COMMON_DEPEND="
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= )
+ zip? ( sys-libs/zlib:0= )
+ zlib? ( sys-libs/zlib:0= )
"
RDEPEND="${COMMON_DEPEND}
@@ -149,11 +142,13 @@ REQUIRED_USE="
readline? ( !libedit )
recode? ( !imap !mysqli !mysql )
session-mm? ( session !threads )
- mysql? ( || ( mysqli pdo ) )
- zip-encryption? ( zip )
+ mysql? ( hash || ( mysqli pdo ) )
+ mysqli? ( hash )
"
PATCHES=(
"${FILESDIR}/php-freetype-2.9.1.patch"
+ "${FILESDIR}/php-7.1.25-intl-detect-icu-via-pkg-config.patch"
+ "${FILESDIR}/php-7.1.25-intl-use-icu-namespace.patch"
)
PHP_MV="$(ver_cut 1)"
@@ -226,6 +221,11 @@ src_prepare() {
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() {
@@ -248,7 +248,6 @@ src_configure() {
)
our_conf+=(
- $(use_with argon2 password-argon2 "${EPREFIX}/usr")
$(use_enable bcmath bcmath)
$(use_with bzip2 bz2 "${EPREFIX}/usr")
$(use_enable calendar calendar)
@@ -274,6 +273,7 @@ src_configure() {
$(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")
@@ -290,7 +290,6 @@ src_configure() {
$(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)
@@ -304,14 +303,13 @@ src_configure() {
$(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
+ || use qdbm ; then
our_conf+=( "--enable-dba${shared}" )
fi
@@ -323,7 +321,6 @@ src_configure() {
$(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
@@ -411,13 +408,9 @@ src_configure() {
# 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
diff --git a/dev-lang/php/php-7.3.0_rc5.ebuild b/dev-lang/php/php-7.2.13.ebuild
index 865dac62201a..8c9fb3ab3022 100644
--- a/dev-lang/php/php-7.3.0_rc5.ebuild
+++ b/dev-lang/php/php-7.2.13.ebuild
@@ -1,14 +1,13 @@
# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
-inherit flag-o-matic eapi7-ver systemd autotools
+inherit flag-o-matic 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"
+SRC_URI="https://php.net/distributions/${P}.tar.xz"
LICENSE="PHP-3.01
BSD
@@ -21,8 +20,6 @@ LICENSE="PHP-3.01
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"
@@ -48,7 +45,7 @@ IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk
# 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]
+ >=dev-libs/libpcre-8.32[unicode]
fpm? ( acl? ( sys-apps/acl ) )
apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=]
<www-servers/apache-2.4[threads=] ) )
@@ -65,7 +62,7 @@ COMMON_DEPEND="
curl? ( >=net-misc/curl-7.10.5 )
enchant? ( <app-text/enchant-2.0:0 )
firebird? ( dev-db/firebird )
- gd? ( virtual/jpeg:0 media-libs/libpng:0= >=sys-libs/zlib-1.2.0.4 )
+ gd? ( virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib )
gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
gmp? ( dev-libs/gmp:0= )
iconv? ( virtual/libiconv )
@@ -93,7 +90,7 @@ COMMON_DEPEND="
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/openssl:0= )
libressl? ( dev-libs/libressl:0= )
)
tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) )
@@ -108,9 +105,9 @@ COMMON_DEPEND="
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? ( sys-libs/zlib:0= )
zip-encryption? ( >=dev-libs/libzip-1.2.0:= )
- zlib? ( >=sys-libs/zlib-1.2.0.4:0= )
+ zlib? ( sys-libs/zlib:0= )
"
RDEPEND="${COMMON_DEPEND}
@@ -149,11 +146,14 @@ REQUIRED_USE="
readline? ( !libedit )
recode? ( !imap !mysqli !mysql )
session-mm? ( session !threads )
- mysql? ( || ( mysqli pdo ) )
+ mysql? ( hash || ( mysqli pdo ) )
+ mysqli? ( hash )
zip-encryption? ( zip )
"
PATCHES=(
"${FILESDIR}/php-freetype-2.9.1.patch"
+ "${FILESDIR}/php-7.1.25-intl-detect-icu-via-pkg-config.patch"
+ "${FILESDIR}/php-7.2.13-intl-use-icu-namespace.patch"
)
PHP_MV="$(ver_cut 1)"
diff --git a/dev-lang/php/php-7.3.0_rc3.ebuild b/dev-lang/php/php-7.3.0.ebuild
index 865dac62201a..a349c94b9431 100644
--- a/dev-lang/php/php-7.3.0_rc3.ebuild
+++ b/dev-lang/php/php-7.3.0.ebuild
@@ -8,7 +8,7 @@ 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"
+SRC_URI="https://secure.php.net/distributions/${P}.tar.xz"
LICENSE="PHP-3.01
BSD
diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest
index eaa96b914909..58ba4df8948d 100644
--- a/dev-lang/python/Manifest
+++ b/dev-lang/python/Manifest
@@ -17,7 +17,6 @@ AUX python-3.5.5-hash-unaligned.patch 1451 BLAKE2B 30a0225118e17bf7f9177d423f50e
AUX python-3.5.5-libressl-compatibility.patch 2158 BLAKE2B e171337d466b00720ea960a167abb26a3795ad1c516a770f3c2622753139bf4a166e43e3c479b87eeb62b9e325c3d5de71642e7be4b4d36c3919e0743c226ca6 SHA512 cbb7d9cd8bd8d39ec2a9b39ff494d1d93f4d91190f5f1dcbe293871427b1ad459729dd5ce4cb8efe22e5847b477c24fd5f076bd79c94b3e7d14d159be3313f75
AUX python-3.6.5-hash-unaligned.patch 1293 BLAKE2B d1e22b4f4c55d308b129801464e3464defa3bfba4c63c12bbcd0650f1391e3e30058f07aa3b5ec3a24df8ab5fba4f467343f44a7693f8afe798dbf245db0366a SHA512 2039104f7aac4f8edbacd5f678551aef62c068182104dbb6dcf9ac835c68d0fefa2cc9df97b8f09bb06e1b29f19c5c324f9c3d5f1161fadd223487d503de8e0d
AUX python-3.6.5-libressl-compatibility.patch 3852 BLAKE2B 8e6860903f51bd1e783e1547d3eed76059eeea317ce0f2f98bd44df55c9be8a62973f687a029a972cac6cce63687763f824ad878d0548ec8ed71bf4c42d4b45b SHA512 4ae0e189f232d52303645391962c8390b00ae62fec45a03ddbad1b34a3eee5ef24c4d17c8a58709e452618ee0b570c2af7c01e456d285f02f5048fbbd2695ddc
-DIST Python-2.7.14.tar.xz 12576112 BLAKE2B e03c4134cfdd88678acc26f383130a598ce4de908ab6bb9ee00e9235de3e0fcb9e653fec86f39db64fb895ef797d33736524655c5b94fab2cde2544b966b2cfb SHA512 78310b0be6388ffa15f29a80afb9ab3c03a572cb094e9da00cfe391afadb51696e41f592eb658d6a31a2f422fdac8a55214a382cbb8cfb43d4a127d5b35ea7f9
DIST Python-2.7.15.tar.xz 12642436 BLAKE2B d8783a48ea26695e8d4677397a08194c738d7e4bc8ecaddaab609ad1fd5a1ca07701f707fe38d259f6bd44a39171ef95e7530f3df4bcb4d94abc4d21d7e2d489 SHA512 27ea43eb45fc68f3d2469d5f07636e10801dee11635a430ec8ec922ed790bb426b072da94df885e4dfa1ea8b7a24f2f56dd92f9b0f51e162330f161216bd6de6
DIST Python-3.4.5.tar.xz 14516820 BLAKE2B f9ddabd2df2241089d07756d3a8ba1c70096bee60d7cdef84041edbb20c488c3a573762441a4b7f543dbc0ce403ce84ff7d02e7d25699917bd014ab96deead85 SHA512 b548a5338d141b3086dea372fa2cc245ba5350ee9f0d1304ef6222dc45380b66d380b092e547d54206d56ca68563b95036f445f97f72bb0ef1d48f81a74a3d4c
DIST Python-3.4.6.tar.xz 14473592 BLAKE2B 4af4f8e6f5c6831b50e99dd9eef47617f14903dc709f53f833c64726b003e9f84f75be80ba8059dcada2b2f262d65875f70d8c53a163546e51f9a715c68f4f20 SHA512 f6785cf6a99a8a27823baefe59cc20e34cbec01bb444c8600e7f49b5437159d5137f9d80fce26e219846d71bfe98f68bc6f0c87719a34db0050a4eaca95959ac
@@ -29,7 +28,6 @@ DIST Python-3.6.4.tar.xz 16992824 BLAKE2B 2347a70bb25468221178b1542ddd4376f136a5
DIST Python-3.6.5.tar.xz 17049912 BLAKE2B f393e9563a18a46c457afcd2e174d9eacda20fe2b0ae5461e11c582fa4d27b85c01bbe7b602f45511b6b44f635c6330205b12fb3e8325ffd07e87b78a8258889 SHA512 6b26fcd296b9bd8e67861eff10d14db7507711ddba947288d16d6def53135c39326b7f969c04bb2b2993f924d9e7ad3f5c5282a3915760bc0885cf0a8ea5eb51
DIST Python-3.6.6.tar.xz 17156744 BLAKE2B fa4333149f84570cc4a0d1ec76c819610888750a51268b9db7d05df7d9c11e5ed72daff5d81b404015d9c678cb034d8a32034262ce73629ee8f96772853a706c SHA512 c71f87c5906e770322a14cacad228655659f782207db826320449d12bf86091c3662f317e1773158dec52f8b052eaedfb4c03b561cc2a6cfcd381597fd2d2b04
DIST Python-3.7.0.tar.xz 16922100 BLAKE2B cd2afd9ad1847ca793bc64ecb637906c35e0c8da8392d626cce3ebf19be5ccde1e6dcc499b933359cb24dcdbd024b3aaa916f96ed893b1f52d9825e404f27e5f SHA512 8bb11233fb67ee9ab8ed1b72f8fdc62f66e26a6beaaeb92448bce681cf065269833b1658d3ed2459127f25ba43adb0eab73cf27c59834a2a803fb529b4216739
-DIST python-gentoo-patches-2.7.14-0.tar.xz 13428 BLAKE2B 0048e48ddaaa4bef08451354fde95a123042880f26dddc9267c7f9a90fd8abb40955e26ee8c9dfc5a1165556bb3e11585b27288e635d42a4000dd3d7654c41ad SHA512 6da5b52065752b54e9215d0f0809c75167dc3690d0e94fa21dd7595626925bc5c1dd065d31b3bd696d7087f3986de145d3a335a29eb7bd77442637a7ec2863c1
DIST python-gentoo-patches-2.7.15.tar.xz 16208 BLAKE2B 5739c2b3a236d48f8e33f0fe6515bfe7a8f99096f6223b402653988feac2513d37d26b6e40e5e049852f42657358170e468ca60097e0e2294e760787c12ad591 SHA512 687fd008d1d41b1e65ce5417f6f6aba84ffd42f7af44ef97c03a7806b28e6888f8df043a0c15187a8b229cc17642853e6feb25494db97f4d10f8a66f8ebcbcca
DIST python-gentoo-patches-3.4.5-0.tar.xz 12044 BLAKE2B 7fb3cc7dcd987debd5aa263d8e26b21aad439d8e3177c06c3683406a53bbda9652175673b09b6300f6a5b62148190cd8a75c9b65a5de04d770866733fcc0ebcb SHA512 108a4845667ecdf4001fcbeffab0cfbbac87439a449a7351428b0f3e2f159e3848ee0c0dfa45c9fba893b9f9584b33722fc8bb0bd7485a1d0909c3a35ede6ed8
DIST python-gentoo-patches-3.4.6-0.tar.xz 11728 BLAKE2B 2a636f5500f4c7d354f421133f086cba9a25c30d5feaaa2dc25c9c588125d7c9097baecaa11f31548fa598b5dc137ca310ad86222510c0a955fa632a6d0a4b06 SHA512 41c22dc8f1db8800fc0b97eed2b27bf1873e5de1369bd4aecf7a7a91e609a78e45a4b56fc89d575317f33a7704c0c1cad1494e8a993415a198f256e8338f49ab
@@ -38,8 +36,6 @@ DIST python-gentoo-patches-3.6.2-0.tar.xz 10744 BLAKE2B 3075754627617ac2ceee879e
DIST python-gentoo-patches-3.6.4.tar.xz 12888 BLAKE2B 7cf49ae22df53e855f2e99df51686b5d4bd0da82ef4c22836e24726ea9ed561808352c0305a5659b052d38b843f1ff61b6466a7bc3673b7e5cfb4d81d22fa4bc SHA512 90a1b685f2539872ffd67f96581f70145b7afaf18af19f4a7f4a61214103d2a10bf0069c1769dac229ae011fceaf8538f041082b33c1671905246d018d184dd7
DIST python-gentoo-patches-3.6.6.tar.xz 13876 BLAKE2B 4be56b54e70c9b83209734097e03a7dbaa8f46ae13e268fc6a7f465ffd052ce03ca9e1fc45f1d432f2de17d4ce16ca8bc684b24344862cd8f52f9d1a90d90b7a SHA512 534b9eaefcbc45908119852a103bf10e400a8628c66aa599812fbceda36810d626d33e6701d1b7866e4df68397f717df6a217cb414049ca6f378eff9f43a27ab
DIST python-gentoo-patches-3.7.0.tar.xz 12268 BLAKE2B 758b635ff53b6f7bfabb1db632ee2a5c14b163d6d6f14e4e44c31c9ac1591d411f597d42b05707f586f9ff7c3a030703502307bae732bcf003987939eb5b036d SHA512 19dd5bac06bb40622e74e3b16c7fba83f1178417e686eaf61b2b207602c76beebc8c78d675e401ec4d18add1ca033fd47baf2e48e9abb487593b7d821bcaf509
-EBUILD python-2.7.14-r1.ebuild 10806 BLAKE2B fce1997bac1ff3a2f3e11ee8a9477744d4db08186ba8453de7b1a270886596549ae8e5d4fe4f3f214f0e0d421a82ea1b63b09282ed58d7479976bc8df1ee2588 SHA512 5e6aeceb99c833a78078d0dcb50b8af7310a6c3adf5d7f88d3894966ec0eb8f5e1990f562e281aebd4e1f98c1234af102f18146dd8226c69b0ba850eecbb424e
-EBUILD python-2.7.14-r2.ebuild 11018 BLAKE2B 408b677be84fd7ceb31db5f6af74418adc6576e542aaa4ba2a2a812e94ee3af5a5d73fceea8cbbfac87156c4ae223ab2716814cce26e6bfdded9f3ac888e262c SHA512 0ccf4865666cf97b5ff4d22dc55c243aa8330819177b1b96f20e094ee490838227309f2f0b635e50b356eefdebb49b95aa3759cbb7725f781302e4b4a7a6bae5
EBUILD python-2.7.15.ebuild 10811 BLAKE2B f828de10018c8a29ffec4fc405e5ad92f5d88c5230a4de428755a25494c65ff81e72e85e12a6de152381d4ffc54bdac04b1a699648331660a311b47b25e3c266 SHA512 d76caa98de7a649fab7d630bb14e2bfd38d74822ff42d863dd6d5307b0788d73490c6c83cabd14e126f477a17483bef2af7de5dda921b22e49f7e85ec35bcd18
EBUILD python-3.4.5-r1.ebuild 10657 BLAKE2B 09b69868f6be57e40ed1a439a6dbfd4eb92c71bd67ee5733424e2478f9603b1083c2a4770bcfa8e009e9e0ef6fd81f6ce9a59de246121062c120dcd25eb8a012 SHA512 bfaa81cd21f5311595b9fdfd1c3f4851da18e38f8a4a6b9bda760946ae6f972596fbb03f281a6b81bb59bded2d8b7e6d95dd7594955130bd2f6a78c62f6bfc93
EBUILD python-3.4.6-r1.ebuild 10587 BLAKE2B 0aca5a73b15e5122caa057fe71909f5afdb5ede203a7437ce27618ee64d0ce2164ee81477b8aec316b2cc81bc0b923fddffd5ec6056a271bfceef4e92a23e686 SHA512 0c7fa7b4e4ba49b6ae4fe0bc2119699381560a6c0eeaaaed5d974cbca2c089df4b08c0c19709e57e9da5ecfd934beb1f3cd03419d5d900306ffaeec24053ea57
diff --git a/dev-lang/python/python-2.7.14-r1.ebuild b/dev-lang/python/python-2.7.14-r1.ebuild
deleted file mode 100644
index 46a254fb0311..000000000000
--- a/dev-lang/python/python-2.7.14-r1.ebuild
+++ /dev/null
@@ -1,363 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-WANT_LIBTOOL="none"
-
-inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
-
-MY_P="Python-${PV}"
-PATCHSET_VERSION="2.7.14-0"
-
-DESCRIPTION="An interpreted, interactive, object-oriented programming language"
-HOMEPAGE="https://www.python.org/"
-SRC_URI="https://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz
- https://dev.gentoo.org/~floppym/python/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz"
-
-LICENSE="PSF-2"
-SLOT="2.7"
-KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd"
-IUSE="-berkdb build doc elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml"
-
-# Do not add a dependency on dev-lang/python to this ebuild.
-# If you need to apply a patch which requires python for bootstrapping, please
-# run the bootstrap code on your dev box and include the results in the
-# patchset. See bug 447752.
-
-RDEPEND="app-arch/bzip2:0=
- >=sys-libs/zlib-1.1.3:0=
- virtual/libffi:=
- virtual/libintl
- berkdb? ( || (
- sys-libs/db:5.3
- sys-libs/db:5.1
- sys-libs/db:4.8
- sys-libs/db:4.7
- sys-libs/db:4.6
- sys-libs/db:4.5
- sys-libs/db:4.4
- sys-libs/db:4.3
- sys-libs/db:4.2
- ) )
- gdbm? ( sys-libs/gdbm:0=[berkdb] )
- ncurses? ( >=sys-libs/ncurses-5.2:0= )
- readline? ( >=sys-libs/readline-4.1:0= )
- sqlite? ( >=dev-db/sqlite-3.3.8:3= )
- ssl? (
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl:0= )
- )
- tk? (
- >=dev-lang/tcl-8.0:0=
- >=dev-lang/tk-8.0:0=
- dev-tcltk/blt:0=
- dev-tcltk/tix
- )
- xml? ( >=dev-libs/expat-2.1 )
- !!<sys-apps/portage-2.1.9"
-DEPEND="${RDEPEND}
- virtual/pkgconfig
- >=sys-devel/autoconf-2.65
- !sys-devel/gcc[libffi(-)]"
-RDEPEND+=" !build? ( app-misc/mime-types )
- doc? ( dev-python/python-docs:${SLOT} )"
-PDEPEND=">=app-eselect/eselect-python-20140125-r1"
-
-S="${WORKDIR}/${MY_P}"
-
-pkg_setup() {
- if use berkdb; then
- ewarn "'bsddb' module is out-of-date and no longer maintained inside"
- ewarn "dev-lang/python. 'bsddb' and 'dbhash' modules have been additionally"
- ewarn "removed in Python 3. A maintained alternative of 'bsddb3' module"
- ewarn "is provided by dev-python/bsddb3."
- else
- if has_version "=${CATEGORY}/${PN}-${PV%%.*}*[berkdb]"; then
- ewarn "You are migrating from =${CATEGORY}/${PN}-${PV%%.*}*[berkdb]"
- ewarn "to =${CATEGORY}/${PN}-${PV%%.*}*[-berkdb]."
- ewarn "You might need to migrate your databases."
- fi
- fi
-}
-
-src_prepare() {
- # Ensure that internal copies of expat, libffi and zlib are not used.
- rm -r Modules/expat || die
- rm -r Modules/_ctypes/libffi* || die
- rm -r Modules/zlib || die
-
- if tc-is-cross-compiler; then
- local EPATCH_EXCLUDE="*_regenerate_platform-specific_modules.patch"
- fi
-
- EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
-
- # Fix for cross-compiling.
- epatch "${FILESDIR}/python-2.7.5-nonfatal-compileall.patch"
- epatch "${FILESDIR}/python-2.7.9-ncurses-pkg-config.patch"
- epatch "${FILESDIR}/python-2.7.10-cross-compile-warn-test.patch"
- epatch "${FILESDIR}/python-2.7.10-system-libffi.patch"
- epatch "${FILESDIR}/2.7-disable-nis.patch"
- epatch "${FILESDIR}/python-2.7-libressl-compatibility.patch"
-
- epatch_user
-
- sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
- Lib/distutils/command/install.py \
- Lib/distutils/sysconfig.py \
- Lib/site.py \
- Lib/sysconfig.py \
- Lib/test/test_site.py \
- Makefile.pre.in \
- Modules/Setup.dist \
- Modules/getpath.c \
- setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
-
- eautoreconf
-}
-
-src_configure() {
- # dbm module can be linked against berkdb or gdbm.
- # Defaults to gdbm when both are enabled, #204343.
- local disable
- use berkdb || use gdbm || disable+=" dbm"
- use berkdb || disable+=" _bsddb"
- use gdbm || disable+=" gdbm"
- use ncurses || disable+=" _curses _curses_panel"
- use readline || disable+=" readline"
- use sqlite || disable+=" _sqlite3"
- use ssl || export PYTHON_DISABLE_SSL="1"
- use tk || disable+=" _tkinter"
- use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
- export PYTHON_DISABLE_MODULES="${disable}"
-
- if ! use xml; then
- ewarn "You have configured Python without XML support."
- ewarn "This is NOT a recommended configuration as you"
- ewarn "may face problems parsing any XML documents."
- fi
-
- if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
- einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
- fi
-
- if [[ "$(gcc-major-version)" -ge 4 ]]; then
- append-flags -fwrapv
- fi
-
- filter-flags -malign-double
-
- # https://bugs.gentoo.org/show_bug.cgi?id=50309
- if is-flagq -O3; then
- is-flagq -fstack-protector-all && replace-flags -O3 -O2
- use hardened && replace-flags -O3 -O2
- fi
-
- if tc-is-cross-compiler; then
- # Force some tests that try to poke fs paths.
- export ac_cv_file__dev_ptc=no
- export ac_cv_file__dev_ptmx=yes
- fi
-
- # Export CXX so it ends up in /usr/lib/python2.X/config/Makefile.
- tc-export CXX
- # The configure script fails to use pkg-config correctly.
- # http://bugs.python.org/issue15506
- export ac_cv_path_PKG_CONFIG=$(tc-getPKG_CONFIG)
-
- # Set LDFLAGS so we link modules with -lpython2.7 correctly.
- # Needed on FreeBSD unless Python 2.7 is already installed.
- # Please query BSD team before removing this!
- append-ldflags "-L."
-
- local dbmliborder
- if use gdbm; then
- dbmliborder+="${dbmliborder:+:}gdbm"
- fi
- if use berkdb; then
- dbmliborder+="${dbmliborder:+:}bdb"
- fi
-
- BUILD_DIR="${WORKDIR}/${CHOST}"
- mkdir -p "${BUILD_DIR}" || die
- cd "${BUILD_DIR}" || die
-
- ECONF_SOURCE="${S}" OPT="" \
- econf \
- --with-fpectl \
- --enable-shared \
- $(use_enable ipv6) \
- $(use_with threads) \
- $(use wide-unicode && echo "--enable-unicode=ucs4" || echo "--enable-unicode=ucs2") \
- --infodir='${prefix}/share/info' \
- --mandir='${prefix}/share/man' \
- --with-computed-gotos \
- --with-dbmliborder="${dbmliborder}" \
- --with-libc="" \
- --enable-loadable-sqlite-extensions \
- --with-system-expat \
- --with-system-ffi \
- --without-ensurepip
-
- if use threads && grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
- eerror "configure has detected that the sem_open function is broken."
- eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
- die "Broken sem_open function (bug 496328)"
- fi
-}
-
-src_compile() {
- # Avoid invoking pgen for cross-compiles.
- touch Include/graminit.h Python/graminit.c
-
- cd "${BUILD_DIR}" || die
- emake
-
- # Work around bug 329499. See also bug 413751 and 457194.
- if has_version dev-libs/libffi[pax_kernel]; then
- pax-mark E python
- else
- pax-mark m python
- fi
-}
-
-src_test() {
- # Tests will not work when cross compiling.
- if tc-is-cross-compiler; then
- elog "Disabling tests due to crosscompiling."
- return
- fi
-
- cd "${BUILD_DIR}" || die
-
- # Skip failing tests.
- local skipped_tests="distutils gdb"
-
- for test in ${skipped_tests}; do
- mv "${S}"/Lib/test/test_${test}.py "${T}"
- done
-
- # Daylight saving time problem
- # https://bugs.python.org/issue22067
- # https://bugs.gentoo.org/610628
- local -x TZ=UTC
-
- # Rerun failed tests in verbose mode (regrtest -w).
- emake test EXTRATESTOPTS="-w" < /dev/tty
- local result="$?"
-
- for test in ${skipped_tests}; do
- mv "${T}/test_${test}.py" "${S}"/Lib/test
- done
-
- elog "The following tests have been skipped:"
- for test in ${skipped_tests}; do
- elog "test_${test}.py"
- done
-
- elog "If you would like to run them, you may:"
- elog "cd '${EPREFIX}/usr/$(get_libdir)/python${SLOT}/test'"
- elog "and run the tests separately."
-
- if [[ "${result}" -ne 0 ]]; then
- die "emake test failed"
- fi
-}
-
-src_install() {
- local libdir=${ED}/usr/$(get_libdir)/python${SLOT}
-
- cd "${BUILD_DIR}" || die
- emake DESTDIR="${D}" altinstall
-
- sed -e "s/\(LDFLAGS=\).*/\1/" -i "${libdir}/config/Makefile" || die "sed failed"
-
- # Fix collisions between different slots of Python.
- mv "${ED}usr/bin/2to3" "${ED}usr/bin/2to3-${SLOT}"
- mv "${ED}usr/bin/pydoc" "${ED}usr/bin/pydoc${SLOT}"
- mv "${ED}usr/bin/idle" "${ED}usr/bin/idle${SLOT}"
- rm -f "${ED}usr/bin/smtpd.py"
-
- use berkdb || rm -r "${libdir}/"{bsddb,dbhash.py*,test/test_bsddb*} || die
- use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
- use tk || rm -r "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,lib-tk} || die
- use elibc_uclibc && rm -fr "${libdir}/"{bsddb/test,test}
-
- use threads || rm -r "${libdir}/multiprocessing" || die
- use wininst || rm -r "${libdir}/distutils/command/"wininst-*.exe || die
-
- dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS}
-
- if use examples; then
- insinto /usr/share/doc/${PF}/examples
- doins -r "${S}"/Tools
- fi
- insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
- local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \
- emake --no-print-directory -s -f - 2>/dev/null)
- newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py
-
- newconfd "${FILESDIR}/pydoc.conf" pydoc-${SLOT}
- newinitd "${FILESDIR}/pydoc.init" pydoc-${SLOT}
- sed \
- -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${SLOT/./_}_PORT:" \
- -e "s:@PYDOC@:pydoc${SLOT}:" \
- -i "${ED}etc/conf.d/pydoc-${SLOT}" "${ED}etc/init.d/pydoc-${SLOT}" || die "sed failed"
-
- # for python-exec
- local vars=( EPYTHON PYTHON_SITEDIR PYTHON_SCRIPTDIR )
-
- # if not using a cross-compiler, use the fresh binary
- if ! tc-is-cross-compiler; then
- local -x PYTHON=./python
- local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
- else
- vars=( PYTHON "${vars[@]}" )
- fi
-
- python_export "python${SLOT}" "${vars[@]}"
- echo "EPYTHON='${EPYTHON}'" > epython.py || die
- python_domodule epython.py
-
- # python-exec wrapping support
- local pymajor=${SLOT%.*}
- mkdir -p "${D}${PYTHON_SCRIPTDIR}" || die
- # python and pythonX
- ln -s "../../../bin/python${SLOT}" \
- "${D}${PYTHON_SCRIPTDIR}/python${pymajor}" || die
- ln -s "python${pymajor}" \
- "${D}${PYTHON_SCRIPTDIR}/python" || die
- # python-config and pythonX-config
- ln -s "../../../bin/python${SLOT}-config" \
- "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" || die
- ln -s "python${pymajor}-config" \
- "${D}${PYTHON_SCRIPTDIR}/python-config" || die
- # 2to3, pydoc, pyvenv
- ln -s "../../../bin/2to3-${SLOT}" \
- "${D}${PYTHON_SCRIPTDIR}/2to3" || die
- ln -s "../../../bin/pydoc${SLOT}" \
- "${D}${PYTHON_SCRIPTDIR}/pydoc" || die
- # idle
- if use tk; then
- ln -s "../../../bin/idle${SLOT}" \
- "${D}${PYTHON_SCRIPTDIR}/idle" || die
- fi
-}
-
-eselect_python_update() {
- if [[ -z "$(eselect python show)" || ! -f "${EROOT}usr/bin/$(eselect python show)" ]]; then
- eselect python update
- fi
-
- if [[ -z "$(eselect python show --python${PV%%.*})" || ! -f "${EROOT}usr/bin/$(eselect python show --python${PV%%.*})" ]]; then
- eselect python update --python${PV%%.*}
- fi
-}
-
-pkg_postinst() {
- eselect_python_update
-}
-
-pkg_postrm() {
- eselect_python_update
-}
diff --git a/dev-lang/python/python-2.7.14-r2.ebuild b/dev-lang/python/python-2.7.14-r2.ebuild
deleted file mode 100644
index cc59a5124337..000000000000
--- a/dev-lang/python/python-2.7.14-r2.ebuild
+++ /dev/null
@@ -1,367 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-WANT_LIBTOOL="none"
-
-inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
-
-MY_P="Python-${PV}"
-PATCHSET_VERSION="2.7.14-0"
-
-DESCRIPTION="An interpreted, interactive, object-oriented programming language"
-HOMEPAGE="https://www.python.org/"
-SRC_URI="https://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz
- https://dev.gentoo.org/~floppym/python/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz"
-
-LICENSE="PSF-2"
-SLOT="2.7"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
-IUSE="-berkdb bluetooth build doc elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml"
-
-# Do not add a dependency on dev-lang/python to this ebuild.
-# If you need to apply a patch which requires python for bootstrapping, please
-# run the bootstrap code on your dev box and include the results in the
-# patchset. See bug 447752.
-
-RDEPEND="app-arch/bzip2:0=
- >=sys-libs/zlib-1.1.3:0=
- virtual/libffi:=
- virtual/libintl
- berkdb? ( || (
- sys-libs/db:5.3
- sys-libs/db:5.1
- sys-libs/db:4.8
- sys-libs/db:4.7
- sys-libs/db:4.6
- sys-libs/db:4.5
- sys-libs/db:4.4
- sys-libs/db:4.3
- sys-libs/db:4.2
- ) )
- gdbm? ( sys-libs/gdbm:0=[berkdb] )
- ncurses? ( >=sys-libs/ncurses-5.2:0= )
- readline? ( >=sys-libs/readline-4.1:0= )
- sqlite? ( >=dev-db/sqlite-3.3.8:3= )
- ssl? (
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl:0= )
- )
- tk? (
- >=dev-lang/tcl-8.0:0=
- >=dev-lang/tk-8.0:0=
- dev-tcltk/blt:0=
- dev-tcltk/tix
- )
- xml? ( >=dev-libs/expat-2.1 )
- !!<sys-apps/portage-2.1.9"
-# bluetooth requires headers from bluez
-DEPEND="${RDEPEND}
- bluetooth? ( net-wireless/bluez )
- virtual/pkgconfig
- >=sys-devel/autoconf-2.65
- !sys-devel/gcc[libffi(-)]"
-RDEPEND+=" !build? ( app-misc/mime-types )
- doc? ( dev-python/python-docs:${SLOT} )"
-PDEPEND=">=app-eselect/eselect-python-20140125-r1"
-
-S="${WORKDIR}/${MY_P}"
-
-pkg_setup() {
- if use berkdb; then
- ewarn "'bsddb' module is out-of-date and no longer maintained inside"
- ewarn "dev-lang/python. 'bsddb' and 'dbhash' modules have been additionally"
- ewarn "removed in Python 3. A maintained alternative of 'bsddb3' module"
- ewarn "is provided by dev-python/bsddb3."
- else
- if has_version "=${CATEGORY}/${PN}-${PV%%.*}*[berkdb]"; then
- ewarn "You are migrating from =${CATEGORY}/${PN}-${PV%%.*}*[berkdb]"
- ewarn "to =${CATEGORY}/${PN}-${PV%%.*}*[-berkdb]."
- ewarn "You might need to migrate your databases."
- fi
- fi
-}
-
-src_prepare() {
- # Ensure that internal copies of expat, libffi and zlib are not used.
- rm -r Modules/expat || die
- rm -r Modules/_ctypes/libffi* || die
- rm -r Modules/zlib || die
-
- if tc-is-cross-compiler; then
- local EPATCH_EXCLUDE="*_regenerate_platform-specific_modules.patch"
- fi
-
- EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
-
- # Fix for cross-compiling.
- epatch "${FILESDIR}/python-2.7.5-nonfatal-compileall.patch"
- epatch "${FILESDIR}/python-2.7.9-ncurses-pkg-config.patch"
- epatch "${FILESDIR}/python-2.7.10-cross-compile-warn-test.patch"
- epatch "${FILESDIR}/python-2.7.10-system-libffi.patch"
- epatch "${FILESDIR}/2.7-disable-nis.patch"
- epatch "${FILESDIR}/python-2.7-libressl-compatibility.patch"
-
- epatch_user
-
- sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
- Lib/distutils/command/install.py \
- Lib/distutils/sysconfig.py \
- Lib/site.py \
- Lib/sysconfig.py \
- Lib/test/test_site.py \
- Makefile.pre.in \
- Modules/Setup.dist \
- Modules/getpath.c \
- setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
-
- eautoreconf
-}
-
-src_configure() {
- # dbm module can be linked against berkdb or gdbm.
- # Defaults to gdbm when both are enabled, #204343.
- local disable
- use berkdb || use gdbm || disable+=" dbm"
- use berkdb || disable+=" _bsddb"
- # disable automagic bluetooth headers detection
- use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
- use gdbm || disable+=" gdbm"
- use ncurses || disable+=" _curses _curses_panel"
- use readline || disable+=" readline"
- use sqlite || disable+=" _sqlite3"
- use ssl || export PYTHON_DISABLE_SSL="1"
- use tk || disable+=" _tkinter"
- use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
- export PYTHON_DISABLE_MODULES="${disable}"
-
- if ! use xml; then
- ewarn "You have configured Python without XML support."
- ewarn "This is NOT a recommended configuration as you"
- ewarn "may face problems parsing any XML documents."
- fi
-
- if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
- einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
- fi
-
- if [[ "$(gcc-major-version)" -ge 4 ]]; then
- append-flags -fwrapv
- fi
-
- filter-flags -malign-double
-
- # https://bugs.gentoo.org/show_bug.cgi?id=50309
- if is-flagq -O3; then
- is-flagq -fstack-protector-all && replace-flags -O3 -O2
- use hardened && replace-flags -O3 -O2
- fi
-
- if tc-is-cross-compiler; then
- # Force some tests that try to poke fs paths.
- export ac_cv_file__dev_ptc=no
- export ac_cv_file__dev_ptmx=yes
- fi
-
- # Export CXX so it ends up in /usr/lib/python2.X/config/Makefile.
- tc-export CXX
- # The configure script fails to use pkg-config correctly.
- # http://bugs.python.org/issue15506
- export ac_cv_path_PKG_CONFIG=$(tc-getPKG_CONFIG)
-
- # Set LDFLAGS so we link modules with -lpython2.7 correctly.
- # Needed on FreeBSD unless Python 2.7 is already installed.
- # Please query BSD team before removing this!
- append-ldflags "-L."
-
- local dbmliborder
- if use gdbm; then
- dbmliborder+="${dbmliborder:+:}gdbm"
- fi
- if use berkdb; then
- dbmliborder+="${dbmliborder:+:}bdb"
- fi
-
- BUILD_DIR="${WORKDIR}/${CHOST}"
- mkdir -p "${BUILD_DIR}" || die
- cd "${BUILD_DIR}" || die
-
- ECONF_SOURCE="${S}" OPT="" \
- econf \
- --with-fpectl \
- --enable-shared \
- $(use_enable ipv6) \
- $(use_with threads) \
- $(use wide-unicode && echo "--enable-unicode=ucs4" || echo "--enable-unicode=ucs2") \
- --infodir='${prefix}/share/info' \
- --mandir='${prefix}/share/man' \
- --with-computed-gotos \
- --with-dbmliborder="${dbmliborder}" \
- --with-libc="" \
- --enable-loadable-sqlite-extensions \
- --with-system-expat \
- --with-system-ffi \
- --without-ensurepip
-
- if use threads && grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
- eerror "configure has detected that the sem_open function is broken."
- eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
- die "Broken sem_open function (bug 496328)"
- fi
-}
-
-src_compile() {
- # Avoid invoking pgen for cross-compiles.
- touch Include/graminit.h Python/graminit.c
-
- cd "${BUILD_DIR}" || die
- emake
-
- # Work around bug 329499. See also bug 413751 and 457194.
- if has_version dev-libs/libffi[pax_kernel]; then
- pax-mark E python
- else
- pax-mark m python
- fi
-}
-
-src_test() {
- # Tests will not work when cross compiling.
- if tc-is-cross-compiler; then
- elog "Disabling tests due to crosscompiling."
- return
- fi
-
- cd "${BUILD_DIR}" || die
-
- # Skip failing tests.
- local skipped_tests="distutils gdb"
-
- for test in ${skipped_tests}; do
- mv "${S}"/Lib/test/test_${test}.py "${T}"
- done
-
- # Daylight saving time problem
- # https://bugs.python.org/issue22067
- # https://bugs.gentoo.org/610628
- local -x TZ=UTC
-
- # Rerun failed tests in verbose mode (regrtest -w).
- emake test EXTRATESTOPTS="-w" < /dev/tty
- local result="$?"
-
- for test in ${skipped_tests}; do
- mv "${T}/test_${test}.py" "${S}"/Lib/test
- done
-
- elog "The following tests have been skipped:"
- for test in ${skipped_tests}; do
- elog "test_${test}.py"
- done
-
- elog "If you would like to run them, you may:"
- elog "cd '${EPREFIX}/usr/$(get_libdir)/python${SLOT}/test'"
- elog "and run the tests separately."
-
- if [[ "${result}" -ne 0 ]]; then
- die "emake test failed"
- fi
-}
-
-src_install() {
- local libdir=${ED}/usr/$(get_libdir)/python${SLOT}
-
- cd "${BUILD_DIR}" || die
- emake DESTDIR="${D}" altinstall
-
- sed -e "s/\(LDFLAGS=\).*/\1/" -i "${libdir}/config/Makefile" || die "sed failed"
-
- # Fix collisions between different slots of Python.
- mv "${ED}usr/bin/2to3" "${ED}usr/bin/2to3-${SLOT}"
- mv "${ED}usr/bin/pydoc" "${ED}usr/bin/pydoc${SLOT}"
- mv "${ED}usr/bin/idle" "${ED}usr/bin/idle${SLOT}"
- rm -f "${ED}usr/bin/smtpd.py"
-
- use berkdb || rm -r "${libdir}/"{bsddb,dbhash.py*,test/test_bsddb*} || die
- use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
- use tk || rm -r "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,lib-tk} || die
- use elibc_uclibc && rm -fr "${libdir}/"{bsddb/test,test}
-
- use threads || rm -r "${libdir}/multiprocessing" || die
- use wininst || rm -r "${libdir}/distutils/command/"wininst-*.exe || die
-
- dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS}
-
- if use examples; then
- insinto /usr/share/doc/${PF}/examples
- doins -r "${S}"/Tools
- fi
- insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
- local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \
- emake --no-print-directory -s -f - 2>/dev/null)
- newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py
-
- newconfd "${FILESDIR}/pydoc.conf" pydoc-${SLOT}
- newinitd "${FILESDIR}/pydoc.init" pydoc-${SLOT}
- sed \
- -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${SLOT/./_}_PORT:" \
- -e "s:@PYDOC@:pydoc${SLOT}:" \
- -i "${ED}etc/conf.d/pydoc-${SLOT}" "${ED}etc/init.d/pydoc-${SLOT}" || die "sed failed"
-
- # for python-exec
- local vars=( EPYTHON PYTHON_SITEDIR PYTHON_SCRIPTDIR )
-
- # if not using a cross-compiler, use the fresh binary
- if ! tc-is-cross-compiler; then
- local -x PYTHON=./python
- local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
- else
- vars=( PYTHON "${vars[@]}" )
- fi
-
- python_export "python${SLOT}" "${vars[@]}"
- echo "EPYTHON='${EPYTHON}'" > epython.py || die
- python_domodule epython.py
-
- # python-exec wrapping support
- local pymajor=${SLOT%.*}
- mkdir -p "${D}${PYTHON_SCRIPTDIR}" || die
- # python and pythonX
- ln -s "../../../bin/python${SLOT}" \
- "${D}${PYTHON_SCRIPTDIR}/python${pymajor}" || die
- ln -s "python${pymajor}" \
- "${D}${PYTHON_SCRIPTDIR}/python" || die
- # python-config and pythonX-config
- ln -s "../../../bin/python${SLOT}-config" \
- "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" || die
- ln -s "python${pymajor}-config" \
- "${D}${PYTHON_SCRIPTDIR}/python-config" || die
- # 2to3, pydoc, pyvenv
- ln -s "../../../bin/2to3-${SLOT}" \
- "${D}${PYTHON_SCRIPTDIR}/2to3" || die
- ln -s "../../../bin/pydoc${SLOT}" \
- "${D}${PYTHON_SCRIPTDIR}/pydoc" || die
- # idle
- if use tk; then
- ln -s "../../../bin/idle${SLOT}" \
- "${D}${PYTHON_SCRIPTDIR}/idle" || die
- fi
-}
-
-eselect_python_update() {
- if [[ -z "$(eselect python show)" || ! -f "${EROOT}usr/bin/$(eselect python show)" ]]; then
- eselect python update
- fi
-
- if [[ -z "$(eselect python show --python${PV%%.*})" || ! -f "${EROOT}usr/bin/$(eselect python show --python${PV%%.*})" ]]; then
- eselect python update --python${PV%%.*}
- fi
-}
-
-pkg_postinst() {
- eselect_python_update
-}
-
-pkg_postrm() {
- eselect_python_update
-}
diff --git a/dev-lang/ruby/Manifest b/dev-lang/ruby/Manifest
index 42af35e0c684..11e7f2aa58e8 100644
--- a/dev-lang/ruby/Manifest
+++ b/dev-lang/ruby/Manifest
@@ -3,18 +3,19 @@ AUX 2.4/005_no-undefined-ext.patch 479 BLAKE2B b11ae86049ed792e5f98e6e56d93468b0
AUX 2.4/009_no-gems.patch 4153 BLAKE2B c7d056d46cd769a00c3ae8b3866ad7ca7126fe008362461561693b6da7fb867c5418cc9f5fb11af242842af5edab050b68fafd349b8c6e75af208f6a36850900 SHA512 ec63fa29a6be3b86b4bde397292a2de73accbdab479ae881af9d364d7c8cb1f2a3e85c809735d47375b52923754d4abbd26a63c01616926189fda5e4a5a8a454
AUX 2.4/010-libressl_2.7.patch 638 BLAKE2B ffd6091c3d1d657d44370d4bfd84e8c40fe387483972c09dbcb7819957be78ee320c6f46d2f78493d25357072950db13e08dff6d622d2374a9c330fe97ce200f SHA512 d42f61eda8292ee5d3485ba4576fd6dbd8a3e40918f2096de3b376b92f633b476f6ad4913fb3be3f7ef356e722d8a192317b233d174563cd342a429595b0cdae
AUX 2.4/011-gcc8.patch 2470 BLAKE2B d6fe2e34e7c33ca7bccf3b934092ef43b4ba8766d8c160a0548fa4946fc61a763634037c3180479896802e6e75828af043e75839fd03cc9e4b6e126c833d2cb8 SHA512 1636dc821a822ab6ec919e576ebba9e9cba64540801df6a2b4411e650930ec5cdc3ab28aeb3c5d45d3304f73af52372c2dee91833bcd9952692f3167d21007d2
+AUX 2.4/012-openssl_1.1.patch 12158 BLAKE2B b7a77180159d6e2620a148b1c8dc2b137dbad0263d4f588c2d533a0ab9775ea0e685770fc708c3d4ae7ac53c16f657b990af39032219807925e46bcf11478d6b SHA512 050eeb45f7bc8a11bcd7fea0dfabb6137a009cc8f8337aa1c62ca4cd476ff0d66723148a20764a72843a5809f3dd66fe7a607a6098e5da990c90a3d2e15a6f54
AUX 2.5/001-ia64-update-ia64-specific-code-to-use-execution-cont.patch 2501 BLAKE2B 7c166f47ce8264354272c7f74ebee5fbe038b1cf06230c6507f62d823be266959b622a0a61920845dfc38fbe7846c4ccd1cabf8e133f456e94b1da5197c49526 SHA512 72319113329c7c3c74e5bab21b67256327a65fbe01827cd32ea289de769a91b493c5d1eb35a087ed026105a9e5daf8b0bc17374c01ef1a83cb408440d6316706
AUX 2.5/005_no-undefined-ext.patch 486 BLAKE2B 715f952cab863847f420afb020cac6819e4ab4e8f5527bdf550dd51eef37e272e7e89cbda5b6f9f137fdac89dfc5e99d42be8ae5712c255f11a0628cf07dc84d SHA512 6bbded9fce0c091b7cfb170c9dc2b0882b0e8bbf8fe31eaf596f3620853c8c75aa64c2648d5a72a0208a6ab6d711eb080a2d6aa98352933eda3b874bdd39cee8
AUX 2.5/009_no-gems.patch 3454 BLAKE2B f2439a799776c39ba16f1503d573c90ea6d74fc2bad3b3874a961add6b605bb064c683080a4258ed1a0e83bca5cb67c02ba68bceb6acea7613ab7166e16a2f4c SHA512 bef8b2763993755b5b6ccba0b5cbe002fd721405d7c274f421ae3d95fa4d0d99cdf946f5fa9a907cac2c3696b2cc23f2f2e030b3a70eca93081e49b02f25a072
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.5.tar.xz 10064712 BLAKE2B 0846125e617b43ea302b4c5309b20503577937865d445a6fee766323a188aa552d3a13740c3d38c7be812b19bffb2474021cb7b368cc144d51ea771552f62769 SHA512 658f676c623109f4c7499615e191c98c3dd72cfcaeeaf121337d0b8a33c5243145edd50ec5e2775f988e3cd19788984f105fa165e3049779066566f67172c1b4
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-r1.tar.bz2 3030 BLAKE2B 7c1e80ff0569a03672f53820c665933056b46bcf791c9132cb9f358f72df693749f02da65ca7469c3dd0f652d7dc7bfaa03dccd4eb900562361876023fb65b42 SHA512 54cc3f2bfd1967b8558736e5a5240b886a56b22defca5813f45b1f4dca9af169b4d59d60b327ec8411e824970ac6da1cec53cfc31833403742e9d6941e5a78f1
DIST ruby-patches-2.3.8.tar.bz2 3030 BLAKE2B 7c1e80ff0569a03672f53820c665933056b46bcf791c9132cb9f358f72df693749f02da65ca7469c3dd0f652d7dc7bfaa03dccd4eb900562361876023fb65b42 SHA512 54cc3f2bfd1967b8558736e5a5240b886a56b22defca5813f45b1f4dca9af169b4d59d60b327ec8411e824970ac6da1cec53cfc31833403742e9d6941e5a78f1
-EBUILD ruby-2.3.7.ebuild 6872 BLAKE2B d7cf4b0319f63d9485130c17a393671da672e4f6a4227147be161f0f3e941b8f9b2da4b43168018909ac38b002bea7348f8781fa5a7868913e0b88261dbbd874 SHA512 302d8e3feb1d532eab9e9b5e60d258ceec22a44d40c9adba4cc27d5460dc05deb932777163f06e39975756090a448a73af96c801288b0c3912cca4c591a3cd43
+EBUILD ruby-2.3.8-r1.ebuild 6877 BLAKE2B aa01c8cecf39d0ff2f221d4b51a79d258df1a31687bb3b18154ffd4b998fe73e43304339eb3d49ed6b691ac96cb821730c866a180d4199d8659dc53b24a43790 SHA512 03bfc466d6f8890c353056d702c9af7c0dd789606d3f7b3f83b087ab5bdb619fafcf6fd1021e73b5f37b78fa9214b9a473ba2b3619ea7e51a13fe2d35ad7cce0
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
+EBUILD ruby-2.4.5-r1.ebuild 6631 BLAKE2B 11b247fb28a2e0eb9d9997829327991b6bb730fde51bbf6e68c2136cefa8c99c3193ebe60cac8dacb37f967af69293b2b18515638ba01a6fde9e4eb2efcd20ce SHA512 0780e2d9c06967e1d6184909b553a90d20341741a5a66ccc3096fc72b6758af6c6d66822618839d9c0fc898424cbbab8f9b4de29109ca9bf01ba103baf88cf21
+EBUILD ruby-2.4.5.ebuild 6622 BLAKE2B 0d590e9943a698ebd1f8a71b77985492988b5b0ff12868c2723117d1d63dcf4947fb7e48d5b7685f591c76db4d4efed542ff64266ced865de721dab6719daeed SHA512 ca1a75ae41fc1dea9a8a774d56743b00fc553ac76a44954637deeb8f73797fd4f694ac37d01fff3754166b9643a30b2305897c8fc1a06f9612f4169fa31ba3cf
+EBUILD ruby-2.5.3.ebuild 6419 BLAKE2B 197a536b058b026cd0fa211fe4a391e4deb617d047e4ca200e5674383b94aa3d1dbccc56235303ae7caa8e405939a0e3211e6e4110cb52ae513c824ce969c8b1 SHA512 8b366d49c0e23dc5c1b1554db2238c084e39ac37d89f8a71b6c5e40b8e1025712de118ce622631f93081589c49dbcb543883ed0629d6a0b4925c18bc81b2c26d
MISC metadata.xml 824 BLAKE2B e426ed390cdea118f3301d329ce93729095bafb0a04db9a64edfd709251d6f16f91153d56976f99b82d7a9df4a452513d65593732ccbd7f71332870b52f369a7 SHA512 b6f4fab5888fb9605164d7f627edc86514ec2f83d9dd8c74003ccc5a0d9b6a306986930e027e81f09928fc7ac6677a7de58cebf75c31c2ada73e2a506a447453
diff --git a/dev-lang/ruby/files/2.4/012-openssl_1.1.patch b/dev-lang/ruby/files/2.4/012-openssl_1.1.patch
new file mode 100644
index 000000000000..edf344bedc8c
--- /dev/null
+++ b/dev-lang/ruby/files/2.4/012-openssl_1.1.patch
@@ -0,0 +1,339 @@
+From 7af808153dd34a980e027a04d4490ae38019b3ed Mon Sep 17 00:00:00 2001
+From: Mark Wright <gienah@gentoo.org>
+Date: Sun, 15 Oct 2017 01:24:12 +1100
+Subject: [PATCH] Fix build failure against OpenSSL 1.1 built with
+ no-deprecated Thanks rhenium for the code review and fixes.
+
+---
+ ext/openssl/openssl_missing.h | 4 +++
+ ext/openssl/ossl.c | 23 ++++++---------
+ ext/openssl/ossl.h | 5 ++++
+ ext/openssl/ossl_cipher.c | 14 ++++-----
+ ext/openssl/ossl_engine.c | 54 ++++++++++++++++++++++-------------
+ ext/openssl/ossl_ssl.c | 2 +-
+ ext/openssl/ossl_x509cert.c | 4 +--
+ ext/openssl/ossl_x509crl.c | 4 +--
+ 8 files changed, 63 insertions(+), 47 deletions(-)
+
+diff --git a/ext/openssl/openssl_missing.h b/ext/openssl/openssl_missing.h
+index cc31f6ac..debd25ad 100644
+--- a/ext/openssl/openssl_missing.h
++++ b/ext/openssl/openssl_missing.h
+@@ -209,6 +209,10 @@ IMPL_PKEY_GETTER(EC_KEY, ec)
+ # define X509_get0_notAfter(x) X509_get_notAfter(x)
+ # define X509_CRL_get0_lastUpdate(x) X509_CRL_get_lastUpdate(x)
+ # define X509_CRL_get0_nextUpdate(x) X509_CRL_get_nextUpdate(x)
++# define X509_set1_notBefore(x, t) X509_set_notBefore(x, t)
++# define X509_set1_notAfter(x, t) X509_set_notAfter(x, t)
++# define X509_CRL_set1_lastUpdate(x, t) X509_CRL_set_lastUpdate(x, t)
++# define X509_CRL_set1_nextUpdate(x, t) X509_CRL_set_nextUpdate(x, t)
+ #endif
+
+ #if !defined(HAVE_SSL_SESSION_GET_PROTOCOL_VERSION)
+diff --git a/ext/openssl/ossl.c b/ext/openssl/ossl.c
+index 93ecc7d4..245385e7 100644
+--- a/ext/openssl/ossl.c
++++ b/ext/openssl/ossl.c
+@@ -1109,25 +1109,14 @@ Init_openssl(void)
+ /*
+ * Init all digests, ciphers
+ */
+- /* CRYPTO_malloc_init(); */
+- /* ENGINE_load_builtin_engines(); */
++#if !defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000
++ if (!OPENSSL_init_ssl(0, NULL))
++ rb_raise(rb_eRuntimeError, "OPENSSL_init_ssl");
++#else
+ OpenSSL_add_ssl_algorithms();
+ OpenSSL_add_all_algorithms();
+ ERR_load_crypto_strings();
+ SSL_load_error_strings();
+-
+- /*
+- * FIXME:
+- * On unload do:
+- */
+-#if 0
+- CONF_modules_unload(1);
+- destroy_ui_method();
+- EVP_cleanup();
+- ENGINE_cleanup();
+- CRYPTO_cleanup_all_ex_data();
+- ERR_remove_state(0);
+- ERR_free_strings();
+ #endif
+
+ /*
+@@ -1149,7 +1138,11 @@ Init_openssl(void)
+ /*
+ * Version of OpenSSL the ruby OpenSSL extension is running with
+ */
++#if !defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000
++ rb_define_const(mOSSL, "OPENSSL_LIBRARY_VERSION", rb_str_new2(OpenSSL_version(OPENSSL_VERSION)));
++#else
+ rb_define_const(mOSSL, "OPENSSL_LIBRARY_VERSION", rb_str_new2(SSLeay_version(SSLEAY_VERSION)));
++#endif
+
+ /*
+ * Version number of OpenSSL the ruby OpenSSL extension was built with
+diff --git a/ext/openssl/ossl.h b/ext/openssl/ossl.h
+index f08889b2..5a15839c 100644
+--- a/ext/openssl/ossl.h
++++ b/ext/openssl/ossl.h
+@@ -35,6 +35,11 @@
+ #if !defined(OPENSSL_NO_OCSP)
+ # include <openssl/ocsp.h>
+ #endif
++#include <openssl/bn.h>
++#include <openssl/rsa.h>
++#include <openssl/dsa.h>
++#include <openssl/evp.h>
++#include <openssl/dh.h>
+
+ /*
+ * Common Module
+diff --git a/ext/openssl/ossl_cipher.c b/ext/openssl/ossl_cipher.c
+index bfa76c1a..e6179733 100644
+--- a/ext/openssl/ossl_cipher.c
++++ b/ext/openssl/ossl_cipher.c
+@@ -508,9 +508,9 @@ ossl_cipher_set_iv(VALUE self, VALUE iv)
+ StringValue(iv);
+ GetCipher(self, ctx);
+
+ #if defined(HAVE_AUTHENTICATED_ENCRYPTION)
+- if (EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER)
++ if (EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER)
+ iv_len = (int)(VALUE)EVP_CIPHER_CTX_get_app_data(ctx);
+ #endif
+ if (!iv_len)
+ iv_len = EVP_CIPHER_CTX_iv_length(ctx);
+@@ -535,7 +535,7 @@ ossl_cipher_is_authenticated(VALUE self)
+
+ GetCipher(self, ctx);
+
+ #if defined(HAVE_AUTHENTICATED_ENCRYPTION)
+- return (EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER) ? Qtrue : Qfalse;
++ return (EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER) ? Qtrue : Qfalse;
+ #else
+ return Qfalse;
+ #endif
+@@ -606,7 +606,7 @@ ossl_cipher_get_auth_tag(int argc, VALUE *argv, VALUE self)
+
+ GetCipher(self, ctx);
+
+- if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER))
++ if (!(EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER))
+ ossl_raise(eCipherError, "authentication tag not supported by this cipher");
+
+ ret = rb_str_new(NULL, tag_len);
+@@ -641,7 +641,7 @@ ossl_cipher_set_auth_tag(VALUE self, VALUE vtag)
+ tag_len = RSTRING_LENINT(vtag);
+
+ GetCipher(self, ctx);
+- if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER))
++ if (!(EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER))
+ ossl_raise(eCipherError, "authentication tag not supported by this cipher");
+
+ if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, tag_len, tag))
+@@ -668,7 +668,7 @@ ossl_cipher_set_auth_tag_len(VALUE self, VALUE vlen)
+ EVP_CIPHER_CTX *ctx;
+
+ GetCipher(self, ctx);
+- if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER))
++ if (!(EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER))
+ ossl_raise(eCipherError, "AEAD not supported by this cipher");
+
+ if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, tag_len, NULL))
+@@ -695,7 +695,7 @@ ossl_cipher_set_iv_length(VALUE self, VALUE iv_length)
+ EVP_CIPHER_CTX *ctx;
+
+ GetCipher(self, ctx);
+- if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER))
++ if (!(EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER))
+ ossl_raise(eCipherError, "cipher does not support AEAD");
+
+ if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_IVLEN, len, NULL))
+@@ -786,9 +786,9 @@ ossl_cipher_iv_length(VALUE self)
+ int len = 0;
+
+ GetCipher(self, ctx);
+ #if defined(HAVE_AUTHENTICATED_ENCRYPTION)
+- if (EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER)
++ if (EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER)
+ len = (int)(VALUE)EVP_CIPHER_CTX_get_app_data(ctx);
+ #endif
+ if (!len)
+ len = EVP_CIPHER_CTX_iv_length(ctx);
+diff --git a/ext/openssl/ossl_engine.c b/ext/openssl/ossl_engine.c
+index d69b5dca..5ca0d4ca 100644
+--- a/ext/openssl/ossl_engine.c
++++ b/ext/openssl/ossl_engine.c
+@@ -46,13 +46,25 @@ VALUE eEngineError;
+ /*
+ * Private
+ */
+-#define OSSL_ENGINE_LOAD_IF_MATCH(x) \
++#if !defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000
++#define OSSL_ENGINE_LOAD_IF_MATCH(engine_name, x) \
+ do{\
+- if(!strcmp(#x, RSTRING_PTR(name))){\
+- ENGINE_load_##x();\
++ if(!strcmp(#engine_name, RSTRING_PTR(name))){\
++ if (OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_##x, NULL))\
++ return Qtrue;\
++ else\
++ ossl_raise(eEngineError, "OPENSSL_init_crypto"); \
++ }\
++}while(0)
++#else
++#define OSSL_ENGINE_LOAD_IF_MATCH(engine_name, x) \
++do{\
++ if(!strcmp(#engine_name, RSTRING_PTR(name))){\
++ ENGINE_load_##engine_name();\
+ return Qtrue;\
+ }\
+ }while(0)
++#endif
+
+ static void
+ ossl_engine_free(void *engine)
+@@ -94,55 +106,55 @@ ossl_engine_s_load(int argc, VALUE *argv, VALUE klass)
+ StringValueCStr(name);
+ #ifndef OPENSSL_NO_STATIC_ENGINE
+ #if HAVE_ENGINE_LOAD_DYNAMIC
+- OSSL_ENGINE_LOAD_IF_MATCH(dynamic);
++ OSSL_ENGINE_LOAD_IF_MATCH(dynamic, DYNAMIC);
+ #endif
+ #if HAVE_ENGINE_LOAD_4758CCA
+- OSSL_ENGINE_LOAD_IF_MATCH(4758cca);
++ OSSL_ENGINE_LOAD_IF_MATCH(4758cca, 4758CCA);
+ #endif
+ #if HAVE_ENGINE_LOAD_AEP
+- OSSL_ENGINE_LOAD_IF_MATCH(aep);
++ OSSL_ENGINE_LOAD_IF_MATCH(aep, AEP);
+ #endif
+ #if HAVE_ENGINE_LOAD_ATALLA
+- OSSL_ENGINE_LOAD_IF_MATCH(atalla);
++ OSSL_ENGINE_LOAD_IF_MATCH(atalla, ATALLA);
+ #endif
+ #if HAVE_ENGINE_LOAD_CHIL
+- OSSL_ENGINE_LOAD_IF_MATCH(chil);
++ OSSL_ENGINE_LOAD_IF_MATCH(chil, CHIL);
+ #endif
+ #if HAVE_ENGINE_LOAD_CSWIFT
+- OSSL_ENGINE_LOAD_IF_MATCH(cswift);
++ OSSL_ENGINE_LOAD_IF_MATCH(cswift, CSWIFT);
+ #endif
+ #if HAVE_ENGINE_LOAD_NURON
+- OSSL_ENGINE_LOAD_IF_MATCH(nuron);
++ OSSL_ENGINE_LOAD_IF_MATCH(nuron, NURON);
+ #endif
+ #if HAVE_ENGINE_LOAD_SUREWARE
+- OSSL_ENGINE_LOAD_IF_MATCH(sureware);
++ OSSL_ENGINE_LOAD_IF_MATCH(sureware, SUREWARE);
+ #endif
+ #if HAVE_ENGINE_LOAD_UBSEC
+- OSSL_ENGINE_LOAD_IF_MATCH(ubsec);
++ OSSL_ENGINE_LOAD_IF_MATCH(ubsec, UBSEC);
+ #endif
+ #if HAVE_ENGINE_LOAD_PADLOCK
+- OSSL_ENGINE_LOAD_IF_MATCH(padlock);
++ OSSL_ENGINE_LOAD_IF_MATCH(padlock, PADLOCK);
+ #endif
+ #if HAVE_ENGINE_LOAD_CAPI
+- OSSL_ENGINE_LOAD_IF_MATCH(capi);
++ OSSL_ENGINE_LOAD_IF_MATCH(capi, CAPI);
+ #endif
+ #if HAVE_ENGINE_LOAD_GMP
+- OSSL_ENGINE_LOAD_IF_MATCH(gmp);
++ OSSL_ENGINE_LOAD_IF_MATCH(gmp, GMP);
+ #endif
+ #if HAVE_ENGINE_LOAD_GOST
+- OSSL_ENGINE_LOAD_IF_MATCH(gost);
++ OSSL_ENGINE_LOAD_IF_MATCH(gost, GOST);
+ #endif
+ #if HAVE_ENGINE_LOAD_CRYPTODEV
+- OSSL_ENGINE_LOAD_IF_MATCH(cryptodev);
++ OSSL_ENGINE_LOAD_IF_MATCH(cryptodev, CRYPTODEV);
+ #endif
+ #if HAVE_ENGINE_LOAD_AESNI
+- OSSL_ENGINE_LOAD_IF_MATCH(aesni);
++ OSSL_ENGINE_LOAD_IF_MATCH(aesni, AESNI);
+ #endif
+ #endif
+ #ifdef HAVE_ENGINE_LOAD_OPENBSD_DEV_CRYPTO
+- OSSL_ENGINE_LOAD_IF_MATCH(openbsd_dev_crypto);
++ OSSL_ENGINE_LOAD_IF_MATCH(openbsd_dev_crypto, OPENBSD_DEV_CRYPTO);
+ #endif
+- OSSL_ENGINE_LOAD_IF_MATCH(openssl);
++ OSSL_ENGINE_LOAD_IF_MATCH(openssl, OPENSSL);
+ rb_warning("no such builtin loader for `%"PRIsVALUE"'", name);
+ return Qnil;
+ #endif /* HAVE_ENGINE_LOAD_BUILTIN_ENGINES */
+@@ -160,7 +172,9 @@ ossl_engine_s_load(int argc, VALUE *argv, VALUE klass)
+ static VALUE
+ ossl_engine_s_cleanup(VALUE self)
+ {
++#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000
+ ENGINE_cleanup();
++#endif
+ return Qnil;
+ }
+
+diff --git a/ext/openssl/ossl_ssl.c b/ext/openssl/ossl_ssl.c
+index 8e3c0c42..d32a299c 100644
+--- a/ext/openssl/ossl_ssl.c
++++ b/ext/openssl/ossl_ssl.c
+@@ -379,7 +379,7 @@ ossl_call_session_get_cb(VALUE ary)
+
+ /* this method is currently only called for servers (in OpenSSL <= 0.9.8e) */
+ static SSL_SESSION *
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER)
+ ossl_sslctx_session_get_cb(SSL *ssl, const unsigned char *buf, int len, int *copy)
+ #else
+ ossl_sslctx_session_get_cb(SSL *ssl, unsigned char *buf, int len, int *copy)
+diff --git a/ext/openssl/ossl_x509cert.c b/ext/openssl/ossl_x509cert.c
+index cf82a53d..8d16b9b7 100644
+--- a/ext/openssl/ossl_x509cert.c
++++ b/ext/openssl/ossl_x509cert.c
+@@ -440,7 +440,7 @@ ossl_x509_set_not_before(VALUE self, VALUE time)
+
+ GetX509(self, x509);
+ asn1time = ossl_x509_time_adjust(NULL, time);
+- if (!X509_set_notBefore(x509, asn1time)) {
++ if (!X509_set1_notBefore(x509, asn1time)) {
+ ASN1_TIME_free(asn1time);
+ ossl_raise(eX509CertError, "X509_set_notBefore");
+ }
+@@ -479,7 +479,7 @@ ossl_x509_set_not_after(VALUE self, VALUE time)
+
+ GetX509(self, x509);
+ asn1time = ossl_x509_time_adjust(NULL, time);
+- if (!X509_set_notAfter(x509, asn1time)) {
++ if (!X509_set1_notAfter(x509, asn1time)) {
+ ASN1_TIME_free(asn1time);
+ ossl_raise(eX509CertError, "X509_set_notAfter");
+ }
+diff --git a/ext/openssl/ossl_x509crl.c b/ext/openssl/ossl_x509crl.c
+index 5ecd7ea0..45cf7fb4 100644
+--- a/ext/openssl/ossl_x509crl.c
++++ b/ext/openssl/ossl_x509crl.c
+@@ -226,7 +226,7 @@ ossl_x509crl_set_last_update(VALUE self, VALUE time)
+
+ GetX509CRL(self, crl);
+ asn1time = ossl_x509_time_adjust(NULL, time);
+- if (!X509_CRL_set_lastUpdate(crl, asn1time)) {
++ if (!X509_CRL_set1_lastUpdate(crl, asn1time)) {
+ ASN1_TIME_free(asn1time);
+ ossl_raise(eX509CRLError, "X509_CRL_set_lastUpdate");
+ }
+@@ -257,7 +257,7 @@ ossl_x509crl_set_next_update(VALUE self, VALUE time)
+
+ GetX509CRL(self, crl);
+ asn1time = ossl_x509_time_adjust(NULL, time);
+- if (!X509_CRL_set_nextUpdate(crl, asn1time)) {
++ if (!X509_CRL_set1_nextUpdate(crl, asn1time)) {
+ ASN1_TIME_free(asn1time);
+ ossl_raise(eX509CRLError, "X509_CRL_set_nextUpdate");
+ }
diff --git a/dev-lang/ruby/ruby-2.3.7.ebuild b/dev-lang/ruby/ruby-2.3.8-r1.ebuild
index a65f51e5afc9..b31aace2a5e1 100644
--- a/dev-lang/ruby/ruby-2.3.7.ebuild
+++ b/dev-lang/ruby/ruby-2.3.8-r1.ebuild
@@ -38,7 +38,7 @@ RDEPEND="
gdbm? ( sys-libs/gdbm:= )
jemalloc? ( dev-libs/jemalloc )
ssl? (
- !libressl? ( dev-libs/openssl:0= )
+ !libressl? ( <dev-libs/openssl-1.1:0= )
libressl? ( dev-libs/libressl )
)
socks5? ( >=net-proxy/dante-1.1.13 )
diff --git a/dev-lang/ruby/ruby-2.4.5-r1.ebuild b/dev-lang/ruby/ruby-2.4.5-r1.ebuild
new file mode 100644
index 000000000000..1555bd43a75f
--- /dev/null
+++ b/dev-lang/ruby/ruby-2.4.5-r1.ebuild
@@ -0,0 +1,229 @@
+# 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
+ !<dev-ruby/rdoc-3.9.4
+ !<dev-ruby/rubygems-1.8.10-r1"
+
+DEPEND="${RDEPEND}"
+
+BUNDLED_GEMS="
+ >=dev-ruby/did_you_mean-1.1.0:2.4[ruby_targets_ruby24]
+ >=dev-ruby/minitest-5.10.1[ruby_targets_ruby24]
+ >=dev-ruby/net-telnet-0.1.1[ruby_targets_ruby24]
+ >=dev-ruby/power_assert-0.4.1[ruby_targets_ruby24]
+ >=dev-ruby/rake-12.0.0[ruby_targets_ruby24]
+ >=dev-ruby/test-unit-3.2.3[ruby_targets_ruby24]
+ >=dev-ruby/xmlrpc-0.2.1[ruby_targets_ruby24]
+"
+
+PDEPEND="
+ ${BUNDLED_GEMS}
+ virtual/rubygems[ruby_targets_ruby24]
+ >=dev-ruby/json-2.0.2[ruby_targets_ruby24]
+ rdoc? ( >=dev-ruby/rdoc-5.1.0[ruby_targets_ruby24] )
+ xemacs? ( app-xemacs/ruby-modes )"
+
+src_prepare() {
+ eapply "${FILESDIR}"/${SLOT}/{002,005,009,012}*.patch
+
+ einfo "Unbundling gems..."
+ cd "$S"
+ # Remove bundled gems that we will install via PDEPEND, bug
+ # 539700. Use explicit version numbers to ensure rm fails when they
+ # change so we can update dependencies accordingly.
+ rm -f gems/{did_you_mean-1.1.0,minitest-5.10.1,net-telnet-0.1.1,power_assert-0.4.1,rake-12.0.0,test-unit-3.2.3,xmlrpc-0.2.1}.gem || die
+
+ einfo "Removing bundled libraries..."
+ rm -fr ext/fiddle/libffi-3.2.1 || die
+
+ # Fix a hardcoded lib path in configure script
+ sed -i -e "s:\(RUBY_LIB_PREFIX=\"\${prefix}/\)lib:\1$(get_libdir):" \
+ configure.in || die "sed failed"
+
+ eapply_user
+
+ eautoreconf
+}
+
+src_configure() {
+ local modules= myconf=
+
+ # -fomit-frame-pointer makes ruby segfault, see bug #150413.
+ filter-flags -fomit-frame-pointer
+ # In many places aliasing rules are broken; play it safe
+ # as it's risky with newer compilers to leave it as it is.
+ append-flags -fno-strict-aliasing
+ # SuperH needs this
+ use sh && append-flags -mieee
+
+ # Socks support via dante
+ if use socks5 ; then
+ # Socks support can't be disabled as long as SOCKS_SERVER is
+ # set and socks library is present, so need to unset
+ # SOCKS_SERVER in that case.
+ unset SOCKS_SERVER
+ fi
+
+ # Increase GC_MALLOC_LIMIT if set (default is 8000000)
+ if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
+ append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
+ fi
+
+ # ipv6 hack, bug 168939. Needs --enable-ipv6.
+ use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
+
+ # Determine which modules *not* to build depending in the USE flags.
+ if ! use berkdb ; then
+ modules="${modules},dbm"
+ fi
+ if ! use gdbm ; then
+ modules="${modules},gdbm"
+ fi
+ if ! use ssl ; then
+ modules="${modules},openssl"
+ fi
+ if ! use tk ; then
+ modules="${modules},tk"
+ fi
+
+ # Provide an empty LIBPATHENV because we disable rpath but we do not
+ # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
+ # #564272
+ INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
+ --program-suffix=${MY_SUFFIX} \
+ --with-soname=ruby${MY_SUFFIX} \
+ --docdir=${EPREFIX}/usr/share/doc/${P} \
+ --enable-shared \
+ --enable-pthread \
+ --disable-rpath \
+ --with-out-ext="${modules}" \
+ $(use_with jemalloc jemalloc) \
+ $(use_enable socks5 socks) \
+ $(use_enable doc install-doc) \
+ --enable-ipv6 \
+ $(use_enable static-libs static) \
+ $(use_enable static-libs install-static-library) \
+ $(use_with static-libs static-linked-ext) \
+ $(use_enable debug) \
+ ${myconf} \
+ --enable-option-checking=no \
+ || die "econf failed"
+}
+
+src_compile() {
+ emake V=1 EXTLDFLAGS="${LDFLAGS}" || die "emake failed"
+}
+
+src_test() {
+ emake -j1 V=1 test || die "make test failed"
+
+ elog "Ruby's make test has been run. Ruby also ships with a make check"
+ elog "that cannot be run until after ruby has been installed."
+ elog
+ if use rubytests; then
+ elog "You have enabled rubytests, so they will be installed to"
+ elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
+ elog "than root, and you must place them into a writeable directory."
+ elog "Then call: "
+ elog
+ elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
+ else
+ elog "Enable the rubytests USE flag to install the make check tests"
+ fi
+}
+
+src_install() {
+ # Remove the remaining bundled gems. We do this late in the process
+ # since they are used during the build to e.g. create the
+ # documentation.
+ rm -rf ext/json || die
+
+ # Ruby is involved in the install process, we don't want interference here.
+ unset RUBYOPT
+
+ local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
+
+ LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
+ for d in $(find "${S}/ext" -type d) ; do
+ RUBYLIB="${RUBYLIB}:$d"
+ done
+ export LD_LIBRARY_PATH RUBYLIB
+
+ emake V=1 DESTDIR="${D}" install || die "make install failed"
+
+ # Remove installed rubygems and rdoc copy
+ rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
+ rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
+ rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
+ rm -rf "${ED}/usr/bin/"{ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
+
+ if use doc; then
+ make DESTDIR="${D}" install-doc || die "make install-doc failed"
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r sample
+ fi
+
+ dodoc ChangeLog NEWS doc/NEWS* README* || die
+
+ if use rubytests; then
+ pushd test
+ insinto /usr/share/${PN}-${SLOT}/test
+ doins -r .
+ popd
+ fi
+}
+
+pkg_postinst() {
+ if [[ ! -n $(readlink "${EROOT}"usr/bin/ruby) ]] ; then
+ eselect ruby set ruby${MY_SUFFIX}
+ fi
+
+ elog
+ elog "To switch between available Ruby profiles, execute as root:"
+ elog "\teselect ruby set ruby(23|24|...)"
+ elog
+}
+
+pkg_postrm() {
+ eselect ruby cleanup
+}
diff --git a/dev-lang/ruby/ruby-2.4.5.ebuild b/dev-lang/ruby/ruby-2.4.5.ebuild
index d50cb6f5d339..20cb8ae1e078 100644
--- a/dev-lang/ruby/ruby-2.4.5.ebuild
+++ b/dev-lang/ruby/ruby-2.4.5.ebuild
@@ -17,8 +17,8 @@ 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"
+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:= )
diff --git a/dev-lang/ruby/ruby-2.5.3.ebuild b/dev-lang/ruby/ruby-2.5.3.ebuild
index b837e6034f7a..227ceca8820c 100644
--- a/dev-lang/ruby/ruby-2.5.3.ebuild
+++ b/dev-lang/ruby/ruby-2.5.3.ebuild
@@ -18,7 +18,7 @@ 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"
+IUSE="berkdb debug doc examples gdbm ipv6 jemalloc libressl +rdoc rubytests socks5 +ssl static-libs tk xemacs"
RDEPEND="
berkdb? ( sys-libs/db:= )
diff --git a/dev-lang/rust-bin/Manifest b/dev-lang/rust-bin/Manifest
index 7bf5ae59c400..bb92b8e25da1 100644
--- a/dev-lang/rust-bin/Manifest
+++ b/dev-lang/rust-bin/Manifest
@@ -30,7 +30,21 @@ DIST rust-1.30.1-powerpc64-unknown-linux-gnu.tar.xz 118698168 BLAKE2B 58905ab6c6
DIST rust-1.30.1-powerpc64le-unknown-linux-gnu.tar.xz 121569444 BLAKE2B d4d390ea24298cd88d224efe3c1a1dc3a802b678d977bc0aa26197e291547a6ca823a0fe5e35491204a649cb6a5419343a825ef32408aa2638d057b209b1c15c SHA512 b4595f031a006335ac778ec6a07c398fd6cce78ed3c0ed5730a5c06fa3a390dbab1afda0468756330783baa86dafb2f0c7ca7c75b735eb532c268027e22975e6
DIST rust-1.30.1-s390x-unknown-linux-gnu.tar.xz 124025168 BLAKE2B b4a8df333b093ae111136a6b9005aca7f424f209d629041c4fce1efc7e19b176f6e6325bf3552e8de93faa311ebf065ad4b9f104de3ee412b2a3fda70156c2b0 SHA512 592764d3d5b4d8a2a7628f4969ba5204da4ea63ca92efc17d4f9339274fce00aecc4d1ebb1f4d0499da8559375ad205054b26e12775af622a7112b20b8c8d4fb
DIST rust-1.30.1-x86_64-unknown-linux-gnu.tar.xz 145148116 BLAKE2B e70d667d880656209c036b72f619b1bd29679878ff4b8865f0453c064c4a8a53a96e73994509637312032e1260eeb0e53f7372ca1526760b1631846ed6a4c571 SHA512 05238b65b5184e3df81dbcf1cc1035a03054ef09a8563fe60877e4f078d0d2cad71aec73c1451196171f39f8e729059e91c7eed7b1402e03801c0b7e81815885
+DIST rust-1.31.1-aarch64-unknown-linux-gnu.tar.xz 117785172 BLAKE2B 91d8c525993b3d480a6575f5e9e5e84cd50acd74abb07dc2c1ed030113586189cfdd1e8e820c7449127b203cd67e943eca9564367c40d4ceff5013442cda7661 SHA512 c45aebda96a2df0e24efc7dc75cb913f6f92f6214582863367f3556a335d9a5ddf5bb487cb33dee7a48ab1d4dc986bd1fcf32f85b75d07558b1d18d89b26fd30
+DIST rust-1.31.1-arm-unknown-linux-gnueabi.tar.xz 124598180 BLAKE2B 0fd99225ef2148732a9ef1de928239608898f63ad1eb56c54e5cad23d5b2c257122dea26f560a0246b2b4c194a75aa67b9423097b1ab0d5f38a5dc05a31cbbf6 SHA512 3698ae14179ecd595a0afc2ac516da385ecee069eebccbd28935b380b4c3fd3970e56cd6f3da90c9ef2f10cf58c744f0bb711c4aaf7980e3ce15f4422a06155e
+DIST rust-1.31.1-arm-unknown-linux-gnueabihf.tar.xz 124897320 BLAKE2B 83a5674bedb463847bcdc8c0a23e233abaed16f8c0036629673f4d0468c4c58388e766d97c09eaa816cc65c387c143146728466ea23e0781d8b69cdc3704250f SHA512 6c5f34d4878e2154193da145216ca5b92ba4b7eac7f0c6ff30d0e9275a8d0399d5d508f0868dd78d7a8686298cd391ccec32f4586647abdb915c889220570977
+DIST rust-1.31.1-armv7-unknown-linux-gnueabihf.tar.xz 126152056 BLAKE2B 0ee424eeabdd5312ee81bee04cc53cbd6e3549024d8098cfec028d39d8948f1bc8661e519b65abd70b3349ee945514c2cf021bef8592d0dd40778bbb58891ed9 SHA512 78b1681f44274c9a0bf62c7646c5a2c85164c5f4dd4349a757b512dd82d435a4f2779c4b6653c8c3f66986512438d1b23e4af15defbbe9f489c0119141ef1942
+DIST rust-1.31.1-i686-unknown-linux-gnu.tar.xz 147063596 BLAKE2B 308d53c592bda4795cca0003c0ee6775a28d58f9644db1b517fe395b2380ae07dae33efb6aef8df40a75ef7a73e026c4bcd4f64a18333d975a75277a77726f2b SHA512 ee2c2bb2c1bb0f6e7f8eaeb4b2f0a8de7f53e8da675ec05cb56cab9bc4faa18b7075f5843226d7f9459e1208cc3fb1b90c65063b4a5a3828b04f8ff3c93ebe39
+DIST rust-1.31.1-mips-unknown-linux-gnu.tar.xz 115663720 BLAKE2B ea9864e1a950a1e86bc9677fa50b4652c2e196926e00396fedc83673336ae3bcd995d6e192c83a963096338812575f6297bed0f1fff0c664c04dfff34e540545 SHA512 b65b98b5af8466c572c623d01898be1a570c23d31f29b74f04d96d279e3788d3562f182aba376d93ce242557ad9fd6678dfe02ee744727da4dc04e0a1284ad64
+DIST rust-1.31.1-mips64-unknown-linux-gnuabi64.tar.xz 120650332 BLAKE2B 2ff61ca5ac7485fb0c6af54baab44462ed5f516986d59711a9d4d0d0e2831a2a008f8b0a97dd2eb2f93b62c18dd2acb312a09df3d11d2556e5bde2b088f1636a SHA512 bcb22d7fe48f847d56b02d43e59fbec7b3d52577d294e3e51b4b675a2c31a7384de2fd3e3d0147744b1d6f43eafe47c78a511d50e3af8d4d982c85b079383486
+DIST rust-1.31.1-mipsel-unknown-linux-gnu.tar.xz 117636088 BLAKE2B 0994ffca63e7c87f210ee14c9bf21db802a8365ff707dc670507acf6f8dc428eaef6b87fc3f7ddc347fc7f830e484f698bc8bf90720463b29b72bad69d63a5ee SHA512 2e301a35ba5443e6cd7db0a985a88bb4145a5b60acda0ce0feced9b4d87f32f4b23fa7b0db9dc5b420bf13db688409abdb1e192684684addab94c9662ad0eda7
+DIST rust-1.31.1-powerpc-unknown-linux-gnu.tar.xz 113293336 BLAKE2B c38dd3f1329533ccfac224e23fcca05866e5fbaa025840be6adfe9a36fbcd86330f073ec7f7bfabecf80ed4e812e8e67a6af5d6a936cb130dad6a14621917d05 SHA512 2900ed20006bdad0078c2e6751b769cc48984d36b43151c1510b6a6a46e50492c23c495777b0f160b338d96311b646f15a6175f5dcdc572fa96be87ea22f86ec
+DIST rust-1.31.1-powerpc64-unknown-linux-gnu.tar.xz 122297864 BLAKE2B 3cc4e867e3a16f182dbb6a35f1c69bda2e8e56763a5b32fdc96ef7a00654f1426d8f9efd658d804e9d8fa8d8cd60dd8db8894e0c2ea40753a973b4a2279d2ce8 SHA512 9a4427735e345d5e8f860ceab497c0ea3efd001c04322f5d2ecf0d5ac76e27feb1a247bb42662446ae39bf52eca75455b01a4c27341d6241406aa6feab1d1d4b
+DIST rust-1.31.1-powerpc64le-unknown-linux-gnu.tar.xz 125272712 BLAKE2B 5a1cb8226ac6209c451841b2ae40ecf452d14fefb7ce8f5f0e681a2f08954d643628b28ceae03e7a164f5fd5415a408843bb2ddcd86b9e3486b7ddbbd3b6bb99 SHA512 e64f586b632b85d07e18c61e5ce18a69404d89e302ecd8b4495e09e2b2f62bd3f32455b3d0d81cfa2d0031c003f23797421587cf6f314ce5b18b12157e1e9a3b
+DIST rust-1.31.1-s390x-unknown-linux-gnu.tar.xz 127867704 BLAKE2B be4b097506561db4f84db4e8b6224dbcd104f15bb95f7ec56b5c0410b85cc8de8f8b559760d7c01d274b7d031354349eed7b49a816fe404ea319d238af64b932 SHA512 ce6999f7d27468143a9a288fd1bda9f3ec42475f8b8473518be41358a2144317abf8076ed9527a10db94b5b89cf920f04217ce7a78ec214aa3e073a8419675bc
+DIST rust-1.31.1-x86_64-unknown-linux-gnu.tar.xz 148394364 BLAKE2B 92b1860f1d0e2da0fc1755a8ed3f6d351da84103220a8fb560e862375b8ad03485299b42ed4448e6f661bb61650480815f20267ffa3d999c2910bc27b80900ae SHA512 3bf37bc419acd7820c7e33d7b44e6cba7f3b556ca8880fee2f65b1648596f069e0bc590a3a7acc10c60a0328f83787a172650d9c26cf21aa14782dcd9a97ec3a
EBUILD rust-bin-1.29.1-r1.ebuild 5626 BLAKE2B 7d27715a7beb483ccf7062437993a36d05a0ed427d8f6774301575b93135382f97edac7fd2bd449e6d6ad6a98793cb09d5d8f27cc037e85c76712a5e1226c071 SHA512 75d18f6228221d9d465dbf32fcccb06246dc93bfddc4f7e54a50871e67f7bb5282e6b2fb1939103572969ea04cff51470a9e44093f5d9aff442ae493489082f2
EBUILD rust-bin-1.29.2-r1.ebuild 4713 BLAKE2B a68d944fcf5c107d1af181d3549423505d65897a2d3ddd2e041f14dceceb3b99e1a9b4552df333b20c7356279befbd5992e41188c4a4351438c5221aae821060 SHA512 befff3078c9a71be9532ba8f0b59899de2bf5c3a3d44189b4daa7cc8f27f7620d010f5e4590ebd663090a5ca3f2bf6bf2016e6b8a392b8f1ea39cf0b7a71afff
EBUILD rust-bin-1.30.1-r1.ebuild 4462 BLAKE2B 3dd70706a5ea57f57036ccc1bcfae1df69117104e02180888c0807de04bc3dab6cc7955d3ad914492e1512008d931dfc172683acc489d5bcd307098804aadc8f SHA512 9f25a9b17654c5c04c39cb65ada274cb0935f39f3d053b73583893144e694abef992438f223d1491c39548c26ff9f35d986cf94c44b00d56030471492ebe1b88
+EBUILD rust-bin-1.31.1.ebuild 4450 BLAKE2B 79131d08a43a44bbf0e708e8bb7d28aa3519f73710ac3c828358700c9118824f6ee2e537c02cd2af409b416efe79d5d8818dd83bfea20f108378db42650521ed SHA512 9fcd9aebe614c0a79b504d70dcf09e7ea4e02baaa5c472d8ec7dab25bed6c5e01d25e910603e04db2e7300b34f628356316dd7f933a0bcf19d023eb7bc86e2a5
MISC metadata.xml 435 BLAKE2B 5725f771e138720715bb1a5f317bbe0757d981da2059320e5be70583c3a98dcc4fc23141a3b489cdcffa2a53dfaf621b0ee0336a3ca6a05bf7bf8db1b06cf0c3 SHA512 af938d75754d54ed33a87410cdac16fe4b74614e3c5e352c2c1f906137f0a3e96a2eb1036d0aa7b2a17b629b05d44fdf44348b53f7720c770c6e6cae2a715f16
diff --git a/dev-lang/rust-bin/rust-bin-1.31.1.ebuild b/dev-lang/rust-bin/rust-bin-1.31.1.ebuild
new file mode 100644
index 000000000000..b2da012da528
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.31.1.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 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 77d5893cdf45..f500b9a0f072 100644
--- a/dev-lang/rust/Manifest
+++ b/dev-lang/rust/Manifest
@@ -26,10 +26,25 @@ DIST rust-1.29.2-powerpc64-unknown-linux-gnu.tar.xz 103432092 BLAKE2B ed700d2987
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 rust-1.30.1-aarch64-unknown-linux-gnu.tar.xz 114223904 BLAKE2B ca3f93d8cb59f5ecc8680ab018f8666a5c0df1bf671af4220c39178a946ce77a05588d91709facd42a1d693120c46c472c4d6dc0b6a5e7d3330b9f0807ff3fcc SHA512 5fb9cb0281cd76b1995bcd6c4dd824f8a4d4c1ffc61a0a54f62b45340b98a7b41cf5ec3d4a8ec370c2603c14f9dc5451ae1a47ea96ebbd520770dfd22cf0ffdc
+DIST rust-1.30.1-arm-unknown-linux-gnueabi.tar.xz 120865688 BLAKE2B 18934c592882ad3608b82ab9aac68412790d02c148c2af0a37a5027ebe059ff697a8556c4dcbf0ac5cf37c6fbd37c51abbf88a3f0ce274742ff1d7ec94f96f04 SHA512 871e0b036273ec62e28712fe1d5d1c74b061eabb59f9cc852e8924df1aaa3797af28d51dde643010920321fa71382ddd70f2d97d25c06999d5663f5209ffc6b7
+DIST rust-1.30.1-arm-unknown-linux-gnueabihf.tar.xz 121114868 BLAKE2B 6410c16e3019b67d2e299b06527db6d7291a1426c4606012234bd8e93b3e3738dda5907aa6d9e48ac25f2a7e06a441f7e42095ec81de01408c235577e0df2df5 SHA512 73ac63f81a86b70ea0378e859b6a913f3f6e2044f1ddcb056c53a18d3f32011a47abf29bf2a84f3a9d6732bec348741662448104e320bcaebf2a3667209fcedb
+DIST rust-1.30.1-armv7-unknown-linux-gnueabihf.tar.xz 122390768 BLAKE2B 39c38b9bf96e94023b9c6d81fce8c341e789f182b59bf1b540a6d22be24e0498c638d0d3aa1433f49e52048795f91f5f4ca707dd8fcb998ea51caa932537b74e SHA512 88f9f23f431cc34d6b7ddc51c2321905df03dc714aab0b3a5e067390de5092b472f8092ba25a5c09666ad9b138efc2f4b625ca86dbe10ddeea213b8e9d70c9b3
+DIST rust-1.30.1-i686-unknown-linux-gnu.tar.xz 143689500 BLAKE2B 0b654570e295c785b074625c8fe7649e1841327fba790e38e08e912ad0602440e08a205318e637c903989bd19bab4c0a726583f2ab457d75ff71e96524251aa0 SHA512 66c56107fd8c83f9c1948137aee09c67633f6f472823696719a22b5f0b0e28925b0a6b6545b8fe4d741b8473ddc49db30fe112fc5b0e6fc63439901ff5462a86
+DIST rust-1.30.1-mips-unknown-linux-gnu.tar.xz 112662912 BLAKE2B ded8631f76ac5fc16cae298f5a7afdb8c451ff95af03c827959bd19484d513066ac387e956577f5ee42369fc5d68c1e2cbf4cfc72c364739eea31643844ba936 SHA512 8a1681f054a57d62050a2d11ae3109e7be4f6638319b059d10612f0be073de63f2dffea79bb29452763fad8a64274367d9bbe5ca0636e78c34a6cdce542118a0
+DIST rust-1.30.1-mips64-unknown-linux-gnuabi64.tar.xz 117355424 BLAKE2B fcc583d99a6b17e1d38d26a48d39768b09c52e6a6fa3cd36d9513bd9385fd4560d06c3a737b69c396b5bb465ae261321dbbaf7bda4378d7e4be165bc889d8b2d SHA512 c18cd513021753d2b8e1a9ea2bf0bd73817e2c81dcf246993b52c7055b3b18d9f20c935dec4281acbd2792a6964dbfb0c05b5cb2075703aaa444352ef8f06d50
+DIST rust-1.30.1-mipsel-unknown-linux-gnu.tar.xz 114622708 BLAKE2B 5d62f6744cb1bf69d7047bb18e246623ee98c94bfa083fd5269bdcf8dd1c2c0824747dd641f703931f0b22fd513ee8a65a4dec103bf479f6a00e72098541a1aa SHA512 3d084c5c986ba379a3213c9662bc6a0e24c9d3a1c4ae4e28c3f807841eacb15dd8fb42bcb190967ba4a9e8e5397b63e6bbd3990bd9826d52a127bd71ac5b361e
+DIST rust-1.30.1-powerpc-unknown-linux-gnu.tar.xz 110375696 BLAKE2B 6ffa7b6b7ae569c7ebf6b0ab43287421e4a5e2ea8654638902e61df42f7e3de7f14c14f2e585d7b3e140f2ebc7a0e1149b814fd5a6d6c0374f9d8059ff3369c3 SHA512 ebbd2c2b160e6e36a03eee205a333cddf0a36cd0ce42135a7e4119469be41b76cedda143cf9e9491ae0d9aaf65e2e927550e2e0358401fc5f657ee02b37959b4
+DIST rust-1.30.1-powerpc64-unknown-linux-gnu.tar.xz 118698168 BLAKE2B 58905ab6c62d4b7fca8954fc507f9105537cdfc2a55a6585b4784a41ce721046c41606eae6066a173a548c4d065db497e187b2e8c9c6cbc0ee589e7731c8f106 SHA512 7eddabec2e1e01ddbc8c7b0c55f2753e506786867f78e79e47d4f273e7c02170caa24470e0f2ecf6c473cfc8c023e189017454e2ad0f3faa96465fdd22bdfd6d
+DIST rust-1.30.1-powerpc64le-unknown-linux-gnu.tar.xz 121569444 BLAKE2B d4d390ea24298cd88d224efe3c1a1dc3a802b678d977bc0aa26197e291547a6ca823a0fe5e35491204a649cb6a5419343a825ef32408aa2638d057b209b1c15c SHA512 b4595f031a006335ac778ec6a07c398fd6cce78ed3c0ed5730a5c06fa3a390dbab1afda0468756330783baa86dafb2f0c7ca7c75b735eb532c268027e22975e6
+DIST rust-1.30.1-s390x-unknown-linux-gnu.tar.xz 124025168 BLAKE2B b4a8df333b093ae111136a6b9005aca7f424f209d629041c4fce1efc7e19b176f6e6325bf3552e8de93faa311ebf065ad4b9f104de3ee412b2a3fda70156c2b0 SHA512 592764d3d5b4d8a2a7628f4969ba5204da4ea63ca92efc17d4f9339274fce00aecc4d1ebb1f4d0499da8559375ad205054b26e12775af622a7112b20b8c8d4fb
+DIST rust-1.30.1-x86_64-unknown-linux-gnu.tar.xz 145148116 BLAKE2B e70d667d880656209c036b72f619b1bd29679878ff4b8865f0453c064c4a8a53a96e73994509637312032e1260eeb0e53f7372ca1526760b1631846ed6a4c571 SHA512 05238b65b5184e3df81dbcf1cc1035a03054ef09a8563fe60877e4f078d0d2cad71aec73c1451196171f39f8e729059e91c7eed7b1402e03801c0b7e81815885
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
DIST rustc-1.30.1-src.tar.xz 96086232 BLAKE2B 170767b64efe670086e7c4e73838b489a155a72c703148f83cad29d401a825a94a1def3aa462ba527e1bd08181c7a9be0e404c25f012906541c3d739eb57e9e5 SHA512 e466db81b9a82239670c48b876dc7390fcdda28c6390308691ddf2e0c12a39b57bd5ddb18322d1b4cd58165f69a666c7d83bee6573049da3b94e401657459bf5
+DIST rustc-1.31.1-src.tar.xz 96915864 BLAKE2B bedfe1d56e2f99bb43b4b652d540aedf0a86c47b8493f28fb29e5af3135ff469ed40775bc2ee25ac5bd28a264ecba0094d7c9b6aae25ea365ed3e6f354ffa40b SHA512 d6688711452295c41468af214f036499074d82fbeedc3f03560275219c2fae910e623e38e3210176d86f78ba5533ea098da5ff21532c8ad1a5aac132bb74ee02
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
+EBUILD rust-1.30.1-r1.ebuild 8117 BLAKE2B f1ea10752c355110ef4ffe8876fd41bf00271696f56a01feafdf3d1e45df42ae9f021d912d20c3b94e5347c10760576195140195110270bdf5d8be69aafd6f47 SHA512 8b100db9a2c95e4e32dfa9008aaeb21f50344bedfe2f4e65355e4148bd8d4e5de27f05ae25fc2fb7b3b8e1b467b13f098ec704e41f8238093aaacda22efc2acf
+EBUILD rust-1.31.1.ebuild 8118 BLAKE2B 8aed074dc9c55a0e9ceb357fdc3170306e062ded66c8a4d6521fab6ade58b9a4bf961ada9596cb64cd40f2e4f808c219311e15efa9d89745a2e7d3a55737f833 SHA512 b8bee09b5227114528835e90d3f364e7500eb438a7f41f84eae71e415ef18536a7db884f2fc3d6c6868b3097b4189bb93958a67b5e22e8719e571f3cc3dd9be2
MISC metadata.xml 634 BLAKE2B 394e75b1b5b5d9fad1d87dca27d7807bfce9eb723bc339dbb7c0630dc5abd3669e9469a9e75da74925d16d63c78971b0e7c84710db9b2cd15e87d81f49968903 SHA512 9e02acc0ad17e2f502c6082b5df9aeb6b9655783892a85d67855b3f6a79ec36dca610170bb002116c354626d44282c4e35e30cdf6b5e49745cfc6a990f55731c
diff --git a/dev-lang/rust/rust-1.30.1-r1.ebuild b/dev-lang/rust/rust-1.30.1-r1.ebuild
index 620583b6ecb9..3984df3686bb 100644
--- a/dev-lang/rust/rust-1.30.1-r1.ebuild
+++ b/dev-lang/rust/rust-1.30.1-r1.ebuild
@@ -5,7 +5,7 @@ EAPI=6
PYTHON_COMPAT=( python2_7 python3_{5,6} pypy )
-inherit eapi7-ver llvm multiprocessing multilib-build python-any-r1 rust-toolchain toolchain-funcs
+inherit check-reqs eapi7-ver estack flag-o-matic llvm multiprocessing multilib-build python-any-r1 rust-toolchain toolchain-funcs
if [[ ${PV} = *beta* ]]; then
betaver=${PV//*beta}
@@ -68,9 +68,28 @@ toml_usex() {
usex "$1" true false
}
+pre_build_checks() {
+ CHECKREQS_DISK_BUILD="7G"
+ CHECKREQS_MEMORY="4G"
+ eshopts_push -s extglob
+ if is-flagq '-g?(gdb)?([1-9])'; then
+ CHECKREQS_DISK_BUILD="10G"
+ CHECKREQS_MEMORY="16G"
+ fi
+ eshopts_pop
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
pkg_setup() {
+ pre_build_checks
python-any-r1_pkg_setup
- llvm_pkg_setup
+ if use system-llvm; then
+ llvm_pkg_setup
+ fi
}
src_prepare() {
@@ -256,6 +275,10 @@ pkg_postinst() {
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}."
+ ewarn "cargo is now installed from dev-lang/rust{,-bin} instead of dev-util/cargo."
+ ewarn "This might have resulted in a dangling symlink for /usr/bin/cargo on some"
+ ewarn "systems. This can be resolved by calling 'sudo eselect rust set ${P}'."
+
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
diff --git a/dev-lang/rust/rust-1.31.1.ebuild b/dev-lang/rust/rust-1.31.1.ebuild
new file mode 100644
index 000000000000..1b215c0ac902
--- /dev/null
+++ b/dev-lang/rust/rust-1.31.1.ebuild
@@ -0,0 +1,297 @@
+# 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 check-reqs eapi7-ver estack flag-o-matic 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)).1"
+
+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}"/1.30.1-clippy-sysroot.patch )
+
+toml_usex() {
+ usex "$1" true false
+}
+
+pre_build_checks() {
+ CHECKREQS_DISK_BUILD="7G"
+ CHECKREQS_MEMORY="4G"
+ eshopts_push -s extglob
+ if is-flagq '-g?(gdb)?([1-9])'; then
+ CHECKREQS_DISK_BUILD="10G"
+ CHECKREQS_MEMORY="16G"
+ fi
+ eshopts_pop
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+ python-any-r1_pkg_setup
+ if use system-llvm; then
+ llvm_pkg_setup
+ fi
+}
+
+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}."
+
+ ewarn "cargo is now installed from dev-lang/rust{,-bin} instead of dev-util/cargo."
+ ewarn "This might have resulted in a dangling symlink for /usr/bin/cargo on some"
+ ewarn "systems. This can be resolved by calling 'sudo eselect rust set ${P}'."
+
+ 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/spark/Manifest b/dev-lang/spark/Manifest
index 7a124aa317f7..9a4e4b0677c9 100644
--- a/dev-lang/spark/Manifest
+++ b/dev-lang/spark/Manifest
@@ -3,6 +3,6 @@ DIST gnat-gpl-2017-src.tar.gz 8783473 BLAKE2B b0415b42f4d3a5e8675591a5602ff0a969
DIST gnat-gpl-2018-src.tar.gz 8706578 BLAKE2B ba245fd91cc5263d5b8c159d9e75caf6bed21dcaa5fa43734af8775a4008ce5f96bfb84a8b5e6e734ff883314ab3219dacec3fe95a5baa33fb712bfb5ff8bce8 SHA512 0ff7e848ef77f7e772e2a1b01905307a91c332f32329456f5238c4b7eb46cc118709e8682a5fc826d98a7d99fd15a92c194f4a278f04bc465165cfa616cc3c2e
DIST spark-gpl-2017-src.tar.gz 19750595 BLAKE2B 840eb9044b732aad16d2b6be9972e4805caf1e1b521ba40cc2a234871775d0212153ed9e9f84b4a2ddbeefc2b9c7d7556db943153655df6051cf4dc3f1be2e01 SHA512 90e7644daa6a935c839da9799c6dc5fe0a566f29c5f5d0a964ef5c888581f18c11adf6aa0151ae72437b91430fae06604dab8c3f1fd3222d749cfd330293ff6e
DIST spark-gpl-2018-src.tar.gz 20244517 BLAKE2B efb8120a869eaf79aa513ea3b3393dcefdb548e66a00a630bfb9d28a59785c15362c111df3635423a7312c491c9929a7bcd8e7161607dc4d3acd6d1c27f3ca3e SHA512 83490a95c2d6401bcd077a8ec508eaf18609b5b480ccd9f247f4bb61164b5e52e34473526cd49ebdf5fd15ac422ed4a121dc50cab96241db02af9e32812a4df8
-EBUILD spark-2017.ebuild 1628 BLAKE2B ec15a84af3a0bc1417cec1db937f21e74797d2959047f6f8e07b816a4078caa283d48665917590ce8da707d16c27e0c05d4c168f6f1f1bfba2c500bd336698e4 SHA512 d9a230596c29e6ccd09aee78326904f21676bb736546df40df2ed41d93b0b4015f739d00c868d8deaa54274127b18b69c979b8deeffe6db979518d833bebd0e7
-EBUILD spark-2018.ebuild 1655 BLAKE2B e4a5075d38cac68f5badba74847471885f891856f33c6ce9a82c2393d2ab696a2d40d8101975bf4c161c3c942b3c3df69a920f31cfa6ec478755d2678bda6886 SHA512 df8c9882d9839e6c2035395b5af75a8ec1790927cc7709a9e021157db4e9473af43ce3672a84614fb538e52eb62038e2e46e83960a317cccf338eb323eaf88ce
-MISC metadata.xml 702 BLAKE2B 26ae203d09cb80c4c75ca368651aa24da08657142d7e84e4dbdac335b501e98d6646e59b90b71706c8521e8e9c0692550615ef15f373f5d8d26e48ec74c2e72b SHA512 bd30717cad1bceeef722cf8a27cd3902ad636f088f64cc41f1be5d356a7def55e426bd62fd7a3e7d9272f61a6fad96bec423e7529660c8061650af72faeaeb57
+EBUILD spark-2017.ebuild 1624 BLAKE2B aac6291f8bdae0017541abb1966c87a8f32b7dfdb867a881dca1a0082cff3ee27d5e166daefdc9b847835d1f3dd37241ac050c0c2b4cead91ce9a109cb927dbd SHA512 e9dfb3b97723f69ca6caeeda75f97dcea06ddb6ba72d796b98d314426656620321de531e2c6f6ea3ed0bfe4a44ff8d7d37d7390e171784326a8149c08193f053
+EBUILD spark-2018.ebuild 1651 BLAKE2B 7d40b0c9a3be7b31337d46824d6b48c0cb1775f5ac390a30db2343618234bdf85e2fe2a6bed73ea2dd7f43c7976b892aa84641aa418102aafb3d5f5725ad9b53 SHA512 0f57d4f77f3424a40fdf02367f54b84fdb197a589d2a182a8e6103f371014207cee676a24774f035d2ef52d8624dd76cfddac663f2ad402d5f0c0e40df63848c
+MISC metadata.xml 670 BLAKE2B 16a5a9781edcf7b7caf8134d4bb8b8997d4711daa07392809e055d989aa06e74f28a66d99b279eab9fd97f4444a756ec1de9cf92ebb00d4673ad50e008f51458 SHA512 4c51c93557ea581e109dfc62a602327f1056139a0e11e3c187ba8b1f8a0d4b4089894cb83cc909a922bf0a90f572a0b01f00face3782e861a46edeab1c7d3949
diff --git a/dev-lang/spark/metadata.xml b/dev-lang/spark/metadata.xml
index ca4e653c68ef..2516831ba9a7 100644
--- a/dev-lang/spark/metadata.xml
+++ b/dev-lang/spark/metadata.xml
@@ -1,9 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>tupone@gentoo.org</email>
- <name>Tupone Alfredo</name>
+ <maintainer type="project">
+ <email>ada@gentoo.org</email>
</maintainer>
<longdescription lang="en">
SPARK is a software development technology specifically designed for
diff --git a/dev-lang/spark/spark-2017.ebuild b/dev-lang/spark/spark-2017.ebuild
index 47ad4e812b0f..be23d86d0c24 100644
--- a/dev-lang/spark/spark-2017.ebuild
+++ b/dev-lang/spark/spark-2017.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://mirrors.cdn.adacore.com/art/591c4777c7a447af2deed05e
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
IUSE=""
RDEPEND="dev-lang/gnat-gpl:6.3.0
diff --git a/dev-lang/spark/spark-2018.ebuild b/dev-lang/spark/spark-2018.ebuild
index 8aad4b2c9af1..d538aa73fcb2 100644
--- a/dev-lang/spark/spark-2018.ebuild
+++ b/dev-lang/spark/spark-2018.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://mirrors.cdn.adacore.com/art/5b0819dec7a447df26c27a47
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
IUSE=""
RDEPEND="dev-lang/gnat-gpl:7.3.1
diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest
index b8d6132b8d33..80ce8dc1ad37 100644
--- a/dev-lang/spidermonkey/Manifest
+++ b/dev-lang/spidermonkey/Manifest
@@ -21,7 +21,7 @@ EBUILD spidermonkey-17.0.0-r4.ebuild 3547 BLAKE2B dee9143cf3aa2ed35cb7a3c5ba754a
EBUILD spidermonkey-17.0.0-r5.ebuild 3563 BLAKE2B 4b5294071559ee1e8487dfa5df388e17fb357ec8898f6e4390c1d3540a89647df04245e4c33706e52080236f9fcec7422a2cd0463f1f78feca1afc42f1d29e40 SHA512 6546f0c8bc2e7b1baecd6d616550977d83079c71ee973ab811a9cede0612d95b892a5f4d02a4a4733b5e90fff9795cdf50531e41f278fa210c988467931433bb
EBUILD spidermonkey-24.2.0-r3.ebuild 4016 BLAKE2B 4f52b07f5f156f701ba6e1dc7837a183a21d96d60467bf66ab0cfe2cf9d4269d6a5e56f4fa9813cceb877c084a8b53030d7f35d99fd934754b2f2f2612fcf35a SHA512 e71e25a69845f9555a6257a57e420166303c7be5dc511f9180c6bbcc814c7a52283cd55a19429ca94b73b21403d6faf0fe25485b8520cd7808881bfcfce14056
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-38.3.0.ebuild 3870 BLAKE2B 6a7f006f4cb758971945ad3c1f55b6aba78a5bc0847c6c5477abcd14c51453c999f161acc70d0efd2be0b9bdc414a4093d5ce4c7b472992c910be1025cf7d83b SHA512 fe84cf0d5a1e245bf89a449e6aeded26ea2091facd69341f264fceff6ebe48755c51b344eac9762ec6bf45ecc22a705fb6579e7f0beae7424bdad19f58e3a25f
EBUILD spidermonkey-45.0.2.ebuild 3980 BLAKE2B 8f5b8aaba2c9ffc9adf16ff14216375434ddb3511add9817022e2913b41b415fdb3a2899ab341dc3e389460dbdf6d00cfb86270e8fd7a8de78eda6bbfc73b6ee SHA512 f99a6f6385e9cd39b8f6acb63b4c5f6e05250eb475e7906c6b06251c2a3de593d2617cbed3ef9f5c13b6009bcac6cb9b989ec362e0bfc6e351adcbec033d2806
-EBUILD spidermonkey-52.9.1_pre1.ebuild 4229 BLAKE2B eb2d9f09aa55fa3882d48e56e1c7584dbed1fdde7e5df5ddb76cbd649af5aa95fe941eead19b97bc7e08a74ee358a51c428598317a36b8f6910f01e92c538a99 SHA512 a4510d988db6f78770c0e1520e48aa54e4c8ceb60c92396eeb9427222f64bf193c3a282ac14b9966d246e9a5c66bb9d77d78f8625ebb92428b1304b4b1d7a364
+EBUILD spidermonkey-52.9.1_pre1.ebuild 4228 BLAKE2B 0a7487c06f20ca465b348dc4ed8ec283868b8df40ca643befe096c27a12fb034b16b62cfa588c505bd96960db64837af2e07c9fbe51a5b1044d9cf90ccde3409 SHA512 f9f54eb60b550669b3fb9a683f7d548f0a8dca7ca6b1352c71ebbe4a3024b22612a87cb8ca2a3cc3106ae28dcb461254d497ac8b0836eb33512fb3e5a72584e9
MISC metadata.xml 906 BLAKE2B 8557bb4bfdce358f543be3ff571177d61beb5713ba6fa4c24c8e91522ca30f8c5b1bf42abd0324164cc6febd04d07c1ae3a311d6d68d62992be6368c20650ca9 SHA512 a411a781913fe81801799d4d801645fd8029ee4fb727431589cb948f97464edd828b8d86969b2207880432db8e8e627fad829fd95394fa121bb0ae97ae8249b0
diff --git a/dev-lang/spidermonkey/spidermonkey-38.3.0.ebuild b/dev-lang/spidermonkey/spidermonkey-38.3.0.ebuild
index dcbf4ae25272..df8c5518296f 100644
--- a/dev-lang/spidermonkey/spidermonkey-38.3.0.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-38.3.0.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
@@ -14,7 +14,7 @@ SRC_URI="https://archive.mozilla.org/pub/${PN}/releases/${PV}/${MY_P}.tar.bz2
LICENSE="NPL-1.1"
SLOT="38"
-KEYWORDS="alpha amd64 ~arm ~hppa ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~x86-fbsd"
+KEYWORDS="alpha amd64 arm ~hppa ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~x86-fbsd"
IUSE="debug +jit minimal static-libs +system-icu test"
RESTRICT="ia64? ( test )"
diff --git a/dev-lang/spidermonkey/spidermonkey-52.9.1_pre1.ebuild b/dev-lang/spidermonkey/spidermonkey-52.9.1_pre1.ebuild
index 7faa00344684..f2fe8d1b2cc9 100644
--- a/dev-lang/spidermonkey/spidermonkey-52.9.1_pre1.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-52.9.1_pre1.ebuild
@@ -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 )"
diff --git a/dev-lang/swi-prolog/Manifest b/dev-lang/swi-prolog/Manifest
index b1f81826cd96..c984a8a3e2ab 100644
--- a/dev-lang/swi-prolog/Manifest
+++ b/dev-lang/swi-prolog/Manifest
@@ -1,16 +1,14 @@
DIST swi-prolog-7.4.2-gentoo-patchset-3.tar.gz 3256 BLAKE2B d7997d7307db738f0948a89f5e1cee195be4424737e50df915a293c7cb1b3bc1ce09ebd372e8c5f24c95df7335676f12cdc04749de25396eac71471704cfc579 SHA512 bc1b408e311d10ab59fa221bf5ef3d3cb1003a3edcdd13fd000cbc647117458e1f130e960cc37968481ccc2047529ca128159fac8e0ee75114022ed439905cce
DIST swi-prolog-7.6.4-gentoo-patchset-1.tar.gz 572 BLAKE2B 11ea1f22a997ea495a388627396ac571230de65b0ed2718c1127de04f563660fab0e6f8fd14b537de11a20c9651897f0b4f9d5a0d848c9d5f1f62e0c6e2b6705 SHA512 ce9f66af8764a89af42366d3e5c9d52d597f715022894cd4a2f283bb50be4070b3dbe3258ecf4bcf8808a6230ee023fce1edd9a8ad4342ceeb35d1b17770e4a2
+DIST swi-prolog-7.7.22-gentoo-patchset-0.tar.gz 316 BLAKE2B 662df3286e52e6fd9e9e929b837e6b2c22dbf017e8c64e7a28b5a679710c028e535c32563a29791d68cb21b93189f02151e1421cf172f19d9e0acd378ed0e56b SHA512 e011bdbecac8ec175e9c30a5276e2707c086b2ceabeca432ea62c3c69ced31da799c5341d719b04ca9840c52636e31c545471cab69909b888684c0dd356bf474
DIST swipl-7.4.2.tar.gz 16496738 BLAKE2B a8f45c4277e48c0aa38f8b278b466dcb9e0a776325a9ed9e08c252660671d3ee0ee441978394682276b3fb9b0eca73ad10e02aba4671630bef0a1e8f813dd3c5 SHA512 5b526d4f079e7a36184f871bb7341330bcadaeee2a69af981fbcad71ae76c77331b1f157174ac2b31d96e069dc530afa86c024de6709edd9dc8baee3b4ebffb3
DIST swipl-7.6.3.tar.gz 16772590 BLAKE2B 644be801e290ec9d949a9b7462256a35e11cf9afd62d0b62c315e3620a3943809f58698a23f279454e00299f7b7f7b91e8d9694a139e8c424cb2f83a4efc7a52 SHA512 d84af1a565935af9934c6b75192bb2dd87388ee8fe793ade35d5549a95ec5eb83da6b10508766e795f88393fededea4ec7a3a0c2f0f685d96ab615e171d7d1f4
DIST swipl-7.6.4.tar.gz 16777875 BLAKE2B 94409966362e649f4748b94b4ec25415bb827c7742aa39453d8e37db4ce992a65ad2d054ded4e651f2a9abe3a9438285bc9c9c895437c087ae6cf88f4afae9ca SHA512 f0ed16e4f1436115651c38a0bb37008d0dadad5a19b0f09894fcfc51dd3d429f86488e89cce00788c3c36cc2f0cd2957f92df47d5441133a6f8ea9d91ca5470f
-DIST swipl-7.7.17.tar.gz 17020719 BLAKE2B c818a9dcf6713398c41efdec186a141ddb09c319c5c5ceff7a200d0c83f131ad8de3165730b88026e117c26d3eab209ae30d096f307bfa5ab9ca7b3c3458c39b SHA512 f8ce0b6d582c21457a9264179e620edbbfd8de975c95cf86211fd99ca387d021cd503adb5bef2bbdacab1cdb83fbf384834fd706808985c1c24f25d960a494d7
-DIST swipl-7.7.18.tar.gz 17025839 BLAKE2B e75be08c03965ff56e67ffc8b4743ce13da444d7a22f4c5234968ac38f131fe7762ff0b7c8c31f46d5f9f477293833483665cbcf191d54a9a51bb5661dcd460c SHA512 ec3daca594a6731d2f39851b8d7800f6040e401e132e153337393faf2595bcb1c0bc382477e34cc758f5d992731bfc2a60d2cdf563f3ca61643d35b0bc32a380
-DIST swipl-7.7.19.tar.gz 17031626 BLAKE2B 0981ba2cb943d0dd16c7f91f4231fcf12c21dad26d738c7c7d3f7971bda92d209410181863dc1cf07f4eb528f5d3a5b98a4fd63873e1ee2cbbce440451cc9a69 SHA512 1c19f9a4ef3bc7a77bb7033a2a5862e821573d71e49aa9ae4d26a4c5eb60d2bdce53060f0851faa93e4f7a3ffdd15f89f0898f01005f15debdbb1e62004b99ad
+DIST swipl-7.7.22.tar.gz 10408402 BLAKE2B e804190a07ad000f054f05bda6c895cae7aa588d6e31a86f17bf2ae4934d747939023035ac8a1b758e5d8e82a39f4a493d19fa41ee323a91333903b7ccb1b78b SHA512 bce8fa4bda39c8841533b4b8d98520b04df3272d8fe49924a49d5c6b7c66ab2defe5d121b1c7fb83506842645258ab6925a1c18740322f468c08e19374f67bfb
+DIST swipl-7.7.23.tar.gz 10422411 BLAKE2B 88a28d290070524d9f552e9d816f70723ac3ceb20dd8ae14e2f894188de024c89157ab68cb692b3a56839580047ebea92f4b6c3c39694b0b0077fd5c4616b30d SHA512 38430827c7f1fd151b448b0c71cd53a59681dfd04b97b8f71c3fcb6d4f86d261f46c3e76d4ebb52e987b665a7505ab5ee1d8528613f9b6bf319d177deb09d28f
EBUILD swi-prolog-7.4.2.ebuild 3398 BLAKE2B 368ef93ceb17042a28699f9aa469e6b5c39aa29154b810e43fd050ab3bc1079f83680cfac8f4108c7c297a51e9bdd28357a0b6241c08faef3ea5f81ab1605558 SHA512 76d094f62e442ac86d32eaf467179fdcf4d4edf6034f711104e91f8a01b7e343208ef0b6e492ed18c8c0605b96a48f1adef8f3903f861c716e882cb9695b0dd2
EBUILD swi-prolog-7.6.3.ebuild 3395 BLAKE2B 6445c399d7a7518bcd4ce05b9ea0bf50c7d0297d5a24d9ef84a48c36600077cea8c8b77b010d28e25dfe0766e12d1f560f42e5597a602f6bdfc7351ea6e0fa62 SHA512 830766267d3e4b60897dfcdab5263cee600ccfa2cd80f970ef3b4c3695cc3ddf9989ae85527f45cdf124898210f108a98a32a613de2543a8db813d42482b0687
EBUILD swi-prolog-7.6.4.ebuild 3456 BLAKE2B 55d9eb2b52f47dc7fd5df9f2743775e7aabd4f070d93e31f51b038f278604909f1f48dbb4cbd12ba96614f8619923712c465d424eb224874ba158f1670d615d5 SHA512 cf64a47e39b21557915fcd6e88ac5bb01fc56bb26afebf81dedaa087ac12a3c5952383a55594dbe22de8885c6a3afd47858963a4c0c68f705be20045a518d12d
-EBUILD swi-prolog-7.7.17.ebuild 3419 BLAKE2B cdddb2edae9aa893d13387d22e4b40b6d98dea32d227b078465f52952bc92d5a1b12bac23a6308a4e2185a74399155d5f338b46733bb75502a7fd4051b2e3194 SHA512 a3821b60339d2543cd9449e0e597642c838b9293555a8e2f72be1d79087c88b51b7a2525e444f8a12f57ba6f4c499c6d81ab9f3d3cbf9ac91df26c0e54962130
-EBUILD swi-prolog-7.7.18-r1.ebuild 3474 BLAKE2B 10150dce5d4c4890778593b2b5f45c29d9f9fa0fdaf31f3b375b582ec1779c0b73d8410d3111b4993b4a6a57737dda1cc0fb0ba2e5c256bb9ff3323c99918777 SHA512 bdd4cd2d21446fbb108f4dd4b9313a44da9c82d93e479ece9b3ac7a3b0da7df897e3f0266a589571eaee08304c63baf8c07ee902a25d7158925b9ece6a1c7181
-EBUILD swi-prolog-7.7.18.ebuild 3419 BLAKE2B cdddb2edae9aa893d13387d22e4b40b6d98dea32d227b078465f52952bc92d5a1b12bac23a6308a4e2185a74399155d5f338b46733bb75502a7fd4051b2e3194 SHA512 a3821b60339d2543cd9449e0e597642c838b9293555a8e2f72be1d79087c88b51b7a2525e444f8a12f57ba6f4c499c6d81ab9f3d3cbf9ac91df26c0e54962130
-EBUILD swi-prolog-7.7.19.ebuild 3474 BLAKE2B 10150dce5d4c4890778593b2b5f45c29d9f9fa0fdaf31f3b375b582ec1779c0b73d8410d3111b4993b4a6a57737dda1cc0fb0ba2e5c256bb9ff3323c99918777 SHA512 bdd4cd2d21446fbb108f4dd4b9313a44da9c82d93e479ece9b3ac7a3b0da7df897e3f0266a589571eaee08304c63baf8c07ee902a25d7158925b9ece6a1c7181
+EBUILD swi-prolog-7.7.22.ebuild 2488 BLAKE2B 1f195a8e10416089ec8d761fd183b0b7631b63c60bc2cb391d0b0ebb92a55c561db407ee6448ac641b0c02011180f0593b6966b51f0aa3371c96e09ec6629b01 SHA512 4f11ed60ede7c6dbccfb0668372384dffb63416554a60d338596f644634ad42a4010274da61c17e1e5d6283a4e295964757ab0d3c7789f2fca70f5d8f3a1750a
+EBUILD swi-prolog-7.7.23.ebuild 2427 BLAKE2B aa119c6fa3572b4ebc5f200630c88a51593ba1b5a155320a0424fbb87940f635db445287f3cd637932c6e6fb6aaecf9486004de90d74495637cc683782489b4d SHA512 9f9e1dd93753c624d4278bf3f260c45bbcf16e202380a45d838a36f272ccdcc3dc50a24efa1f6ca8da1024eb8aca0db7b65e45f097a868733893f1392821f0af
MISC metadata.xml 419 BLAKE2B 6d92e0713ed8da803ff8b6c778e616882af2fdb1426a62ea7bb6a265bbfff9a5c7debb8bf6a25c4ab60ed54a865b79fa3da4a09bc8a9123acf63dcb32107f54e SHA512 f805393c909e4108fe72b94f131d37d45279af1a4b501f9c3ae12d21590ef9c19227ca2a4b2966239ddb84847ce979cfbfcf3f3a2d24b60cb23977c522ff59c3
diff --git a/dev-lang/swi-prolog/swi-prolog-7.7.17.ebuild b/dev-lang/swi-prolog/swi-prolog-7.7.17.ebuild
deleted file mode 100644
index 38db2fe7a5aa..000000000000
--- a/dev-lang/swi-prolog/swi-prolog-7.7.17.ebuild
+++ /dev/null
@@ -1,148 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit eutils flag-o-matic java-pkg-opt-2 multilib
-
-PATCHSET_VER="0"
-
-DESCRIPTION="free, small, and standard compliant Prolog compiler"
-HOMEPAGE="http://www.swi-prolog.org/"
-SRC_URI="http://www.swi-prolog.org/download/devel/src/swipl-${PV}.tar.gz"
-
-LICENSE="BSD-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
-IUSE="archive berkdb debug doc +gmp hardened java +libedit libressl minimal odbc pcre readline ssl static-libs test uuid zlib X"
-
-RDEPEND="sys-libs/ncurses:=
- archive? ( app-arch/libarchive )
- berkdb? ( >=sys-libs/db-4:= )
- zlib? ( sys-libs/zlib )
- odbc? ( dev-db/unixODBC )
- pcre? ( dev-libs/libpcre )
- readline? ( sys-libs/readline:= )
- libedit? ( dev-libs/libedit )
- gmp? ( dev-libs/gmp:0 )
- ssl? (
- !libressl? ( dev-libs/openssl:0 )
- libressl? ( dev-libs/libressl )
- )
- java? ( >=virtual/jdk-1.7:= )
- uuid? ( dev-libs/ossp-uuid )
- X? (
- virtual/jpeg:0
- x11-libs/libX11
- x11-libs/libXft
- x11-libs/libXpm
- x11-libs/libXt
- x11-libs/libICE
- x11-libs/libSM )"
-
-DEPEND="${RDEPEND}
- X? ( x11-base/xorg-proto )
- java? ( test? ( =dev-java/junit-3.8* ) )"
-
-S="${WORKDIR}/swipl-${PV}"
-
-src_prepare() {
- EPATCH_FORCE=yes
- EPATCH_SUFFIX=patch
- if [[ -d "${WORKDIR}"/${PV} ]] ; then
- epatch "${WORKDIR}"/${PV}
- fi
-
- if ! use uuid; then
- mv packages/clib/uuid.pl packages/clib/uuid.pl.unused || die
- fi
-
- # OSX/Intel ld doesn't like an archive without table of contents
- sed -i -e 's/-cru/-scru/' packages/nlp/libstemmer_c/Makefile.pl || die
-
- eapply_user
-}
-
-src_configure() {
- append-flags -fno-strict-aliasing
- use ppc && append-flags -mno-altivec
- use hardened && append-flags -fno-unit-at-a-time
- use debug && append-flags -DO_DEBUG
-
- # ARCH is used in the configure script to figure out host and target
- # specific stuff
- export ARCH=${CHOST}
-
- export CC_FOR_BUILD=$(tc-getBUILD_CC)
-
- cd "${S}"/src || die
- econf \
- --libdir="${EPREFIX}"/usr/$(get_libdir) \
- $(use_enable gmp) \
- $(use_enable static-libs static) \
- --enable-shared \
- --enable-custom-flags COFLAGS="${CFLAGS} -DOF=_Z_OF"
-
- if ! use minimal ; then
- local jpltestconf
- if use java && use test ; then
- jpltestconf="--with-junit=$(java-config --classpath junit)"
- fi
-
- cd "${S}/packages" || die
- econf \
- --libdir="${EPREFIX}"/usr/$(get_libdir) \
- $(use_with archive) \
- $(use_with berkdb bdb ) \
- $(use_with java jpl) \
- ${jpltestconf} \
- $(use_with libedit) \
- $(use_with pcre) \
- $(use_with odbc) \
- $(use_with readline) \
- $(use_with ssl) \
- $(use_with X xpce) \
- $(use_with zlib) \
- COFLAGS='"${CFLAGS}"'
- fi
-}
-
-src_compile() {
- cd "${S}"/src || die
- emake
-
- if ! use minimal ; then
- cd "${S}/packages" || die
- emake
- ./report-failed || die "Cannot report failed packages"
- fi
-}
-
-src_test() {
- cd "${S}/src" || die
- emake check
-
- if ! use minimal ; then
- unset DISPLAY
- cd "${S}/packages" || die
- emake \
- USE_PUBLIC_NETWORK_TESTS=false \
- USE_ODBC_TESTS=false \
- check
- ./report-failed || die
- fi
-}
-
-src_install() {
- emake -C src DESTDIR="${D}" install
-
- if ! use minimal ; then
- emake -C packages DESTDIR="${D}" install
- if use doc ; then
- emake -C packages DESTDIR="${D}" html-install
- fi
- ./packages/report-failed || die "Cannot report failed packages"
- fi
-
- dodoc ReleaseNotes/relnotes-5.10 INSTALL README.md VERSION
-}
diff --git a/dev-lang/swi-prolog/swi-prolog-7.7.18-r1.ebuild b/dev-lang/swi-prolog/swi-prolog-7.7.18-r1.ebuild
deleted file mode 100644
index 4e902730ae01..000000000000
--- a/dev-lang/swi-prolog/swi-prolog-7.7.18-r1.ebuild
+++ /dev/null
@@ -1,150 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit eutils flag-o-matic java-pkg-opt-2 multilib
-
-PATCHSET_VER="0"
-
-DESCRIPTION="free, small, and standard compliant Prolog compiler"
-HOMEPAGE="http://www.swi-prolog.org/"
-SRC_URI="http://www.swi-prolog.org/download/devel/src/swipl-${PV}.tar.gz"
-
-LICENSE="BSD-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
-IUSE="archive berkdb debug doc +gmp hardened java +libedit libressl minimal odbc pcre readline ssl static-libs test uuid zlib X yaml"
-
-RDEPEND="sys-libs/ncurses:=
- archive? ( app-arch/libarchive )
- berkdb? ( >=sys-libs/db-4:= )
- zlib? ( sys-libs/zlib )
- odbc? ( dev-db/unixODBC )
- pcre? ( dev-libs/libpcre )
- readline? ( sys-libs/readline:= )
- libedit? ( dev-libs/libedit )
- gmp? ( dev-libs/gmp:0 )
- ssl? (
- !libressl? ( dev-libs/openssl:0 )
- libressl? ( dev-libs/libressl )
- )
- java? ( >=virtual/jdk-1.7:= )
- uuid? ( dev-libs/ossp-uuid )
- X? (
- virtual/jpeg:0
- x11-libs/libX11
- x11-libs/libXft
- x11-libs/libXpm
- x11-libs/libXt
- x11-libs/libICE
- x11-libs/libSM )
- yaml? ( dev-libs/libyaml )"
-
-DEPEND="${RDEPEND}
- X? ( x11-base/xorg-proto )
- java? ( test? ( =dev-java/junit-3.8* ) )"
-
-S="${WORKDIR}/swipl-${PV}"
-
-src_prepare() {
- EPATCH_FORCE=yes
- EPATCH_SUFFIX=patch
- if [[ -d "${WORKDIR}"/${PV} ]] ; then
- epatch "${WORKDIR}"/${PV}
- fi
-
- if ! use uuid; then
- mv packages/clib/uuid.pl packages/clib/uuid.pl.unused || die
- fi
-
- # OSX/Intel ld doesn't like an archive without table of contents
- sed -i -e 's/-cru/-scru/' packages/nlp/libstemmer_c/Makefile.pl || die
-
- eapply_user
-}
-
-src_configure() {
- append-flags -fno-strict-aliasing
- use ppc && append-flags -mno-altivec
- use hardened && append-flags -fno-unit-at-a-time
- use debug && append-flags -DO_DEBUG
-
- # ARCH is used in the configure script to figure out host and target
- # specific stuff
- export ARCH=${CHOST}
-
- export CC_FOR_BUILD=$(tc-getBUILD_CC)
-
- cd "${S}"/src || die
- econf \
- --libdir="${EPREFIX}"/usr/$(get_libdir) \
- $(use_enable gmp) \
- $(use_enable static-libs static) \
- --enable-shared \
- --enable-custom-flags COFLAGS="${CFLAGS} -DOF=_Z_OF"
-
- if ! use minimal ; then
- local jpltestconf
- if use java && use test ; then
- jpltestconf="--with-junit=$(java-config --classpath junit)"
- fi
-
- cd "${S}/packages" || die
- econf \
- --libdir="${EPREFIX}"/usr/$(get_libdir) \
- $(use_with archive) \
- $(use_with berkdb bdb ) \
- $(use_with java jpl) \
- ${jpltestconf} \
- $(use_with libedit) \
- $(use_with pcre) \
- $(use_with odbc) \
- $(use_with readline) \
- $(use_with ssl) \
- $(use_with X xpce) \
- $(use_with yaml) \
- $(use_with zlib) \
- COFLAGS='"${CFLAGS}"'
- fi
-}
-
-src_compile() {
- cd "${S}"/src || die
- emake
-
- if ! use minimal ; then
- cd "${S}/packages" || die
- emake
- ./report-failed || die "Cannot report failed packages"
- fi
-}
-
-src_test() {
- cd "${S}/src" || die
- emake check
-
- if ! use minimal ; then
- unset DISPLAY
- cd "${S}/packages" || die
- emake \
- USE_PUBLIC_NETWORK_TESTS=false \
- USE_ODBC_TESTS=false \
- check
- ./report-failed || die
- fi
-}
-
-src_install() {
- emake -C src DESTDIR="${D}" install
-
- if ! use minimal ; then
- emake -C packages DESTDIR="${D}" install
- if use doc ; then
- emake -C packages DESTDIR="${D}" html-install
- fi
- ./packages/report-failed || die "Cannot report failed packages"
- fi
-
- dodoc ReleaseNotes/relnotes-5.10 INSTALL README.md VERSION
-}
diff --git a/dev-lang/swi-prolog/swi-prolog-7.7.18.ebuild b/dev-lang/swi-prolog/swi-prolog-7.7.18.ebuild
deleted file mode 100644
index 38db2fe7a5aa..000000000000
--- a/dev-lang/swi-prolog/swi-prolog-7.7.18.ebuild
+++ /dev/null
@@ -1,148 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit eutils flag-o-matic java-pkg-opt-2 multilib
-
-PATCHSET_VER="0"
-
-DESCRIPTION="free, small, and standard compliant Prolog compiler"
-HOMEPAGE="http://www.swi-prolog.org/"
-SRC_URI="http://www.swi-prolog.org/download/devel/src/swipl-${PV}.tar.gz"
-
-LICENSE="BSD-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
-IUSE="archive berkdb debug doc +gmp hardened java +libedit libressl minimal odbc pcre readline ssl static-libs test uuid zlib X"
-
-RDEPEND="sys-libs/ncurses:=
- archive? ( app-arch/libarchive )
- berkdb? ( >=sys-libs/db-4:= )
- zlib? ( sys-libs/zlib )
- odbc? ( dev-db/unixODBC )
- pcre? ( dev-libs/libpcre )
- readline? ( sys-libs/readline:= )
- libedit? ( dev-libs/libedit )
- gmp? ( dev-libs/gmp:0 )
- ssl? (
- !libressl? ( dev-libs/openssl:0 )
- libressl? ( dev-libs/libressl )
- )
- java? ( >=virtual/jdk-1.7:= )
- uuid? ( dev-libs/ossp-uuid )
- X? (
- virtual/jpeg:0
- x11-libs/libX11
- x11-libs/libXft
- x11-libs/libXpm
- x11-libs/libXt
- x11-libs/libICE
- x11-libs/libSM )"
-
-DEPEND="${RDEPEND}
- X? ( x11-base/xorg-proto )
- java? ( test? ( =dev-java/junit-3.8* ) )"
-
-S="${WORKDIR}/swipl-${PV}"
-
-src_prepare() {
- EPATCH_FORCE=yes
- EPATCH_SUFFIX=patch
- if [[ -d "${WORKDIR}"/${PV} ]] ; then
- epatch "${WORKDIR}"/${PV}
- fi
-
- if ! use uuid; then
- mv packages/clib/uuid.pl packages/clib/uuid.pl.unused || die
- fi
-
- # OSX/Intel ld doesn't like an archive without table of contents
- sed -i -e 's/-cru/-scru/' packages/nlp/libstemmer_c/Makefile.pl || die
-
- eapply_user
-}
-
-src_configure() {
- append-flags -fno-strict-aliasing
- use ppc && append-flags -mno-altivec
- use hardened && append-flags -fno-unit-at-a-time
- use debug && append-flags -DO_DEBUG
-
- # ARCH is used in the configure script to figure out host and target
- # specific stuff
- export ARCH=${CHOST}
-
- export CC_FOR_BUILD=$(tc-getBUILD_CC)
-
- cd "${S}"/src || die
- econf \
- --libdir="${EPREFIX}"/usr/$(get_libdir) \
- $(use_enable gmp) \
- $(use_enable static-libs static) \
- --enable-shared \
- --enable-custom-flags COFLAGS="${CFLAGS} -DOF=_Z_OF"
-
- if ! use minimal ; then
- local jpltestconf
- if use java && use test ; then
- jpltestconf="--with-junit=$(java-config --classpath junit)"
- fi
-
- cd "${S}/packages" || die
- econf \
- --libdir="${EPREFIX}"/usr/$(get_libdir) \
- $(use_with archive) \
- $(use_with berkdb bdb ) \
- $(use_with java jpl) \
- ${jpltestconf} \
- $(use_with libedit) \
- $(use_with pcre) \
- $(use_with odbc) \
- $(use_with readline) \
- $(use_with ssl) \
- $(use_with X xpce) \
- $(use_with zlib) \
- COFLAGS='"${CFLAGS}"'
- fi
-}
-
-src_compile() {
- cd "${S}"/src || die
- emake
-
- if ! use minimal ; then
- cd "${S}/packages" || die
- emake
- ./report-failed || die "Cannot report failed packages"
- fi
-}
-
-src_test() {
- cd "${S}/src" || die
- emake check
-
- if ! use minimal ; then
- unset DISPLAY
- cd "${S}/packages" || die
- emake \
- USE_PUBLIC_NETWORK_TESTS=false \
- USE_ODBC_TESTS=false \
- check
- ./report-failed || die
- fi
-}
-
-src_install() {
- emake -C src DESTDIR="${D}" install
-
- if ! use minimal ; then
- emake -C packages DESTDIR="${D}" install
- if use doc ; then
- emake -C packages DESTDIR="${D}" html-install
- fi
- ./packages/report-failed || die "Cannot report failed packages"
- fi
-
- dodoc ReleaseNotes/relnotes-5.10 INSTALL README.md VERSION
-}
diff --git a/dev-lang/swi-prolog/swi-prolog-7.7.19.ebuild b/dev-lang/swi-prolog/swi-prolog-7.7.19.ebuild
deleted file mode 100644
index 4e902730ae01..000000000000
--- a/dev-lang/swi-prolog/swi-prolog-7.7.19.ebuild
+++ /dev/null
@@ -1,150 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit eutils flag-o-matic java-pkg-opt-2 multilib
-
-PATCHSET_VER="0"
-
-DESCRIPTION="free, small, and standard compliant Prolog compiler"
-HOMEPAGE="http://www.swi-prolog.org/"
-SRC_URI="http://www.swi-prolog.org/download/devel/src/swipl-${PV}.tar.gz"
-
-LICENSE="BSD-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
-IUSE="archive berkdb debug doc +gmp hardened java +libedit libressl minimal odbc pcre readline ssl static-libs test uuid zlib X yaml"
-
-RDEPEND="sys-libs/ncurses:=
- archive? ( app-arch/libarchive )
- berkdb? ( >=sys-libs/db-4:= )
- zlib? ( sys-libs/zlib )
- odbc? ( dev-db/unixODBC )
- pcre? ( dev-libs/libpcre )
- readline? ( sys-libs/readline:= )
- libedit? ( dev-libs/libedit )
- gmp? ( dev-libs/gmp:0 )
- ssl? (
- !libressl? ( dev-libs/openssl:0 )
- libressl? ( dev-libs/libressl )
- )
- java? ( >=virtual/jdk-1.7:= )
- uuid? ( dev-libs/ossp-uuid )
- X? (
- virtual/jpeg:0
- x11-libs/libX11
- x11-libs/libXft
- x11-libs/libXpm
- x11-libs/libXt
- x11-libs/libICE
- x11-libs/libSM )
- yaml? ( dev-libs/libyaml )"
-
-DEPEND="${RDEPEND}
- X? ( x11-base/xorg-proto )
- java? ( test? ( =dev-java/junit-3.8* ) )"
-
-S="${WORKDIR}/swipl-${PV}"
-
-src_prepare() {
- EPATCH_FORCE=yes
- EPATCH_SUFFIX=patch
- if [[ -d "${WORKDIR}"/${PV} ]] ; then
- epatch "${WORKDIR}"/${PV}
- fi
-
- if ! use uuid; then
- mv packages/clib/uuid.pl packages/clib/uuid.pl.unused || die
- fi
-
- # OSX/Intel ld doesn't like an archive without table of contents
- sed -i -e 's/-cru/-scru/' packages/nlp/libstemmer_c/Makefile.pl || die
-
- eapply_user
-}
-
-src_configure() {
- append-flags -fno-strict-aliasing
- use ppc && append-flags -mno-altivec
- use hardened && append-flags -fno-unit-at-a-time
- use debug && append-flags -DO_DEBUG
-
- # ARCH is used in the configure script to figure out host and target
- # specific stuff
- export ARCH=${CHOST}
-
- export CC_FOR_BUILD=$(tc-getBUILD_CC)
-
- cd "${S}"/src || die
- econf \
- --libdir="${EPREFIX}"/usr/$(get_libdir) \
- $(use_enable gmp) \
- $(use_enable static-libs static) \
- --enable-shared \
- --enable-custom-flags COFLAGS="${CFLAGS} -DOF=_Z_OF"
-
- if ! use minimal ; then
- local jpltestconf
- if use java && use test ; then
- jpltestconf="--with-junit=$(java-config --classpath junit)"
- fi
-
- cd "${S}/packages" || die
- econf \
- --libdir="${EPREFIX}"/usr/$(get_libdir) \
- $(use_with archive) \
- $(use_with berkdb bdb ) \
- $(use_with java jpl) \
- ${jpltestconf} \
- $(use_with libedit) \
- $(use_with pcre) \
- $(use_with odbc) \
- $(use_with readline) \
- $(use_with ssl) \
- $(use_with X xpce) \
- $(use_with yaml) \
- $(use_with zlib) \
- COFLAGS='"${CFLAGS}"'
- fi
-}
-
-src_compile() {
- cd "${S}"/src || die
- emake
-
- if ! use minimal ; then
- cd "${S}/packages" || die
- emake
- ./report-failed || die "Cannot report failed packages"
- fi
-}
-
-src_test() {
- cd "${S}/src" || die
- emake check
-
- if ! use minimal ; then
- unset DISPLAY
- cd "${S}/packages" || die
- emake \
- USE_PUBLIC_NETWORK_TESTS=false \
- USE_ODBC_TESTS=false \
- check
- ./report-failed || die
- fi
-}
-
-src_install() {
- emake -C src DESTDIR="${D}" install
-
- if ! use minimal ; then
- emake -C packages DESTDIR="${D}" install
- if use doc ; then
- emake -C packages DESTDIR="${D}" html-install
- fi
- ./packages/report-failed || die "Cannot report failed packages"
- fi
-
- dodoc ReleaseNotes/relnotes-5.10 INSTALL README.md VERSION
-}
diff --git a/dev-lang/swi-prolog/swi-prolog-7.7.22.ebuild b/dev-lang/swi-prolog/swi-prolog-7.7.22.ebuild
new file mode 100644
index 000000000000..74bb77774a9d
--- /dev/null
+++ b/dev-lang/swi-prolog/swi-prolog-7.7.22.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit cmake-utils eutils flag-o-matic multilib
+
+PATCHSET_VER="0"
+
+DESCRIPTION="versatile implementation of the Prolog programming language"
+HOMEPAGE="http://www.swi-prolog.org/"
+SRC_URI="http://www.swi-prolog.org/download/devel/src/swipl-${PV}.tar.gz
+ mirror://gentoo/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="archive berkdb debug doc +gmp java +libedit libressl minimal odbc pcre qt5 readline ssl test uuid X yaml"
+
+RDEPEND="sys-libs/ncurses:=
+ sys-libs/zlib
+ archive? ( app-arch/libarchive )
+ berkdb? ( >=sys-libs/db-4:= )
+ odbc? ( dev-db/unixODBC )
+ pcre? ( dev-libs/libpcre )
+ readline? ( sys-libs/readline:= )
+ libedit? ( dev-libs/libedit )
+ gmp? ( dev-libs/gmp:0 )
+ ssl? (
+ !libressl? ( dev-libs/openssl:0 )
+ libressl? ( dev-libs/libressl )
+ )
+ java? ( >=virtual/jdk-1.7:= )
+ uuid? ( dev-libs/ossp-uuid )
+ qt5? (
+ dev-qt/qtwidgets:5
+ dev-qt/qtgui:5
+ )
+ X? (
+ virtual/jpeg:0
+ x11-libs/libX11
+ x11-libs/libXft
+ x11-libs/libXpm
+ x11-libs/libXt
+ x11-libs/libICE
+ x11-libs/libSM )
+ yaml? ( dev-libs/libyaml )"
+
+DEPEND="${RDEPEND}
+ X? ( x11-base/xorg-proto )
+ java? ( test? ( =dev-java/junit-3.8* ) )"
+
+S="${WORKDIR}/swipl-${PV}"
+BUILD_DIR="${S}/build"
+CMAKE_USE_DIR="${S}"
+
+src_prepare() {
+ EPATCH_FORCE=yes
+ EPATCH_SUFFIX=patch
+ if [[ -d "${WORKDIR}"/${PV} ]] ; then
+ epatch "${WORKDIR}"/${PV}
+ fi
+
+ sed -i -e "s|\(SWIPL_INSTALL_PREFIX\) lib/.*)|\1 $(get_libdir)/swipl)|" CMakeLists.txt || die
+
+ eapply_user
+
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ append-flags -fno-strict-aliasing
+ use debug && append-flags -DO_DEBUG
+
+ mycmakeargs=(
+ -DSWIPL_INSTALL_PREFIX=$(get_libdir)/swipl
+ -DUSE_GMP=$(usex gmp)
+ -DINSTALL_DOCUMENTATION=$(usex doc)
+ -DSWIPL_PACKAGES_BASIC=$(usex !minimal)
+ -DSWIPL_PACKAGES_ARCHIVE=$(usex archive)
+ -DSWIPL_PACKAGES_ODBC=$(usex odbc)
+ -DSWIPL_PACKAGES_BDB=$(usex berkdb)
+ -DSWIPL_PACKAGES_PCRE=$(usex pcre)
+ -DSWIPL_PACKAGES_YAML=$(usex yaml)
+ -DSWIPL_PACKAGES_SSL=$(usex ssl)
+ -DSWIPL_PACKAGES_JAVA=$(usex java)
+ -DSWIPL_PACKAGES_QT=$(usex qt5)
+ -DSWIPL_PACKAGES_X=$(usex X)
+ -DSWIPL_PACKAGES_TERM=$(if use libedit || use readline; then echo yes; else echo no; fi)
+ )
+
+ cmake-utils_src_configure
+}
+
+src_test() {
+ USE_PUBLIC_NETWORK_TESTS=false \
+ USE_ODBC_TESTS=false \
+ cmake-utils_src_test -V
+}
diff --git a/dev-lang/swi-prolog/swi-prolog-7.7.23.ebuild b/dev-lang/swi-prolog/swi-prolog-7.7.23.ebuild
new file mode 100644
index 000000000000..2b51fcaddb6d
--- /dev/null
+++ b/dev-lang/swi-prolog/swi-prolog-7.7.23.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit cmake-utils eutils flag-o-matic multilib
+
+PATCHSET_VER="0"
+
+DESCRIPTION="versatile implementation of the Prolog programming language"
+HOMEPAGE="http://www.swi-prolog.org/"
+SRC_URI="http://www.swi-prolog.org/download/devel/src/swipl-${PV}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="archive berkdb debug doc +gmp java +libedit libressl minimal odbc pcre qt5 readline ssl test uuid X yaml"
+
+RDEPEND="sys-libs/ncurses:=
+ sys-libs/zlib
+ archive? ( app-arch/libarchive )
+ berkdb? ( >=sys-libs/db-4:= )
+ odbc? ( dev-db/unixODBC )
+ pcre? ( dev-libs/libpcre )
+ readline? ( sys-libs/readline:= )
+ libedit? ( dev-libs/libedit )
+ gmp? ( dev-libs/gmp:0 )
+ ssl? (
+ !libressl? ( dev-libs/openssl:0 )
+ libressl? ( dev-libs/libressl )
+ )
+ java? ( >=virtual/jdk-1.7:= )
+ uuid? ( dev-libs/ossp-uuid )
+ qt5? (
+ dev-qt/qtwidgets:5
+ dev-qt/qtgui:5
+ )
+ X? (
+ virtual/jpeg:0
+ x11-libs/libX11
+ x11-libs/libXft
+ x11-libs/libXpm
+ x11-libs/libXt
+ x11-libs/libICE
+ x11-libs/libSM )
+ yaml? ( dev-libs/libyaml )"
+
+DEPEND="${RDEPEND}
+ X? ( x11-base/xorg-proto )
+ java? ( test? ( =dev-java/junit-3.8* ) )"
+
+S="${WORKDIR}/swipl-${PV}"
+BUILD_DIR="${S}/build"
+CMAKE_USE_DIR="${S}"
+
+src_prepare() {
+ EPATCH_FORCE=yes
+ EPATCH_SUFFIX=patch
+ if [[ -d "${WORKDIR}"/${PV} ]] ; then
+ epatch "${WORKDIR}"/${PV}
+ fi
+
+ sed -i -e "s|\(SWIPL_INSTALL_PREFIX\) lib/.*)|\1 $(get_libdir)/swipl)|" CMakeLists.txt || die
+
+ eapply_user
+
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ append-flags -fno-strict-aliasing
+ use debug && append-flags -DO_DEBUG
+
+ mycmakeargs=(
+ -DSWIPL_INSTALL_PREFIX=$(get_libdir)/swipl
+ -DUSE_GMP=$(usex gmp)
+ -DINSTALL_DOCUMENTATION=$(usex doc)
+ -DSWIPL_PACKAGES_BASIC=$(usex !minimal)
+ -DSWIPL_PACKAGES_ARCHIVE=$(usex archive)
+ -DSWIPL_PACKAGES_ODBC=$(usex odbc)
+ -DSWIPL_PACKAGES_BDB=$(usex berkdb)
+ -DSWIPL_PACKAGES_PCRE=$(usex pcre)
+ -DSWIPL_PACKAGES_YAML=$(usex yaml)
+ -DSWIPL_PACKAGES_SSL=$(usex ssl)
+ -DSWIPL_PACKAGES_JAVA=$(usex java)
+ -DSWIPL_PACKAGES_QT=$(usex qt5)
+ -DSWIPL_PACKAGES_X=$(usex X)
+ -DSWIPL_PACKAGES_TERM=$(if use libedit || use readline; then echo yes; else echo no; fi)
+ )
+
+ cmake-utils_src_configure
+}
+
+src_test() {
+ USE_PUBLIC_NETWORK_TESTS=false \
+ USE_ODBC_TESTS=false \
+ cmake-utils_src_test -V
+}
diff --git a/dev-lang/tcl/Manifest b/dev-lang/tcl/Manifest
index 25c90fbd852a..7fccf52903f3 100644
--- a/dev-lang/tcl/Manifest
+++ b/dev-lang/tcl/Manifest
@@ -3,10 +3,11 @@ AUX tcl-8.5.14-conf.patch 427 BLAKE2B c7d97bccebc45beec003bcf005fab6ed7f544744d8
AUX tcl-8.6.8-conf.patch 401 BLAKE2B 278502e983b8c831a2bfe5e61c31d32181558aaebccb2c7a64c52c387ce674ad1543dcedb7b73bfa748e8b40424a59e4696057e3a7f6d0e9f7ddbe838473995f SHA512 8524f80bb54851fc28f1994cbbd9c78756f9f9b1ca31a2f602e2cc557bbb22093bb6cce0ce5099cb90847f3c0ed20503a3d122abb400482869afd2469b3867b8
AUX tcl-8.6.8-libieee.patch 708 BLAKE2B ec8422ce98c68f2dd347bea807059fd8ee94fcd4540bdeb4c8d90cd7f028ff3dbe406ed26593ebd8815e611a1ae40390b4194bf8d3efd1863e8c15d04918681c SHA512 b25d2fbfc753296cef11b1943e19537aaf9f048f033078e516f36bc021107197f77b8f142fc7ace89ae6bdda037871ce7a5c45800ef0bebd04f77a5281bff457
DIST tcl-core8.6.8-src.tar.gz 5887483 BLAKE2B 2b8428652e451b817fe63a811f910001929cdcbc8a8361cdf4f7df8e13cbf9b18c94a91c22c0f09cc46dc0174a66c44774b485539a8f24c14faee6658547b6b8 SHA512 36e6079b582c205e8c89435b361ef96550541357f473aea2ca4e6f01bd84e50ebd1474a75a1ae90640b9a5b392fb01ddfa71f0fa28e409b3569d88c32b4ddb69
+DIST tcl-core8.6.9-src.tar.gz 5932010 BLAKE2B ddc0cff12aeeebbf8d1c799db9e154a9ecbe2a2e2afce97c6f15c408301b7a40119bd1c861aa724c178bd9abfe0616c7bcafd9cf6714ed49cf882c9085222cf3 SHA512 306a38a27729b764bae2eae6c4cdd8cd6aee5de6bd924d6a487c8691ee874e4459abc1fa785183c2f6ff4d2d57be98093dd7460c5a668cf994e8f1c31516ae67
DIST tcl8.5.17-src.tar.gz 4546317 BLAKE2B 27031dd3bd5790d03692e77edf91eb7fae8a40d8d193d8c8ce4e79b21f90e683bfc9d5b71764760223987fb163be844e6096d0aea1058b8ce255731d97e2a0ea SHA512 ad5ddb4cd6378fd6bbea8cd85ceb1cf90392b2e8c49fbfb3e4b35c81d3ae3e3f087697c41fcba8c8e06de1d9e7539397e26d58b864dc01ba65abe4ba4efa9568
EBUILD tcl-8.5.17-r1.ebuild 3766 BLAKE2B 735b31a87b13a4a107b451f1234699cb1dc4cab210846f992100e8f69543bfb2103e1814cefd1673e7081c6aeafed63cda87e36d433580ddbf5548cb779d8508 SHA512 3c3fadceaafeaad04780a44d40a10bd318d30fff0d1ff38bea683c2bf019ff4a3cb036f7fbc60c79cb095470c3c9a3f59ad8b27caf2ae9e98d2baf0ea6ebab14
EBUILD tcl-8.5.17-r100.ebuild 2790 BLAKE2B d8de982d4d2f103bd5a1271101bc997cd1920c7274078f9004e6983d30326fa0379588d529c3e459f4e93e9e723548aa37fc5e074df768d046bafc3decb4297e SHA512 b09ac13d74992c34c333fba336e07e6baefbe8ee6a94e8c59b17ac40a508bab4146f7a6d00f712ef70b9d5d8d168d259dbbed77d4e5e2e65c2b45ff2769586d7
EBUILD tcl-8.5.17-r101.ebuild 2850 BLAKE2B f34283905856e79de70e4894578b4d403c203ee00cdba9a96bc4e9c73e45b0fe4b773a40ec82679792380a87a34dc389ef468440bf32b05ab01c500e49b6aa0d SHA512 a057478a7535e9b596139693d5b104b14968cb7223bb90d8a4528d6560323a2bde925f94b349d1c67e1ce976849203b7105c1ad4792560a9628b7108012e7908
-EBUILD tcl-8.5.17.ebuild 3706 BLAKE2B 4f5b6c6fb9c25a7d31a1adc45fad8fa432478056d5a0895298ba79f2a5904bcd977a73d60f34355ed5290bf5077f5d74ba050583ebf0e99a119f9d4b14dbfe0b SHA512 11816e9baefbf29264fd844ddeb38fa94686b0b8ca667e7046713860a97945caf122f831d7778b7ac78ab392bd4ac9bc10578c70d74b21c83c5da1b479d9c800
EBUILD tcl-8.6.8.ebuild 3986 BLAKE2B 0d126b490efcf0165049479fe94d0b31157b8237b0d75a4e3d801c6d56f1a28df88788d612aca0f6e45a5488f73e544550e3c62566ca33b9a99e4b3bccbb9637 SHA512 851baf012be74129624423ad882a7580c14e96827ec4b0fb05a82ffe7dc96d11ce87b091ebce8a6297782beb067f7ae4875288dbf436cc22d5aed0aeb66bde48
+EBUILD tcl-8.6.9.ebuild 3902 BLAKE2B 24877efcb5e613963dc6e3316c7d332106aaeca73c43633b4890da04c740e60c041b2271c5f37c7ad40201f6bea7e737beea659c7fbe9e603a3ddc338666d414 SHA512 d13a4fbf9cfa662fe6e34f0f5650ebe9a9291c7acb7b6b30c42f84322be9e30d9c6cc15b1293e49deb3f4cca30f3d1d04359b83fdd16caf3ba909c9ec1f20a78
MISC metadata.xml 318 BLAKE2B 7ea8e51656c255c3aea3bee8849423604a164efff556974f6032de44d33e38bb0378b69c18821cc76f0284064bc84a1a56e79f522f8d7fb0adc50e2e191b5fca SHA512 61f3feb8311f1babb8a4df8c9fcddaab009ffc6d69248f18cb9e001a1659dfcf47f2699008ab83fb563b3417f6ead8113af20db7e3893f488e8d75bb2a3483cf
diff --git a/dev-lang/tcl/tcl-8.5.17.ebuild b/dev-lang/tcl/tcl-8.6.9.ebuild
index f7d5ca3fd4bf..a9c8a8c42014 100644
--- a/dev-lang/tcl/tcl-8.5.17.ebuild
+++ b/dev-lang/tcl/tcl-8.6.9.ebuild
@@ -1,20 +1,20 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=5
+EAPI=7
-inherit autotools eutils flag-o-matic multilib toolchain-funcs versionator multilib-minimal
+inherit autotools flag-o-matic multilib-minimal toolchain-funcs
-MY_P="${PN}${PV/_beta/b}"
+MY_P="${PN}${PV}"
DESCRIPTION="Tool Command Language"
HOMEPAGE="http://www.tcl.tk/"
-SRC_URI="mirror://sourceforge/tcl/${MY_P}-src.tar.gz"
+SRC_URI="mirror://sourceforge/tcl/${PN}-core${PV}-src.tar.gz"
LICENSE="tcltk"
-SLOT="0/8.5"
-KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x86-solaris"
-IUSE="debug threads"
+SLOT="0/8.6"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="debug +threads"
RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
DEPEND="${RDEPEND}"
@@ -22,11 +22,20 @@ DEPEND="${RDEPEND}"
SPARENT="${WORKDIR}/${MY_P}"
S="${SPARENT}"/unix
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.5.13-multilib.patch
+ "${FILESDIR}"/${PN}-8.6.8-conf.patch # Bug 125971
+)
+
src_prepare() {
- epatch "${FILESDIR}"/${PN}-8.5.13-multilib.patch
+ find \
+ "${SPARENT}"/compat/* \
+ "${SPARENT}"/doc/try.n \
+ -delete || die
- # Bug 125971
- epatch "${FILESDIR}"/${PN}-8.5.14-conf.patch
+ pushd "${SPARENT}" &>/dev/null || die
+ default
+ popd &>/dev/null || die
# workaround stack check issues, bug #280934
use hppa && append-cflags "-DTCL_NO_STACK_CHECK=1"
@@ -37,7 +46,14 @@ src_prepare() {
-e '/chmod/s:555:755:g' \
-i Makefile.in || die
+ sed \
+ -e 's:-O[2s]\?::g' \
+ -i tcl.m4 || die
+
+ mv configure.{in,ac} || die
+
eautoconf
+
multilib_copy_sources
}
@@ -57,11 +73,10 @@ multilib_src_configure() {
multilib_src_install() {
#short version number
- local v1=$(get_version_component_range 1-2)
+ local v1=$(ver_cut 1-2)
local mylibdir=$(get_libdir)
S= default
-
# fix the tclConfig.sh to eliminate refs to the build directory
# and drop unnecessary -L inclusion to default system libdir
@@ -72,7 +87,7 @@ multilib_src_install() {
-e "/^TCL_BUILD_STUB_LIB_SPEC=/s:-L$(pwd) *::g" \
-e "/^TCL_STUB_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
-e "/^TCL_BUILD_STUB_LIB_PATH=/s:$(pwd):${EPREFIX}/usr/${mylibdir}:g" \
- -e "/^TCL_LIB_FILE=/s:'libtcl${v1}..TCL_DBGX..so':\"libtcl${v1}\$\{TCL_DBGX\}.so\":g" \
+ -e "/^TCL_LIBW_FILE=/s:'libtcl${v1}..TCL_DBGX..so':\"libtcl${v1}\$\{TCL_DBGX\}.so\":g" \
-i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
if use prefix && [[ ${CHOST} != *-darwin* && ${CHOST} != *-mint* ]] ; then
sed \
@@ -100,7 +115,7 @@ multilib_src_install() {
pkg_postinst() {
for version in ${REPLACING_VERSIONS}; do
- if ! version_is_at_least 8.5 ${version}; then
+ if ver_test 8.6 -lt ${version}; then
echo
ewarn "You're upgrading from <${P}, you must recompile the other"
ewarn "packages on your system that link with tcl after the upgrade"
diff --git a/dev-lang/tk/Manifest b/dev-lang/tk/Manifest
index cb1e5f9cf468..bc15f7857be3 100644
--- a/dev-lang/tk/Manifest
+++ b/dev-lang/tk/Manifest
@@ -9,6 +9,5 @@ DIST tk8.6.8-src.tar.gz 4319854 BLAKE2B 167c5dc6c32e49653c04bc067c3d75df022ca230
EBUILD tk-8.5.17-r1.ebuild 3566 BLAKE2B a3eae0668b78a075d72b9c8a6751d341d5e021a1cba8d0501fdfb22a25b00095ba289dc46a4bf567e55639172a94dd0401af46651cea11879cdfa367c1e196f3 SHA512 3d09b21189e2cc5016da816ea1fbe99d393704b32aa31a307cdb52bca0d3c91b413031a4ea90b4e52ba12e49cdc22e38d150317b0190243de788a862c83a65b9
EBUILD tk-8.5.17-r100.ebuild 2162 BLAKE2B e4e280058b3059213d10a20fcabcd54a17e74bf78bd6e18ac5acf3a51a3fd870743ea40dc793b6a0ce5ebbfefe9744f26c900542ed511f4ba2d37c404069bc63 SHA512 e0958680ae7beeb6f5ffe06093f27d482c22cba9dfc71fe727425d8fbe4b20e6270b2ddd6e8860b0f7433f84224f8b8251800570ea81f75209146876fd94bda7
EBUILD tk-8.5.17-r101.ebuild 2222 BLAKE2B d632b0304e36ffc9d758efd99fa128c83ab655661d25361c747aff17b9dd16ddadd4386ae9586fa131d6e0288228603232eae7ab24088095e48d60ed8c9772e1 SHA512 82594980647370fbae9201e661024216776b8d1e3fa3d198e5181d99e810f681fb5e4cabc00be41dbcd477c99a80c3a1d8822ef285cf294bded8c41f64d63607
-EBUILD tk-8.5.17.ebuild 3506 BLAKE2B 073a60dae07cd8dbcb19f626a686cce74d4e8e0f1216b4a8911eae7245ea2ad4d3b0c4d4a947d56ac8fca418e4927421fa264ac50ecbbad5998e05aeb468df19 SHA512 ae25cad437b2ffb91053c82a0222ca0b01329a353d273b2fa326399fe78fcf129957e746c0cfe1488bf2017ee0455161a71897d5d7b793f1d816b8b2df4d0cc9
EBUILD tk-8.6.8.ebuild 4116 BLAKE2B dca2259fdb3ae44dcf8f3eb91562b22f9cd8065bc15bad201dee93d868670c13a3026c50e21efa04a8fcb9dfb71b04d824f210914aef85447ac38ce4ed30194b SHA512 ae2c69570844eeee386378ed6b5f66fc8c4dfb2c52a517b8ddf8b65880e600ce7e8cf1fef0e9c04f7e7a549e279f5023d981b5ba2ac82981573aa0265776bb58
MISC metadata.xml 326 BLAKE2B 56e0bdfbc3f6226d3577786996e1d83e0a5e233f08966966b7f18366d103648cc8843afb08b23eb2ff5aafd7faa9b8a53d33f35a273ea5f70191b76d5f9faaea SHA512 0a3bc9dd4103f252027e5df1f1bec25c54b8e595c3161cf2e2e3dc083d9613c1cf7f810bae2eea1e4687d87195091d84c16ceac683d7bb508bd38ad565b5ba7d
diff --git a/dev-lang/tk/tk-8.5.17.ebuild b/dev-lang/tk/tk-8.5.17.ebuild
deleted file mode 100644
index ba1ccc104522..000000000000
--- a/dev-lang/tk/tk-8.5.17.ebuild
+++ /dev/null
@@ -1,123 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit autotools eutils multilib prefix toolchain-funcs versionator virtualx
-
-MY_P="${PN}${PV/_beta/b}"
-
-DESCRIPTION="Tk Widget Set"
-HOMEPAGE="http://www.tcl.tk/"
-SRC_URI="mirror://sourceforge/tcl/${MY_P}-src.tar.gz"
-
-LICENSE="tcltk"
-SLOT="0/8.5"
-KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="debug threads truetype aqua xscreensaver"
-
-RDEPEND="
- !aqua? (
- media-libs/fontconfig
- media-libs/freetype:2
- x11-libs/libX11
- x11-libs/libXt
- truetype? ( x11-libs/libXft )
- xscreensaver? ( x11-libs/libXScrnSaver )
- )
- ~dev-lang/tcl-${PV}:0="
-DEPEND="${RDEPEND}
- !aqua? ( x11-base/xorg-proto )"
-
-SPARENT="${WORKDIR}/${MY_P}"
-S="${SPARENT}"/unix
-
-src_prepare() {
- epatch \
- "${FILESDIR}"/${PN}-8.5.11-fedora-xft.patch \
- "${FILESDIR}"/${PN}-8.5.13-multilib.patch
-
- epatch "${FILESDIR}"/${PN}-8.4.15-aqua.patch
- eprefixify Makefile.in
-
- # Bug 125971
- epatch "${FILESDIR}"/${PN}-8.5.14-conf.patch
-
- # Make sure we use the right pkg-config, and link against fontconfig
- # (since the code base uses Fc* functions).
- sed \
- -e 's/FT_New_Face/XftFontOpen/g' \
- -e "s:\<pkg-config\>:$(tc-getPKG_CONFIG):" \
- -e 's:xft freetype2:xft freetype2 fontconfig:' \
- -i configure.in || die
- rm -f configure || die
-
- sed \
- -e '/chmod/s:555:755:g' \
- -i Makefile.in || die
-
- tc-export CC
-
- eautoconf
-}
-
-src_configure() {
- local mylibdir=$(get_libdir)
-
- econf \
- --with-tcl="${EPREFIX}/usr/${mylibdir}" \
- $(use_enable threads) \
- $(use_enable aqua) \
- $(use_enable truetype xft) \
- $(use_enable xscreensaver xss) \
- $(use_enable debug symbols)
-}
-
-src_test() {
- Xemake test
-}
-
-src_install() {
- #short version number
- local v1=$(get_version_component_range 1-2)
- local mylibdir=$(get_libdir)
-
- S= default
-
- # normalize $S path, bug #280766 (pkgcore)
- local nS="$(cd "${S}"; pwd)"
-
- # fix the tkConfig.sh to eliminate refs to the build directory
- # and drop unnecessary -L inclusion to default system libdir
-
- sed \
- -e "/^TK_BUILD_LIB_SPEC=/s:-L${SPARENT}.*unix *::g" \
- -e "/^TK_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
- -e "/^TK_SRC_DIR=/s:${SPARENT}:${EPREFIX}/usr/${mylibdir}/tk${v1}/include:g" \
- -e "/^TK_BUILD_STUB_LIB_SPEC=/s:-L${SPARENT}.*unix *::g" \
- -e "/^TK_STUB_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
- -e "/^TK_BUILD_STUB_LIB_PATH=/s:${SPARENT}.*unix:${EPREFIX}/usr/${mylibdir}:g" \
- -e "/^TK_LIB_FILE=/s:'libtk${v1}..TK_DBGX..so':\"libk${v1}\$\{TK_DBGX\}.so\":g" \
- -i "${ED}"/usr/${mylibdir}/tkConfig.sh || die
- if use prefix && [[ ${CHOST} != *-darwin* && ${CHOST} != *-mint* ]] ; then
- sed \
- -e "/^TK_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
- -e "/^TK_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
- -i "${ED}"/usr/${mylibdir}/tkConfig.sh || die
- fi
-
- # install private headers
- insinto /usr/${mylibdir}/tk${v1}/include/unix
- doins "${S}"/*.h
- insinto /usr/${mylibdir}/tk${v1}/include/generic
- doins "${SPARENT}"/generic/*.h
- rm -f "${ED}"/usr/${mylibdir}/tk${v1}/include/generic/{tk,tkDecls,tkPlatDecls}.h || die
-
- # install symlink for libraries
- dosym libtk${v1}$(get_libname) /usr/${mylibdir}/libtk$(get_libname)
- dosym libtkstub${v1}.a /usr/${mylibdir}/libtkstub.a
-
- dosym wish${v1} /usr/bin/wish
-
- dodoc "${SPARENT}"/{ChangeLog*,README,changes}
-}
diff --git a/dev-lang/vala/Manifest b/dev-lang/vala/Manifest
index 435e30c568ef..23ba2a760aad 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 867 BLAKE2B 288e6bebffe384eafa3573f689e62f8693c8ab53c0dd9875208660cc69eebd2d37da0eab1533df7108900827c4459c5ca42c011d45ea0240b9e98c4fab212535 SHA512 57c536c70288407c2e98b1ac2181af0894b8bc7ff5eee6748f19695bd6e6bf967bf0aab44fc88a41e698f8a145024b880160a32b6cfdbc4ac162cadf82ea5c4a
+EBUILD vala-0.36.15.ebuild 861 BLAKE2B af090db75442372fb5fd9fa40c6d4b54b56182b365373fe1c6bb9a5b5563e36ed1391011b6bc53e687f6bb53c72b1c662135b15f99b7565fb2255a1914c070d8 SHA512 89c13f4e0ee7f328fd2cee8ab390a3b2b4fd5966d7f6fb04a6ccf81b003cf29c9087b176506bf0ac7fe9fbd1c394b8d22fdd68150bef14f51aaa589adcf21e7a
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 addfb029c79e..60d47a29b97c 100644
--- a/dev-lang/vala/vala-0.36.15.ebuild
+++ b/dev-lang/vala/vala-0.36.15.ebuild
@@ -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="