summaryrefslogtreecommitdiff
path: root/dev-lang
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [master] <gitlab@liguros.net>2021-01-17 23:35:33 +0000
committerLiguros - Gitlab CI/CD [master] <gitlab@liguros.net>2021-01-17 23:35:33 +0000
commit8e8120eabdd28020aa69c7a60505cce2edd20adc (patch)
tree061bf0acdc672720e0bc3a2d575f67d25aedb2d8 /dev-lang
parentc16790af2c9b4cbc38e565d4311252193ff85484 (diff)
downloadbaldeagleos-repo-21.1.2.tar.gz
baldeagleos-repo-21.1.2.tar.xz
baldeagleos-repo-21.1.2.zip
Updating liguros repo21.1.2
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/cfortran/cfortran-4.4-r3.ebuild4
-rw-r--r--dev-lang/cll1h/cll1h-0.6-r1.ebuild4
-rw-r--r--dev-lang/coffee-script/Manifest3
-rw-r--r--dev-lang/coffee-script/coffee-script-1.12.5.ebuild41
-rw-r--r--dev-lang/coffee-script/coffee-script-1.9.3-r1.ebuild47
-rw-r--r--dev-lang/coffee-script/coffee-script-2.3.2.ebuild52
-rw-r--r--dev-lang/coffee-script/coffee-script-2.5.1.ebuild4
-rw-r--r--dev-lang/duktape/duktape-2.6.0.ebuild4
-rw-r--r--dev-lang/elixir/Manifest1
-rw-r--r--dev-lang/elixir/elixir-1.11.3.ebuild38
-rw-r--r--dev-lang/erlang/Manifest6
-rw-r--r--dev-lang/erlang/erlang-23.0.4.ebuild4
-rw-r--r--dev-lang/erlang/erlang-23.1.4.ebuild4
-rw-r--r--dev-lang/erlang/erlang-23.1.5.ebuild4
-rw-r--r--dev-lang/erlang/erlang-23.2.1.ebuild159
-rw-r--r--dev-lang/erlang/erlang-23.2.2.ebuild (renamed from dev-lang/erlang/erlang-23.1.1.ebuild)8
-rw-r--r--dev-lang/erlang/erlang-23.2.ebuild159
-rw-r--r--dev-lang/gforth/files/gforth-0.7.3-rdynamic-auto.patch16
-rw-r--r--dev-lang/gforth/files/gforth-0.7.3-rdynamic.patch14
-rw-r--r--dev-lang/gforth/gforth-0.7.3-r1.ebuild16
-rw-r--r--dev-lang/ghc/Manifest8
-rw-r--r--dev-lang/ghc/files/ghc-8.10.2-revert-linker-rtsSymbols_more_linker_symbols.patch296
-rw-r--r--dev-lang/ghc/ghc-7.10.3.ebuild3
-rw-r--r--dev-lang/ghc/ghc-7.8.4.ebuild3
-rw-r--r--dev-lang/ghc/ghc-8.0.2.ebuild3
-rw-r--r--dev-lang/ghc/ghc-8.10.1.ebuild3
-rw-r--r--dev-lang/ghc/ghc-8.10.2.ebuild797
-rw-r--r--dev-lang/ghc/ghc-8.10.3.ebuild796
-rw-r--r--dev-lang/ghc/ghc-8.2.1.ebuild3
-rw-r--r--dev-lang/ghc/ghc-8.2.2.ebuild3
-rw-r--r--dev-lang/ghc/ghc-8.4.1.ebuild3
-rw-r--r--dev-lang/ghc/ghc-8.4.2.ebuild3
-rw-r--r--dev-lang/ghc/ghc-8.4.3.ebuild3
-rw-r--r--dev-lang/ghc/ghc-8.6.4.ebuild3
-rw-r--r--dev-lang/ghc/ghc-8.6.5.ebuild3
-rw-r--r--dev-lang/ghc/ghc-8.8.1.ebuild3
-rw-r--r--dev-lang/ghc/ghc-8.8.2.ebuild3
-rw-r--r--dev-lang/ghc/ghc-8.8.3.ebuild3
-rw-r--r--dev-lang/ghc/ghc-8.8.4.ebuild3
-rw-r--r--dev-lang/go/Manifest2
-rw-r--r--dev-lang/go/go-1.14.12.ebuild203
-rw-r--r--dev-lang/go/go-1.14.13-r1.ebuild4
-rw-r--r--dev-lang/go/go-1.15.5.ebuild203
-rw-r--r--dev-lang/go/go-1.15.6-r1.ebuild4
-rw-r--r--dev-lang/hy/Manifest3
-rw-r--r--dev-lang/hy/hy-0.14.0.ebuild40
-rw-r--r--dev-lang/hy/hy-0.15.0.ebuild45
-rw-r--r--dev-lang/hy/hy-0.16.0.ebuild45
-rw-r--r--dev-lang/icon/icon-9.5.1-r1.ebuild4
-rw-r--r--dev-lang/icon/icon-9.5.1-r2.ebuild4
-rw-r--r--dev-lang/icon/icon-9.5.20h.ebuild4
-rw-r--r--dev-lang/julia-bin/Manifest17
-rw-r--r--dev-lang/julia-bin/julia-bin-1.3.0.ebuild47
-rw-r--r--dev-lang/julia-bin/julia-bin-1.4.0.ebuild46
-rw-r--r--dev-lang/julia-bin/julia-bin-1.5.2.ebuild1
-rw-r--r--dev-lang/julia-bin/julia-bin-1.5.3.ebuild (renamed from dev-lang/julia-bin/julia-bin-1.2.0.ebuild)17
-rw-r--r--dev-lang/julia/Manifest12
-rw-r--r--dev-lang/julia/julia-1.2.0.ebuild200
-rw-r--r--dev-lang/julia/julia-1.3.0.ebuild201
-rw-r--r--dev-lang/julia/julia-1.4.0-r1.ebuild192
-rw-r--r--dev-lang/julia/julia-1.5.2-r1.ebuild (renamed from dev-lang/julia/julia-1.5.2.ebuild)3
-rw-r--r--dev-lang/julia/julia-1.5.3.ebuild (renamed from dev-lang/julia/julia-1.4.0-r2.ebuild)47
-rw-r--r--dev-lang/lua/Manifest4
-rw-r--r--dev-lang/lua/files/lua-5.1.5-make.patch97
-rw-r--r--dev-lang/lua/files/lua-5.2.4-make.patch75
-rw-r--r--dev-lang/lua/files/lua-5.3.6-make.patch91
-rw-r--r--dev-lang/lua/files/lua-5.4.2-make.patch99
-rw-r--r--dev-lang/lua/lua-5.1.5-r106.ebuild (renamed from dev-lang/lua/lua-5.1.5-r105.ebuild)61
-rw-r--r--dev-lang/lua/lua-5.1.5-r4.ebuild4
-rw-r--r--dev-lang/lua/lua-5.1.5-r5.ebuild113
-rw-r--r--dev-lang/lua/lua-5.2.4-r3.ebuild (renamed from dev-lang/lua/lua-5.2.4-r2.ebuild)42
-rw-r--r--dev-lang/lua/lua-5.3.6-r2.ebuild (renamed from dev-lang/lua/lua-5.3.6-r1.ebuild)42
-rw-r--r--dev-lang/lua/lua-5.4.2-r1.ebuild (renamed from dev-lang/lua/lua-5.4.1-r1.ebuild)30
-rw-r--r--dev-lang/mercury-extras/mercury-extras-20.06.ebuild4
-rw-r--r--dev-lang/mercury/Manifest2
-rw-r--r--dev-lang/mercury/mercury-20.06.ebuild6
-rw-r--r--dev-lang/moarvm/Manifest1
-rw-r--r--dev-lang/moarvm/moarvm-2020.12.ebuild61
-rw-r--r--dev-lang/mujs/Manifest2
-rw-r--r--dev-lang/mujs/metadata.xml1
-rw-r--r--dev-lang/mujs/mujs-1.0.6.ebuild58
-rw-r--r--dev-lang/mujs/mujs-1.0.7.ebuild58
-rw-r--r--dev-lang/mujs/mujs-1.0.9.ebuild4
-rw-r--r--dev-lang/nqp/Manifest1
-rw-r--r--dev-lang/nqp/nqp-2020.12.ebuild160
-rw-r--r--dev-lang/ocaml/Manifest1
-rw-r--r--dev-lang/ocaml/metadata.xml4
-rw-r--r--dev-lang/ocaml/ocaml-4.05.0-r1.ebuild4
-rw-r--r--dev-lang/ocaml/ocaml-4.09.0.ebuild4
-rw-r--r--dev-lang/ocaml/ocaml-4.10.0.ebuild4
-rw-r--r--dev-lang/ocaml/ocaml-4.10.2.ebuild79
-rw-r--r--dev-lang/ocaml/ocaml-4.11.1.ebuild4
-rw-r--r--dev-lang/orc/orc-0.4.28-r1.ebuild4
-rw-r--r--dev-lang/orc/orc-0.4.29.ebuild4
-rw-r--r--dev-lang/orc/orc-0.4.31.ebuild4
-rw-r--r--dev-lang/parrot/parrot-8.1.0-r2.ebuild4
-rw-r--r--dev-lang/pcc/pcc-9999.ebuild4
-rw-r--r--dev-lang/perl/files/perl-5.30.3-darwin-macos11.patch180
-rw-r--r--dev-lang/perl/perl-5.30.3-r1.ebuild16
-rw-r--r--dev-lang/perl/perl-5.30.3-r2.ebuild16
-rw-r--r--dev-lang/perl/perl-5.30.3.ebuild6
-rw-r--r--dev-lang/perl/perl-5.32.0-r1.ebuild20
-rw-r--r--dev-lang/perl/perl-5.32.0.ebuild655
-rw-r--r--dev-lang/php/Manifest12
-rw-r--r--dev-lang/php/files/php-7.2.34-use-after-free-bug76047.patch174
-rw-r--r--dev-lang/php/php-7.2.34-r1.ebuild (renamed from dev-lang/php/php-7.2.33.ebuild)11
-rw-r--r--dev-lang/php/php-7.2.34-r2.ebuild (renamed from dev-lang/php/php-7.2.34.ebuild)13
-rw-r--r--dev-lang/php/php-7.3.21.ebuild760
-rw-r--r--dev-lang/php/php-7.3.23.ebuild760
-rw-r--r--dev-lang/php/php-7.3.24.ebuild760
-rw-r--r--dev-lang/php/php-7.3.25.ebuild4
-rw-r--r--dev-lang/php/php-7.3.26.ebuild (renamed from dev-lang/php/php-7.3.22.ebuild)6
-rw-r--r--dev-lang/php/php-7.4.11.ebuild750
-rw-r--r--dev-lang/php/php-7.4.13.ebuild4
-rw-r--r--dev-lang/php/php-7.4.14.ebuild (renamed from dev-lang/php/php-7.4.12.ebuild)8
-rw-r--r--dev-lang/php/php-7.4.9.ebuild750
-rw-r--r--dev-lang/php/php-8.0.0.ebuild4
-rw-r--r--dev-lang/php/php-8.0.1.ebuild (renamed from dev-lang/php/php-7.4.10.ebuild)29
-rw-r--r--dev-lang/python-exec/python-exec-2.4.6-r2.ebuild4
-rw-r--r--dev-lang/python-exec/python-exec-2.4.6-r3.ebuild4
-rw-r--r--dev-lang/qu-prolog/qu-prolog-10.6.ebuild4
-rw-r--r--dev-lang/rakudo/Manifest1
-rw-r--r--dev-lang/rakudo/rakudo-2020.12.ebuild73
-rw-r--r--dev-lang/ruby/Manifest2
-rw-r--r--dev-lang/ruby/files/2.5/002-autoconf-2.70.patch65
-rw-r--r--dev-lang/ruby/files/2.6/002-autoconf-2.70.patch65
-rw-r--r--dev-lang/ruby/files/2.7/002-autoconf-2.70.patch26
-rw-r--r--dev-lang/ruby/files/3.0/001-socksocket-fix.patch15
-rw-r--r--dev-lang/ruby/files/3.0/010-default-gem-location.patch20
-rw-r--r--dev-lang/ruby/ruby-2.5.8-r1.ebuild6
-rw-r--r--dev-lang/ruby/ruby-2.6.6-r1.ebuild232
-rw-r--r--dev-lang/ruby/ruby-2.6.6-r2.ebuild6
-rw-r--r--dev-lang/ruby/ruby-2.6.6.ebuild232
-rw-r--r--dev-lang/ruby/ruby-2.7.1-r1.ebuild235
-rw-r--r--dev-lang/ruby/ruby-2.7.2.ebuild6
-rw-r--r--dev-lang/ruby/ruby-3.0.0-r1.ebuild (renamed from dev-lang/ruby/ruby-2.7.1.ebuild)65
-rw-r--r--dev-lang/ruby/ruby-3.0.0.ebuild (renamed from dev-lang/ruby/ruby-2.7.1-r2.ebuild)61
-rw-r--r--dev-lang/rust/rust-1.47.0-r2.ebuild45
-rw-r--r--dev-lang/rust/rust-1.48.0.ebuild4
-rw-r--r--dev-lang/sassc/Manifest1
-rw-r--r--dev-lang/sassc/sassc-3.6.1.ebuild25
-rw-r--r--dev-lang/scala/scala-2.12.10.ebuild4
-rw-r--r--dev-lang/scala/scala-2.12.4.ebuild4
-rw-r--r--dev-lang/spidermonkey/Manifest4
-rw-r--r--dev-lang/spidermonkey/spidermonkey-1.8.5-r9.ebuild2
-rw-r--r--dev-lang/spidermonkey/spidermonkey-52.9.1_pre1-r2.ebuild2
-rw-r--r--dev-lang/spidermonkey/spidermonkey-60.5.2_p0-r4.ebuild2
-rw-r--r--dev-lang/spidermonkey/spidermonkey-78.4.1.ebuild303
-rw-r--r--dev-lang/spidermonkey/spidermonkey-78.5.0.ebuild303
-rw-r--r--dev-lang/spidermonkey/spidermonkey-78.6.0.ebuild38
-rw-r--r--dev-lang/swi-prolog/Manifest7
-rw-r--r--dev-lang/swi-prolog/swi-prolog-8.2.1.ebuild4
-rw-r--r--dev-lang/swi-prolog/swi-prolog-8.2.2.ebuild7
-rw-r--r--dev-lang/swi-prolog/swi-prolog-8.2.3.ebuild105
-rw-r--r--dev-lang/swi-prolog/swi-prolog-8.3.16.ebuild (renamed from dev-lang/swi-prolog/swi-prolog-8.3.10.ebuild)4
-rw-r--r--dev-lang/swi-prolog/swi-prolog-8.3.17.ebuild (renamed from dev-lang/swi-prolog/swi-prolog-8.3.11.ebuild)4
-rw-r--r--dev-lang/swig/swig-3.0.12.ebuild4
-rw-r--r--dev-lang/swig/swig-4.0.0.ebuild4
-rw-r--r--dev-lang/swig/swig-4.0.2.ebuild4
-rw-r--r--dev-lang/tcl/Manifest2
-rw-r--r--dev-lang/tcl/files/tcl-8.6.10-multilib.patch11
-rw-r--r--dev-lang/tcl/tcl-8.5.17-r1.ebuild4
-rw-r--r--dev-lang/tcl/tcl-8.6.10.ebuild136
-rw-r--r--dev-lang/tcl/tcl-8.6.11.ebuild136
-rw-r--r--dev-lang/tcl/tcl-8.6.8.ebuild4
-rw-r--r--dev-lang/tcl/tcl-8.6.9-r1.ebuild4
-rw-r--r--dev-lang/tk/Manifest2
-rw-r--r--dev-lang/tk/files/tk-8.6.10-multilib.patch11
-rw-r--r--dev-lang/tk/files/tk-8.6.10-test.patch527
-rw-r--r--dev-lang/tk/files/tk-8.6.11-test.patch72
-rw-r--r--dev-lang/tk/tk-8.5.17-r1.ebuild4
-rw-r--r--dev-lang/tk/tk-8.6.10.ebuild153
-rw-r--r--dev-lang/tk/tk-8.6.11.ebuild146
-rw-r--r--dev-lang/tk/tk-8.6.8.ebuild4
-rw-r--r--dev-lang/tk/tk-8.6.9.1.ebuild4
-rw-r--r--dev-lang/tk/tk-8.6.9.ebuild4
-rw-r--r--dev-lang/vala/Manifest3
-rw-r--r--dev-lang/vala/vala-0.40.23.ebuild4
-rw-r--r--dev-lang/vala/vala-0.46.10.ebuild4
-rw-r--r--dev-lang/vala/vala-0.48.12.ebuild49
-rw-r--r--dev-lang/vala/vala-0.48.6.ebuild4
-rw-r--r--dev-lang/vala/vala-0.50.2.ebuild (renamed from dev-lang/vala/vala-0.50.1.ebuild)0
-rw-r--r--dev-lang/whitespace/metadata.xml3
-rw-r--r--dev-lang/whitespace/whitespace-0.4.ebuild22
-rw-r--r--dev-lang/yap/yap-6.3.4.ebuild6
-rw-r--r--dev-lang/yasm/yasm-1.3.0-r1.ebuild4
-rw-r--r--dev-lang/zig/metadata.xml9
187 files changed, 5500 insertions, 7782 deletions
diff --git a/dev-lang/cfortran/cfortran-4.4-r3.ebuild b/dev-lang/cfortran/cfortran-4.4-r3.ebuild
index 15332f28a3be..31b6d62766a1 100644
--- a/dev-lang/cfortran/cfortran-4.4-r3.ebuild
+++ b/dev-lang/cfortran/cfortran-4.4-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=5
@@ -15,7 +15,7 @@ SRC_URI="
SLOT="0"
LICENSE="LGPL-2"
-KEYWORDS="~alpha amd64 ~arm64 hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x86-macos"
+KEYWORDS="~alpha amd64 ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
IUSE="examples"
src_unpack() {
diff --git a/dev-lang/cll1h/cll1h-0.6-r1.ebuild b/dev-lang/cll1h/cll1h-0.6-r1.ebuild
index 213d387b9f10..0cf9e8922f61 100644
--- a/dev-lang/cll1h/cll1h-0.6-r1.ebuild
+++ b/dev-lang/cll1h/cll1h-0.6-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -9,7 +9,7 @@ SRC_URI="http://gpl.arachne.cz/download/${P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
RDEPEND="sys-devel/gcc"
diff --git a/dev-lang/coffee-script/Manifest b/dev-lang/coffee-script/Manifest
index 45e9c619a2ff..95c44ccf2ecf 100644
--- a/dev-lang/coffee-script/Manifest
+++ b/dev-lang/coffee-script/Manifest
@@ -1,4 +1 @@
-DIST coffee-script-1.12.5.tar.gz 1429494 BLAKE2B b64dc0dce9d2dbcbe5e20fcf002e9fe12116e6987ebdb19c82dadec61d90eaf66de5f4560bab5a3df1c8cef9f557bb0f5c5edd3e1fa5e7062cc0641dcbec28bc SHA512 b83981508c99e52957786d66b6c93e65cea98386b247cddfd516146eb4edb7ccb49451cc976d683fc9127b1ed0ea0a4d54cc47be519af1bf9e8b3dd79159d591
-DIST coffee-script-1.9.3.tar.gz 810246 BLAKE2B dbca1d690ad80e38d8997c237f8c4c6e8a6b8d5c1362d5173a0c38d75e1389f5d8c09299bbb4902745e77133901857c8c15cec0dc17cbb883acf84854aefb68f SHA512 660826e27f842ed67ec6ef59f734087c95585e03b6b8c6d25c8ecfc567f3161f59034e730b61e5f806edaaa7ec6c805ad6d14902857aaf09cf6193b0fe14f506
-DIST coffee-script-2.3.2.tar.gz 1754957 BLAKE2B 7a276a16f4db9c2f53258161af0cb1cebd71fac6acca94d5ee5b0a67e1d59d17ffca8b98f20b3afbe30297963dfa683af16ae01bf0ed6eda49a20a858f6d4850 SHA512 ab50737ffd46db007fc98cbba5ef1fc6c97b20a40b848f9635282ddf19188c59172f984bd62b345b6aae96a92af3ac046cedb568c16db2a5e29d287314e13cd5
DIST coffee-script-2.5.1.tar.gz 2226483 BLAKE2B 5a2c5f93d46b111aeda63077f60992232a768008187ba0e41bec885184fbbbb91014620fca5d8e38cfdb5e88de483425d3d95c87779f27d7450de7cbe62b489b SHA512 99f11f0822ffc841552cf6c78a28d152554f070df6d1b729bdd17df8ba6faae6ed2ba9886f7ee13ccb316de698ab8624370287274611fe90bef033d9f76c5865
diff --git a/dev-lang/coffee-script/coffee-script-1.12.5.ebuild b/dev-lang/coffee-script/coffee-script-1.12.5.ebuild
deleted file mode 100644
index 43791b8fa0d3..000000000000
--- a/dev-lang/coffee-script/coffee-script-1.12.5.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-MY_PN="coffeescript"
-
-DESCRIPTION="A little language that compiles into javascript"
-HOMEPAGE="https://coffeescript.org/"
-SRC_URI="https://github.com/jashkenas/${MY_PN}/archive/${PV}.tar.gz
- -> ${P}.tar.gz"
-S="${WORKDIR}/${MY_PN}-${PV}"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-# This package has a test suite (that works), but it requires a number
-# of NodeJS/NPM packages that aren't in the tree.
-IUSE="doc examples"
-
-RDEPEND="net-libs/nodejs"
-
-src_install() {
- local npm_module_dir="/usr/$(get_libdir)/node/${PN}"
- insinto "${npm_module_dir}"
- doins *.js package.json
- doins -r lib
- dodoc CONTRIBUTING.md README.md
-
- use doc && dodoc -r documentation
- use examples && dodoc -r examples
-
- # The coffee and cake "binaries" use a relative path to find the lib
- # directory, so we have to symlink them rather than use dobin().
- exeinto "${npm_module_dir}/bin"
- doexe bin/cake
- doexe bin/coffee
- dosym "${npm_module_dir}/bin/cake" "/usr/bin/cake"
- dosym "${npm_module_dir}/bin/coffee" "/usr/bin/coffee"
-}
diff --git a/dev-lang/coffee-script/coffee-script-1.9.3-r1.ebuild b/dev-lang/coffee-script/coffee-script-1.9.3-r1.ebuild
deleted file mode 100644
index c7bd4d3403ae..000000000000
--- a/dev-lang/coffee-script/coffee-script-1.9.3-r1.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit multilib
-
-MY_PN="coffeescript"
-
-DESCRIPTION="A little language that compiles into javascript"
-HOMEPAGE="https://coffeescript.org/"
-
-# The tests are missing from the npm registry package, so use Github
-# instead.
-SRC_URI="https://github.com/jashkenas/${MY_PN}/archive/${PV}.tar.gz
- -> ${P}.tar.gz"
-S="${WORKDIR}/${MY_PN}-${PV}"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 x86"
-
-# This package has a test suite (that works), but it requires a number
-# of packages not in the tree. See thread "NPM / NodeJS project" on the
-# gentoo-dev archives for more info.
-IUSE="doc examples"
-
-RDEPEND="net-libs/nodejs"
-
-src_install() {
- local npm_module_dir="/usr/$(get_libdir)/node/${PN}"
- insinto "${npm_module_dir}"
- doins *.js package.json
- doins -r lib
- dodoc CONTRIBUTING.md README.md
-
- use doc && dodoc -r documentation
- use examples && dodoc -r examples
-
- # The coffee and cake "binaries" use a relative path to find the lib
- # directory, so we have to symlink them rather than use dobin().
- exeinto "${npm_module_dir}/bin"
- doexe bin/cake
- doexe bin/coffee
- dosym "${npm_module_dir}/bin/cake" "/usr/bin/cake"
- dosym "${npm_module_dir}/bin/coffee" "/usr/bin/coffee"
-}
diff --git a/dev-lang/coffee-script/coffee-script-2.3.2.ebuild b/dev-lang/coffee-script/coffee-script-2.3.2.ebuild
deleted file mode 100644
index ce12a698c64d..000000000000
--- a/dev-lang/coffee-script/coffee-script-2.3.2.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-MY_PN="coffeescript"
-
-DESCRIPTION="A little language that compiles into javascript"
-HOMEPAGE="https://coffeescript.org/"
-SRC_URI="https://github.com/jashkenas/${MY_PN}/archive/${PV}.tar.gz
- -> ${P}.tar.gz"
-S="${WORKDIR}/${MY_PN}-${PV}"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-# This package has a test suite (that works), but it requires a number
-# of NodeJS/NPM packages that aren't in the tree.
-IUSE="doc examples"
-
-RDEPEND="net-libs/nodejs"
-
-src_install() {
- local npm_module_dir="/usr/$(get_libdir)/node/${PN}"
- insinto "${npm_module_dir}"
- doins *.js package.json
- doins -r lib
- dodoc CONTRIBUTING.md README.md
-
- if use examples; then
- # Users should be able to run the examples without having to copy
- # them to another directory and decompress them.
- docompress -x "/usr/share/doc/${PF}/examples"
- dodoc -r documentation/examples
- fi
-
- if use doc; then
- # It looks like "docs/v2" contains the output from all of the stuff
- # under "documentation".
- docinto "html"
- dodoc -r docs/v2/*
- fi
-
- # The coffee and cake "binaries" use a relative path to find the lib
- # directory, so we have to symlink them rather than use dobin().
- exeinto "${npm_module_dir}/bin"
- doexe bin/cake
- doexe bin/coffee
- dosym "${npm_module_dir}/bin/cake" "/usr/bin/cake"
- dosym "${npm_module_dir}/bin/coffee" "/usr/bin/coffee"
-}
diff --git a/dev-lang/coffee-script/coffee-script-2.5.1.ebuild b/dev-lang/coffee-script/coffee-script-2.5.1.ebuild
index ce12a698c64d..e042a4d9f200 100644
--- a/dev-lang/coffee-script/coffee-script-2.5.1.ebuild
+++ b/dev-lang/coffee-script/coffee-script-2.5.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -13,7 +13,7 @@ S="${WORKDIR}/${MY_PN}-${PV}"
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
# This package has a test suite (that works), but it requires a number
# of NodeJS/NPM packages that aren't in the tree.
diff --git a/dev-lang/duktape/duktape-2.6.0.ebuild b/dev-lang/duktape/duktape-2.6.0.ebuild
index 1037f1a821ba..9a5300f0e887 100644
--- a/dev-lang/duktape/duktape-2.6.0.ebuild
+++ b/dev-lang/duktape/duktape-2.6.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -13,7 +13,7 @@ LICENSE="MIT"
# Upstream don't maintain binary compatibility
# https://github.com/svaarala/duktape/issues/1524
SLOT="0/${PV}"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ppc ~ppc64 x86"
PATCHES=(
"${FILESDIR}/${PN}-2.6.0-respect-tc-env.patch"
diff --git a/dev-lang/elixir/Manifest b/dev-lang/elixir/Manifest
index 3be61950c00e..9f9de7f05df4 100644
--- a/dev-lang/elixir/Manifest
+++ b/dev-lang/elixir/Manifest
@@ -1,2 +1,3 @@
DIST elixir-1.10.4.tar.gz 2331003 BLAKE2B 8cb54bcb16762ae345ad9d36a25c28696fd5bb57cf97c5037c21458671e001cfe51a722287243c6a70fe3cea65c9c219e759c8312fc168e93974ac5f0870b47a SHA512 844e405cf344539a9d32dc7f1ead0dc1dfb0d70a9ab718269f4e25e5262f611f96346f5be93cf8e34a75c58c6aabb12e8a796c5cb182955922510c270ef169e7
DIST elixir-1.11.2.tar.gz 2391833 BLAKE2B 1c11e96830c8719e05e5bc832d4e1d9ca5bb8036803360568fbf4a06a11bb8eb4656aaf1e57a7e04669ddc240d1c04c6a15475e98fcf613ea8bf52b15723fe7f SHA512 472a531353d5f393b0223008ac95ae67b0dc6708143df59a4dd359fdb631329f8a8bded886f53be232e076d194e14a76325fab51a59ec2451706f4f35836bc70
+DIST elixir-1.11.3.tar.gz 2394406 BLAKE2B 066e11651265d63c713809f1968b7dc7faf70e8254ef0aec1978a3db0f92da6bb894e882a1a6c1ba8da13d234c91dc84d2d750b0e044e4cd8706986ec7b2f382 SHA512 4962bb9fcf5f4190a8da22a3e42df5b4e521d73771f6a067edb482b911b0f9fbd2883841d06d94ae4ad6b1db2f61f691e5de4c118c722a16f95830c67ce3e45b
diff --git a/dev-lang/elixir/elixir-1.11.3.ebuild b/dev-lang/elixir/elixir-1.11.3.ebuild
new file mode 100644
index 000000000000..4c9e14b12b16
--- /dev/null
+++ b/dev-lang/elixir/elixir-1.11.3.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Elixir programming language"
+HOMEPAGE="https://elixir-lang.org"
+SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0 ErlPL-1.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~sparc ~x86"
+IUSE="test"
+
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ >=dev-lang/erlang-21:0=[ssl]
+"
+# 'mix' tool collides with sci-biology/phylip, bug #537514
+RDEPEND="${DEPEND}
+ !!sci-biology/phylip
+"
+DEPEND+="
+ test? ( dev-vcs/git )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.9.1-disable-network-tests.patch
+ "${FILESDIR}"/${PN}-1.10.3-no-Q.patch
+ "${FILESDIR}"/${PN}-1.10.3-epmd-daemon.patch
+ "${FILESDIR}"/${PN}-1.11.2-mksh.patch
+)
+
+src_install() {
+ emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="${EPREFIX}/usr" install
+ dodoc README.md CHANGELOG.md CODE_OF_CONDUCT.md
+}
diff --git a/dev-lang/erlang/Manifest b/dev-lang/erlang/Manifest
index a69e2856f2d8..9b1c6f1f1347 100644
--- a/dev-lang/erlang/Manifest
+++ b/dev-lang/erlang/Manifest
@@ -1,8 +1,12 @@
DIST erlang-23.0.4.tar.gz 56394805 BLAKE2B 10a4e9e3084ad2d1bb10fa736d86eb03fa6b249f83b9d06bfef4c37f99ad86dd1415c2fbaa1524cddaf57dd228d25f388fa9fe9f5b4a03ba7477080e11020fb1 SHA512 53d4b7a5e76113bb3a9695a266e58dbebb57887b1eea4e8acb56bb85d194295231d739719d526dfc6d1f0bf745d7f059fdf5ec9dc79859f5b16a75c4d0a6b348
-DIST erlang-23.1.1.tar.gz 56498218 BLAKE2B cd513a2d45aecc12503df8765e0f4170001373c0e6b35b4c01d7471906408558a3b6bbf9c189858fce3cb8fd7020270813550e2099f04c8094afc49dcd070016 SHA512 572164e601796bc7b0df3818c859b23872f148dcc72f44f611d9d5684b0c9974b00496aa0fd521dc01d0d3481556b6641d3cbd859bd7bfadefd15115728d16d9
DIST erlang-23.1.4.tar.gz 56503340 BLAKE2B f4b26aa5882bb3d2218897706734798a80cbb5113008be70b2a0c793a5cc1eb01eb1ace17ae525e19f176e47ffc85b108240b7fec71cf8eedb4d67860ecaa98b SHA512 864b69fc69f3843dfe839faf1c1e86ec505282ec4d86ed1add445998ba28bcc623522471d8d8636a9cf1e24e84f99d5cae3880a4b1171abab9651ef242a55367
DIST erlang-23.1.5.tar.gz 56508089 BLAKE2B 7784cbed8df68d449cbace6d84b37208b739a3b12fbed1117f05c765883d348e877001f5eba15ffdec5acc47725bf69d06a7f02b48766efa5496a8326fb8eb8c SHA512 dccb863ace1f3c3fd17c848bf21c982338546e2be2a3b81ade35bcefeb4ff75afff28ebe2363ccf7f4680417f83bbeaa51c74274a23621139b5a4be6bb824955
+DIST erlang-23.2.1.tar.gz 56580525 BLAKE2B 4b5d4be9d0501dd2eb5d44357ccc9a169dc3b5742380264a7929e6aebf1d003327b2c109aa7dc4ad668f1576376e54022ff240f41df7af9010184d643eae2371 SHA512 444c19fac295a979321ccde1f516156a25faa79d66437ddf7bc0a197f3fb8d2ddd6c056d565f9b6bc47e8444b8feda790c4844dbe95ec0b300428fb22c4e0531
+DIST erlang-23.2.2.tar.gz 56594755 BLAKE2B 3f5c552d3cd070b36bc7a1112b9541f358001ee4ad49a62ccce3462b02b642d4abc0bf8844e5441168be850f5588cf4ecdbf545fcff60e7746cec637898f2c7e SHA512 26743a7a4b2e31e63c0940ed6fdad64427c22e0f08fc063e1b8639bea6fa89c6b24e9c87ca572475d3ce39a18857ef6143676653cdf97b374656ae49f5892633
+DIST erlang-23.2.tar.gz 56581092 BLAKE2B f3191b99465ab18eaf13c6d15f79ae150fb04337450b3ff145532aab0da229c44c082bb138a79c84860f09107a363c34e2b2505ce38c6c8dea1ede5fbe3ce044 SHA512 3bdb464992387c5a352c11bf9dc49c6a982dac10865d2b668d8db6fb45db15f4d79d38976d04fbbd51568ee9efb8b5295bb06b6fee37b81fde6fa43c51dcc313
DIST erlang_doc_html_23.0.tar.gz 36238699 BLAKE2B bce5fb1d766d3a795728cf7c00529129690f52e5dbe7363095cb7e63d5331a4dfc05c2042d24f10c7f3facbd187284aa323a92c0ed7515c1750aee4cd890fbd4 SHA512 bd0b1adf8639674d31152024e1351105249c6e6f93f28362e9e4b66ce6daadbe5eef5917a5889c926130e81bd000cfc44895ebaa309bf9a0c1c125713b715927
DIST erlang_doc_html_23.1.tar.gz 36285075 BLAKE2B e2e24ac4cecfc9c10853fd3718e8e332579a91bf25eaaf9e0fc2044d89bcd6d03fd251d6a8ab64a86439f1244e275ef398701b47933a741d4e64016838db48aa SHA512 c8fecb08344c9c7a4c7b911ac4f73e2d8c0c3778d665098c3377e055346a7ecfcc378bca28dff768c36dc7bf7447308f4fb58273875c22f2d6cd896fd6232656
+DIST erlang_doc_html_23.2.tar.gz 36537148 BLAKE2B b19d3fb5836b50512db6913ccb9116bc06ef4677c9514db89714ac72a9e7569b2c52612c357ccbf9a12610000885cbc8a43cc17f80c533a3c65af89c1b592ba6 SHA512 0d334dfe46ecffd6ff720d176c4514e2d49ba1b5feccd80f8392a8335100a6c289207431d2c0da02043c923de083290f9fd23726a1d1481508acdd7596f67ea4
DIST erlang_doc_man_23.0.tar.gz 1383486 BLAKE2B 63a9989c26797fe07fbd0ccca0d8425d94bc60a86fa93b5332c8d1f3e12a0071d9e6d4759be73bf44bf35dd14723b9e6707a84ba834e1775bc28aeec1edbe168 SHA512 81575ce7b267f5bb48bd844808e8edd4e373640bbc481372b288602eb9d3c9917e6c7c040c035b63a2f6edf437c3d826d6afdf5801765b51d9edd4a3b2a5b16f
DIST erlang_doc_man_23.1.tar.gz 1384042 BLAKE2B 914f64d9317e45e22dc0a3025306d36f12eb998734bd15cd29b540f9a848f11c1cf6897f9cd7aea2d2c95ed6ef3e544ee674a9a97a87e0340e4b65e09b0cee6e SHA512 90f026618f45a2a78590f093378e4883c5f442816367eb1691ea4fe7c36694f4a47325e738e6b585195678993bcdefdf4f8180894b16721277d02b2b79aef285
+DIST erlang_doc_man_23.2.tar.gz 1386417 BLAKE2B 91fb2646461330c2f3793e7819e4c77ba9259366098b710fd102ffbcbcf38fa84ad720613313e3c59c1d419aaddd5a1a85d26c5d41a71d6692d428a494f57012 SHA512 464fa2c3608a6c096a241e5fc2cee710ef51394b169e3b3ce3ab5f69d847437c54780d4afc1a799d13f88ea88ac64056b19bff4d927e1e6bbe54a773b0ccd89d
diff --git a/dev-lang/erlang/erlang-23.0.4.ebuild b/dev-lang/erlang/erlang-23.0.4.ebuild
index d5356fa36a45..15f8ee9a7d15 100644
--- a/dev-lang/erlang/erlang-23.0.4.ebuild
+++ b/dev-lang/erlang/erlang-23.0.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -22,7 +22,7 @@ LICENSE="Apache-2.0"
# same build of ERTS that was used when compiling the code. See
# http://erlang.org/doc/system_principles/misc.html for more information.
SLOT="0/${PV}"
-KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris"
+KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="doc emacs +hipe java +kpoll libressl odbc sctp ssl systemd tk wxwidgets"
RDEPEND="
diff --git a/dev-lang/erlang/erlang-23.1.4.ebuild b/dev-lang/erlang/erlang-23.1.4.ebuild
index a809e52a684b..27ebfc6b45ee 100644
--- a/dev-lang/erlang/erlang-23.1.4.ebuild
+++ b/dev-lang/erlang/erlang-23.1.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -22,7 +22,7 @@ LICENSE="Apache-2.0"
# same build of ERTS that was used when compiling the code. See
# http://erlang.org/doc/system_principles/misc.html for more information.
SLOT="0/${PV}"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris"
+KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="doc emacs +hipe java +kpoll libressl odbc sctp ssl systemd tk wxwidgets"
RDEPEND="
diff --git a/dev-lang/erlang/erlang-23.1.5.ebuild b/dev-lang/erlang/erlang-23.1.5.ebuild
index a809e52a684b..a3053cbf9325 100644
--- a/dev-lang/erlang/erlang-23.1.5.ebuild
+++ b/dev-lang/erlang/erlang-23.1.5.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -22,7 +22,7 @@ LICENSE="Apache-2.0"
# same build of ERTS that was used when compiling the code. See
# http://erlang.org/doc/system_principles/misc.html for more information.
SLOT="0/${PV}"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="doc emacs +hipe java +kpoll libressl odbc sctp ssl systemd tk wxwidgets"
RDEPEND="
diff --git a/dev-lang/erlang/erlang-23.2.1.ebuild b/dev-lang/erlang/erlang-23.2.1.ebuild
new file mode 100644
index 000000000000..e266bd5246c6
--- /dev/null
+++ b/dev-lang/erlang/erlang-23.2.1.ebuild
@@ -0,0 +1,159 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+WX_GTK_VER="3.0-gtk3"
+
+inherit elisp-common java-pkg-opt-2 systemd wxwidgets
+
+# NOTE: If you need symlinks for binaries please tell maintainers or
+# open up a bug to let it be created.
+
+UPSTREAM_V="$(ver_cut 1-2)"
+
+DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
+HOMEPAGE="https://www.erlang.org/"
+SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
+ http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
+ doc? ( http://erlang.org/download/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
+
+LICENSE="Apache-2.0"
+# We use this subslot because Compiled HiPE Code can be loaded on the exact
+# same build of ERTS that was used when compiling the code. See
+# http://erlang.org/doc/system_principles/misc.html for more information.
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="doc emacs +hipe java +kpoll libressl odbc sctp ssl systemd tk wxwidgets"
+
+RDEPEND="
+ acct-group/epmd
+ acct-user/epmd
+ sys-libs/ncurses:0
+ sys-libs/zlib
+ emacs? ( >=app-editors/emacs-23.1:* )
+ java? ( >=virtual/jdk-1.8:* )
+ odbc? ( dev-db/unixODBC )
+ sctp? ( net-misc/lksctp-tools )
+ ssl? (
+ !libressl? ( >=dev-libs/openssl-0.9.7d:0= )
+ libressl? ( dev-libs/libressl:0= )
+ )
+ systemd? ( sys-apps/systemd )
+ wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
+"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+"
+
+S="${WORKDIR}/otp-OTP-${PV}"
+
+PATCHES=(
+ "${FILESDIR}"/18.2.1-wx3.0.patch
+ "${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
+ "${FILESDIR}"/${PN}-23.1.2-ac2.70.patch
+)
+
+SITEFILE=50"${PN}"-gentoo.el
+
+src_prepare() {
+ default
+
+ ./otp_build autoconf || die
+}
+
+src_configure() {
+ use wxwidgets && setup-wxwidgets
+
+ local myconf=(
+ --disable-builtin-zlib
+ $(use_enable hipe)
+ $(use_enable kpoll kernel-poll)
+ $(use_with java javac)
+ $(use_enable sctp)
+ $(use_with ssl ssl "${EPREFIX}"/usr)
+ $(use_enable ssl dynamic-ssl-lib)
+ $(use_enable systemd)
+ $(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null")
+ )
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ emake
+
+ if use emacs ; then
+ pushd lib/tools/emacs &>/dev/null || die
+ elisp-compile *.el
+ popd &>/dev/null || die
+ fi
+}
+
+extract_version() {
+ local path="$1"
+ local var_name="$2"
+ sed -n -e "/^${var_name} = \(.*\)$/s::\1:p" "${S}/${path}/vsn.mk" || die "extract_version() failed"
+}
+
+src_install() {
+ local erl_libdir_rel="$(get_libdir)/erlang"
+ local erl_libdir="/usr/${erl_libdir_rel}"
+ local erl_interface_ver="$(extract_version lib/erl_interface EI_VSN)"
+ local erl_erts_ver="$(extract_version erts VSN)"
+ local my_manpath="/usr/share/${PN}/man"
+
+ [[ -z "${erl_erts_ver}" ]] && die "Couldn't determine erts version"
+ [[ -z "${erl_interface_ver}" ]] && die "Couldn't determine interface version"
+
+ emake INSTALL_PREFIX="${D}" install
+
+ if use doc ; then
+ # Note: we explicitly install docs into:
+ # /usr/share/doc/${PF}/{doc,lib,erts-*}
+ # To maintain that layout we gather everything in 'html-docs'.
+ # See bug #684376.
+ mkdir html-docs || die
+ mv "${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-* html-docs/ || die
+ local DOCS=( "AUTHORS" "HOWTO"/* "README.md" "CONTRIBUTING.md" html-docs/. )
+ docompress -x /usr/share/doc/${PF}
+ else
+ local DOCS=("README.md")
+ fi
+
+ einstalldocs
+
+ dosym "../${erl_libdir_rel}/bin/erl" /usr/bin/erl
+ dosym "../${erl_libdir_rel}/bin/erlc" /usr/bin/erlc
+ dosym "../${erl_libdir_rel}/bin/escript" /usr/bin/escript
+ dosym "../${erl_libdir_rel}/lib/erl_interface-${erl_interface_ver}/bin/erl_call" /usr/bin/erl_call
+ dosym "../${erl_libdir_rel}/erts-${erl_erts_ver}/bin/beam.smp" /usr/bin/beam.smp
+
+ ## Clean up the no longer needed files
+ rm "${ED}/${erl_libdir}/Install" || die
+
+ insinto "${my_manpath}"
+ doins -r "${WORKDIR}"/man/*
+ # extend MANPATH, so the normal man command can find it
+ # see bug 189639
+ newenvd - "90erlang" <<-_EOF_
+ MANPATH="${my_manpath}"
+ _EOF_
+
+ if use emacs ; then
+ elisp-install erlang lib/tools/emacs/*.{el,elc}
+ sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \
+ "${FILESDIR}/${SITEFILE}" > "${T}/${SITEFILE}" || die
+ elisp-site-file-install "${T}/${SITEFILE}"
+ fi
+
+ newinitd "${FILESDIR}"/epmd.init-r2 epmd
+ newconfd "${FILESDIR}"/epmd.confd-r2 epmd
+ use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-lang/erlang/erlang-23.1.1.ebuild b/dev-lang/erlang/erlang-23.2.2.ebuild
index d5356fa36a45..e78f4f36b069 100644
--- a/dev-lang/erlang/erlang-23.1.1.ebuild
+++ b/dev-lang/erlang/erlang-23.2.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -22,7 +22,7 @@ LICENSE="Apache-2.0"
# same build of ERTS that was used when compiling the code. See
# http://erlang.org/doc/system_principles/misc.html for more information.
SLOT="0/${PV}"
-KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="doc emacs +hipe java +kpoll libressl odbc sctp ssl systemd tk wxwidgets"
RDEPEND="
@@ -48,8 +48,8 @@ DEPEND="${RDEPEND}
S="${WORKDIR}/otp-OTP-${PV}"
PATCHES=(
- "${FILESDIR}/18.2.1-wx3.0.patch"
- "${FILESDIR}/${PN}-22.0-dont-ignore-LDFLAGS.patch"
+ "${FILESDIR}"/18.2.1-wx3.0.patch
+ "${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
)
SITEFILE=50"${PN}"-gentoo.el
diff --git a/dev-lang/erlang/erlang-23.2.ebuild b/dev-lang/erlang/erlang-23.2.ebuild
new file mode 100644
index 000000000000..e266bd5246c6
--- /dev/null
+++ b/dev-lang/erlang/erlang-23.2.ebuild
@@ -0,0 +1,159 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+WX_GTK_VER="3.0-gtk3"
+
+inherit elisp-common java-pkg-opt-2 systemd wxwidgets
+
+# NOTE: If you need symlinks for binaries please tell maintainers or
+# open up a bug to let it be created.
+
+UPSTREAM_V="$(ver_cut 1-2)"
+
+DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
+HOMEPAGE="https://www.erlang.org/"
+SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
+ http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
+ doc? ( http://erlang.org/download/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
+
+LICENSE="Apache-2.0"
+# We use this subslot because Compiled HiPE Code can be loaded on the exact
+# same build of ERTS that was used when compiling the code. See
+# http://erlang.org/doc/system_principles/misc.html for more information.
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="doc emacs +hipe java +kpoll libressl odbc sctp ssl systemd tk wxwidgets"
+
+RDEPEND="
+ acct-group/epmd
+ acct-user/epmd
+ sys-libs/ncurses:0
+ sys-libs/zlib
+ emacs? ( >=app-editors/emacs-23.1:* )
+ java? ( >=virtual/jdk-1.8:* )
+ odbc? ( dev-db/unixODBC )
+ sctp? ( net-misc/lksctp-tools )
+ ssl? (
+ !libressl? ( >=dev-libs/openssl-0.9.7d:0= )
+ libressl? ( dev-libs/libressl:0= )
+ )
+ systemd? ( sys-apps/systemd )
+ wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
+"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+"
+
+S="${WORKDIR}/otp-OTP-${PV}"
+
+PATCHES=(
+ "${FILESDIR}"/18.2.1-wx3.0.patch
+ "${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
+ "${FILESDIR}"/${PN}-23.1.2-ac2.70.patch
+)
+
+SITEFILE=50"${PN}"-gentoo.el
+
+src_prepare() {
+ default
+
+ ./otp_build autoconf || die
+}
+
+src_configure() {
+ use wxwidgets && setup-wxwidgets
+
+ local myconf=(
+ --disable-builtin-zlib
+ $(use_enable hipe)
+ $(use_enable kpoll kernel-poll)
+ $(use_with java javac)
+ $(use_enable sctp)
+ $(use_with ssl ssl "${EPREFIX}"/usr)
+ $(use_enable ssl dynamic-ssl-lib)
+ $(use_enable systemd)
+ $(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null")
+ )
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ emake
+
+ if use emacs ; then
+ pushd lib/tools/emacs &>/dev/null || die
+ elisp-compile *.el
+ popd &>/dev/null || die
+ fi
+}
+
+extract_version() {
+ local path="$1"
+ local var_name="$2"
+ sed -n -e "/^${var_name} = \(.*\)$/s::\1:p" "${S}/${path}/vsn.mk" || die "extract_version() failed"
+}
+
+src_install() {
+ local erl_libdir_rel="$(get_libdir)/erlang"
+ local erl_libdir="/usr/${erl_libdir_rel}"
+ local erl_interface_ver="$(extract_version lib/erl_interface EI_VSN)"
+ local erl_erts_ver="$(extract_version erts VSN)"
+ local my_manpath="/usr/share/${PN}/man"
+
+ [[ -z "${erl_erts_ver}" ]] && die "Couldn't determine erts version"
+ [[ -z "${erl_interface_ver}" ]] && die "Couldn't determine interface version"
+
+ emake INSTALL_PREFIX="${D}" install
+
+ if use doc ; then
+ # Note: we explicitly install docs into:
+ # /usr/share/doc/${PF}/{doc,lib,erts-*}
+ # To maintain that layout we gather everything in 'html-docs'.
+ # See bug #684376.
+ mkdir html-docs || die
+ mv "${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-* html-docs/ || die
+ local DOCS=( "AUTHORS" "HOWTO"/* "README.md" "CONTRIBUTING.md" html-docs/. )
+ docompress -x /usr/share/doc/${PF}
+ else
+ local DOCS=("README.md")
+ fi
+
+ einstalldocs
+
+ dosym "../${erl_libdir_rel}/bin/erl" /usr/bin/erl
+ dosym "../${erl_libdir_rel}/bin/erlc" /usr/bin/erlc
+ dosym "../${erl_libdir_rel}/bin/escript" /usr/bin/escript
+ dosym "../${erl_libdir_rel}/lib/erl_interface-${erl_interface_ver}/bin/erl_call" /usr/bin/erl_call
+ dosym "../${erl_libdir_rel}/erts-${erl_erts_ver}/bin/beam.smp" /usr/bin/beam.smp
+
+ ## Clean up the no longer needed files
+ rm "${ED}/${erl_libdir}/Install" || die
+
+ insinto "${my_manpath}"
+ doins -r "${WORKDIR}"/man/*
+ # extend MANPATH, so the normal man command can find it
+ # see bug 189639
+ newenvd - "90erlang" <<-_EOF_
+ MANPATH="${my_manpath}"
+ _EOF_
+
+ if use emacs ; then
+ elisp-install erlang lib/tools/emacs/*.{el,elc}
+ sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \
+ "${FILESDIR}/${SITEFILE}" > "${T}/${SITEFILE}" || die
+ elisp-site-file-install "${T}/${SITEFILE}"
+ fi
+
+ newinitd "${FILESDIR}"/epmd.init-r2 epmd
+ newconfd "${FILESDIR}"/epmd.confd-r2 epmd
+ use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-lang/gforth/files/gforth-0.7.3-rdynamic-auto.patch b/dev-lang/gforth/files/gforth-0.7.3-rdynamic-auto.patch
new file mode 100644
index 000000000000..8a5b65282907
--- /dev/null
+++ b/dev-lang/gforth/files/gforth-0.7.3-rdynamic-auto.patch
@@ -0,0 +1,16 @@
+--- a/configure
++++ b/configure
+@@ -4721,10 +4733,10 @@ test "$make_type" = "GNU Make" && GNUMAKE=''
+ $as_echo "$make_type" >&6; }
+
+
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -export-dynamic" >&5
+-$as_echo_n "checking whether the linker accepts -export-dynamic... " >&6; }
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -rdynamic" >&5
++$as_echo_n "checking whether the linker accepts -rdynamic... " >&6; }
+ OLDLDFLAGS=$LDFLAGS
+-LDFLAGS="$LDFLAGS -export-dynamic"
++LDFLAGS="$LDFLAGS -rdynamic"
+ if test "$cross_compiling" = yes; then :
+ ac_export_dynamic=no
+ else
diff --git a/dev-lang/gforth/files/gforth-0.7.3-rdynamic.patch b/dev-lang/gforth/files/gforth-0.7.3-rdynamic.patch
new file mode 100644
index 000000000000..e776f4d40d04
--- /dev/null
+++ b/dev-lang/gforth/files/gforth-0.7.3-rdynamic.patch
@@ -0,0 +1,14 @@
+--- a/configure.in
++++ b/configure.in
+@@ -191,9 +191,9 @@ test "$make_type" = "GNU Make" && GNUMAKE=''
+ AC_MSG_RESULT($make_type)
+ AC_SUBST(GNUMAKE)
+
+-AC_MSG_CHECKING([whether the linker accepts -export-dynamic])
++AC_MSG_CHECKING([whether the linker accepts -rdynamic])
+ OLDLDFLAGS=$LDFLAGS
+-LDFLAGS="$LDFLAGS -export-dynamic"
++LDFLAGS="$LDFLAGS -rdynamic"
+ dnl AC_TRY_LINK gives false positive on rs6000-ibm-aix4.2.1.0
+ dnl AC_TRY_LINK(,,ac_export_dynamic=yes,ac_export_dynamic=no)
+ AC_TRY_RUN(main(){exit(0);},ac_export_dynamic=yes,ac_export_dynamic=no,ac_export_dynamic=no)
diff --git a/dev-lang/gforth/gforth-0.7.3-r1.ebuild b/dev-lang/gforth/gforth-0.7.3-r1.ebuild
index 01598f0f239e..ddf2c89a40a8 100644
--- a/dev-lang/gforth/gforth-0.7.3-r1.ebuild
+++ b/dev-lang/gforth/gforth-0.7.3-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
-inherit elisp-common eutils
+inherit elisp-common
DESCRIPTION="GNU Forth is a fast and portable implementation of the ANSI Forth language"
HOMEPAGE="https://www.gnu.org/software/gforth"
@@ -22,8 +22,18 @@ SITEFILE="50${PN}-gentoo.el"
PATCHES=(
"${FILESDIR}"/${PN}-0.7.0-make-elc.patch
+ "${FILESDIR}"/${PN}-0.7.3-rdynamic.patch
+ "${FILESDIR}"/${PN}-0.7.3-rdynamic-auto.patch
)
+src_prepare() {
+ default
+
+ # We patches both configure and configure.ac.
+ # Avoid reruining aclocal.
+ touch aclocal.m4 configure || die
+}
+
src_configure() {
econf \
$(use emacs || echo "--without-lispdir") \
diff --git a/dev-lang/ghc/Manifest b/dev-lang/ghc/Manifest
index 0f7b4fe5d558..9ec9e69c069d 100644
--- a/dev-lang/ghc/Manifest
+++ b/dev-lang/ghc/Manifest
@@ -5,6 +5,10 @@ DIST ghc-7.8.4-src.tar.bz2 10600755 BLAKE2B 6cf27f663178513b25032b648cf36b016e01
DIST ghc-8.0.2-src.tar.xz 10687760 BLAKE2B 3b2a487c115680342ce308ff1a42d2b6fa6fb1f31e2670b27a305b4d44160056611b77273c9d47f2e37a1ef01b1aba59c36e76b65c83142a5f09812bf3b1ea02 SHA512 58ea3853cd93b556ecdc4abd0be079b2621171b8491f59004ea4e036a4cba4470aaafe6591b942e0a50a64bdc47540e01fe6900212a1ef7087850112d9bfc5ef
DIST ghc-8.10.1-src.tar.xz 19781652 BLAKE2B 61ff73d3a895cfa0c836e25a684d7a31cf099dcc33d1f308eaf56aa4b2a75b8f38cf963197c11dad9d027270845af20e00a7d81e5417b0fb8b4a98ddbadd53d8 SHA512 e6bb5c326f8354f0892324586c164c6e04168215d8bfeccb594173a838a535e37bac38db6fbdb01fb37150099c12842c53be5e912dfb6a6feeae3c75d4ae24d0
DIST ghc-8.10.1-testsuite.tar.xz 2091988 BLAKE2B 88796f0fb6ea2bdd749161c84ec88768f3bf87063d2224a083db24f69282e615227626fe3c7b41d4abec10883e22042abed6a231582bab4ea530feffd683ed0b SHA512 35147f98301c5bfb6c939e108de48b2a1133adc1028aaa720ce49d60faa06a4b486a9eded658295e3f203731b4dd53475b57e8213491c45b05959430030be269
+DIST ghc-8.10.2-src.tar.xz 21880680 BLAKE2B 0c1b67c1576cfd1067d11838301f96041cabf66b94cfd546cfe6bef57babe940fc3814918ff9327e59fe73a8e230fa1d62d7816d7c6cae274dd8c53de6e81736 SHA512 6c3f1311feab3665419a301b17fcb09d303ec822f8eb8c4021edfacff00d9b52e71895bed0e58f11d8f7970415bd8c6f95ffde1294afe795e15607199b20cefc
+DIST ghc-8.10.2-testsuite.tar.xz 2101788 BLAKE2B 0d4528223471dfd68cadcda47931d53508c9eafa415716ca5990ea519eb89bfa2bdd444280057be33467382dd3d178887262d54ef633aa8ce88ea91eb9d58ece SHA512 043faaf2f0dc34a868c481b284b94afd78aa1ec1a4056d1f3c97ca3f7dadb3e9cff0517a4cfb378fe5187389db7c9027763bf066328e7dcfd264b737f6d09e41
+DIST ghc-8.10.3-src.tar.xz 19872356 BLAKE2B 043f41a21becc826b3cd13ee81b138cf2edfa18484f98361dc85b12f784df85571522347d5fafe40a19ea8ddf12390cd766db8fc21cf4971e797bc61404304cc SHA512 6f3248e728d3677dfddf2f02609167c67a194750418f2a5e34ed68f1135960761c5a5768255bfc8b2ef5640395609424878375184d2dde8e2d69021a3baf9ec8
+DIST ghc-8.10.3-testsuite.tar.xz 2261376 BLAKE2B cd03d569c30637d531d9a13fa926a28f854a37d48ef0d4e2fde684664ae000f3c941b5113ccafd42fec019428bafb5344b1ddf8f84a71b21bca8831ed4784907 SHA512 4c9d20a27ed71eb7c73bd86c1049ea5adcc8a0b12040386b7d0dddb46b3cf704c52a3392e19ae4ff1c76b8868665c599391d47e47dba516fcadf8abbc30e28df
DIST ghc-8.2.1-src.tar.xz 10736016 BLAKE2B 60993cfc9569e83b0c383591ef30a7280e0138fbb7bd696ad62d87e68dcbccf31c0b8ba211b6647922b8595c7aec2c783648f12c67da53e0766b71c7d7c923fc SHA512 d9aa2aa7f9414db8f4e51d6c275694b46df515e68331a1a2b6018256333a2c63ebd877b75ee90407ecce5be672ec9afc6bebd62aadbf8ae06b94f1760d1736be
DIST ghc-8.2.2-src.tar.xz 10753272 BLAKE2B 6fd792390d3df20f84836466705c3f3c931ba2d594dcbe2b808ea0ae284460000b443df8aae74903eabf05ff9064d68a303086cf888ea68222eb1c60959c8f21 SHA512 6549416f470b599973d409fa45f59c25b07e6a94798cef1a19ad432547dc225338cf4dbc4a4793114b4a417798a3b59b122b92b020251074405c5302b7ffe799
DIST ghc-8.4.1-src.tar.xz 11301528 BLAKE2B 6dcf467d04cace856b68315c85b80f19b517dcbc8ae6e2a08c60afa141c9e0261e012738452c9ca208f9fc40c48bd1a0817e5e0fe9f4737383cd7b44ca65c8d9 SHA512 f8ae11f498bf2911fb92635534c6906c96f1fbe5072c7b7447bd3f69e408026b674564515af02a8aaddc57ee6905ce78d10005b12478a39c220580aaec13a9f7
@@ -45,6 +49,10 @@ DIST ghc-bin-8.0.2-ppc64.tbz2 117432068 BLAKE2B cae202f0d6e825127d543996b2fe7ae0
DIST ghc-bin-8.0.2-x86_64-pc-linux-gnu.tbz2 130852973 BLAKE2B 24d2032bbfc664d924800c1a317334e2342c8ec1e529178f9d1bb99bb4772a9cc100603bf70111b8cfafa715c1cccc643f115c77cf6adcdfb17d1f1735ee6682 SHA512 c36e0e2600fc7c284562a323d396a03062cb6e8fa63c353e672be61e76d2ec5c7698485e3a370a57cf512db9e5ba6a68338fff2ab404d9fe67b1a468ed72638f
DIST ghc-bin-8.10.1-i686-pc-linux-gnu.tbz2 123398571 BLAKE2B 3650f9dbaaa5af684abad589953bcef5b1684a91a4cc2695d0ef735536057bb031231fe3d73dd74bc38a199f0890ef91764b551e5e158c120affc0d7bc3175b7 SHA512 52cc172de08ef30d6e89384e86eda1b8bbdef2bbff526041eb47d85d77b70ab49314ac7f33f18b40864c16fa546256f1b4c7964e65aa5d3cfbb7f9cbec505dc9
DIST ghc-bin-8.10.1-x86_64-pc-linux-gnu.tbz2 122227601 BLAKE2B 84340866c70044eb1444a70b0cbed6814808037b697db28f567d2b14bb791cbe7d9bf2a327cc47ae85ce3c4970ba039854b4a6df44eb85cdc18040c5a4d15f4f SHA512 81df9de95aec47d60ad8d699756ad323eb525c3a16536fac8c6717e1754272061bd8d7d70cd38f5c509a2fc323305333e4f898c9b6dc27645521bb29ee218bdb
+DIST ghc-bin-8.10.2-i686-pc-linux-gnu.tbz2 123683156 BLAKE2B a486076ea6e67f124c850e037be0e63a873181c3fd746f437861f7367a968e0df6723afc934c966432274a55936c0fe48a9a43a48199840b37636843da4caccc SHA512 29cc1703bbdbfcbef8aa2a5a563b83b0663970f5902a1fc70230515a128ef47e27a3a6df2b47a01009c3976b4936cf8e64e5da4dfdda0c1bcf73ab7ea5ac0b6d
+DIST ghc-bin-8.10.2-x86_64-pc-linux-gnu.tbz2 122818630 BLAKE2B 030a68e2aca0eb0a273e0d48a3e180d92b219b2d1826d1d58fa133d0a6cae1316b3ccceadb55a4fa5870f87c3df85df2998e7611b93dbc1fea592437748b2daf SHA512 23bf47ee45fae54a843de9e6991b67fccb79c14ad8d08eff9f38a68a3530496c8ce4bc8cae8a731bb690ddd6cd0bf36d6d5bf37eb68ddae8ce646a0bf3916d8f
+DIST ghc-bin-8.10.3-i686-pc-linux-gnu.tbz2 123802832 BLAKE2B a770dd43bee7a1d60fec2eb9aaa7de715eed01c19d9514e04678801827879977a5c91f5e191d026ca83aa5e5fc5f518593053b2e78b27b08df64b39058dbaec3 SHA512 f810432a56ddcd773e6118f038cdacd2f5e3a508d87bfa468ee861aef0cfc434ec5766a8a74360d8cec6cb9c664928290901c025496100e7c8465408635227f5
+DIST ghc-bin-8.10.3-x86_64-pc-linux-gnu.tbz2 122993247 BLAKE2B e3395ebc7e87b4ae8f66dbbd9441c214c4d9535e55bfb14f78ebb92d30b1e100efc4893b3cdc65564d47bd53a21cb30106572b3fce13be022946171112c3218e SHA512 2ea4295bcaf6e3fd0db54ba67465e979cd85d3370c6c49f2381478ae9824ad89df53d7d93ccf06bdff5f4849f14306c9f50c13e6f6ba45f79e5b8c13ad63ae4f
DIST ghc-bin-8.2.1-i686-pc-linux-gnu.tbz2 96157437 BLAKE2B 2b9608845db8cea78db07209fa054b3b05085d5c3ac07cbe3de02a93c87fb0cff12b1820f08757221c59c8a0a9e7a5563c44266b181525d916825e5cf5bac34c SHA512 e891e76557fa61853e28829b8bedc4a6abb92954f90cc1ebcf22a13cc137556bbe9262e7398b7e1aedbabeb997916b008bf1561a52f16a569f3d58ea9404f41e
DIST ghc-bin-8.2.1-x86_64-pc-linux-gnu.tbz2 97490496 BLAKE2B 3666ea70cb8b3645db071040d2069fe244042c11954b34e5d92aaa90132d2316c0ee8c176cd4e674772bea3b99df150404f62bd8745c046cdaf102ecf0a0fa54 SHA512 52630a185d0eab56bce0469a612a54109895bfee041ec362ced59a9b35ba3b9c185e86bc7dbf0a5939081d3626baa19fbb3306e36d1857530248a7b9bfc100bb
DIST ghc-bin-8.2.2-i686-pc-linux-gnu.tbz2 96638908 BLAKE2B b470f838e77330969f162196b0f1035fa764f5d123687fbf67c14323280bfe55216af0e16f8b79c62f290905d96abc8bfafee650f8d27c81608853e78329b2c9 SHA512 15b1525890477539878385efc15ce5f1cf2f126cc785c42923be958cabe3298cebe73526a2370cf4c630124160a7ca0f0f9062aebbf035dce807a0374eaddd14
diff --git a/dev-lang/ghc/files/ghc-8.10.2-revert-linker-rtsSymbols_more_linker_symbols.patch b/dev-lang/ghc/files/ghc-8.10.2-revert-linker-rtsSymbols_more_linker_symbols.patch
new file mode 100644
index 000000000000..eb30d9d9dd4c
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-8.10.2-revert-linker-rtsSymbols_more_linker_symbols.patch
@@ -0,0 +1,296 @@
+From fac083e7ac8a37b61a4082bbbca2848e52fd1bb2 Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben@smart-cactus.org>
+Date: Sun, 9 Aug 2020 09:15:16 -0400
+Subject: [PATCH] Revert "[linker/rtsSymbols] More linker symbols"
+
+This reverts commit aa2e5863699306920513b216f337de09e29b5bb8.
+---
+ rts/RtsSymbols.c | 224 ++++-------------------------------------------
+ 1 file changed, 17 insertions(+), 207 deletions(-)
+
+diff --git a/rts/RtsSymbols.c b/rts/RtsSymbols.c
+index d10a6900db..b2f90a892d 100644
+--- a/rts/RtsSymbols.c
++++ b/rts/RtsSymbols.c
+@@ -58,6 +58,7 @@
+ SymI_HasProto(signal_handlers) \
+ SymI_HasProto(stg_sig_install) \
+ SymI_HasProto(rtsTimerSignal) \
++ SymI_HasProto(atexit) \
+ SymI_NeedsDataProto(nocldstop)
+ #endif
+
+@@ -976,213 +977,29 @@
+ RTS_USER_SIGNALS_SYMBOLS \
+ RTS_INTCHAR_SYMBOLS
+
++
+ // 64-bit support functions in libgcc.a
+-// See https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html#Libgcc
+-#define RTS_LIBGCC_SYMBOLS_32 \
+- SymI_NeedsProto(__fixunsdfdi) \
+- /* 4 The GCC low-level runtime library */\
+- /* 4.1.1 Arithmetic functions */\
+- /* SymI_NeedsProto(__ashlsi3) */\
+- SymI_NeedsProto(__ashldi3) \
+- /* SymI_NeedsProto(__ashlti3) */\
+- /* These functions return the result of shifting a left by b bits. */\
+- /* SymI_NeedsProto(__ashrsi3) */\
+- SymI_NeedsProto(__ashrdi3) \
+- /* SymI_NeedsProto(__ashrti3) */\
+- /* These functions return the result of arithmetically shifting a right by b bits. */\
+- /* SymI_NeedsProto(__divsi3) */\
+- SymI_NeedsProto(__divdi3) \
+- /* SymI_NeedsProto(__divti3) */\
+- /* These functions return the quotient of the signed division of a and b. */\
+- /* SymI_NeedsProto(__lshrsi3) */ \
+- SymI_NeedsProto(__lshrdi3) \
+- /* SymI_NeedsProto(__lshrti3) */ \
+- /* These functions return the result of logically shifting a right by b bits. */\
+- /* SymI_NeedsProto(__modsi3) */ \
+- SymI_NeedsProto(__moddi3) \
+- /* SymI_NeedsProto(__modti3) */ \
+- /* These functions return the remainder of the signed division of a and b. */\
+- /* SymI_NeedsProto(__mulsi3) */ \
+- SymI_NeedsProto(__muldi3) \
+- /* SymI_NeedsProto(__multi3) */ \
+- /* These functions return the product of a and b. */\
+- SymI_NeedsProto(__negdi2) \
+- /* SymI_NeedsProto(__negti2) */ \
+- /* These functions return the negation of a. */\
+- /* SymI_NeedsProto(__udivsi3) */ \
+- SymI_NeedsProto(__udivdi3) \
+- /* SymI_NeedsProto(__udivti3) */ \
+- /* These functions return the quotient of the unsigned division of a and b. */\
+- SymI_NeedsProto(__udivmoddi4) \
+- /* SymI_NeedsProto(__udivmodti4) */ \
+- /* These functions calculate both the quotient and remainder of the unsigned division of a and b. The return value is the quotient, and the remainder is placed in variable pointed to by c. */\
+- /* SymI_NeedsProto(__umodsi3) */ \
+- SymI_NeedsProto(__umoddi3) \
+- /* SymI_NeedsProto(__umodti3) */ \
+- /* These functions return the remainder of the unsigned division of a and b. */\
+- /* 4.1.2 Comparison functions */\
+- /* The following functions implement integral comparisons. These functions implement a low-level compare, upon which the higher level comparison operators (such as less than and greater than or equal to) can be constructed. The returned values lie in the range zero to two, to allow the high-level operators to be implemented by testing the returned result using either signed or unsigned comparison. */\
+- SymI_NeedsProto(__cmpdi2) \
+- /* SymI_NeedsProto(__cmpti2) */ \
+- /* These functions perform a signed comparison of a and b. If a is less than b, they return 0; if a is greater than b, they return 2; and if a and b are equal they return 1. */\
+- SymI_NeedsProto(__ucmpdi2) \
+- /* SymI_NeedsProto(__ucmpti2) */ \
+- /* These functions perform an unsigned comparison of a and b. If a is less than b, they return 0; if a is greater than b, they return 2; and if a and b are equal they return 1. */\
+- /* 4.1.3 Trapping arithmetic functions */\
+- /* The following functions implement trapping arithmetic. These functions call the libc function abort upon signed arithmetic overflow. */\
+- SymI_NeedsProto(__absvsi2) \
+- SymI_NeedsProto(__absvdi2) \
+- /* These functions return the absolute value of a. */\
+- /* SymI_NeedsProto(__addvsi3) */ \
+- SymI_NeedsProto(__addvdi3) \
+- /* These functions return the sum of a and b; that is a + b. */\
+- /* SymI_NeedsProto(__mulvsi3) */ \
+- SymI_NeedsProto(__mulvdi3) \
+- /* The functions return the product of a and b; that is a * b. */\
+- SymI_NeedsProto(__negvsi2) \
+- SymI_NeedsProto(__negvdi2) \
+- /* These functions return the negation of a; that is -a. */\
+- /* SymI_NeedsProto(__subvsi3) */ \
+- SymI_NeedsProto(__subvdi3) \
+- /* These functions return the difference between b and a; that is a - b. */\
+- /* 4.1.4 Bit operations */\
+- SymI_NeedsProto(__clzsi2) \
+- SymI_NeedsProto(__clzdi2) \
+- /* SymI_NeedsProto(__clzti2) */ \
+- /* These functions return the number of leading 0-bits in a, starting at the most significant bit position. If a is zero, the result is undefined. */\
+- SymI_NeedsProto(__ctzsi2) \
+- SymI_NeedsProto(__ctzdi2) \
+- /* SymI_NeedsProto(__ctzti2) */ \
+- /* These functions return the number of trailing 0-bits in a, starting at the least significant bit position. If a is zero, the result is undefined. */\
+- SymI_NeedsProto(__ffsdi2) \
+- /* SymI_NeedsProto(__ffsti2) */ \
+- /* These functions return the index of the least significant 1-bit in a, or the value zero if a is zero. The least significant bit is index one. */\
+- SymI_NeedsProto(__paritysi2) \
+- SymI_NeedsProto(__paritydi2) \
+- /* SymI_NeedsProto(__parityti2) */\
+- /* These functions return the value zero if the number of bits set in a is even, and the value one otherwise. */\
+- SymI_NeedsProto(__popcountsi2) \
+- SymI_NeedsProto(__popcountdi2) \
+- /* SymI_NeedsProto(__popcountti2) */ \
+- /* These functions return the number of bits set in a. */\
+- SymI_NeedsProto(__bswapsi2) \
+- SymI_NeedsProto(__bswapdi2)
+-#define RTS_LIBGCC_SYMBOLS_aarch32 \
+- /* armv6l */\
+- /* TODO: should check for __ARM_EABI__ */\
+- SymI_NeedsProto(__aeabi_d2f) \
+- SymI_NeedsProto(__aeabi_d2iz) \
+- SymI_NeedsProto(__aeabi_d2lz) \
+- SymI_NeedsProto(__aeabi_d2uiz) \
+- SymI_NeedsProto(__aeabi_d2ulz) \
+- SymI_NeedsProto(__aeabi_dadd) \
+- SymI_NeedsProto(__aeabi_dcmpeq) \
+- SymI_NeedsProto(__aeabi_dcmpge) \
+- SymI_NeedsProto(__aeabi_dcmpgt) \
+- SymI_NeedsProto(__aeabi_dcmple) \
+- SymI_NeedsProto(__aeabi_dcmplt) \
+- SymI_NeedsProto(__aeabi_dcmpun) \
+- SymI_NeedsProto(__aeabi_ddiv) \
+- SymI_NeedsProto(__aeabi_dmul) \
+- SymI_NeedsProto(__aeabi_dneg) \
+- SymI_NeedsProto(__aeabi_dsub) \
+- SymI_NeedsProto(__aeabi_f2d) \
+- SymI_NeedsProto(__aeabi_f2iz) \
+- SymI_NeedsProto(__aeabi_f2lz) \
+- SymI_NeedsProto(__aeabi_f2uiz) \
+- SymI_NeedsProto(__aeabi_f2ulz) \
+- SymI_NeedsProto(__aeabi_fadd) \
+- SymI_NeedsProto(__aeabi_fcmpeq) \
+- SymI_NeedsProto(__aeabi_fcmpge) \
+- SymI_NeedsProto(__aeabi_fcmpgt) \
+- SymI_NeedsProto(__aeabi_fcmple) \
+- SymI_NeedsProto(__aeabi_fcmplt) \
+- SymI_NeedsProto(__aeabi_fcmpun) \
+- SymI_NeedsProto(__aeabi_fdiv) \
+- SymI_NeedsProto(__aeabi_fmul) \
+- SymI_NeedsProto(__aeabi_fneg) \
+- SymI_NeedsProto(__aeabi_fsub) \
+- SymI_NeedsProto(__aeabi_i2d) \
+- SymI_NeedsProto(__aeabi_i2f) \
+- SymI_NeedsProto(__aeabi_idiv) \
+- SymI_NeedsProto(__aeabi_idivmod) \
+- SymI_NeedsProto(__aeabi_l2d) \
+- SymI_NeedsProto(__aeabi_l2f) \
+- SymI_NeedsProto(__aeabi_lasr) \
+- SymI_NeedsProto(__aeabi_lcmp) \
+- SymI_NeedsProto(__aeabi_ldivmod) \
+- SymI_NeedsProto(__aeabi_llsl) \
+- SymI_NeedsProto(__aeabi_llsr) \
+- SymI_NeedsProto(__aeabi_lmul) \
+- SymI_NeedsProto(__aeabi_ui2d) \
+- SymI_NeedsProto(__aeabi_ui2f) \
+- SymI_NeedsProto(__aeabi_uidiv) \
+- SymI_NeedsProto(__aeabi_uidivmod) \
+- SymI_NeedsProto(__aeabi_ul2d) \
+- SymI_NeedsProto(__aeabi_ul2f) \
+- SymI_NeedsProto(__aeabi_ulcmp) \
+- SymI_NeedsProto(__aeabi_uldivmod)
+-#define RTS_LIBGCC_SYMBOLS_64 \
++#if defined(__GNUC__) && SIZEOF_VOID_P <= 4 && !defined(_ABIN32)
++#define RTS_LIBGCC_SYMBOLS \
++ SymI_NeedsProto(__divdi3) \
++ SymI_NeedsProto(__udivdi3) \
++ SymI_NeedsProto(__moddi3) \
++ SymI_NeedsProto(__umoddi3) \
++ SymI_NeedsProto(__muldi3) \
++ SymI_NeedsProto(__ashldi3) \
++ SymI_NeedsProto(__ashrdi3) \
++ SymI_NeedsProto(__lshrdi3) \
++ SymI_NeedsProto(__fixunsdfdi)
++#elif defined(__GNUC__) && SIZEOF_VOID_P == 8
++#define RTS_LIBGCC_SYMBOLS \
+ SymI_NeedsProto(__udivti3) \
+ SymI_NeedsProto(__umodti3)
+-
+-/* for aarch64 */
+-#define RTS_LIBGCC_SYMBOLS_aarch64 \
+- SymI_NeedsProto(__netf2) \
+- SymI_NeedsProto(__addtf3) \
+- SymI_NeedsProto(__subtf3) \
+- SymI_NeedsProto(__multf3) \
+- SymI_NeedsProto(__extenddftf2) \
+- SymI_NeedsProto(__fixtfsi) \
+- SymI_NeedsProto(__fixunstfsi) \
+- SymI_NeedsProto(__floatsitf) \
+- SymI_NeedsProto(__floatunsitf)
+-
+-#if defined(__GNUC__) && SIZEOF_VOID_P <= 4 && defined(arm_HOST_OS)
+-#define RTS_LIBGCC_SYMBOLS RTS_LIBGCC_SYMBOLS_32 RTS_LIBGCC_SYMBOLS_aarch32
+-#elif defined(__GNUC__) && SIZEOF_VOID_P <= 4 && !defined(_ABIN32)
+-#define RTS_LIBGCC_SYMBOLS RTS_LIBGCC_SYMBOLS_32
+-#elif defined(__GNUC__) && SIZEOF_VOID_P == 8 && defined(aarch64_HOST_OS)
+-#define RTS_LIBGCC_SYMBOLS RTS_LIBGCC_SYMBOLS_64 RTS_LIBGCC_SYMBOLS_aarch64
+-#elif defined(__GNUC__) && SIZEOF_VOID_P == 8
+-#define RTS_LIBGCC_SYMBOLS RTS_LIBGCC_SYMBOLS_64
+ #else
+ #define RTS_LIBGCC_SYMBOLS
+ #endif
+
+-#if !defined(mingw32_HOST_OS) && !defined(DYNAMIC) && (defined(_FORTIFY_SOURCE) || defined(__SSP__))
+-#define RTS_SSP_SYMBOLS \
+- SymI_NeedsProto(__stack_chk_guard) \
+- SymI_NeedsProto(__stack_chk_fail)
+-#else
+-#define RTS_SSP_SYMBOLS
+-#endif
+-#if !defined(DYNAMIC) && defined(linux_HOST_OS)
+-// we need these for static musl builds. However when
+-// linking shared objects (DLLs) this will fail, hence
+-// we do not include them when building with -DDYNAMIC
+-#define RTS_LINKER_SYMBOLS \
+- SymI_NeedsProto(__fini_array_start) \
+- SymI_NeedsProto(__fini_array_end)
+-#else
+-#define RTS_LINKER_SYMBOLS
+-#endif
+-
+-#if defined(darwin_HOST_OS) && defined(powerpc_HOST_ARCH)
+- // Symbols that don't have a leading underscore
+- // on Mac OS X. They have to receive special treatment,
+- // see machoInitSymbolsWithoutUnderscore()
+-#define RTS_MACHO_NOUNDERLINE_SYMBOLS \
+- SymI_NeedsProto(saveFP) \
+- SymI_NeedsProto(restFP)
+-#endif
+-
+ /* entirely bogus claims about types of these symbols */
+-/* to prevent a bit of define expansion, SymI_NeedsProto is a variadic
+- * macro. And we'll concat vvv with the __VA_ARGS__. This prevents
+- * vvv from getting macro expanded.
+- */
+-#define SymI_NeedsProto(vvv,...) extern void vvv ## __VA_ARGS__ (void);
++#define SymI_NeedsProto(vvv) extern void vvv(void);
+ #define SymI_NeedsDataProto(vvv) extern StgWord vvv[];
+ #if defined(COMPILING_WINDOWS_DLL)
+ #define SymE_HasProto(vvv) SymE_HasProto(vvv);
+@@ -1209,8 +1026,6 @@ RTS_DARWIN_ONLY_SYMBOLS
+ RTS_OPENBSD_ONLY_SYMBOLS
+ RTS_LIBGCC_SYMBOLS
+ RTS_LIBFFI_SYMBOLS
+-RTS_SSP_SYMBOLS
+-RTS_LINKER_SYMBOLS
+ #undef SymI_NeedsProto
+ #undef SymI_NeedsDataProto
+ #undef SymI_HasProto
+@@ -1230,7 +1045,7 @@ RTS_LINKER_SYMBOLS
+ #define SymE_HasDataProto(vvv) \
+ SymE_HasProto(vvv)
+
+-#define SymI_NeedsProto(vvv,...) SymI_HasProto(vvv ## __VA_ARGS__)
++#define SymI_NeedsProto(vvv) SymI_HasProto(vvv)
+ #define SymI_NeedsDataProto(vvv) SymI_HasDataProto(vvv)
+ #define SymE_NeedsProto(vvv) SymE_HasProto(vvv)
+ #define SymE_NeedsDataProto(vvv) SymE_HasDataProto(vvv)
+@@ -1251,8 +1066,6 @@ RTS_LINKER_SYMBOLS
+ #define SymI_HasProto_deprecated(vvv) \
+ { #vvv, (void*)0xBAADF00D, true },
+
+-void *RTS_DYNAMIC = NULL;
+-
+ RtsSymbolVal rtsSyms[] = {
+ RTS_SYMBOLS
+ RTS_RET_SYMBOLS
+@@ -1264,14 +1077,11 @@ RtsSymbolVal rtsSyms[] = {
+ RTS_LIBGCC_SYMBOLS
+ RTS_LIBFFI_SYMBOLS
+ SymI_HasDataProto(nonmoving_write_barrier_enabled)
+- RTS_SSP_SYMBOLS
+- RTS_LINKER_SYMBOLS
+ #if defined(darwin_HOST_OS) && defined(i386_HOST_ARCH)
+ // dyld stub code contains references to this,
+ // but it should never be called because we treat
+ // lazy pointers as nonlazy.
+ { "dyld_stub_binding_helper", (void*)0xDEADBEEF, false },
+ #endif
+- { "_DYNAMIC", (void*)(&RTS_DYNAMIC), false },
+ { 0, 0, false } /* sentinel */
+ };
+--
+2.25.4
+
diff --git a/dev-lang/ghc/ghc-7.10.3.ebuild b/dev-lang/ghc/ghc-7.10.3.ebuild
index 3baf85185f3f..590b6e0a913d 100644
--- a/dev-lang/ghc/ghc-7.10.3.ebuild
+++ b/dev-lang/ghc/ghc-7.10.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=5
@@ -405,7 +405,6 @@ src_prepare() {
pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
popd > /dev/null
diff --git a/dev-lang/ghc/ghc-7.8.4.ebuild b/dev-lang/ghc/ghc-7.8.4.ebuild
index dd6149e21e70..89b41d258710 100644
--- a/dev-lang/ghc/ghc-7.8.4.ebuild
+++ b/dev-lang/ghc/ghc-7.8.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=5
@@ -321,7 +321,6 @@ src_prepare() {
pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
popd > /dev/null
diff --git a/dev-lang/ghc/ghc-8.0.2.ebuild b/dev-lang/ghc/ghc-8.0.2.ebuild
index 8003bfbdd7a9..ede481d98eaf 100644
--- a/dev-lang/ghc/ghc-8.0.2.ebuild
+++ b/dev-lang/ghc/ghc-8.0.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=5
@@ -410,7 +410,6 @@ src_prepare() {
pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
popd > /dev/null
diff --git a/dev-lang/ghc/ghc-8.10.1.ebuild b/dev-lang/ghc/ghc-8.10.1.ebuild
index 9749ccd0b25d..1db40de34286 100644
--- a/dev-lang/ghc/ghc-8.10.1.ebuild
+++ b/dev-lang/ghc/ghc-8.10.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -426,7 +426,6 @@ src_prepare() {
pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
popd > /dev/null
diff --git a/dev-lang/ghc/ghc-8.10.2.ebuild b/dev-lang/ghc/ghc-8.10.2.ebuild
new file mode 100644
index 000000000000..fc819806ed06
--- /dev/null
+++ b/dev-lang/ghc/ghc-8.10.2.ebuild
@@ -0,0 +1,797 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# to make make a crosscompiler use crossdev and symlink ghc tree into
+# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} = ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+
+inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
+inherit multilib multiprocessing pax-utils toolchain-funcs prefix
+inherit check-reqs
+DESCRIPTION="The Glasgow Haskell Compiler"
+HOMEPAGE="https://www.haskell.org/ghc/"
+
+# we don't have any binaries yet
+arch_binaries=""
+
+BIN_PV=${PV}
+# sorted!
+#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
+#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
+#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )"
+arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
+#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
+#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
+#arch_binaries="$arch_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )"
+#arch_binaries="$arch_binaries ppc64? ( !big-endian? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-powerpc64le-unknown-linux-gnu.tbz2 ) )"
+#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
+arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )"
+
+# various ports:
+#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
+
+# 0 - yet
+yet_binary() {
+ case "${ARCH}" in
+ #alpha) return 0 ;;
+ #arm64) return 0 ;;
+ #arm) return 0 ;;
+ amd64) return 0 ;;
+ #ia64) return 0 ;;
+ #ppc) return 0 ;;
+ #ppc64)
+ # use big-endian && return 0
+ # return 0
+ # ;;
+ #sparc) return 0 ;;
+ x86) return 0 ;;
+ *) return 1 ;;
+ esac
+}
+
+GHC_PV=${PV}
+#GHC_PV=8.10.0.20200123 # uncomment only for -alpha, -beta, -rc ebuilds
+GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct
+
+SRC_URI="!binary? (
+ https://downloads.haskell.org/ghc/${PV/_/-}/${GHC_P}-src.tar.xz
+ test? ( https://downloads.haskell.org/ghc/${PV/_/-}/${GHC_P}-testsuite.tar.xz )
+)"
+S="${WORKDIR}"/${GHC_P}
+
+[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
+
+BUMP_LIBRARIES=(
+ # "hackage-name hackage-version"
+)
+
+LICENSE="BSD"
+SLOT="0/${PV}"
+KEYWORDS=""
+IUSE="big-endian doc elfutils ghcbootstrap ghcmakebinary +gmp numa profile test"
+IUSE+=" binary"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-lang/perl-5.6.1
+ dev-libs/gmp:0=
+ sys-libs/ncurses:0=[unicode]
+ elfutils? ( dev-libs/elfutils )
+ !ghcmakebinary? ( dev-libs/libffi:= )
+ numa? ( sys-process/numactl )
+"
+
+# This set of dependencies is needed to run
+# prebuilt ghc. We specifically avoid ncurses
+# dependency with:
+# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING
+PREBUILT_BINARY_DEPENDS="
+ !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) )
+"
+# This set of dependencies is needed to install
+# ghc[binary] in system. terminfo package is linked
+# against ncurses.
+PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
+ sys-libs/ncurses:0/6
+"
+
+RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
+
+DEPEND="${RDEPEND}
+ doc? ( app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-python/sphinx
+ >=dev-libs/libxslt-1.1.2 )
+ !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
+
+# we build binaries without profiling support
+REQUIRED_USE="
+ ?? ( ghcbootstrap binary )
+ ?? ( profile binary )
+"
+
+# haskell libraries built with cabal in configure mode, #515354
+QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+is_native() {
+ [[ ${CHOST} == ${CBUILD} ]] && [[ ${CHOST} == ${CTARGET} ]]
+}
+
+if ! is_crosscompile; then
+ PDEPEND="!ghcbootstrap? ( >=app-admin/haskell-updater-1.2 )"
+fi
+
+# returns tool prefix for crosscompiler.
+# Example:
+# CTARGET=armv7a-unknown-linux-gnueabi
+# CHOST=x86_64-pc-linux-gnu
+# "armv7a-unknown-linux-gnueabi-"
+# CTARGET=${CHOST}
+# ""
+# Used in tools and library prefix:
+# "${ED}"/usr/bin/$(cross)haddock
+# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
+
+cross() {
+ if is_crosscompile; then
+ echo "${CTARGET}-"
+ else
+ echo ""
+ fi
+}
+
+append-ghc-cflags() {
+ local persistent compile assemble link
+ local flag ghcflag
+
+ for flag in $*; do
+ case ${flag} in
+ persistent) persistent="yes";;
+ compile) compile="yes";;
+ assemble) assemble="yes";;
+ link) link="yes";;
+ *)
+ [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
+ [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
+ [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
+ [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
+ [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
+ [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
+ ;;
+ esac
+ done
+}
+
+# $1 - lib name (under libraries/)
+# $2 - lib version
+# example: bump_lib "transformers" "0.4.2.0"
+bump_lib() {
+ local pn=$1 pv=$2
+ local p=${pn}-${pv}
+ local f
+
+ einfo "Bumping ${pn} up to ${pv}"
+
+ for f in ghc.mk GNUmakefile; do
+ mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die
+ done
+ mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die
+ mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die
+}
+
+update_SRC_URI() {
+ local p pn pv
+ for p in "${BUMP_LIBRARIES[@]}"; do
+ set -- $p
+ pn=$1 pv=$2
+
+ SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz"
+ done
+}
+
+update_SRC_URI
+
+bump_libs() {
+ local p pn pv
+ for p in "${BUMP_LIBRARIES[@]}"; do
+ set -- $p
+ pn=$1 pv=$2
+
+ bump_lib "${pn}" "${pv}"
+ done
+}
+
+ghc_setup_cflags() {
+ # TODO: plumb CFLAGS and BUILD_CFLAGS to respective CONF_CC_OPTS_STAGE<N>
+ if ! is_native; then
+ export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
+ export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
+ einfo "Crosscompiling mode:"
+ einfo " CHOST: ${CHOST}"
+ einfo " CTARGET: ${CTARGET}"
+ einfo " CFLAGS: ${CFLAGS}"
+ einfo " LDFLAGS: ${LDFLAGS}"
+ einfo " prefix: $(cross)"
+ return
+ fi
+ # We need to be very careful with the CFLAGS we ask ghc to pass through to
+ # gcc. There are plenty of flags which will make gcc produce output that
+ # breaks ghc in various ways. The main ones we want to pass through are
+ # -mcpu / -march flags. These are important for arches like alpha & sparc.
+ # We also use these CFLAGS for building the C parts of ghc, ie the rts.
+ strip-flags
+ strip-unsupported-flags
+
+ # Cmm can't parse line numbers #482086
+ replace-flags -ggdb[3-9] -ggdb2
+
+ GHC_FLAGS=""
+ GHC_PERSISTENT_FLAGS=""
+ for flag in ${CFLAGS}; do
+ case ${flag} in
+
+ # Ignore extra optimisation (ghc passes -O to gcc anyway)
+ # -O2 and above break on too many systems
+ -O*) ;;
+
+ # Arch and ABI flags are what we're really after
+ -m*) append-ghc-cflags compile assemble ${flag};;
+
+ # Sometimes it's handy to see backtrace of RTS
+ # to get an idea what happens there
+ -g*) append-ghc-cflags compile ${flag};;
+
+ # Ignore all other flags, including all -f* flags
+ esac
+ done
+
+ for flag in ${LDFLAGS}; do
+ append-ghc-cflags link ${flag}
+ done
+
+ # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build.
+ # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported
+ # options to gcc.
+ if is_native; then
+ # prevent from failing to build unregisterised ghc:
+ # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
+ use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
+ fi
+}
+
+# substitutes string $1 to $2 in files $3 $4 ...
+relocate_path() {
+ local from=$1
+ local to=$2
+ shift 2
+ local file=
+ for file in "$@"
+ do
+ sed -i -e "s|$from|$to|g" \
+ "$file" || die "path relocation failed for '$file'"
+ done
+}
+
+# changes hardcoded ghc paths and updates package index
+# $1 - new absolute root path
+relocate_ghc() {
+ local to=$1 ghc_v=${BIN_PV}
+
+ # libdir for prebuilt binary and for current system may mismatch
+ # It does for prefix installation for example: bug #476998
+ local bin_ghc_prefix=${WORKDIR}/usr
+ local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
+ local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
+
+ # backup original script to use it later after relocation
+ local gp_back="${T}/ghc-pkg-${ghc_v}-orig"
+ cp "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
+
+ if [[ ${bin_libdir} != $(get_libdir) ]]; then
+ einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
+ # moving the dir itself is not strictly needed
+ # but then USE=binary would result in installing
+ # in '${bin_libdir}'
+ mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
+
+ relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
+ "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
+ "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
+ "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
+ "${WORKDIR}/usr/bin/hsc2hs" \
+ "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
+ "$gp_back" \
+ "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
+ fi
+
+ # Relocate from /usr to ${EPREFIX}/usr
+ relocate_path "/usr" "${to}/usr" \
+ "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
+ "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
+ "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
+ "${WORKDIR}/usr/bin/haddock-ghc-${ghc_v}" \
+ "${WORKDIR}/usr/bin/hp2ps" \
+ "${WORKDIR}/usr/bin/hpc" \
+ "${WORKDIR}/usr/bin/hsc2hs" \
+ "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
+ "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
+
+ # this one we will use to regenerate cache
+ # so it should point to current tree location
+ relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
+
+ if use prefix; then
+ hprefixify "${bin_libpath}"/${PN}*/settings
+ fi
+
+ # regenerate the binary package cache
+ "$gp_back" recache || die "failed to update cache after relocation"
+ rm "$gp_back"
+}
+
+ghc-check-reqs() {
+ # These are pessimistic values (slightly bigger than worst-case)
+ # Worst case is UNREG USE=profile ia64. See bug #611866 for some
+ # numbers on various arches.
+ CHECKREQS_DISK_BUILD=8G
+ CHECKREQS_DISK_USR=2G
+ # USE=binary roughly takes
+ use binary && CHECKREQS_DISK_BUILD=4G
+
+ "$@"
+}
+
+pkg_pretend() {
+ ghc-check-reqs check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ ghc-check-reqs check-reqs_pkg_setup
+
+ # quiet portage about prebuilt binaries
+ use binary && QA_PREBUILT="*"
+
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use ghcbootstrap; then
+ ewarn "You requested ghc bootstrapping, this is usually only used"
+ ewarn "by Gentoo developers to make binary .tbz2 packages."
+
+ [[ -z $(type -P ghc) ]] && \
+ die "Could not find a ghc to bootstrap with."
+ else
+ if ! yet_binary; then
+ eerror "Please try emerging with USE=ghcbootstrap and report build"
+ eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
+ die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
+ fi
+ fi
+}
+
+src_unpack() {
+ # Create the ${S} dir if we're using the binary version
+ use binary && mkdir "${S}"
+
+ # the Solaris and Darwin binaries from ghc (maeder) need to be
+ # unpacked separately, so prevent them from being unpacked
+ local ONLYA=${A}
+ case ${CHOST} in
+ *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;;
+ esac
+ unpack ${ONLYA}
+}
+
+src_prepare() {
+ ghc_setup_cflags
+
+ if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
+ # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
+ # See bug #313635.
+ sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
+ "${WORKDIR}/usr/bin/ghc-${BIN_PV}"
+
+ # allow hardened users use vanilla binary to bootstrap ghc
+ # ghci uses mmap with rwx protection at it implements dynamic
+ # linking on it's own (bug #299709)
+ pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${PN}-${BIN_PV}/bin/ghc"
+ fi
+
+ if use binary; then
+ if use prefix; then
+ relocate_ghc "${EPREFIX}"
+ fi
+
+ # Move unpacked files to the expected place
+ mv "${WORKDIR}/usr" "${S}"
+ eapply_user
+ else
+ if ! use ghcbootstrap; then
+ case ${CHOST} in
+ *-darwin* | *-solaris*)
+ # UPDATE ME for ghc-7
+ mkdir "${WORKDIR}"/ghc-bin-installer || die
+ pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
+ use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
+ use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
+ use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
+ popd > /dev/null
+
+ pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die
+ # fix the binaries so they run, on Solaris we need an
+ # LD_LIBRARY_PATH which has our prefix libdirs, on
+ # Darwin we need to replace the frameworks with our libs
+ # from the prefix fix before installation, because some
+ # of the tools are actually used during configure/make
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
+ elif [[ ${CHOST} == *-darwin* ]] ; then
+ local readline_framework=GNUreadline.framework/GNUreadline
+ local gmp_framework=/opt/local/lib/libgmp.10.dylib
+ local ncurses_file=/opt/local/lib/libncurses.5.dylib
+ for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
+ install_name_tool -change \
+ ${readline_framework} \
+ "${EPREFIX}"/lib/libreadline.dylib \
+ ${binary} || die
+ install_name_tool -change \
+ ${gmp_framework} \
+ "${EPREFIX}"/usr/lib/libgmp.dylib \
+ ${binary} || die
+ install_name_tool -change \
+ ${ncurses_file} \
+ "${EPREFIX}"/usr/lib/libncurses.dylib \
+ ${binary} || die
+ done
+ # we don't do frameworks!
+ sed -i \
+ -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
+ -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
+ rts/package.conf.in || die
+ fi
+
+ # it is autoconf, but we really don't want to give it too
+ # many arguments, in fact we do the make in-place anyway
+ ./configure --prefix="${WORKDIR}"/usr || die
+ make install || die
+ popd > /dev/null
+ ;;
+ *)
+ relocate_ghc "${WORKDIR}"
+ ;;
+ esac
+ fi
+
+ sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
+ "${S}/ghc/ghc.wrapper"
+
+ cd "${S}" # otherwise eapply will break
+
+ eapply "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
+ eapply "${FILESDIR}"/${PN}-8.2.1-darwin.patch
+ eapply "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
+ eapply "${FILESDIR}"/${PN}-8.8.1-revert-CPP.patch
+ eapply "${FILESDIR}"/${PN}-8.10.1-allow-cross-bootstrap.patch
+ eapply "${FILESDIR}"/${PN}-8.10.2-revert-linker-rtsSymbols_more_linker_symbols.patch
+
+ # a bunch of crosscompiler patches
+ # needs newer version:
+ #eapply "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch
+
+ # mingw32 target
+ pushd "${S}/libraries/Win32"
+ eapply "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-2-hack.patch # bad workaround
+ popd
+
+ bump_libs
+
+ eapply_user
+ # as we have changed the build system
+ eautoreconf
+ fi
+}
+
+src_configure() {
+ if ! use binary; then
+ # initialize build.mk
+ echo '# Gentoo changes' > mk/build.mk
+
+ # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
+ echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
+ echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
+
+ # We also need to use the GHC_FLAGS flags when building ghc itself
+ echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
+ echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
+ echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk
+ # Speed up initial Cabal bootstrap
+ echo "utils/ghc-cabal_dist_EXTRA_HC_OPTS+=$(ghc-make-args)" >> mk/build.mk
+
+ # We can't depend on haddock except when bootstrapping when we
+ # must build docs and include them into the binary .tbz2 package
+ # app-text/dblatex is not in portage, can not build PDF or PS
+ echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk
+ echo "BUILD_SPHINX_HTML = $(usex doc YES NO)" >> mk/build.mk
+ echo "BUILD_MAN = $(usex doc YES NO)" >> mk/build.mk
+
+ # this controls presence on 'xhtml' and 'haddock' in final install
+ echo "HADDOCK_DOCS = YES" >> mk/build.mk
+
+ # not used outside of ghc's test
+ if [[ -n ${GHC_BUILD_DPH} ]]; then
+ echo "BUILD_DPH = YES" >> mk/build.mk
+ else
+ echo "BUILD_DPH = NO" >> mk/build.mk
+ fi
+
+ # Any non-native build has to skip as it needs
+ # target haddock binary to be runnabine.
+ if ! is_native; then
+ # disable docs generation as it requires running stage2
+ echo "HADDOCK_DOCS=NO" >> mk/build.mk
+ echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk
+ echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
+ fi
+
+ if is_crosscompile; then
+ # Install ghc-stage1 crosscompiler instead of
+ # ghc-stage2 cross-built compiler.
+ echo "Stage1Only=YES" >> mk/build.mk
+ fi
+
+ # allows overriding build flavours for libraries:
+ # v - vanilla (static libs)
+ # p - profiled
+ # dyn - shared libraries
+ # example: GHC_LIBRARY_WAYS="v dyn"
+ if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
+ echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
+ fi
+ echo "BUILD_PROF_LIBS = $(usex profile YES NO)" >> mk/build.mk
+
+ # Get ghc from the unpacked binary .tbz2
+ # except when bootstrapping we just pick ghc up off the path
+ if ! use ghcbootstrap; then
+ export PATH="${WORKDIR}/usr/bin:${PATH}"
+ fi
+
+ echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk
+
+ # don't strip anything. Very useful when stage2 SIGSEGVs on you
+ echo "STRIP_CMD = :" >> mk/build.mk
+
+ local econf_args=()
+
+ # GHC embeds toolchain it was built by and uses it later.
+ # Don't allow things like ccache or versioned binary slip.
+ # We use stable thing across gcc upgrades.
+ # User can use EXTRA_ECONF=CC=... to override this default.
+ econf_args+=(
+ AR=${CTARGET}-ar
+ CC=${CTARGET}-gcc
+ # these should be inferred by GHC but ghc defaults
+ # to using bundled tools on windows.
+ Windres=${CTARGET}-windres
+ DllWrap=${CTARGET}-dllwrap
+ # we set the linker explicitly below
+ --disable-ld-override
+ )
+ case ${CTARGET} in
+ arm*)
+ # ld.bfd-2.28 does not work for ghc. Force ld.gold
+ # instead. This should be removed once gentoo gets
+ # a fix for R_ARM_COPY bug: https://sourceware.org/PR16177
+ econf_args+=(LD=${CTARGET}-ld.gold)
+ ;;
+ sparc*)
+ # ld.gold-2.28 does not work for ghc. Force ld.bfd
+ # instead. This should be removed once gentoo gets
+ # a fix for missing --no-relax support bug:
+ # https://sourceware.org/ml/binutils/2017-07/msg00183.html
+ econf_args+=(LD=${CTARGET}-ld.bfd)
+ ;;
+ *)
+ econf_args+=(LD=${CTARGET}-ld)
+ esac
+
+ if [[ ${CBUILD} != ${CHOST} ]]; then
+ # GHC bug: ghc claims not to support cross-building.
+ # It does, but does not distinct --host= value
+ # for stage1 and stage2 compiler.
+ econf_args+=(--host=${CBUILD})
+ fi
+
+ if use ghcmakebinary; then
+ # When building booting libary we are trying to
+ # bundle or restrict most of external depends
+ # with unstable ABI:
+ # - embed libffi (default GHC behaviour)
+ # - disable ncurses support for ghci (via haskeline)
+ # https://bugs.gentoo.org/557478
+ # - disable ncurses support for ghc-pkg
+ echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk
+ echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk
+ elif is_native; then
+ # using ${GTARGET}'s libffi is not supported yet:
+ # GHC embeds full path for ffi includes without /usr/${CTARGET} account.
+ econf_args+=(--with-system-libffi)
+ econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@'))
+ fi
+
+ einfo "Final mk/build.mk:"
+ cat mk/build.mk || die
+
+ econf ${econf_args[@]} \
+ --enable-bootstrap-with-devel-snapshot \
+ $(use_enable elfutils dwarf-unwind) \
+ $(use_enable numa)
+
+ if [[ ${PV} == *9999* ]]; then
+ GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
+ GHC_P=${PN}-${GHC_PV}
+ fi
+ fi # ! use binary
+}
+
+src_compile() {
+ if ! use binary; then
+ # Stage1Only crosscompiler does not build stage2
+ if ! is_crosscompile; then
+ # 1. build/pax-mark compiler binary first
+ emake ghc/stage2/build/tmp/ghc-stage2
+ # 2. pax-mark (bug #516430)
+ pax-mark -m ghc/stage2/build/tmp/ghc-stage2
+ # 2. build/pax-mark haddock using ghc-stage2
+ if is_native; then
+ # non-native build does not build haddock
+ # due to HADDOCK_DOCS=NO, but it could.
+ emake utils/haddock/dist/build/tmp/haddock
+ pax-mark -m utils/haddock/dist/build/tmp/haddock
+ fi
+ fi
+ # 3. and then all the rest
+ emake all
+ fi # ! use binary
+}
+
+src_test() {
+ # TODO: deal with:
+ # - sandbox (pollutes environment)
+ # - extra packages (to extend testsuite coverage)
+ # bits are taken from 'validate'
+ local make_test_target='test' # can be fulltest
+ # not 'emake' as testsuite uses '$MAKE' without jobserver available
+ make $make_test_target stage=2 THREADS=$(makeopts_jobs)
+}
+
+src_install() {
+ if use binary; then
+ use prefix && mkdir -p "${ED}"
+ mv "${S}/usr" "${ED}"
+ else
+ [[ -f VERSION ]] || emake VERSION
+
+ # -j1 due to a rare race in install script:
+ # make --no-print-directory -f ghc.mk phase=final install
+ # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 755 \
+ # -d "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404/include"
+ # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 644 utils/hsc2hs/template-hsc.h \
+ # "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404"
+ # /usr/bin/install: cannot create regular file \
+ # '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory
+ emake -j1 install DESTDIR="${D}"
+
+ # Skip for cross-targets as they all share target location:
+ # /usr/share/doc/ghc-9999/
+ if ! is_crosscompile; then
+ dodoc "distrib/README" "LICENSE" "VERSION"
+ fi
+
+ # rename ghc-shipped files to avoid collision
+ # of external packages. Motivating example:
+ # user had installed:
+ # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0)
+ # dev-haskell/transformers-0.4.2.0
+ # then user tried to update to
+ # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0)
+ # this will lead to single .conf file collision.
+ local shipped_conf renamed_conf
+ local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
+ for shipped_conf in "${package_confdir}"/*.conf; do
+ # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf'
+ renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf
+ mv "${shipped_conf}" "${renamed_conf}" || die
+ done
+
+ # remove link, but leave 'haddock-${GHC_P}'
+ rm -f "${ED}"/usr/bin/$(cross)haddock
+
+ if ! is_crosscompile; then
+ newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg
+ newbashcomp utils/completion/ghc.bash ghc
+ fi
+ fi
+
+ # path to the package.cache
+ local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
+ PKGCACHE="${package_confdir}"/package.cache
+ # copy the package.conf.d, including timestamp, save it so we can help
+ # users that have a broken package.conf.d
+ cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
+
+ # copy the package.conf, including timestamp, save it so we later can put it
+ # back before uninstalling, or when upgrading.
+ cp -p "${PKGCACHE}"{,.shipped} \
+ || die "failed to copy package.conf.d/package.cache"
+
+ if is_crosscompile; then
+ # When we build a cross-compiler the layout is the following:
+ # usr/lib/${CTARGET}-ghc-${VER}/ contains target libraries
+ # but
+ # usr/lib/${CTARGET}-ghc-${VER}/bin/ directory
+ # containst host binaries (modulo bugs).
+
+ # Portage's stripping mechanism does not skip stripping
+ # foreign binaries. This frequently causes binaries to be
+ # broken.
+ #
+ # Thus below we disable stripping of target libraries and allow
+ # stripping hosts executables.
+ dostrip -x "/usr/$(get_libdir)/$(cross)${GHC_P}"
+ dostrip "/usr/$(get_libdir)/$(cross)${GHC_P}/bin"
+ fi
+}
+
+pkg_preinst() {
+ # have we got an earlier version of ghc installed?
+ if has_version "<${CATEGORY}/${PF}"; then
+ haskell_updater_warn="1"
+ fi
+}
+
+pkg_postinst() {
+ ghc-reregister
+
+ # path to the package.cache
+ PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
+
+ # give the cache a new timestamp, it must be as recent as
+ # the package.conf.d directory.
+ touch "${PKGCACHE}"
+
+ if [[ "${haskell_updater_warn}" == "1" ]]; then
+ ewarn
+ ewarn "\e[1;31m************************************************************************\e[0m"
+ ewarn
+ ewarn "You have just upgraded from an older version of GHC."
+ ewarn "You may have to run"
+ ewarn " 'haskell-updater'"
+ ewarn "to rebuild all ghc-based Haskell libraries."
+ ewarn
+ ewarn "\e[1;31m************************************************************************\e[0m"
+ ewarn
+ fi
+}
+
+pkg_prerm() {
+ PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
+ rm -rf "${PKGCACHE}"
+
+ cp -p "${PKGCACHE}"{.shipped,}
+}
+
+pkg_postrm() {
+ ghc-package_pkg_postrm
+}
diff --git a/dev-lang/ghc/ghc-8.10.3.ebuild b/dev-lang/ghc/ghc-8.10.3.ebuild
new file mode 100644
index 000000000000..4b91c85afe92
--- /dev/null
+++ b/dev-lang/ghc/ghc-8.10.3.ebuild
@@ -0,0 +1,796 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# to make make a crosscompiler use crossdev and symlink ghc tree into
+# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} = ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+
+inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
+inherit multilib multiprocessing pax-utils toolchain-funcs prefix
+inherit check-reqs
+DESCRIPTION="The Glasgow Haskell Compiler"
+HOMEPAGE="https://www.haskell.org/ghc/"
+
+# we don't have any binaries yet
+arch_binaries=""
+
+BIN_PV=${PV}
+# sorted!
+#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
+#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
+#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )"
+arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
+#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
+#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
+#arch_binaries="$arch_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )"
+#arch_binaries="$arch_binaries ppc64? ( !big-endian? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-powerpc64le-unknown-linux-gnu.tbz2 ) )"
+#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
+arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )"
+
+# various ports:
+#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
+
+# 0 - yet
+yet_binary() {
+ case "${ARCH}" in
+ #alpha) return 0 ;;
+ #arm64) return 0 ;;
+ #arm) return 0 ;;
+ amd64) return 0 ;;
+ #ia64) return 0 ;;
+ #ppc) return 0 ;;
+ #ppc64)
+ # use big-endian && return 0
+ # return 0
+ # ;;
+ #sparc) return 0 ;;
+ x86) return 0 ;;
+ *) return 1 ;;
+ esac
+}
+
+GHC_PV=${PV}
+#GHC_PV=8.10.0.20200123 # uncomment only for -alpha, -beta, -rc ebuilds
+GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct
+
+SRC_URI="!binary? (
+ https://downloads.haskell.org/ghc/${PV/_/-}/${GHC_P}-src.tar.xz
+ test? ( https://downloads.haskell.org/ghc/${PV/_/-}/${GHC_P}-testsuite.tar.xz )
+)"
+S="${WORKDIR}"/${GHC_P}
+
+[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
+
+BUMP_LIBRARIES=(
+ # "hackage-name hackage-version"
+)
+
+LICENSE="BSD"
+SLOT="0/${PV}"
+#KEYWORDS="~amd64 ~x86"
+IUSE="big-endian doc elfutils ghcbootstrap ghcmakebinary +gmp numa profile test"
+IUSE+=" binary"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-lang/perl-5.6.1
+ dev-libs/gmp:0=
+ sys-libs/ncurses:0=[unicode]
+ elfutils? ( dev-libs/elfutils )
+ !ghcmakebinary? ( dev-libs/libffi:= )
+ numa? ( sys-process/numactl )
+"
+
+# This set of dependencies is needed to run
+# prebuilt ghc. We specifically avoid ncurses
+# dependency with:
+# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING
+PREBUILT_BINARY_DEPENDS="
+ !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) )
+"
+# This set of dependencies is needed to install
+# ghc[binary] in system. terminfo package is linked
+# against ncurses.
+PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
+ sys-libs/ncurses:0/6
+"
+
+RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
+
+DEPEND="${RDEPEND}
+ doc? ( app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-python/sphinx
+ >=dev-libs/libxslt-1.1.2 )
+ !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )"
+
+# we build binaries without profiling support
+REQUIRED_USE="
+ ?? ( ghcbootstrap binary )
+ ?? ( profile binary )
+"
+
+# haskell libraries built with cabal in configure mode, #515354
+QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+is_native() {
+ [[ ${CHOST} == ${CBUILD} ]] && [[ ${CHOST} == ${CTARGET} ]]
+}
+
+if ! is_crosscompile; then
+ PDEPEND="!ghcbootstrap? ( >=app-admin/haskell-updater-1.2 )"
+fi
+
+# returns tool prefix for crosscompiler.
+# Example:
+# CTARGET=armv7a-unknown-linux-gnueabi
+# CHOST=x86_64-pc-linux-gnu
+# "armv7a-unknown-linux-gnueabi-"
+# CTARGET=${CHOST}
+# ""
+# Used in tools and library prefix:
+# "${ED}"/usr/bin/$(cross)haddock
+# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
+
+cross() {
+ if is_crosscompile; then
+ echo "${CTARGET}-"
+ else
+ echo ""
+ fi
+}
+
+append-ghc-cflags() {
+ local persistent compile assemble link
+ local flag ghcflag
+
+ for flag in $*; do
+ case ${flag} in
+ persistent) persistent="yes";;
+ compile) compile="yes";;
+ assemble) assemble="yes";;
+ link) link="yes";;
+ *)
+ [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
+ [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
+ [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
+ [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
+ [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
+ [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
+ ;;
+ esac
+ done
+}
+
+# $1 - lib name (under libraries/)
+# $2 - lib version
+# example: bump_lib "transformers" "0.4.2.0"
+bump_lib() {
+ local pn=$1 pv=$2
+ local p=${pn}-${pv}
+ local f
+
+ einfo "Bumping ${pn} up to ${pv}"
+
+ for f in ghc.mk GNUmakefile; do
+ mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die
+ done
+ mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die
+ mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die
+}
+
+update_SRC_URI() {
+ local p pn pv
+ for p in "${BUMP_LIBRARIES[@]}"; do
+ set -- $p
+ pn=$1 pv=$2
+
+ SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz"
+ done
+}
+
+update_SRC_URI
+
+bump_libs() {
+ local p pn pv
+ for p in "${BUMP_LIBRARIES[@]}"; do
+ set -- $p
+ pn=$1 pv=$2
+
+ bump_lib "${pn}" "${pv}"
+ done
+}
+
+ghc_setup_cflags() {
+ # TODO: plumb CFLAGS and BUILD_CFLAGS to respective CONF_CC_OPTS_STAGE<N>
+ if ! is_native; then
+ export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
+ export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
+ einfo "Crosscompiling mode:"
+ einfo " CHOST: ${CHOST}"
+ einfo " CTARGET: ${CTARGET}"
+ einfo " CFLAGS: ${CFLAGS}"
+ einfo " LDFLAGS: ${LDFLAGS}"
+ einfo " prefix: $(cross)"
+ return
+ fi
+ # We need to be very careful with the CFLAGS we ask ghc to pass through to
+ # gcc. There are plenty of flags which will make gcc produce output that
+ # breaks ghc in various ways. The main ones we want to pass through are
+ # -mcpu / -march flags. These are important for arches like alpha & sparc.
+ # We also use these CFLAGS for building the C parts of ghc, ie the rts.
+ strip-flags
+ strip-unsupported-flags
+
+ # Cmm can't parse line numbers #482086
+ replace-flags -ggdb[3-9] -ggdb2
+
+ GHC_FLAGS=""
+ GHC_PERSISTENT_FLAGS=""
+ for flag in ${CFLAGS}; do
+ case ${flag} in
+
+ # Ignore extra optimisation (ghc passes -O to gcc anyway)
+ # -O2 and above break on too many systems
+ -O*) ;;
+
+ # Arch and ABI flags are what we're really after
+ -m*) append-ghc-cflags compile assemble ${flag};;
+
+ # Sometimes it's handy to see backtrace of RTS
+ # to get an idea what happens there
+ -g*) append-ghc-cflags compile ${flag};;
+
+ # Ignore all other flags, including all -f* flags
+ esac
+ done
+
+ for flag in ${LDFLAGS}; do
+ append-ghc-cflags link ${flag}
+ done
+
+ # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build.
+ # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported
+ # options to gcc.
+ if is_native; then
+ # prevent from failing to build unregisterised ghc:
+ # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
+ use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
+ fi
+}
+
+# substitutes string $1 to $2 in files $3 $4 ...
+relocate_path() {
+ local from=$1
+ local to=$2
+ shift 2
+ local file=
+ for file in "$@"
+ do
+ sed -i -e "s|$from|$to|g" \
+ "$file" || die "path relocation failed for '$file'"
+ done
+}
+
+# changes hardcoded ghc paths and updates package index
+# $1 - new absolute root path
+relocate_ghc() {
+ local to=$1 ghc_v=${BIN_PV}
+
+ # libdir for prebuilt binary and for current system may mismatch
+ # It does for prefix installation for example: bug #476998
+ local bin_ghc_prefix=${WORKDIR}/usr
+ local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
+ local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
+
+ # backup original script to use it later after relocation
+ local gp_back="${T}/ghc-pkg-${ghc_v}-orig"
+ cp "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
+
+ if [[ ${bin_libdir} != $(get_libdir) ]]; then
+ einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
+ # moving the dir itself is not strictly needed
+ # but then USE=binary would result in installing
+ # in '${bin_libdir}'
+ mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
+
+ relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
+ "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
+ "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
+ "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
+ "${WORKDIR}/usr/bin/hsc2hs" \
+ "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
+ "$gp_back" \
+ "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
+ fi
+
+ # Relocate from /usr to ${EPREFIX}/usr
+ relocate_path "/usr" "${to}/usr" \
+ "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
+ "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
+ "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
+ "${WORKDIR}/usr/bin/haddock-ghc-${ghc_v}" \
+ "${WORKDIR}/usr/bin/hp2ps" \
+ "${WORKDIR}/usr/bin/hpc" \
+ "${WORKDIR}/usr/bin/hsc2hs" \
+ "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
+ "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
+
+ # this one we will use to regenerate cache
+ # so it should point to current tree location
+ relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
+
+ if use prefix; then
+ hprefixify "${bin_libpath}"/${PN}*/settings
+ fi
+
+ # regenerate the binary package cache
+ "$gp_back" recache || die "failed to update cache after relocation"
+ rm "$gp_back"
+}
+
+ghc-check-reqs() {
+ # These are pessimistic values (slightly bigger than worst-case)
+ # Worst case is UNREG USE=profile ia64. See bug #611866 for some
+ # numbers on various arches.
+ CHECKREQS_DISK_BUILD=8G
+ CHECKREQS_DISK_USR=2G
+ # USE=binary roughly takes
+ use binary && CHECKREQS_DISK_BUILD=4G
+
+ "$@"
+}
+
+pkg_pretend() {
+ ghc-check-reqs check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ ghc-check-reqs check-reqs_pkg_setup
+
+ # quiet portage about prebuilt binaries
+ use binary && QA_PREBUILT="*"
+
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use ghcbootstrap; then
+ ewarn "You requested ghc bootstrapping, this is usually only used"
+ ewarn "by Gentoo developers to make binary .tbz2 packages."
+
+ [[ -z $(type -P ghc) ]] && \
+ die "Could not find a ghc to bootstrap with."
+ else
+ if ! yet_binary; then
+ eerror "Please try emerging with USE=ghcbootstrap and report build"
+ eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
+ die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
+ fi
+ fi
+}
+
+src_unpack() {
+ # Create the ${S} dir if we're using the binary version
+ use binary && mkdir "${S}"
+
+ # the Solaris and Darwin binaries from ghc (maeder) need to be
+ # unpacked separately, so prevent them from being unpacked
+ local ONLYA=${A}
+ case ${CHOST} in
+ *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;;
+ esac
+ unpack ${ONLYA}
+}
+
+src_prepare() {
+ ghc_setup_cflags
+
+ if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
+ # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
+ # See bug #313635.
+ sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
+ "${WORKDIR}/usr/bin/ghc-${BIN_PV}"
+
+ # allow hardened users use vanilla binary to bootstrap ghc
+ # ghci uses mmap with rwx protection at it implements dynamic
+ # linking on it's own (bug #299709)
+ pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${PN}-${BIN_PV}/bin/ghc"
+ fi
+
+ if use binary; then
+ if use prefix; then
+ relocate_ghc "${EPREFIX}"
+ fi
+
+ # Move unpacked files to the expected place
+ mv "${WORKDIR}/usr" "${S}"
+ eapply_user
+ else
+ if ! use ghcbootstrap; then
+ case ${CHOST} in
+ *-darwin* | *-solaris*)
+ # UPDATE ME for ghc-7
+ mkdir "${WORKDIR}"/ghc-bin-installer || die
+ pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
+ use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
+ use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
+ use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
+ popd > /dev/null
+
+ pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die
+ # fix the binaries so they run, on Solaris we need an
+ # LD_LIBRARY_PATH which has our prefix libdirs, on
+ # Darwin we need to replace the frameworks with our libs
+ # from the prefix fix before installation, because some
+ # of the tools are actually used during configure/make
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
+ elif [[ ${CHOST} == *-darwin* ]] ; then
+ local readline_framework=GNUreadline.framework/GNUreadline
+ local gmp_framework=/opt/local/lib/libgmp.10.dylib
+ local ncurses_file=/opt/local/lib/libncurses.5.dylib
+ for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
+ install_name_tool -change \
+ ${readline_framework} \
+ "${EPREFIX}"/lib/libreadline.dylib \
+ ${binary} || die
+ install_name_tool -change \
+ ${gmp_framework} \
+ "${EPREFIX}"/usr/lib/libgmp.dylib \
+ ${binary} || die
+ install_name_tool -change \
+ ${ncurses_file} \
+ "${EPREFIX}"/usr/lib/libncurses.dylib \
+ ${binary} || die
+ done
+ # we don't do frameworks!
+ sed -i \
+ -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
+ -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
+ rts/package.conf.in || die
+ fi
+
+ # it is autoconf, but we really don't want to give it too
+ # many arguments, in fact we do the make in-place anyway
+ ./configure --prefix="${WORKDIR}"/usr || die
+ make install || die
+ popd > /dev/null
+ ;;
+ *)
+ relocate_ghc "${WORKDIR}"
+ ;;
+ esac
+ fi
+
+ sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
+ "${S}/ghc/ghc.wrapper"
+
+ cd "${S}" # otherwise eapply will break
+
+ eapply "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
+ eapply "${FILESDIR}"/${PN}-8.2.1-darwin.patch
+ eapply "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
+ eapply "${FILESDIR}"/${PN}-8.8.1-revert-CPP.patch
+ eapply "${FILESDIR}"/${PN}-8.10.1-allow-cross-bootstrap.patch
+
+ # a bunch of crosscompiler patches
+ # needs newer version:
+ #eapply "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch
+
+ # mingw32 target
+ pushd "${S}/libraries/Win32"
+ eapply "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-2-hack.patch # bad workaround
+ popd
+
+ bump_libs
+
+ eapply_user
+ # as we have changed the build system
+ eautoreconf
+ fi
+}
+
+src_configure() {
+ if ! use binary; then
+ # initialize build.mk
+ echo '# Gentoo changes' > mk/build.mk
+
+ # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
+ echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
+ echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
+
+ # We also need to use the GHC_FLAGS flags when building ghc itself
+ echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
+ echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
+ echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk
+ # Speed up initial Cabal bootstrap
+ echo "utils/ghc-cabal_dist_EXTRA_HC_OPTS+=$(ghc-make-args)" >> mk/build.mk
+
+ # We can't depend on haddock except when bootstrapping when we
+ # must build docs and include them into the binary .tbz2 package
+ # app-text/dblatex is not in portage, can not build PDF or PS
+ echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk
+ echo "BUILD_SPHINX_HTML = $(usex doc YES NO)" >> mk/build.mk
+ echo "BUILD_MAN = $(usex doc YES NO)" >> mk/build.mk
+
+ # this controls presence on 'xhtml' and 'haddock' in final install
+ echo "HADDOCK_DOCS = YES" >> mk/build.mk
+
+ # not used outside of ghc's test
+ if [[ -n ${GHC_BUILD_DPH} ]]; then
+ echo "BUILD_DPH = YES" >> mk/build.mk
+ else
+ echo "BUILD_DPH = NO" >> mk/build.mk
+ fi
+
+ # Any non-native build has to skip as it needs
+ # target haddock binary to be runnabine.
+ if ! is_native; then
+ # disable docs generation as it requires running stage2
+ echo "HADDOCK_DOCS=NO" >> mk/build.mk
+ echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk
+ echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
+ fi
+
+ if is_crosscompile; then
+ # Install ghc-stage1 crosscompiler instead of
+ # ghc-stage2 cross-built compiler.
+ echo "Stage1Only=YES" >> mk/build.mk
+ fi
+
+ # allows overriding build flavours for libraries:
+ # v - vanilla (static libs)
+ # p - profiled
+ # dyn - shared libraries
+ # example: GHC_LIBRARY_WAYS="v dyn"
+ if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
+ echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
+ fi
+ echo "BUILD_PROF_LIBS = $(usex profile YES NO)" >> mk/build.mk
+
+ # Get ghc from the unpacked binary .tbz2
+ # except when bootstrapping we just pick ghc up off the path
+ if ! use ghcbootstrap; then
+ export PATH="${WORKDIR}/usr/bin:${PATH}"
+ fi
+
+ echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk
+
+ # don't strip anything. Very useful when stage2 SIGSEGVs on you
+ echo "STRIP_CMD = :" >> mk/build.mk
+
+ local econf_args=()
+
+ # GHC embeds toolchain it was built by and uses it later.
+ # Don't allow things like ccache or versioned binary slip.
+ # We use stable thing across gcc upgrades.
+ # User can use EXTRA_ECONF=CC=... to override this default.
+ econf_args+=(
+ AR=${CTARGET}-ar
+ CC=${CTARGET}-gcc
+ # these should be inferred by GHC but ghc defaults
+ # to using bundled tools on windows.
+ Windres=${CTARGET}-windres
+ DllWrap=${CTARGET}-dllwrap
+ # we set the linker explicitly below
+ --disable-ld-override
+ )
+ case ${CTARGET} in
+ arm*)
+ # ld.bfd-2.28 does not work for ghc. Force ld.gold
+ # instead. This should be removed once gentoo gets
+ # a fix for R_ARM_COPY bug: https://sourceware.org/PR16177
+ econf_args+=(LD=${CTARGET}-ld.gold)
+ ;;
+ sparc*)
+ # ld.gold-2.28 does not work for ghc. Force ld.bfd
+ # instead. This should be removed once gentoo gets
+ # a fix for missing --no-relax support bug:
+ # https://sourceware.org/ml/binutils/2017-07/msg00183.html
+ econf_args+=(LD=${CTARGET}-ld.bfd)
+ ;;
+ *)
+ econf_args+=(LD=${CTARGET}-ld)
+ esac
+
+ if [[ ${CBUILD} != ${CHOST} ]]; then
+ # GHC bug: ghc claims not to support cross-building.
+ # It does, but does not distinct --host= value
+ # for stage1 and stage2 compiler.
+ econf_args+=(--host=${CBUILD})
+ fi
+
+ if use ghcmakebinary; then
+ # When building booting libary we are trying to
+ # bundle or restrict most of external depends
+ # with unstable ABI:
+ # - embed libffi (default GHC behaviour)
+ # - disable ncurses support for ghci (via haskeline)
+ # https://bugs.gentoo.org/557478
+ # - disable ncurses support for ghc-pkg
+ echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk
+ echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk
+ elif is_native; then
+ # using ${GTARGET}'s libffi is not supported yet:
+ # GHC embeds full path for ffi includes without /usr/${CTARGET} account.
+ econf_args+=(--with-system-libffi)
+ econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@'))
+ fi
+
+ einfo "Final mk/build.mk:"
+ cat mk/build.mk || die
+
+ econf ${econf_args[@]} \
+ --enable-bootstrap-with-devel-snapshot \
+ $(use_enable elfutils dwarf-unwind) \
+ $(use_enable numa)
+
+ if [[ ${PV} == *9999* ]]; then
+ GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
+ GHC_P=${PN}-${GHC_PV}
+ fi
+ fi # ! use binary
+}
+
+src_compile() {
+ if ! use binary; then
+ # Stage1Only crosscompiler does not build stage2
+ if ! is_crosscompile; then
+ # 1. build/pax-mark compiler binary first
+ emake ghc/stage2/build/tmp/ghc-stage2
+ # 2. pax-mark (bug #516430)
+ pax-mark -m ghc/stage2/build/tmp/ghc-stage2
+ # 2. build/pax-mark haddock using ghc-stage2
+ if is_native; then
+ # non-native build does not build haddock
+ # due to HADDOCK_DOCS=NO, but it could.
+ emake utils/haddock/dist/build/tmp/haddock
+ pax-mark -m utils/haddock/dist/build/tmp/haddock
+ fi
+ fi
+ # 3. and then all the rest
+ emake all
+ fi # ! use binary
+}
+
+src_test() {
+ # TODO: deal with:
+ # - sandbox (pollutes environment)
+ # - extra packages (to extend testsuite coverage)
+ # bits are taken from 'validate'
+ local make_test_target='test' # can be fulltest
+ # not 'emake' as testsuite uses '$MAKE' without jobserver available
+ make $make_test_target stage=2 THREADS=$(makeopts_jobs)
+}
+
+src_install() {
+ if use binary; then
+ use prefix && mkdir -p "${ED}"
+ mv "${S}/usr" "${ED}"
+ else
+ [[ -f VERSION ]] || emake VERSION
+
+ # -j1 due to a rare race in install script:
+ # make --no-print-directory -f ghc.mk phase=final install
+ # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 755 \
+ # -d "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404/include"
+ # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 644 utils/hsc2hs/template-hsc.h \
+ # "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404"
+ # /usr/bin/install: cannot create regular file \
+ # '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory
+ emake -j1 install DESTDIR="${D}"
+
+ # Skip for cross-targets as they all share target location:
+ # /usr/share/doc/ghc-9999/
+ if ! is_crosscompile; then
+ dodoc "distrib/README" "LICENSE" "VERSION"
+ fi
+
+ # rename ghc-shipped files to avoid collision
+ # of external packages. Motivating example:
+ # user had installed:
+ # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0)
+ # dev-haskell/transformers-0.4.2.0
+ # then user tried to update to
+ # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0)
+ # this will lead to single .conf file collision.
+ local shipped_conf renamed_conf
+ local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
+ for shipped_conf in "${package_confdir}"/*.conf; do
+ # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf'
+ renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf
+ mv "${shipped_conf}" "${renamed_conf}" || die
+ done
+
+ # remove link, but leave 'haddock-${GHC_P}'
+ rm -f "${ED}"/usr/bin/$(cross)haddock
+
+ if ! is_crosscompile; then
+ newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg
+ newbashcomp utils/completion/ghc.bash ghc
+ fi
+ fi
+
+ # path to the package.cache
+ local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
+ PKGCACHE="${package_confdir}"/package.cache
+ # copy the package.conf.d, including timestamp, save it so we can help
+ # users that have a broken package.conf.d
+ cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
+
+ # copy the package.conf, including timestamp, save it so we later can put it
+ # back before uninstalling, or when upgrading.
+ cp -p "${PKGCACHE}"{,.shipped} \
+ || die "failed to copy package.conf.d/package.cache"
+
+ if is_crosscompile; then
+ # When we build a cross-compiler the layout is the following:
+ # usr/lib/${CTARGET}-ghc-${VER}/ contains target libraries
+ # but
+ # usr/lib/${CTARGET}-ghc-${VER}/bin/ directory
+ # containst host binaries (modulo bugs).
+
+ # Portage's stripping mechanism does not skip stripping
+ # foreign binaries. This frequently causes binaries to be
+ # broken.
+ #
+ # Thus below we disable stripping of target libraries and allow
+ # stripping hosts executables.
+ dostrip -x "/usr/$(get_libdir)/$(cross)${GHC_P}"
+ dostrip "/usr/$(get_libdir)/$(cross)${GHC_P}/bin"
+ fi
+}
+
+pkg_preinst() {
+ # have we got an earlier version of ghc installed?
+ if has_version "<${CATEGORY}/${PF}"; then
+ haskell_updater_warn="1"
+ fi
+}
+
+pkg_postinst() {
+ ghc-reregister
+
+ # path to the package.cache
+ PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
+
+ # give the cache a new timestamp, it must be as recent as
+ # the package.conf.d directory.
+ touch "${PKGCACHE}"
+
+ if [[ "${haskell_updater_warn}" == "1" ]]; then
+ ewarn
+ ewarn "\e[1;31m************************************************************************\e[0m"
+ ewarn
+ ewarn "You have just upgraded from an older version of GHC."
+ ewarn "You may have to run"
+ ewarn " 'haskell-updater'"
+ ewarn "to rebuild all ghc-based Haskell libraries."
+ ewarn
+ ewarn "\e[1;31m************************************************************************\e[0m"
+ ewarn
+ fi
+}
+
+pkg_prerm() {
+ PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
+ rm -rf "${PKGCACHE}"
+
+ cp -p "${PKGCACHE}"{.shipped,}
+}
+
+pkg_postrm() {
+ ghc-package_pkg_postrm
+}
diff --git a/dev-lang/ghc/ghc-8.2.1.ebuild b/dev-lang/ghc/ghc-8.2.1.ebuild
index 90df1309d8c9..aa2a45cf9624 100644
--- a/dev-lang/ghc/ghc-8.2.1.ebuild
+++ b/dev-lang/ghc/ghc-8.2.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=5
@@ -415,7 +415,6 @@ src_prepare() {
pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
popd > /dev/null
diff --git a/dev-lang/ghc/ghc-8.2.2.ebuild b/dev-lang/ghc/ghc-8.2.2.ebuild
index 83918fa3f684..1338261d87dc 100644
--- a/dev-lang/ghc/ghc-8.2.2.ebuild
+++ b/dev-lang/ghc/ghc-8.2.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -416,7 +416,6 @@ src_prepare() {
pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
popd > /dev/null
diff --git a/dev-lang/ghc/ghc-8.4.1.ebuild b/dev-lang/ghc/ghc-8.4.1.ebuild
index 49cb782a2def..0e86ec36e7d4 100644
--- a/dev-lang/ghc/ghc-8.4.1.ebuild
+++ b/dev-lang/ghc/ghc-8.4.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -416,7 +416,6 @@ src_prepare() {
pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
popd > /dev/null
diff --git a/dev-lang/ghc/ghc-8.4.2.ebuild b/dev-lang/ghc/ghc-8.4.2.ebuild
index 75e813607950..f6d8c953ac95 100644
--- a/dev-lang/ghc/ghc-8.4.2.ebuild
+++ b/dev-lang/ghc/ghc-8.4.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -419,7 +419,6 @@ src_prepare() {
pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
popd > /dev/null
diff --git a/dev-lang/ghc/ghc-8.4.3.ebuild b/dev-lang/ghc/ghc-8.4.3.ebuild
index 0c291814a785..58e642364d02 100644
--- a/dev-lang/ghc/ghc-8.4.3.ebuild
+++ b/dev-lang/ghc/ghc-8.4.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -419,7 +419,6 @@ src_prepare() {
pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
popd > /dev/null
diff --git a/dev-lang/ghc/ghc-8.6.4.ebuild b/dev-lang/ghc/ghc-8.6.4.ebuild
index 5a1785491a98..52d995e60819 100644
--- a/dev-lang/ghc/ghc-8.6.4.ebuild
+++ b/dev-lang/ghc/ghc-8.6.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -425,7 +425,6 @@ src_prepare() {
pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
popd > /dev/null
diff --git a/dev-lang/ghc/ghc-8.6.5.ebuild b/dev-lang/ghc/ghc-8.6.5.ebuild
index afbbcaccf02c..89e16a5acd9b 100644
--- a/dev-lang/ghc/ghc-8.6.5.ebuild
+++ b/dev-lang/ghc/ghc-8.6.5.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -430,7 +430,6 @@ src_prepare() {
pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
popd > /dev/null
diff --git a/dev-lang/ghc/ghc-8.8.1.ebuild b/dev-lang/ghc/ghc-8.8.1.ebuild
index ca9d69ec96c3..00ce56862619 100644
--- a/dev-lang/ghc/ghc-8.8.1.ebuild
+++ b/dev-lang/ghc/ghc-8.8.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -431,7 +431,6 @@ src_prepare() {
pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
popd > /dev/null
diff --git a/dev-lang/ghc/ghc-8.8.2.ebuild b/dev-lang/ghc/ghc-8.8.2.ebuild
index 9abdb5cf2423..61b81fb8fb23 100644
--- a/dev-lang/ghc/ghc-8.8.2.ebuild
+++ b/dev-lang/ghc/ghc-8.8.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -431,7 +431,6 @@ src_prepare() {
pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
popd > /dev/null
diff --git a/dev-lang/ghc/ghc-8.8.3.ebuild b/dev-lang/ghc/ghc-8.8.3.ebuild
index f59a40a4139e..eb0ede0ad7fe 100644
--- a/dev-lang/ghc/ghc-8.8.3.ebuild
+++ b/dev-lang/ghc/ghc-8.8.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -435,7 +435,6 @@ src_prepare() {
pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
popd > /dev/null
diff --git a/dev-lang/ghc/ghc-8.8.4.ebuild b/dev-lang/ghc/ghc-8.8.4.ebuild
index 5d1674fac8d9..0ad88139e259 100644
--- a/dev-lang/ghc/ghc-8.8.4.ebuild
+++ b/dev-lang/ghc/ghc-8.8.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -435,7 +435,6 @@ src_prepare() {
pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
- use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
popd > /dev/null
diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest
index 1ab9b22ace14..5adbdb1ef2d7 100644
--- a/dev-lang/go/Manifest
+++ b/dev-lang/go/Manifest
@@ -1,4 +1,2 @@
-DIST go1.14.12.src.tar.gz 22553834 BLAKE2B f2b3f750cc451c00376846962a5337c8e57aa9f4f737c7a8ab826772547ca0677bb3c6e52d004259f7e53d49efb013f645ce5223241fd29b35121149dc09a76c SHA512 cba26b97878d5bd57d75bd1541932786779ddb7e9fa0bfb7bf003c7ae9e7bee8318c0d2108ce918453b863892b8f562e481bd0ed6cfc44e43d901522603adff2
DIST go1.14.13.src.tar.gz 22553900 BLAKE2B 35aed1c43a59e06c1d5feaa91a6c4120c586958257cb3e4f83ab4e767159e20ae953d70bc0debabd80722bca0965d1b129531a2bd89f558df0a8700cadc09edc SHA512 b54a0bc3b85809a78d4704fe2e97ad7417a2027608ec0f90c2784e2ddb28b505df3cda862dc6f1b99af2d136363cbb9b120e2fd6ed985cb300c43f8e539a5e28
-DIST go1.15.5.src.tar.gz 23019303 BLAKE2B 549f0e9c4e22432db7a1c6e06724d6ada0ac90c09c0886d3053296390d85686df89bcaff86c703e8a2789119f670ffb2c6c11f4bf7e186c14a75896e8e6b8c6e SHA512 8e1d71f628d364b949b1e124af8950a563bbe9d9ae73b94c66af6ce029f67c26e2654556c0c118d0bc8566af52a7e9ed736b4667bbef7ccdab2bd338c43e6eb4
DIST go1.15.6.src.tar.gz 23019337 BLAKE2B d328401af9843f4a099dee7d82433ad2a0b349add0f2ecb609635814cca610e17a6fc50215e9928b8cb0d8ea8dd6ae9d84ffca125e1362dfb18ba08783bb4264 SHA512 f20e495204f32170d6554e8f4b64763dae8302a7859005020f650d1d53a5b15de3afbaff28e0b6418287396166c67bdc4c6bee7a0fd7ba8a87bb79b6c1d38326
diff --git a/dev-lang/go/go-1.14.12.ebuild b/dev-lang/go/go-1.14.12.ebuild
deleted file mode 100644
index 7c0569dd4b05..000000000000
--- a/dev-lang/go/go-1.14.12.ebuild
+++ /dev/null
@@ -1,203 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-
-MY_PV=${PV/_/}
-
-inherit toolchain-funcs
-
-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-linux ~x86-linux ~x64-macos ~x64-solaris"
- ;;
- esac
-esac
-
-DESCRIPTION="A concurrent garbage collected and typesafe programming language"
-HOMEPAGE="https://golang.org"
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-
-BDEPEND="|| (
- dev-lang/go
- dev-lang/go-bootstrap )"
-RDEPEND="!<dev-go/go-tools-0_pre20150902"
-
-# Do not complain about CFLAGS, etc, since Go doesn't use them.
-QA_FLAGS_IGNORED='.*'
-
-# 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) ]]
-}
-
-src_compile()
-{
- if has_version -b dev-lang/go; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
- elif has_version -b dev-lang/go-bootstrap; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
- else
- eerror "Go cannot be built without go or go-bootstrap installed"
- die "Should not be here, please report a bug"
- 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
-
- cd src
- bash -x ./make.bash || die "build failed"
-}
-
-src_test()
-{
- go_cross_compile && return 0
-
- cd src
- PATH="${GOBIN}:${PATH}" \
- ./run.bash -no-rebuild || die "tests failed"
- cd ..
- rm -fr pkg/*_race || die
- rm -fr pkg/obj/go-build || die
-}
-
-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
- # testdata directories are not needed on the installed system
- rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print)
- 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
-
- 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
-}
-
-pkg_postinst() {
- [[ -z ${REPLACING_VERSIONS} ]] && return
- has_version "<sys-apps/portage-3.0.9" && return
-
- einfo "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
- einfo "all packages compiled with previous versions of ${CATEGORY}/${PN}"
- einfo "due to the static linking nature of go."
- einfo "If this is not done, the packages compiled with the older"
- einfo "version of the compiler will not be updated until they are"
- einfo "updated individually, which could mean they will have"
- einfo "vulnerabilities."
- einfo "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
- einfo "See https://bugs.gentoo.org/752153 for more info"
-}
diff --git a/dev-lang/go/go-1.14.13-r1.ebuild b/dev-lang/go/go-1.14.13-r1.ebuild
index 6bb792691ce1..ebfb8c5bc2b5 100644
--- a/dev-lang/go/go-1.14.13-r1.ebuild
+++ b/dev-lang/go/go-1.14.13-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -21,7 +21,7 @@ case ${PV} in
case ${PV} in
*_beta*|*_rc*) ;;
*)
- KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc64 ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
+ KEYWORDS="-* amd64 arm arm64 ppc64 ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
;;
esac
esac
diff --git a/dev-lang/go/go-1.15.5.ebuild b/dev-lang/go/go-1.15.5.ebuild
deleted file mode 100644
index 7c0569dd4b05..000000000000
--- a/dev-lang/go/go-1.15.5.ebuild
+++ /dev/null
@@ -1,203 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-
-MY_PV=${PV/_/}
-
-inherit toolchain-funcs
-
-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-linux ~x86-linux ~x64-macos ~x64-solaris"
- ;;
- esac
-esac
-
-DESCRIPTION="A concurrent garbage collected and typesafe programming language"
-HOMEPAGE="https://golang.org"
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-
-BDEPEND="|| (
- dev-lang/go
- dev-lang/go-bootstrap )"
-RDEPEND="!<dev-go/go-tools-0_pre20150902"
-
-# Do not complain about CFLAGS, etc, since Go doesn't use them.
-QA_FLAGS_IGNORED='.*'
-
-# 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) ]]
-}
-
-src_compile()
-{
- if has_version -b dev-lang/go; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
- elif has_version -b dev-lang/go-bootstrap; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
- else
- eerror "Go cannot be built without go or go-bootstrap installed"
- die "Should not be here, please report a bug"
- 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
-
- cd src
- bash -x ./make.bash || die "build failed"
-}
-
-src_test()
-{
- go_cross_compile && return 0
-
- cd src
- PATH="${GOBIN}:${PATH}" \
- ./run.bash -no-rebuild || die "tests failed"
- cd ..
- rm -fr pkg/*_race || die
- rm -fr pkg/obj/go-build || die
-}
-
-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
- # testdata directories are not needed on the installed system
- rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print)
- 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
-
- 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
-}
-
-pkg_postinst() {
- [[ -z ${REPLACING_VERSIONS} ]] && return
- has_version "<sys-apps/portage-3.0.9" && return
-
- einfo "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
- einfo "all packages compiled with previous versions of ${CATEGORY}/${PN}"
- einfo "due to the static linking nature of go."
- einfo "If this is not done, the packages compiled with the older"
- einfo "version of the compiler will not be updated until they are"
- einfo "updated individually, which could mean they will have"
- einfo "vulnerabilities."
- einfo "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
- einfo "See https://bugs.gentoo.org/752153 for more info"
-}
diff --git a/dev-lang/go/go-1.15.6-r1.ebuild b/dev-lang/go/go-1.15.6-r1.ebuild
index 6bb792691ce1..ebfb8c5bc2b5 100644
--- a/dev-lang/go/go-1.15.6-r1.ebuild
+++ b/dev-lang/go/go-1.15.6-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -21,7 +21,7 @@ case ${PV} in
case ${PV} in
*_beta*|*_rc*) ;;
*)
- KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc64 ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
+ KEYWORDS="-* amd64 arm arm64 ppc64 ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
;;
esac
esac
diff --git a/dev-lang/hy/Manifest b/dev-lang/hy/Manifest
index 4e5aef2e7c8d..2af3a5fb0af3 100644
--- a/dev-lang/hy/Manifest
+++ b/dev-lang/hy/Manifest
@@ -1,4 +1 @@
-DIST hy-0.14.0.tar.gz 403692 BLAKE2B 4d20574151c443e002e365bceecc11b2bdcd7aa294073c58cba4ec8a958534c9f1256848ef57e4d5dd3ec345decaa53db43768a78af542ba8a59ff50489486b1 SHA512 a04da48592058b8ad3e7d2a787149622bfcf61c01a341ccc166c2e25e18ed7616b6567b529cf4f6d80a9cecf44aac175577ebf185c77e941a11a258f8563da9e
-DIST hy-0.15.0.tar.gz 411900 BLAKE2B 88a7500ecebacd7995aba1efbabead22ce656b1d6e275c5c726ce9b27746729344adfd35f2dfb4247c6d41101317eecfd98e0379e84f88ffea85bfaef2101797 SHA512 d4a08c7df494c5f9ae9a48e51b642cf8c30850209765fb80304132b57fb1133a839c82945662550d1417f4cae4e15f25da388be180143ed7b28fe8d5129844cc
-DIST hy-0.16.0.tar.gz 434727 BLAKE2B 05c490049355b496901aea70449e9c30a414bcdd7a5d4a430a672d424eeaa20845d58fd6967433058d4ab6b2969d5744bfdf5dd9cfe976888aeeb35d36a98f91 SHA512 ee9555a58a52bd894904fb0c4892a5c3f0a02b5ab45107ce6ed028840251cc8bd0b1c6264f0f1a345a63352c662861cf3b94049fd58f374dd2ca706ee89c2a4c
DIST hy-0.17.0.tar.gz 438729 BLAKE2B f699198a3181592dc0a1c12ecb85defce5ee592eb3c949635f37af36f39f452b081b18b46a122d515a7246d448c1710eedd8015a14f18dc074c61f0cfccecf8f SHA512 18601bf47df2120f8833a1ae211c416dc90825f31cd50b259adfe0585089a623d0fea13512b2935b093e14d8595c93bc1610939d5f1d664f6acf7ddf7e341542
diff --git a/dev-lang/hy/hy-0.14.0.ebuild b/dev-lang/hy/hy-0.14.0.ebuild
deleted file mode 100644
index f1f2d52824ce..000000000000
--- a/dev-lang/hy/hy-0.14.0.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-RESTRICT="test" # needs some pointy sticks. Seriously.
-PYTHON_COMPAT=( python3_{6,7,8,9,10} )
-
-inherit distutils-r1 eutils
-DESCRIPTION="A LISP dialect running in python"
-HOMEPAGE="https://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/flake8[${PYTHON_USEDEP}]
- >=dev-python/rply-0.7.5[${PYTHON_USEDEP}]
- >=dev-python/astor-0.6[${PYTHON_USEDEP}]
- >=dev-python/clint-0.4[${PYTHON_USEDEP}]
- "
-DEPEND="${RDEPEND}
- doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
- test? (
- dev-python/nose[${PYTHON_USEDEP}]
- dev-python/sphinx[${PYTHON_USEDEP}]
- )"
-src_prepare() {
- use doc && HTML_DOCS=( docs/_build/html/. )
-}
-
-python_compile_all() {
- use doc && emake docs
-}
-
-python_test() {
- nosetests || die "Tests failed under ${EPYTHON}"
-}
diff --git a/dev-lang/hy/hy-0.15.0.ebuild b/dev-lang/hy/hy-0.15.0.ebuild
deleted file mode 100644
index 888f0eb5af9f..000000000000
--- a/dev-lang/hy/hy-0.15.0.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-RESTRICT="test" # needs some pointy sticks. Seriously.
-PYTHON_COMPAT=( python3_{6,7,8,9,10} )
-
-inherit distutils-r1 eutils
-DESCRIPTION="A LISP dialect running in python"
-HOMEPAGE="https://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/hy/hy-0.16.0.ebuild b/dev-lang/hy/hy-0.16.0.ebuild
deleted file mode 100644
index 888f0eb5af9f..000000000000
--- a/dev-lang/hy/hy-0.16.0.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-RESTRICT="test" # needs some pointy sticks. Seriously.
-PYTHON_COMPAT=( python3_{6,7,8,9,10} )
-
-inherit distutils-r1 eutils
-DESCRIPTION="A LISP dialect running in python"
-HOMEPAGE="https://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/icon-9.5.1-r1.ebuild b/dev-lang/icon/icon-9.5.1-r1.ebuild
index 32195fca2339..08be5c9eb5db 100644
--- a/dev-lang/icon/icon-9.5.1-r1.ebuild
+++ b/dev-lang/icon/icon-9.5.1-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -13,7 +13,7 @@ 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"
+KEYWORDS="~alpha amd64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="X iplsrc"
S="${WORKDIR}/icon-v${MY_PV}src"
diff --git a/dev-lang/icon/icon-9.5.1-r2.ebuild b/dev-lang/icon/icon-9.5.1-r2.ebuild
index 184f1a88b2a4..454d81d448f1 100644
--- a/dev-lang/icon/icon-9.5.1-r2.ebuild
+++ b/dev-lang/icon/icon-9.5.1-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -13,7 +13,7 @@ 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"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="X iplsrc"
S="${WORKDIR}/icon-v${MY_PV}src"
diff --git a/dev-lang/icon/icon-9.5.20h.ebuild b/dev-lang/icon/icon-9.5.20h.ebuild
index f7dd4ed60b1a..9db24795069d 100644
--- a/dev-lang/icon/icon-9.5.20h.ebuild
+++ b/dev-lang/icon/icon-9.5.20h.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -12,7 +12,7 @@ SRC_URI="https://github.com/gtownsend/icon/archive/v${PV}.tar.gz -> ${P}.tar.gz"
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"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="X iplsrc"
S="${WORKDIR}/icon-${PV}"
diff --git a/dev-lang/julia-bin/Manifest b/dev-lang/julia-bin/Manifest
index 9db09b1200ba..a6a08a6ed55c 100644
--- a/dev-lang/julia-bin/Manifest
+++ b/dev-lang/julia-bin/Manifest
@@ -1,17 +1,10 @@
-DIST julia-1.2.0-freebsd-x86_64.tar.gz 82750080 BLAKE2B 2b95fedc8dbbc138c0794f42518cce280c62bb2442d6a0d53b809f21768497937b037e1e886cff19cb40d7a63f3e2ee8da0314250cab52e8b139724baff3ee91 SHA512 9c9af2e2346553ea5658ab5a9fe88539605774cd2737ac9bfb240b7fa3f9fd46f746d5dbdff2dd7405e8fbd33208c12a335b7d80cd0c78c62287ae5eb470fc8e
-DIST julia-1.2.0-linux-i686.tar.gz 87810731 BLAKE2B 1d72bf469f1dd3667ea00d038d18e20c10d9ceb579c61b2f30603bcd7ea55875423e4d54cbb774cfcc20044528f3ccd196131bb17cbaf7bf780fc5667c387e1e SHA512 ecd62047a0e36fe85a0442733949b19ca5d877fc2d2bced80566d1fcd6906345f66fb9114b6e687594e514b8c952d0352de5982f77f127e5196288431a1f64a9
-DIST julia-1.2.0-linux-x86_64.tar.gz 91990555 BLAKE2B 125313e7e53bddfcd64251fa2794e5b9d4bbbadb6100c1dc8f86039e13520859117f8ffcc2611d085805c9a80ad3544e88dd0e37803609e3b8b4097867fa8a5c SHA512 47e966d12204ffbefcdd8a60e850994df2247c37ee601f4147710d80e8e576672daaffe6d35d37fef644ea725f46d893832f096e24d938af856328299ad920d5
-DIST julia-1.3.0-freebsd-x86_64.tar.gz 86423604 BLAKE2B 5e36e49ebb708c4ec1c998b23861f69238b9bb2af337b0977df1a2de170869037577d422d3d2ddb359e537b9c75ba8cbe8e5963d42a832dba19f8bb4022a264d SHA512 b2c4a0e5ce379523ee606067d50b980fb9be6977f7d3d576b131183edfc72098be71bf0bede20d44f72ad7d0b414fe56eeaa67ca1cb47d36823721784da8526b
-DIST julia-1.3.0-linux-aarch64.tar.gz 78426016 BLAKE2B da758349e342a92194ff24e74dfb89ed9676bb97d8ffc15b80a305a5d75627b08a8939349b6de6aea294d64dd1386d1d24f5a8c793b368df38b86d06282222b7 SHA512 fa2a34aecbf83bd17f6ea24b55d30cfaab1916ea1c17b16271bbffaf93f430c262eb6d0ee9a9737a361a8dfad47126478ffa841c70cf9899e426607e12913e8b
-DIST julia-1.3.0-linux-armv7l.tar.gz 84672004 BLAKE2B e8d20943195a909d2db821f30df79f5020eb21ded179b795518db77772f5216fd04d88a7e21ef518b819349f6c3d5b681b1b7c7ff2ff2bf89a14d6ad48456f5f SHA512 2f6328a66f24aae0e6ed0ed5abb504805cf4a719a7ba30009966a1774f4e72630734c661c4de49cca37f5fa0fa766fa2eda29f01ee21ee3e2e3af81d2291f2dc
-DIST julia-1.3.0-linux-i686.tar.gz 90629130 BLAKE2B 027b045d71c209c3a935ac37d07fa89201d55b63e374038f5891fa751a87546aff63ffa0641f6b5041b4fbf1ed018cc6a809b56d3f732c134e3b98501fe92885 SHA512 fd772d0d3dbc11c357df26f980569315893a391604755e81421b6001b09e8e939f9a8e4bd0e0faa428fb4b08ac8f24a39bbe0875417630bf127d8b41324a9116
-DIST julia-1.3.0-linux-x86_64.tar.gz 95497903 BLAKE2B 2f67eb538c0277edaa97e95122bccf0f5822b7fc7a64a843aad7d421a22167de758a94011bf0e95a2b8b29c7d04e2b65451807bb36742206e88fcceab304f019 SHA512 4b286172622a2817378dae0720fa0a08d4f361b60adfb9685136fabc83d42bf439a22147051fb69d501e14947e42d2999ab081cfb3f60c44ee5d6a906758aaf3
-DIST julia-1.4.0-freebsd-x86_64.tar.gz 90034224 BLAKE2B 3150870a630c43d21520a52a9c009b777105f978f5b735c22ac1fa2a7599e30e09b1b7064149a83fedc52e7783b429e470358b82f21c51239b7761506269f066 SHA512 9f8cbe2065e05198f2a3edfdae17e2afa31c4a4c08ba4c3bcc31215ff6541c75a147009f87bd1028b6cdfac1f8616e07a948c8f8ee2586e61eacac53e33e3e87
-DIST julia-1.4.0-linux-aarch64.tar.gz 81685205 BLAKE2B 1a07a3ef94423d327e88b5cccb38360b23540806defeee1c64dc0656beee1b39008ca529e3d0cef7aab1e8947adb62fbbb1c6d248a0de2c63f3a5d14b3a5b684 SHA512 51b79e7b1fc85f67a26a595e84f88b656996cb8e14cd634076621b07690fc4f5d1ff1d71ce3a75243501bb7853bffda5d7428f03797570913cd3170dc13f651f
-DIST julia-1.4.0-linux-i686.tar.gz 94549552 BLAKE2B b058d81f55e7e579cff5b31054def68193be5032de02f09f6c4239e13bd73a630eee8ebd5f9ccd712f0e3be406932de51951202ec37b1534f20962db4eff5472 SHA512 f0363103713900a682fef900a745732714cd3dcbedbe2aa368afff768c24603241fc2f4be7419caf674e086f6cac59a8b14f3770e578959b7296cd5e26d6d5c9
-DIST julia-1.4.0-linux-x86_64.tar.gz 98969249 BLAKE2B bf0a79a8a8f1ed8c5668f2b2836414f8c0ae10199ee96eefea3d5bfefc0dde0902659556a572c3de6982477183d91f8e2f6d38f7334c50872f3257055a5310e3 SHA512 e2ac637d2bbe9ec4b900bc8f59263fdaa573cbe39ffbafd0e8280a5ba1906052f72816e4b5a12fab34f5b05ffd3f5cf95703c00d88f2f6ab6f022c3504cf1c95
DIST julia-1.5.2-freebsd-x86_64.tar.gz 95898744 BLAKE2B dddafa63acc943bfc06eeae3fa9a3ef9b7484b29b88d37bf064ded255c836678f5d02dec0f7fa788bb763894acae5c51937882ed0391dcf66792198fec7dbce7 SHA512 13e4d1a7e01cd759d64c8ec3d85501904439fde5a9e2cb394963a8977035cd33b241fab27bf0642b069f202ead1d6c84f633002df3b27c4aa60e7adf45a3a8b1
DIST julia-1.5.2-linux-aarch64.tar.gz 97088109 BLAKE2B 01aa5337cd1fc15655b596959cef8e54b56d8bb11fbced728df301a197aad550f0113b50c0b9e3cab34ea1082e176ced0398cde4e1d7c6d14a72b9a9cab937ea SHA512 09ac5360faae81eb9c78da5831d20f1f2d2c7a93561f6f2857015b579796a059cdecf529c283c9c37dd55163ce3e7b6cd175ee02734f1e11aa12f1163bd6587c
DIST julia-1.5.2-linux-i686.tar.gz 101473619 BLAKE2B a87cb4cb38236e87041fac1012841d5aed25383bfb212188f4c23f4a961654d8a3b03b85dd5563f83620aa98323e2d2692107eda47559cf9ae332006453a139d SHA512 2ceb56bcae051815d585d3f36b4ae323ad7a3e383e75c07d87cb555fc2463d1a6017fd120f52a1f7110b803bfa546a34e62e8958765b52124612782ac3daf403
DIST julia-1.5.2-linux-x86_64.tar.gz 105324048 BLAKE2B 410db75cb5b7ed269fd0d8f827773f50ff127ded3346e2f5fe908a1f9c0dd0f00b7600c5343853aaa0dfec3a616f657c52c96290f9c6ea012efcbc2a2b72e701 SHA512 5d14369b6296aa5fa0f7a58ce6b85dc25612ef508ee8dc1dcce7fe3a64de62b77daf419ea5d3a0a78345345787cb3ed563717ecc04df0c4d68b6d60593750f62
DIST julia-1.5.2-musl-x86_64.tar.gz 101730667 BLAKE2B 1b213a246779815b79f47e6c287f0c7eb438dce42bc9e3e39681dcc0818c7a8c81f7040443c06fd323adb693c96b61cc69099c5df375cae119020ba9d0bb11cd SHA512 5cfbf7938f50286077e132815e10ce4e1e5a589a772ae3b946488d3126713e72ba393e1a45b3bc38b5bc43fc183e7f99b622c8c0d9d939330b142cdee24fccb3
+DIST julia-1.5.3-freebsd-x86_64.tar.gz 95919875 BLAKE2B 620c295a3d0fa9a31ed01b936ddabd001cee621969f61a9165e03ebee05cd1384c62bccd95f4df15ba49f9d6feec16f05c367820c0907919f67809ca136b70bc SHA512 e767bfb3cef034262dc12e0da4006e80d20cc7c971906f5ad355c971e7c751830972a2f4aa47d18fc2a79eb5454f8f160c0c38d536510291690fa6e1da3c83a3
+DIST julia-1.5.3-linux-aarch64.tar.gz 97086173 BLAKE2B 5353a516f24c151d6213ed4c6e189a8ac68933012bcda06084b5e6c1f3a230ebca896b1e8dd29b345c312f323283b4f9045efcece655ef055a797cd5eefbd774 SHA512 0988e229dc9f44230af84796dfb059aa87809c6af5d0e8a7debc4b696e98c45ccc042f956f678819e71afe29d5619421106208c6dce5dfe47aea98482b22c1e3
+DIST julia-1.5.3-linux-i686.tar.gz 101362522 BLAKE2B aba1270fc85cc1afc19856768a39d1cf1c40fb32b676be5da47dc7747294299a044a5202c547d19ad8aa56060b04d7583d7e7c19176f2fdbcccb863593fffccb SHA512 0abaab22626cbd4da4a2389b2aca639f993aa442a8423cba2fda3d9693e0dab4f5b82592691ad74bb7ddf1ae48739406b61fe76b7da626a1f22fe01077b011d2
+DIST julia-1.5.3-linux-x86_64.tar.gz 105260711 BLAKE2B b132fbe090ca4a4cba518efcf2e475f0ceaebcbe2e5ef4eee33697909995ea58d97c3e5015b96eaf2ff23e5ff6b5b67eed62b94a34580961d5671c4f019d4847 SHA512 f0460da198797c92d39d361278be6959e90b2b3d08e070b705c1a5de3a17c0e6b0b010a397d0b02e613d060959fff14c074cf12fdeb956e8f8565989f084d86b
+DIST julia-1.5.3-musl-x86_64.tar.gz 101802400 BLAKE2B da69c1b4ff5bde8692c3fc9ed3d60fd655a32121a0e11a4d1f00b5e4494cc4bcdb0e323a2644cca3a291fa7f7604925d387204df90cc19fee89048c4ba83b2d5 SHA512 e98c74ce2a49532a491a46efe81a2edc85103f9ec04347fe6b052cffdaecadcecb48a02b15ad71853fff6ebb2281498000e89d44732f36d31b6252a1a88bd0a6
diff --git a/dev-lang/julia-bin/julia-bin-1.3.0.ebuild b/dev-lang/julia-bin/julia-bin-1.3.0.ebuild
deleted file mode 100644
index 00cad5f42072..000000000000
--- a/dev-lang/julia-bin/julia-bin-1.3.0.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-MY_PN=${PN/-bin/}
-MY_P=${MY_PN}-${PV}
-MY_PV=$(ver_cut 1-2)
-
-DESCRIPTION="High-performance programming language for technical computing"
-HOMEPAGE="https://julialang.org/"
-SRC_URI="
- x86? ( https://julialang-s3.julialang.org/bin/linux/x86/${MY_PV}/${MY_P}-linux-i686.tar.gz )
- amd64? ( https://julialang-s3.julialang.org/bin/linux/x64/${MY_PV}/${MY_P}-linux-x86_64.tar.gz )
- amd64-fbsd? ( https://julialang-s3.julialang.org/bin/freebsd/x64/${MY_PV}/${MY_P}-freebsd-x86_64.tar.gz )
- arm? ( https://julialang-s3.julialang.org/bin/linux/armv7l/${MY_PV}/${MY_P}-linux-armv7l.tar.gz )
- arm64? ( https://julialang-s3.julialang.org/bin/linux/aarch64/${MY_PV}/${MY_P}-linux-aarch64.tar.gz )
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="-* ~amd64 ~arm ~arm64 ~x86"
-IUSE="elibc_glibc elibc_FreeBSD"
-
-RDEPEND="!dev-lang/julia"
-DEPEND="${RDEPEND}"
-
-RESTRICT="strip"
-
-QA_PREBUILT="*"
-
-S="${WORKDIR}/${MY_P}"
-
-src_install() {
- insinto "/usr/$(get_libdir)/${MY_P}/"
- doins -r ./etc
- doins -r ./include
- doins -r ./lib
- doins -r ./share
-
- exeinto "/usr/$(get_libdir)/${MY_P}/bin"
- doexe bin/julia
-
- cat > 99julia-bin <<-EOF
- PATH="${EROOT}/usr/$(get_libdir)/${MY_P}/bin"
- EOF
- doenvd 99julia-bin
-}
diff --git a/dev-lang/julia-bin/julia-bin-1.4.0.ebuild b/dev-lang/julia-bin/julia-bin-1.4.0.ebuild
deleted file mode 100644
index e7387d094629..000000000000
--- a/dev-lang/julia-bin/julia-bin-1.4.0.ebuild
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-MY_PN=${PN/-bin/}
-MY_P=${MY_PN}-${PV}
-MY_PV=$(ver_cut 1-2)
-
-DESCRIPTION="High-performance programming language for technical computing"
-HOMEPAGE="https://julialang.org/"
-SRC_URI="
- x86? ( https://julialang-s3.julialang.org/bin/linux/x86/${MY_PV}/${MY_P}-linux-i686.tar.gz )
- amd64? ( https://julialang-s3.julialang.org/bin/linux/x64/${MY_PV}/${MY_P}-linux-x86_64.tar.gz )
- amd64-fbsd? ( https://julialang-s3.julialang.org/bin/freebsd/x64/${MY_PV}/${MY_P}-freebsd-x86_64.tar.gz )
- arm64? ( https://julialang-s3.julialang.org/bin/linux/aarch64/${MY_PV}/${MY_P}-linux-aarch64.tar.gz )
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="-* ~amd64 ~arm64 ~x86"
-IUSE="elibc_glibc elibc_FreeBSD"
-
-RDEPEND="!dev-lang/julia"
-DEPEND="${RDEPEND}"
-
-RESTRICT="strip"
-
-QA_PREBUILT="*"
-
-S="${WORKDIR}/${MY_P}"
-
-src_install() {
- insinto "/usr/$(get_libdir)/${MY_P}/"
- doins -r ./etc
- doins -r ./include
- doins -r ./lib
- doins -r ./share
-
- exeinto "/usr/$(get_libdir)/${MY_P}/bin"
- doexe bin/julia
-
- cat > 99julia-bin <<-EOF
- PATH="${EROOT}/usr/$(get_libdir)/${MY_P}/bin"
- EOF
- doenvd 99julia-bin
-}
diff --git a/dev-lang/julia-bin/julia-bin-1.5.2.ebuild b/dev-lang/julia-bin/julia-bin-1.5.2.ebuild
index acbc1acd341a..61861f476e93 100644
--- a/dev-lang/julia-bin/julia-bin-1.5.2.ebuild
+++ b/dev-lang/julia-bin/julia-bin-1.5.2.ebuild
@@ -30,6 +30,7 @@ DEPEND="${RDEPEND}"
RESTRICT="strip"
QA_PREBUILT="*"
+QA_SONAME="*"
S="${WORKDIR}/${MY_P}"
diff --git a/dev-lang/julia-bin/julia-bin-1.2.0.ebuild b/dev-lang/julia-bin/julia-bin-1.5.3.ebuild
index 848c6a2b7010..61861f476e93 100644
--- a/dev-lang/julia-bin/julia-bin-1.2.0.ebuild
+++ b/dev-lang/julia-bin/julia-bin-1.5.3.ebuild
@@ -3,20 +3,26 @@
EAPI=7
MY_PN=${PN/-bin/}
-MY_P=${MY_PN}-${PV}
+MY_P=${MY_PN}-${PV/_/-}
+MY_PV=$(ver_cut 1-2)
+BASE_SRC_URI="https://julialang-s3.julialang.org/bin"
DESCRIPTION="High-performance programming language for technical computing"
HOMEPAGE="https://julialang.org/"
SRC_URI="
- x86? ( https://julialang-s3.julialang.org/bin/linux/x86/1.2/${MY_P}-linux-i686.tar.gz )
- amd64? ( https://julialang-s3.julialang.org/bin/linux/x64/1.2/${MY_P}-linux-x86_64.tar.gz )
- amd64-fbsd? ( https://julialang-s3.julialang.org/bin/freebsd/x64/1.2/${MY_P}-freebsd-x86_64.tar.gz )
+ x86? ( ${BASE_SRC_URI}/linux/x86/${MY_PV}/${MY_P}-linux-i686.tar.gz )
+ amd64? (
+ elibc_glibc? ( ${BASE_SRC_URI}/linux/x64/${MY_PV}/${MY_P}-linux-x86_64.tar.gz )
+ elibc_musl? ( ${BASE_SRC_URI}/musl/x64/${MY_PV}/${MY_P}-musl-x86_64.tar.gz )
+ )
+ amd64-fbsd? ( ${BASE_SRC_URI}/freebsd/x64/${MY_PV}/${MY_P}-freebsd-x86_64.tar.gz )
+ arm64? ( ${BASE_SRC_URI}/linux/aarch64/${MY_PV}/${MY_P}-linux-aarch64.tar.gz )
"
LICENSE="MIT"
SLOT="0"
KEYWORDS="-* ~amd64 ~x86"
-IUSE="elibc_glibc elibc_FreeBSD"
+IUSE="elibc_glibc"
RDEPEND="!dev-lang/julia"
DEPEND="${RDEPEND}"
@@ -24,6 +30,7 @@ DEPEND="${RDEPEND}"
RESTRICT="strip"
QA_PREBUILT="*"
+QA_SONAME="*"
S="${WORKDIR}/${MY_P}"
diff --git a/dev-lang/julia/Manifest b/dev-lang/julia/Manifest
index bae9e89ef710..1bce6f6baf50 100644
--- a/dev-lang/julia/Manifest
+++ b/dev-lang/julia/Manifest
@@ -1,18 +1,10 @@
-DIST julia-1.2.0.tar.gz 8255435 BLAKE2B 286b7bd93cae247c545d9c384e244115f84daee977839022993e91c69013eb4107ac77d86f996ec7a8e9f863bf5cab29fb063437b822e5da79e72bc9e0db4b65 SHA512 c99b0b744508b43df4ee334f588dbb57a633969d7cb164d41b76d552c1d14f5ff6f06a8d0da7f7a48fd1e3a3b3c2379998c5af1bfdff4b0c17045132b82a40b8
-DIST julia-1.3.0.tar.gz 8793136 BLAKE2B e469d80c94e3b15b198011e62f591a699ec7218c755cf3e0c1be8f94e2a28e9800a10599a152f6865f534652d22f118bb14cd1886d257a96e6875562bce56f0c SHA512 c7fdc5c4435c82688fe608a7009ccee6d622f51a62578bf2323ad623acfd58bfb6ed1252f81481708b5b428c37292e078ce72b10df3fe32d29158b0726be2c2e
-DIST julia-1.4.0.tar.gz 7239281 BLAKE2B f11467cf91c2a72f03f77421537f4089bab6a1596ede27963551819453bea2a3a46cad9a43951df8857120a00a44f2f04eb5e23659ea4d1772feddb00ba85d2c SHA512 f8152a595f13932f6cad186cf2fdf2fb0bd64cc49bbb11a76d8299f4745ca6428823ead0e73a7bae1347f1b99bf1181d1f457587d13a7bfc7324ca81afc35cc1
DIST julia-1.5.2.tar.gz 6945862 BLAKE2B 9dd9f83fb9ae251f66ae65e14a252b662c3c7d6f92638d91ef6e286032020052e1812f2891270854e0ddeda474afff55c8f87d300550503c1093f4c5e0a51959 SHA512 aa177d03bbde4f368dd2fb14f64d21130531616bcd544af7babbb7fb7c9ee5ea7528c756e10f78468aaffebbcbc6f48e92397c1c13dc3f130b64a82e478f43dc
+DIST julia-1.5.3.tar.gz 6949901 BLAKE2B 08f8496980a9bbb9effc0c72cb6b7a5ce1dbd1774735caa366ddc1bb5404117111c624a639f6eb48360061f9fc597a7b37dff24f8555f03ebc4a22524cbeb3b8 SHA512 9e644a64fd6e2caf0390a2bc470084406c078244e65b70a2e3b031d5806c1dff780273ccccfe4bccfd8c03778b7d3a44de7a84bd13f3512afe6864efa5a730fc
DIST julia-Pkg-49908bffe83790bc7cf3c5d46faf3667f8902ad4.tar.gz 389738 BLAKE2B 1ed9201badf0a1db5142e0566bfe085b364e4681670937ac5fa53c15312ff8eb29d5e783b75fe3f4f379b041ba38c66ce94962fa7d98fcfd0b7b49acd1749d69 SHA512 a85aa80b3080794a8e3ae5ce54856e63457c461659c12fde5dde1b5ec33176ea06af49ee516d01ccd7b78d8358de2fe0ffcd5c6a6d5a5088cdcd76a0133780eb
DIST julia-UnicodeData-13.0.0.txt 1851767 BLAKE2B 72bbcf352f2f6a004abb3f351fe5da160e83644feea8de0ca154b5a1aa78f36cb04b252d0c7b64a5eeca388e600b2875bb76bc2746ee799a1a6eff97c1fe8b06 SHA512 1a4a662e2ab33469976bf5f91aa6933ed9b73f6d4179a2daffb349e1869d7d6cfa885b164e82d15dcdad7458cd451c81add58d875eb0c70de854589dc97b2055
-DIST julia-cacert-2020-01-01.pem 223687 BLAKE2B 29d2ce73380897a5841deef1c7eb5e61ff3f5c278ab95286bbfdf5b1c4d41ae94402dc5cb376975977f2d31030e0df872273942a1b6cc91b7ff35ecfd7efc1c2 SHA512 cc129ae1a4377a43a74b0854b6eccb2b315cdfce018142d1dd5524fb64c8945cde067cb18f366351fa7d6af3f9f36cf21bc1f626f987f9e4627878472ea59cde
DIST julia-dsfmt-2.2.3.tar.gz 291773 BLAKE2B 6ffae90494d72527920c80fc0fb005da1c7b84f8a03a7ecb0789434c0fff97359e5098e85431896dffccc7d5148c414e847aaba5feef648b8788421a466ff65e SHA512 6d8ddcd01aab3f9039f4f0288a8af53e290cc2f293ed8c4a8c9f3b3f12398e7eedfce8016117b425766ba89c61c86c13b3e420035b5f9bf91315b8b814c03662
-DIST julia-libgit2-b3e1a56ebb2b9291e82dc027ba9cbcfc3ead54d3.tar.gz 4981505 BLAKE2B b2a414690de2c8eea5247260d76a3ff447e4f925a3c749e88cb9bfe96d1e3086be04534801fdf9d1eb1f8d84c6a6dc0eb4b6401be311ed3d5391ec9d481b1dda SHA512 7384a7eeeb36ac79d4e7e1336546e48f8fc820653f887f944c3902fcaae4e59d855679b39c5279b7372995934e549e34c526e1459a82032206913f9747b3dd08
-DIST julia-libuv-2348256acf5759a544e5ca7935f638d2bc091d60.tar.gz 1555710 BLAKE2B 31ce57d23765c142799dd985a5511751d63238cf7e082fd1ad5574bf62201e9d6cb53b8da5dcc724765ccb4abd63da3ca6d6cbd45e078310c2ffa3859d09b8e4 SHA512 c8bf3c736a60feb0c6994aa7cd1b80e1a45bd6096aa66db320ddfc27b59a0797d303338ea75978619173e4f0a680254f3db29c9f6d1b84361030cc11c7729c98
+DIST julia-libuv-1fcc6d66f9df74189c74d3d390f02202bb7db953.tar.gz 1590342 BLAKE2B eca658f74421587aec78cb38f5a712033afb072e6425a6ce28fd5d4bac61e41cacbd5a850c1f2b29c386b944d1d9c4f16b7d090f7d2dd6b963b5dbc94ae18981 SHA512 70b0c738a60b4e476750b7de8d120e735359e2c36fcb3a8a38628a0ae326210ed3b15d793dfd5443d7aa5603e83e7d99f567aa4c1696846d950df9f83648669c
DIST julia-libuv-35b1504507a7a4168caae3d78db54d1121b121e1.tar.gz 1577394 BLAKE2B 8ab36f781619f710a64ddc6cf257a4c2f6d27ac22e33ed6f184902d0c6cc3a3941254e0a825071fcd57f869e3ccc5eaf71856539cf6b484358d5aafe383000a9 SHA512 5932e9105346e952fd0f51f79898e5b9c993261ec1558408437647ab3b3ce282562f1e0a16db5704cb66e7aa7a4c6a75dd7f0da498a98b1b6af48da88b4869f0
DIST julia-libwhich-81e9723c0273d78493dc8c8ed570f68d9ce7e89e.tar.gz 4183 BLAKE2B c932e23b1b476d3fd16cf6f451efd5fc6d9c1ec2c53e8ac086340a100817d9b30dae3eff50b284a42c09b2bbae30b9e2fd38b2881f8cbf4974a89f3bd0c87599 SHA512 6fb77b715d70d9bc95a8546c3bf97bd3677c7ea344b88bb5bc3bbfac9dceabe8a8cde7a0f64dec884cde802e4a3000e30837d3f824b5a9242348c4fe061526a3
DIST julia-utf8proc-0890a538bf8238cded9be0c81171f57e43f2c755.tar.gz 155521 BLAKE2B 32dc1a8fb641e89057d317e579f1802b7f7dfbdbea7f91c01b282b9a88c2fc6143743d5e45f46d6d465857cfe1b28bd39e9a0da19e80516536c57cb62b139d27 SHA512 95d6dba2bbdfc5003f6d21fd02c926c7db9661895010041aacee55fa11dc2524bcffaa90965e2a9a8f2a9e49e93ec7572d6a4de6d5d9f9e075b787537864ea20
-DIST julia-utf8proc-454f60150c7f023526d353e1e6b386f93ee0b116.tar.gz 154318 BLAKE2B 6173490aa458f300f29d6fc0f22b80ccff436f4c52df2ac54786a3f518a140ab6624cef0a7221c8e3800307c9b8490a604215fcb028001b1b95e7630b62ed85d SHA512 50a19aa56edc5c023611c40e75862f4c9c08e1bfad0bac9ec64413406cff8f409ff106a37f8c66202e563cbe3ae1d5a40036b14fd309651b50c30d3f205f08f5
-DIST julia-utf8proc-5c632c57426f2e4246e3b64dd2fd088d3920f9e5.tar.gz 154973 BLAKE2B 9696fae33c408abbddd2c5741a0c98b11474c7615d6610e53be919a3cce4a58f129de4ae36bb02636e94d1e57504103e8dd3a3faad3ce7c38e1dba0f513d2d47 SHA512 dec5d7e976bd808bc8edc39dda62b85ecb462b98b6059ace4acee27ec75f6839e0a2899a9baa225379ae5ffb5b568c63a666f52c9958075e5af0376f8a284534
-DIST llvm-6.0.1.src.tar.xz 25306628 BLAKE2B 60232d4d22f8096b565cc8d81fea0639f24f14e8fc4f66ade69fa15479181f07f655f26dff3fa24bf105762b495da316c5c9352db234bd0af6b9c3fff6d4d881 SHA512 cbbb00eb99cfeb4aff623ee1a5ba075e7b5a76fc00c5f9f539ff28c108598f5708a0369d5bd92683def5a20c2fe60cab7827b42d628dbfcc79b57e0e91b84dd9
-DIST llvm-8.0.1.src.tar.xz 30477608 BLAKE2B 4319c837b36111401e3b0f9659b8d875c89463bcc7816df1aefe1e3ff989860bbaa92504718f8e15416cfd9f3491c13777cd5cb661877b237b342b0e515b93f5 SHA512 82e120be5cabdfd5111aebbea68a663fe229c8861d73802d6ab09a3bf48f60de333e07e61f8fb61beaa14ac2bea24fcd74fa6f761acaf62469f536b79fcb1e16
DIST llvm-9.0.1.src.tar.xz 33035112 BLAKE2B 5ae7ac42507cb14983eec0785dfc9b9c788cae75d5493ddf6734da55d3733cc90e35634aa39aa536654d4b68c3ccb7c2f989746f21c634c8989a57d9d32a15b2 SHA512 bfb6960a4dd1e18f4005f324f478a781c69e8ec7c20569d9b243fcb9372dc7733b254f26c683373537990cc9c109c78eaf0f65449629ee17caca1bce9b9ccccd
diff --git a/dev-lang/julia/julia-1.2.0.ebuild b/dev-lang/julia/julia-1.2.0.ebuild
deleted file mode 100644
index cf072ca65b33..000000000000
--- a/dev-lang/julia/julia-1.2.0.ebuild
+++ /dev/null
@@ -1,200 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-RESTRICT="test"
-
-inherit pax-utils toolchain-funcs
-
-MY_PV="${PV//_rc/-rc}"
-MY_LIBUV_V="2348256acf5759a544e5ca7935f638d2bc091d60"
-MY_UTF8PROC_V="454f60150c7f023526d353e1e6b386f93ee0b116"
-MY_LIBWHICH_V="81e9723c0273d78493dc8c8ed570f68d9ce7e89e"
-MY_DSFMT_V="2.2.3"
-MY_LLVM="6.0.1"
-
-DESCRIPTION="High-performance programming language for technical computing"
-HOMEPAGE="https://julialang.org/"
-SRC_URI="
- https://github.com/JuliaLang/${PN}/releases/download/v${MY_PV}/${PN}-${MY_PV}.tar.gz
- https://api.github.com/repos/JuliaLang/libuv/tarball/${MY_LIBUV_V} -> ${PN}-libuv-${MY_LIBUV_V}.tar.gz
- https://api.github.com/repos/JuliaLang/utf8proc/tarball/${MY_UTF8PROC_V} -> ${PN}-utf8proc-${MY_UTF8PROC_V}.tar.gz
- https://api.github.com/repos/vtjnash/libwhich/tarball/${MY_LIBWHICH_V} -> ${PN}-libwhich-${MY_LIBWHICH_V}.tar.gz
- http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${MY_DSFMT_V}.tar.gz -> ${PN}-dsfmt-${MY_DSFMT_V}.tar.gz
- http://releases.llvm.org/${MY_LLVM}/llvm-${MY_LLVM}.src.tar.xz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-RDEPEND+="
- dev-libs/double-conversion:0=
- dev-libs/gmp:0=
- dev-libs/libgit2:0=
- >=dev-libs/libpcre2-10.23:0=[jit]
- dev-libs/mpfr:0=
- dev-libs/openspecfun
- sci-libs/amd:0=
- sci-libs/arpack:0=
- sci-libs/camd:0=
- sci-libs/ccolamd:0=
- sci-libs/cholmod:0=
- sci-libs/colamd:0=
- sci-libs/fftw:3.0=[threads]
- sci-libs/openlibm:0=
- sci-libs/spqr:0=
- sci-libs/umfpack:0=
- sci-mathematics/glpk:0=
- >=sys-libs/libunwind-1.1:0=
- sys-libs/readline:0=
- sys-libs/zlib:0=
- >=virtual/blas-3.6
- virtual/lapack"
-
-DEPEND="${RDEPEND}
- dev-vcs/git
- dev-util/patchelf
- virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.1.0-fix_build_system.patch
- "${FILESDIR}"/${PN}-1.1.0-fix_llvm_install.patch
-)
-
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-src_unpack() {
- tounpack=(${A})
- # the main source tree, followed by deps
- unpack "${A/%\ */}"
-
- mkdir -p "${S}/deps/srccache/"
- for i in "${tounpack[@]:1}"; do
- cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die
- done
-}
-
-src_prepare() {
- default
-
- # Sledgehammer:
- # - prevent fetching of bundled stuff in compile and install phase
- # - respect CFLAGS
- # - respect EPREFIX and Gentoo specific paths
- # - fix BLAS and LAPACK link interface
-
- sed -i \
- -e 's|git submodule|${EPREFIX}/bin/true|g' \
- -e "s|GENTOOCFLAGS|${CFLAGS}|g" \
- -e "s|/usr/include|${EPREFIX}/usr/include|g" \
- deps/Makefile || die
-
- local libblas="$($(tc-getPKG_CONFIG) --libs-only-l blas)"
- libblas="${libblas%% *}"
- libblas="lib${libblas#-l}"
- local liblapack="$($(tc-getPKG_CONFIG) --libs-only-l lapack)"
- liblapack="${liblapack%% *}"
- liblapack="lib${liblapack#-l}"
-
- sed -i \
- -e "s|GENTOOCFLAGS|${CFLAGS}|g" \
- -e "s|GENTOOLIBDIR|$(get_libdir)|" \
- -e "s|^JULIA_COMMIT = .*|JULIA_COMMIT = v${PV}|" \
- -e "s|-lblas|$($(tc-getPKG_CONFIG) --libs blas)|" \
- -e "s|= libblas|= ${libblas}|" \
- -e "s|-llapack|$($(tc-getPKG_CONFIG) --libs lapack)|" \
- -e "s|= liblapack|= ${liblapack}|" \
- Make.inc || die
-
- sed -i \
- -e "s|,lib)|,$(get_libdir))|g" \
- -e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|g" \
- Makefile || die
-
- sed -i \
- -e "s|ar -rcs|$(tc-getAR) -rcs|g" \
- src/Makefile || die
-
- # disable doc install starting git fetching
- sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die
-}
-
-src_configure() {
- # julia does not play well with the system versions of dsfmt, libuv,
- # and utf8proc
-
- # USE_SYSTEM_LIBM=0 implies using external openlibm
- cat <<-EOF > Make.user
- USE_SYSTEM_ARPACK:=1
- USE_SYSTEM_BLAS:=1
- USE_SYSTEM_DSFMT:=0
- USE_SYSTEM_GMP:=1
- USE_SYSTEM_GRISU:=1
- USE_SYSTEM_LAPACK:=1
- USE_SYSTEM_LIBGIT2:=1
- USE_SYSTEM_LIBM:=0
- USE_SYSTEM_LIBUNWIND:=1
- USE_SYSTEM_LIBUV:=0
- USE_SYSTEM_LLVM:=0
- USE_SYSTEM_MPFR:=1
- USE_SYSTEM_OPENLIBM:=1
- USE_SYSTEM_OPENSPECFUN:=1
- USE_SYSTEM_PATCHELF:=1
- USE_SYSTEM_PCRE:=1
- USE_SYSTEM_READLINE:=1
- USE_SYSTEM_RMATH:=0
- USE_SYSTEM_SUITESPARSE:=1
- USE_SYSTEM_UTF8PROC:=0
- USE_SYSTEM_ZLIB=1
- VERBOSE=1
- libdir="${EROOT}/usr/$(get_libdir)"
- EOF
-
-}
-
-src_compile() {
-
- # Julia accesses /proc/self/mem on Linux
- addpredict /proc/self/mem
-
- emake cleanall
- emake julia-release \
- prefix="${EPREFIX}/usr" DESTDIR="${D}" \
- CC="$(tc-getCC)" CXX="$(tc-getCXX)" \
- USE_BINARYBUILDER=0
- pax-mark m $(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')
- emake USE_BINARYBUILDER=0
-}
-
-src_test() {
- emake test
-}
-
-src_install() {
- # Julia is special. It tries to find a valid git repository (that would
- # normally be cloned during compilation/installation). Just make it
- # happy...
- git init && \
- git config --local user.email "whatyoudoing@example.com" && \
- git config --local user.name "Whyyyyyy" && \
- git commit -a --allow-empty -m "initial" || die "git failed"
-
- emake install \
- prefix="${EPREFIX}/usr" DESTDIR="${D}" \
- CC="$(tc-getCC)" CXX="$(tc-getCXX)" \
- USE_BINARYBUILDER=0
- cat > 99julia <<-EOF
- LDPATH=${EROOT}/usr/$(get_libdir)/julia
- EOF
- doenvd 99julia
-
- dodoc README.md
-
- mv "${ED}"/usr/etc/julia "${ED}"/etc || die
- rmdir "${ED}"/usr/etc || die
- mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/${PF} || die
- rmdir "${ED}"/usr/share/doc/julia || die
-}
diff --git a/dev-lang/julia/julia-1.3.0.ebuild b/dev-lang/julia/julia-1.3.0.ebuild
deleted file mode 100644
index 8f63c97d7e5f..000000000000
--- a/dev-lang/julia/julia-1.3.0.ebuild
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-RESTRICT="test"
-
-inherit pax-utils toolchain-funcs
-
-MY_PV="${PV//_rc/-rc}"
-MY_LIBUV_V="35b1504507a7a4168caae3d78db54d1121b121e1"
-MY_UTF8PROC_V="5c632c57426f2e4246e3b64dd2fd088d3920f9e5"
-MY_LIBWHICH_V="81e9723c0273d78493dc8c8ed570f68d9ce7e89e"
-MY_DSFMT_V="2.2.3"
-MY_LLVM="6.0.1"
-
-DESCRIPTION="High-performance programming language for technical computing"
-HOMEPAGE="https://julialang.org/"
-SRC_URI="
- https://github.com/JuliaLang/${PN}/releases/download/v${MY_PV}/${PN}-${MY_PV}.tar.gz
- https://api.github.com/repos/JuliaLang/libuv/tarball/${MY_LIBUV_V} -> ${PN}-libuv-${MY_LIBUV_V}.tar.gz
- https://api.github.com/repos/JuliaLang/utf8proc/tarball/${MY_UTF8PROC_V} -> ${PN}-utf8proc-${MY_UTF8PROC_V}.tar.gz
- https://api.github.com/repos/vtjnash/libwhich/tarball/${MY_LIBWHICH_V} -> ${PN}-libwhich-${MY_LIBWHICH_V}.tar.gz
- http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${MY_DSFMT_V}.tar.gz -> ${PN}-dsfmt-${MY_DSFMT_V}.tar.gz
- http://releases.llvm.org/${MY_LLVM}/llvm-${MY_LLVM}.src.tar.xz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-RDEPEND+="
- dev-libs/double-conversion:0=
- dev-libs/gmp:0=
- dev-libs/libgit2:0=
- >=dev-libs/libpcre2-10.23:0=[jit]
- dev-libs/mpfr:0=
- dev-libs/openspecfun
- >=net-libs/mbedtls-2.2
- net-libs/libssh2
- sci-libs/amd:0=
- sci-libs/arpack:0=
- sci-libs/camd:0=
- sci-libs/ccolamd:0=
- sci-libs/cholmod:0=
- sci-libs/colamd:0=
- sci-libs/fftw:3.0=[threads]
- sci-libs/openlibm:0=
- sci-libs/spqr:0=
- sci-libs/umfpack:0=
- sci-mathematics/glpk:0=
- >=sys-libs/libunwind-1.1:0=
- sys-libs/readline:0=
- sys-libs/zlib:0=
- >=virtual/blas-3.6
- virtual/lapack"
-
-DEPEND="${RDEPEND}
- dev-vcs/git
- dev-util/patchelf
- virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.1.0-fix_build_system.patch
- "${FILESDIR}"/${PN}-1.1.0-fix_llvm_install.patch
-)
-
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-src_unpack() {
- tounpack=(${A})
- # the main source tree, followed by deps
- unpack "${A/%\ */}"
-
- mkdir -p "${S}/deps/srccache/"
- for i in "${tounpack[@]:1}"; do
- cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die
- done
-}
-
-src_prepare() {
- default
-
- # Sledgehammer:
- # - prevent fetching of bundled stuff in compile and install phase
- # - respect CFLAGS
- # - respect EPREFIX and Gentoo specific paths
- # - fix BLAS and LAPACK link interface
-
- sed -i \
- -e 's|git submodule|${EPREFIX}/bin/true|g' \
- -e "s|GENTOOCFLAGS|${CFLAGS}|g" \
- -e "s|/usr/include|${EPREFIX}/usr/include|g" \
- deps/Makefile || die
-
- local libblas="$($(tc-getPKG_CONFIG) --libs-only-l blas)"
- libblas="${libblas%% *}"
- libblas="lib${libblas#-l}"
- local liblapack="$($(tc-getPKG_CONFIG) --libs-only-l lapack)"
- liblapack="${liblapack%% *}"
- liblapack="lib${liblapack#-l}"
-
- sed -i \
- -e "s|GENTOOCFLAGS|${CFLAGS}|g" \
- -e "s|GENTOOLIBDIR|$(get_libdir)|" \
- -e "s|^JULIA_COMMIT = .*|JULIA_COMMIT = v${PV}|" \
- -e "s|-lblas|$($(tc-getPKG_CONFIG) --libs blas)|" \
- -e "s|= libblas|= ${libblas}|" \
- -e "s|-llapack|$($(tc-getPKG_CONFIG) --libs lapack)|" \
- -e "s|= liblapack|= ${liblapack}|" \
- Make.inc || die
-
- sed -i \
- -e "s|,lib)|,$(get_libdir))|g" \
- -e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|g" \
- Makefile || die
-
- sed -i \
- -e "s|ar -rcs|$(tc-getAR) -rcs|g" \
- src/Makefile || die
-
- # disable doc install starting git fetching
- sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die
-}
-
-src_configure() {
- # julia does not play well with the system versions of dsfmt, libuv,
- # and utf8proc
-
- # USE_SYSTEM_LIBM=0 implies using external openlibm
- cat <<-EOF > Make.user
- USE_SYSTEM_LLVM:=0
- USE_SYSTEM_LIBUNWIND:=1
- USE_SYSTEM_PCRE:=1
- USE_SYSTEM_LIBM:=0
- USE_SYSTEM_OPENLIBM:=1
- USE_SYSTEM_DSFMT:=0
- USE_SYSTEM_BLAS:=1
- USE_SYSTEM_LAPACK:=1
- USE_SYSTEM_GMP:=1
- USE_SYSTEM_MPFR:=1
- USE_SYSTEM_SUITESPARSE:=1
- USE_SYSTEM_LIBUV:=0
- USE_SYSTEM_UTF8PROC:=0
- USE_SYSTEM_MBEDTLS:=1
- USE_SYSTEM_LIBSSH2:=1
- USE_SYSTEM_CURL:=1
- USE_SYSTEM_LIBGIT2:=1
- USE_SYSTEM_PATCHELF:=1
- USE_SYSTEM_ZLIB:=1
- USE_SYSTEM_P7ZIP:=1
- VERBOSE=1
- libdir="${EROOT}/usr/$(get_libdir)"
- EOF
-
-}
-
-src_compile() {
-
- # Julia accesses /proc/self/mem on Linux
- addpredict /proc/self/mem
-
- emake cleanall
- emake julia-release \
- prefix="${EPREFIX}/usr" DESTDIR="${D}" \
- CC="$(tc-getCC)" CXX="$(tc-getCXX)" \
- USE_BINARYBUILDER=0
- pax-mark m $(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')
- emake USE_BINARYBUILDER=0
-}
-
-src_test() {
- emake test
-}
-
-src_install() {
- # Julia is special. It tries to find a valid git repository (that would
- # normally be cloned during compilation/installation). Just make it
- # happy...
- git init && \
- git config --local user.email "whatyoudoing@example.com" && \
- git config --local user.name "Whyyyyyy" && \
- git commit -a --allow-empty -m "initial" || die "git failed"
-
- emake install \
- prefix="${EPREFIX}/usr" DESTDIR="${D}" \
- CC="$(tc-getCC)" CXX="$(tc-getCXX)" \
- USE_BINARYBUILDER=0
- cat > 99julia <<-EOF
- LDPATH=${EROOT}/usr/$(get_libdir)/julia
- EOF
- doenvd 99julia
-
- dodoc README.md
-
- mv "${ED}"/usr/etc/julia "${ED}"/etc || die
- rmdir "${ED}"/usr/etc || die
- mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/${PF} || die
- rmdir "${ED}"/usr/share/doc/julia || die
-}
diff --git a/dev-lang/julia/julia-1.4.0-r1.ebuild b/dev-lang/julia/julia-1.4.0-r1.ebuild
deleted file mode 100644
index 5be70d02402f..000000000000
--- a/dev-lang/julia/julia-1.4.0-r1.ebuild
+++ /dev/null
@@ -1,192 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-RESTRICT="splitdebug"
-
-inherit llvm pax-utils toolchain-funcs
-
-MY_PV="${PV//_rc/-rc}"
-MY_CACERT_V="2020-01-01"
-MY_DSFMT_V="2.2.3"
-MY_LIBGIT2_V="b3e1a56ebb2b9291e82dc027ba9cbcfc3ead54d3"
-MY_LIBUV_V="35b1504507a7a4168caae3d78db54d1121b121e1"
-MY_LIBWHICH_V="81e9723c0273d78493dc8c8ed570f68d9ce7e89e"
-MY_PKG_V="49908bffe83790bc7cf3c5d46faf3667f8902ad4"
-MY_UTF8PROC_V="5c632c57426f2e4246e3b64dd2fd088d3920f9e5"
-
-DESCRIPTION="High-performance programming language for technical computing"
-HOMEPAGE="https://julialang.org/"
-SRC_URI="
- https://github.com/JuliaLang/${PN}/releases/download/v${MY_PV}/${PN}-${MY_PV}.tar.gz
- https://api.github.com/repos/JuliaLang/libuv/tarball/${MY_LIBUV_V} -> ${PN}-libuv-${MY_LIBUV_V}.tar.gz
- https://api.github.com/repos/JuliaLang/utf8proc/tarball/${MY_UTF8PROC_V} -> ${PN}-utf8proc-${MY_UTF8PROC_V}.tar.gz
- https://api.github.com/repos/libgit2/libgit2/tarball/${MY_LIBGIT2_V} -> ${PN}-libgit2-${MY_LIBGIT2_V}.tar.gz
- https://api.github.com/repos/vtjnash/libwhich/tarball/${MY_LIBWHICH_V} -> ${PN}-libwhich-${MY_LIBWHICH_V}.tar.gz
- https://curl.haxx.se/ca/cacert-${MY_CACERT_V}.pem -> ${PN}-cacert-${MY_CACERT_V}.pem
- http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${MY_DSFMT_V}.tar.gz -> ${PN}-dsfmt-${MY_DSFMT_V}.tar.gz
- https://dev.gentoo.org/~tamiko/distfiles/Pkg-${MY_PKG_V}.tar.gz -> ${PN}-Pkg-${MY_PKG_V}.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-RDEPEND="
- sys-devel/llvm:9=[llvm_targets_NVPTX(-)]
-"
-LLVM_MAX_SLOT=9
-
-RDEPEND+="
- dev-libs/double-conversion:0=
- dev-libs/gmp:0=
- >=dev-libs/libpcre2-10.23:0=[jit,unicode]
- dev-libs/mpfr:0=
- dev-libs/openspecfun
- >=net-libs/mbedtls-2.2
- net-libs/libssh2
- sci-libs/amd:0=
- sci-libs/arpack:0=
- sci-libs/camd:0=
- sci-libs/ccolamd:0=
- sci-libs/cholmod:0=
- sci-libs/colamd:0=
- sci-libs/fftw:3.0=[threads]
- sci-libs/openlibm:0=
- sci-libs/spqr:0=
- sci-libs/umfpack:0=
- sci-mathematics/glpk:0=
- >=sys-libs/libunwind-1.1:0=
- sys-libs/readline:0=
- sys-libs/zlib:0=
- >=virtual/blas-3.6
- virtual/lapack"
-
-DEPEND="${RDEPEND}
- dev-util/patchelf
- virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.1.0-fix_build_system.patch
- "${FILESDIR}"/${PN}-1.1.0-fix_llvm_install.patch
- "${FILESDIR}"/${PN}-1.4.0-no_symlink_llvm.patch
-)
-
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-src_unpack() {
- tounpack=(${A})
- # the main source tree, followed by deps
- unpack "${A/%\ */}"
-
- mkdir -p "${S}/deps/srccache/"
- for i in "${tounpack[@]:1}"; do
- if [[ $i == *Pkg* ]] || [[ $i = *Statistics* ]]; then
- # Bundled Pkg and Statistics packages go into ./stdlib
- local tarball="${i#julia-}"
- cp "${DISTDIR}/${i}" "${S}/stdlib/srccache/${tarball}" || die
- # and we have to fix up the sha1sum
- local name="${tarball%-*}"
- local sha1="${tarball#*-}"
- sha1="${sha1%.tar*}"
- einfo "using patched stdlib package \"${name}\""
- sed -i -e "s/PKG_SHA1 = .*/PKG_SHA1 = ${sha1}/" "${S}/stdlib/${name}.version" || die
- else
- cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die
- fi
- done
-}
-
-src_prepare() {
- default
-
- # Sledgehammer:
- # - prevent fetching of bundled stuff in compile and install phase
- # - respect CFLAGS
- # - respect EPREFIX and Gentoo specific paths
-
- sed -i \
- -e "s|git submodule|${EPREFIX}/bin/true|g" \
- -e "s|GENTOOCFLAGS|${CFLAGS}|g" \
- -e "s|/usr/include|${EPREFIX}/usr/include|g" \
- deps/Makefile || die
-
- sed -i \
- -e "s|GENTOOCFLAGS|${CFLAGS}|g" \
- -e "s|GENTOOLIBDIR|$(get_libdir)|" \
- Make.inc || die
-
- sed -i \
- -e "s|,lib)|,$(get_libdir))|g" \
- -e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|g" \
- Makefile || die
-
- sed -i \
- -e "s|ar -rcs|$(tc-getAR) -rcs|g" \
- src/Makefile || die
-
- # disable doc install starting git fetching
- sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die
-}
-
-src_configure() {
- # julia does not play well with the system versions of dsfmt, libuv,
- # and utf8proc
-
- # USE_SYSTEM_LIBM=0 implies using external openlibm
- cat <<-EOF > Make.user
- USE_BINARYBUILDER:=0
- USE_SYSTEM_LLVM:=1
- USE_SYSTEM_LIBUNWIND:=1
- USE_SYSTEM_PCRE:=1
- USE_SYSTEM_LIBM:=0
- USE_SYSTEM_OPENLIBM:=1
- USE_SYSTEM_DSFMT:=0
- USE_SYSTEM_BLAS:=1
- USE_SYSTEM_LAPACK:=1
- USE_SYSTEM_GMP:=1
- USE_SYSTEM_MPFR:=1
- USE_SYSTEM_SUITESPARSE:=1
- USE_SYSTEM_LIBUV:=0
- USE_SYSTEM_UTF8PROC:=0
- USE_SYSTEM_MBEDTLS:=1
- USE_SYSTEM_LIBSSH2:=1
- USE_SYSTEM_CURL:=1
- USE_SYSTEM_PATCHELF:=1
- USE_SYSTEM_ZLIB:=1
- USE_SYSTEM_P7ZIP:=1
- VERBOSE=1
- libdir="${EROOT}/usr/$(get_libdir)"
- EOF
-}
-
-src_compile() {
-
- # Julia accesses /proc/self/mem on Linux
- addpredict /proc/self/mem
-
- emake julia-release \
- prefix="${EPREFIX}/usr" DESTDIR="${D}" \
- CC="$(tc-getCC)" CXX="$(tc-getCXX)"
- pax-mark m "$(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')"
- emake
-}
-
-src_test() {
- emake test
-}
-
-src_install() {
- emake install \
- prefix="${EPREFIX}/usr" DESTDIR="${D}" \
- CC="$(tc-getCC)" CXX="$(tc-getCXX)"
-
- dodoc README.md
-
- mv "${ED}"/usr/etc/julia "${ED}"/etc || die
- rmdir "${ED}"/usr/etc || die
- mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/${PF} || die
- rmdir "${ED}"/usr/share/doc/julia || die
-}
diff --git a/dev-lang/julia/julia-1.5.2.ebuild b/dev-lang/julia/julia-1.5.2-r1.ebuild
index 04e4922a411a..22f76c79cf80 100644
--- a/dev-lang/julia/julia-1.5.2.ebuild
+++ b/dev-lang/julia/julia-1.5.2-r1.ebuild
@@ -198,6 +198,9 @@ src_install() {
rmdir "${ED}"/usr/etc || die
mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/"${PF}" || die
rmdir "${ED}"/usr/share/doc/julia || die
+
+ # The appdata directory is deprecated.
+ mv "${ED}"/usr/share/{appdata,metainfo}/ || die
}
pkg_postinst() {
diff --git a/dev-lang/julia/julia-1.4.0-r2.ebuild b/dev-lang/julia/julia-1.5.3.ebuild
index 6041c13573d6..ebff8169d4a0 100644
--- a/dev-lang/julia/julia-1.4.0-r2.ebuild
+++ b/dev-lang/julia/julia-1.5.3.ebuild
@@ -3,19 +3,19 @@
EAPI=7
-RESTRICT="splitdebug"
-
inherit llvm pax-utils toolchain-funcs
+# correct versions for stdlibs are in deps/checksums
+# for everything else, run with network-sandbox and wait for the crash
+
MY_PV="${PV//_rc/-rc}"
-MY_CACERT_V="2020-01-01"
MY_DSFMT_V="2.2.3"
-MY_LIBGIT2_V="b3e1a56ebb2b9291e82dc027ba9cbcfc3ead54d3"
-MY_LIBUV_V="35b1504507a7a4168caae3d78db54d1121b121e1"
+MY_LIBUV_V="1fcc6d66f9df74189c74d3d390f02202bb7db953"
MY_LIBWHICH_V="81e9723c0273d78493dc8c8ed570f68d9ce7e89e"
-MY_LLVM_V="8.0.1"
+MY_LLVM_V="9.0.1"
MY_PKG_V="49908bffe83790bc7cf3c5d46faf3667f8902ad4"
-MY_UTF8PROC_V="5c632c57426f2e4246e3b64dd2fd088d3920f9e5"
+MY_UNICODE_V="13.0.0"
+MY_UTF8PROC_V="0890a538bf8238cded9be0c81171f57e43f2c755"
DESCRIPTION="High-performance programming language for technical computing"
HOMEPAGE="https://julialang.org/"
@@ -23,12 +23,11 @@ SRC_URI="
https://github.com/JuliaLang/${PN}/releases/download/v${MY_PV}/${PN}-${MY_PV}.tar.gz
https://api.github.com/repos/JuliaLang/libuv/tarball/${MY_LIBUV_V} -> ${PN}-libuv-${MY_LIBUV_V}.tar.gz
https://api.github.com/repos/JuliaLang/utf8proc/tarball/${MY_UTF8PROC_V} -> ${PN}-utf8proc-${MY_UTF8PROC_V}.tar.gz
- https://api.github.com/repos/libgit2/libgit2/tarball/${MY_LIBGIT2_V} -> ${PN}-libgit2-${MY_LIBGIT2_V}.tar.gz
https://api.github.com/repos/vtjnash/libwhich/tarball/${MY_LIBWHICH_V} -> ${PN}-libwhich-${MY_LIBWHICH_V}.tar.gz
- https://curl.haxx.se/ca/cacert-${MY_CACERT_V}.pem -> ${PN}-cacert-${MY_CACERT_V}.pem
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${MY_DSFMT_V}.tar.gz -> ${PN}-dsfmt-${MY_DSFMT_V}.tar.gz
+ http://www.unicode.org/Public/${MY_UNICODE_V}/ucd/UnicodeData.txt -> ${PN}-UnicodeData-${MY_UNICODE_V}.txt
https://dev.gentoo.org/~tamiko/distfiles/Pkg-${MY_PKG_V}.tar.gz -> ${PN}-Pkg-${MY_PKG_V}.tar.gz
- !system-llvm? ( http://releases.llvm.org/${MY_LLVM_V}/llvm-${MY_LLVM_V}.src.tar.xz )
+ !system-llvm? ( https://github.com/llvm/llvm-project/releases/download/llvmorg-${MY_LLVM_V}/llvm-${MY_LLVM_V}.src.tar.xz )
"
LICENSE="MIT"
@@ -38,17 +37,23 @@ IUSE="system-llvm"
RDEPEND="
system-llvm? ( sys-devel/llvm:9=[llvm_targets_NVPTX(-)] )
+ !system-llvm? ( dev-util/cmake )
"
LLVM_MAX_SLOT=9
+# Silence some QA warnings. The julia build system does not use user
+# defined CFLAGS for some of the generated binary modules.
+QA_FLAGS_IGNORED='.*'
+
RDEPEND+="
dev-libs/double-conversion:0=
dev-libs/gmp:0=
+ dev-libs/libgit2:0
>=dev-libs/libpcre2-10.23:0=[jit,unicode]
dev-libs/mpfr:0=
dev-libs/openspecfun
- >=net-libs/mbedtls-2.2
net-libs/libssh2
+ >=net-libs/mbedtls-2.2
sci-libs/amd:0=
sci-libs/arpack:0=
sci-libs/camd:0=
@@ -60,6 +65,7 @@ RDEPEND+="
sci-libs/spqr:0=
sci-libs/umfpack:0=
sci-mathematics/glpk:0=
+ sci-mathematics/z3
>=sys-libs/libunwind-1.1:0=
sys-libs/readline:0=
sys-libs/zlib:0=
@@ -114,7 +120,6 @@ src_prepare() {
# - respect EPREFIX and Gentoo specific paths
sed -i \
- -e "s|git submodule|${EPREFIX}/bin/true|g" \
-e "s|GENTOOCFLAGS|${CFLAGS}|g" \
-e "s|/usr/include|${EPREFIX}/usr/include|g" \
deps/Makefile || die
@@ -162,6 +167,7 @@ src_configure() {
USE_SYSTEM_MBEDTLS:=1
USE_SYSTEM_LIBSSH2:=1
USE_SYSTEM_CURL:=1
+ USE_SYSTEM_LIBGIT2:=1
USE_SYSTEM_PATCHELF:=1
USE_SYSTEM_ZLIB:=1
USE_SYSTEM_P7ZIP:=1
@@ -175,21 +181,17 @@ src_compile() {
# Julia accesses /proc/self/mem on Linux
addpredict /proc/self/mem
- emake julia-release \
+ emake \
prefix="${EPREFIX}/usr" DESTDIR="${D}" \
- CC="$(tc-getCC)" CXX="$(tc-getCXX)"
+ CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)"
pax-mark m "$(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')"
- emake
-}
-
-src_test() {
- emake test
}
src_install() {
emake install \
prefix="${EPREFIX}/usr" DESTDIR="${D}" \
- CC="$(tc-getCC)" CXX="$(tc-getCXX)"
+ CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" \
+ BUNDLE_DEBUG_LIBS=0
if ! use system-llvm ; then
cp "${S}/usr/lib/libLLVM"-?jl.so "${ED}/usr/$(get_libdir)/julia/" || die
@@ -199,8 +201,11 @@ src_install() {
mv "${ED}"/usr/etc/julia "${ED}"/etc || die
rmdir "${ED}"/usr/etc || die
- mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/${PF} || die
+ mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/"${PF}" || die
rmdir "${ED}"/usr/share/doc/julia || die
+
+ # The appdata directory is deprecated.
+ mv "${ED}"/usr/share/{appdata,metainfo}/ || die
}
pkg_postinst() {
diff --git a/dev-lang/lua/Manifest b/dev-lang/lua/Manifest
index 1009e00ade5e..bbafef164e16 100644
--- a/dev-lang/lua/Manifest
+++ b/dev-lang/lua/Manifest
@@ -3,5 +3,5 @@ DIST lua-5.2.2-tests.tar.gz 76629 BLAKE2B 323eaae02ee61cfde2535d606ed704d964461c
DIST lua-5.2.4.tar.gz 252651 BLAKE2B 6f20308d8413438f8446040e8de16274837cb55e626b98a0ae8cfe279dc8610fa2e032a2ce53ef3acda4b96a7198123cbc18eff16775f952e6dc0355fdf331b0 SHA512 cd77148aba4b707b6c159758b5e8444e04f968092eb98f6b4c405b2fb647e709370d5a8dcf604176101d3407e196a7433b5dcdce4fe9605c76191d3649d61a8c
DIST lua-5.3.4-tests.tar.gz 103438 BLAKE2B ac82708022e7729039111c3df4fe24302c8d0efb224afb4828871ac085a3d64c41d674a6f9369035de01ed1f7f75a3d2ce16917f37e774e923216aac0be03e09 SHA512 79575d100a2efabc8243f55b55d912443e09ef7e8b0219cb93541d85c2ba802fb9538015e1228703f09ca57bdb28a640a8f1fa0735716ba1e4bca2179c712dfb
DIST lua-5.3.6.tar.gz 303770 BLAKE2B 07c37c56f43095a4f6ca8eb8b3adf19afd53107c02b62b2bcb3619565cb2100d5f823493eef93092d5e312b30fc28885a6d9e8f0ba5a23b5bed86dc4515a5d61 SHA512 ccc380d5e114d54504de0bfb0321ca25ec325d6ff1bfee44b11870b660762d1a9bf120490c027a0088128b58bb6b5271bbc648400cab84d2dc22b512c4841681
-DIST lua-5.4.1-tests.tar.gz 128646 BLAKE2B 2dae666e89bacf986228a33fc665bbc510e738d9f8791933f5048e4bbecaf6cd59c5e70e488d332b16960225aac3b9fae46e500f3b54856bb6aabe8cd3a5c932 SHA512 ac7cf113d96f8fe2af4f104297a70debd3bede5997627fc18db6b5d9c78ff49e05a165f5855894def5656c6dcc2d7d9ccce741c90da17698a5c714a33828f49a
-DIST lua-5.4.1.tar.gz 353965 BLAKE2B e5b46fcf2eb2ea9bd235793cefec2bf19f185ed51b11bc6133bda4e3639f09194378b2fd55544972ee32576751e80bba87b3b61ec3d4a0910592d6e5cb4a4c77 SHA512 49ffbe814ec41e515fc8502b6958151c6c56aa171412f0b211ad9de934be2c958c3709d49435885ddea0fa6765ed511dafb3537558950ff3b4261338214f1571
+DIST lua-5.4.2-tests.tar.gz 128901 BLAKE2B 10e4f0e8760f9cbd4761fa26665008ae7412539f79a6a7687029808f08f0ae4a24721e787e2e87e5080c16e9dcce8577a7a39ddc6d3e483a3cfe11756139594e SHA512 1516c59deca211c38444bbf97b18e988e939209b03915d3691d756eeed31b52e8d3a1f05b71ac0b561965274c7b6f3afc4244cd2e9069995696e737e2d9dd40b
+DIST lua-5.4.2.tar.gz 353472 BLAKE2B 7e0e642684df635ed1c48db45989e86a2638024e30a170addf700b0c7d32276f1eaef80898539c671039c20cb0bed4861b12c58f4b8211653a17e89bad278d87 SHA512 9454a6ffd973598f2f4a2399834c31c4d5090bd12e716776e3189aa57760319d114ee64a8338bbc2ef5e08150bf0adc2ad94a1b2677f38538a43359969d4d920
diff --git a/dev-lang/lua/files/lua-5.1.5-make.patch b/dev-lang/lua/files/lua-5.1.5-make.patch
new file mode 100644
index 000000000000..032652c0a5e1
--- /dev/null
+++ b/dev-lang/lua/files/lua-5.1.5-make.patch
@@ -0,0 +1,97 @@
+diff -ru lua-5.1.5.orig/Makefile lua-5.1.5/Makefile
+--- lua-5.1.5.orig/Makefile 2014-04-15 17:43:34.845435031 +0200
++++ lua-5.1.5/Makefile 2014-04-15 19:05:08.669304987 +0200
+@@ -11,7 +11,7 @@
+ # so take care if INSTALL_TOP is not an absolute path.
+ INSTALL_TOP= /usr/local
+ INSTALL_BIN= $(INSTALL_TOP)/bin
+-INSTALL_INC= $(INSTALL_TOP)/include
++INSTALL_INC= $(INSTALL_TOP)/include/lua$V
+ INSTALL_LIB= $(INSTALL_TOP)/lib
+ INSTALL_MAN= $(INSTALL_TOP)/man/man1
+ #
+@@ -126,3 +126,21 @@
+ .PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho
+
+ # (end of Makefile)
++
++# Use libtool for binary installs, etc.
++
++export V
++export LIBTOOL = libtool --quiet --tag=CC
++# See libtool manual about how to set this
++
++gentoo_clean:
++ cd src; $(MAKE) $@
++
++gentoo_test: gentoo_linux
++ test/lua.static test/hello.lua
++
++gentoo_install:
++ mkdir -p $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB)
++ cd src; $(LIBTOOL) --mode=install $(INSTALL_EXEC) lua$V luac$V $(INSTALL_BIN)
++ cd src; $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
++ cd src; $(LIBTOOL) --mode=install $(INSTALL_DATA) liblua$V.la $(INSTALL_LIB)
+diff -ru lua-5.1.5.orig/src/Makefile lua-5.1.5/src/Makefile
+--- lua-5.1.5.orig/src/Makefile 2014-04-15 17:43:34.844435031 +0200
++++ lua-5.1.5/src/Makefile 2014-04-15 18:07:21.427397122 +0200
+@@ -29,10 +29,10 @@
+ LIB_O= lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o \
+ lstrlib.o loadlib.o linit.o
+
+-LUA_T= lua
++LUA_T= lua$V
+ LUA_O= lua.o
+
+-LUAC_T= luac
++LUAC_T= luac$V
+ LUAC_O= luac.o print.o
+
+ ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O)
+@@ -51,10 +51,10 @@
+ $(AR) $@ $(CORE_O) $(LIB_O) # DLL needs all object files
+ $(RANLIB) $@
+
+-$(LUA_T): $(LUA_O) $(LUA_A)
++origin$(LUA_T): $(LUA_O) $(LUA_A)
+ $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
+
+-$(LUAC_T): $(LUAC_O) $(LUA_A)
++origin$(LUAC_T): $(LUAC_O) $(LUA_A)
+ $(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
+
+ clean:
+@@ -180,3 +180,33 @@
+ ltm.h lzio.h lmem.h lopcodes.h lundump.h
+
+ # (end of Makefile)
++
++export LIBTOOL = libtool --tag=CC
++export LIB_VERSION = 5:1:5
++
++# The following rules use libtool for compiling and linking in order to
++# provide shared library support.
++
++LIB_NAME = liblua$V.la
++LIB_OBJS = $(CORE_O:.o=.lo) $(LIB_O:.o=.lo)
++
++%.lo %.o: %.c
++ $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
++
++$(LIB_NAME): $(LIB_OBJS)
++ $(LIBTOOL) --mode=link $(CC) -version-info 0:0:0 \
++ -rpath $(RPATH) $(LDFLAGS) -o $(LIB_NAME) $(LIB_OBJS) $(LIB_LIBS)
++
++$(LUA_T): $(LUA_O:.o=.lo) $(LIB_NAME)
++ $(LIBTOOL) --mode=link $(CC) -static -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
++
++lua_test: $(LUA_O:.o=.lo) $(LIB_NAME)
++ $(LIBTOOL) --mode=link $(CC) -static -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
++
++$(LUAC_T): $(LUAC_O:.o=.lo) $(LIB_NAME)
++ $(LIBTOOL) --mode=link $(CC) -static $(LDFLAGS) -o $@ $(LUAC_O:.o=.lo) $(LIB_NAME)
++
++gentoo_clean:
++ $(LIBTOOL) --mode=clean $(RM) $(ALL_O:.o=.lo) $(LIB_NAME) lua$V luac$V
++
++gentoo_all: $(LIB_NAME) $(LUA_T) lua_test $(LUAC_T)
diff --git a/dev-lang/lua/files/lua-5.2.4-make.patch b/dev-lang/lua/files/lua-5.2.4-make.patch
new file mode 100644
index 000000000000..40e1f5aa7d0c
--- /dev/null
+++ b/dev-lang/lua/files/lua-5.2.4-make.patch
@@ -0,0 +1,75 @@
+--- lua-5.1.1.orig/Makefile 2006-06-02 12:53:38.000000000 +0200
++++ lua-5.1.1/Makefile 2006-11-16 02:16:53.000000000 +0100
+@@ -11,7 +11,7 @@
+ # so take care if INSTALL_TOP is not an absolute path.
+ INSTALL_TOP= /usr/local
+ INSTALL_BIN= $(INSTALL_TOP)/bin
+-INSTALL_INC= $(INSTALL_TOP)/include
++INSTALL_INC= $(INSTALL_TOP)/include/lua$V
+ INSTALL_LIB= $(INSTALL_TOP)/lib
+ INSTALL_MAN= $(INSTALL_TOP)/man/man1
+ #
+@@ -127,3 +127,18 @@
+ .PHONY: all $(PLATS) clean install local none dummy echo pecho lecho newer
+
+ # (end of Makefile)
++
++# Use libtool for binary installs, etc.
++
++export V
++export LIBTOOL = libtool --quiet --tag=CC
++# See libtool manual about how to set this
++
++gentoo_clean:
++ cd src; $(MAKE) $@
++
++gentoo_install:
++ mkdir -p $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB)
++ cd src; $(LIBTOOL) --mode=install $(INSTALL_EXEC) lua$V luac$V $(INSTALL_BIN)
++ cd src; $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
++ cd src; $(LIBTOOL) --mode=install $(INSTALL_DATA) liblua$V.la $(INSTALL_LIB)
+--- lua-5.1.1.orig/src/Makefile 2006-03-22 01:41:49.000000000 +0100
++++ lua-5.1.1/src/Makefile 2006-11-16 02:10:27.000000000 +0100
+@@ -39,1 +39,1 @@
+-LUA_T= lua
++LUA_T= lua$V
+@@ -42,1 +42,1 @@
+-LUAC_T= luac
++LUAC_T= luac$V
+@@ -54,1 +54,1 @@
+-$(LUA_T): $(LUA_O) $(LUA_A)
++origin$(LUA_T): $(LUA_O) $(LUA_A)
+@@ -57,1 +57,1 @@
+-$(LUAC_T): $(LUAC_O) $(LUA_A)
++origin$(LUAC_T): $(LUAC_O) $(LUA_A)
+@@ -185,3 +185,30 @@
+ lzio.o: lzio.c lua.h luaconf.h llimits.h lmem.h lstate.h lobject.h ltm.h \
+ lzio.h
+
++
++export LIBTOOL = libtool --quiet --tag=CC
++export LIB_VERSION = 6:1:1
++
++# The following rules use libtool for compiling and linking in order to
++# provide shared library support.
++
++LIB_NAME = liblua$V.la
++LIB_OBJS = $(CORE_O:.o=.lo) $(LIB_O:.o=.lo)
++
++%.lo %.o: %.c
++ $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
++
++$(LIB_NAME): $(LIB_OBJS)
++ $(LIBTOOL) --mode=link $(CC) -version-info $(LIB_VERSION) \
++ -rpath $(RPATH) $(LDFLAGS) -o $(LIB_NAME) $(LIB_OBJS) $(LIB_LIBS)
++
++$(LUA_T): $(LUA_O:.o=.lo) $(LIB_NAME)
++ $(LIBTOOL) --mode=link $(CC) -static -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
++
++$(LUAC_T): $(LUAC_O:.o=.lo) $(LIB_NAME)
++ $(LIBTOOL) --mode=link $(CC) -static $(LDFLAGS) -o $@ $(LUAC_O:.o=.lo) $(LIB_NAME)
++
++gentoo_clean:
++ $(LIBTOOL) --mode=clean $(RM) $(ALL_O:.o=.lo) $(LIB_NAME) lua$V luac$V
++
++gentoo_all: $(LIB_NAME) $(LUA_T) $(LUAC_T)
diff --git a/dev-lang/lua/files/lua-5.3.6-make.patch b/dev-lang/lua/files/lua-5.3.6-make.patch
new file mode 100644
index 000000000000..6e842caf4f65
--- /dev/null
+++ b/dev-lang/lua/files/lua-5.3.6-make.patch
@@ -0,0 +1,91 @@
+diff -uNr lua-5.3.3.orig/Makefile lua-5.3.3/Makefile
+--- lua-5.3.3.orig/Makefile 2016-12-04 22:29:54.839135901 +0100
++++ lua-5.3.3/Makefile 2016-12-04 22:31:14.235851109 +0100
+@@ -12,7 +12,7 @@
+ # LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h.
+ INSTALL_TOP= /usr/local
+ INSTALL_BIN= $(INSTALL_TOP)/bin
+-INSTALL_INC= $(INSTALL_TOP)/include
++INSTALL_INC= $(INSTALL_TOP)/include/lua$V
+ INSTALL_LIB= $(INSTALL_TOP)/lib
+ INSTALL_MAN= $(INSTALL_TOP)/man/man1
+ INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
+@@ -112,3 +112,18 @@
+ .PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho
+
+ # (end of Makefile)
++
++# Use libtool for binary installs, etc.
++
++export V
++export LIBTOOL = libtool --quiet --tag=CC
++# See libtool manual about how to set this
++
++gentoo_clean:
++ cd src; $(MAKE) $@
++
++gentoo_install:
++ mkdir -p $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB)
++ cd src; $(LIBTOOL) --mode=install $(INSTALL_EXEC) lua$V luac$V $(INSTALL_BIN)
++ cd src; $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
++ cd src; $(LIBTOOL) --mode=install $(INSTALL_DATA) liblua$V.la $(INSTALL_LIB)
+diff -uNr lua-5.3.3.orig/src/Makefile lua-5.3.3/src/Makefile
+--- lua-5.3.3.orig/src/Makefile 2016-12-04 22:29:54.840135910 +0100
++++ lua-5.3.3/src/Makefile 2016-12-04 22:34:55.980848068 +0100
+@@ -36,10 +36,10 @@
+ lmathlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o loadlib.o linit.o
+ BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
+
+-LUA_T= lua
++LUA_T= lua$V
+ LUA_O= lua.o
+
+-LUAC_T= luac
++LUAC_T= luac$V
+ LUAC_O= luac.o
+
+ ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
+@@ -59,10 +59,10 @@
+ $(AR) $@ $(BASE_O)
+ $(RANLIB) $@
+
+-$(LUA_T): $(LUA_O) $(LUA_A)
++origin$(LUA_T): $(LUA_O) $(LUA_A)
+ $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
+
+-$(LUAC_T): $(LUAC_O) $(LUA_A)
++origin$(LUAC_T): $(LUAC_O) $(LUA_A)
+ $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
+
+ clean:
+@@ -195,3 +195,30 @@
+ lobject.h ltm.h lzio.h
+
+ # (end of Makefile)
++
++export LIBTOOL = libtool --quiet --tag=CC
++export LIB_VERSION = 6:1:1
++
++# The following rules use libtool for compiling and linking in order to
++# provide shared library support.
++
++LIB_NAME = liblua$V.la
++LIB_OBJS = $(CORE_O:.o=.lo) $(LIB_O:.o=.lo)
++
++%.lo %.o: %.c
++ $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
++
++$(LIB_NAME): $(LIB_OBJS)
++ $(LIBTOOL) --mode=link $(CC) -version-info $(LIB_VERSION) \
++ -rpath $(RPATH) $(LDFLAGS) -o $(LIB_NAME) $(LIB_OBJS) $(LIB_LIBS)
++
++$(LUA_T): $(LUA_O:.o=.lo) $(LIB_NAME)
++ $(LIBTOOL) --mode=link $(CC) -static -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
++
++$(LUAC_T): $(LUAC_O:.o=.lo) $(LIB_NAME)
++ $(LIBTOOL) --mode=link $(CC) -static $(LDFLAGS) -o $@ $(LUAC_O:.o=.lo) $(LIB_NAME)
++
++gentoo_clean:
++ $(LIBTOOL) --mode=clean $(RM) $(ALL_O:.o=.lo) $(LIB_NAME) lua$V luac$V
++
++gentoo_all: $(LIB_NAME) $(LUA_T) $(LUAC_T)
diff --git a/dev-lang/lua/files/lua-5.4.2-make.patch b/dev-lang/lua/files/lua-5.4.2-make.patch
new file mode 100644
index 000000000000..8758e88de91b
--- /dev/null
+++ b/dev-lang/lua/files/lua-5.4.2-make.patch
@@ -0,0 +1,99 @@
+diff --git a/Makefile b/Makefile
+index 1797df9..90284d8 100644
+--- a/Makefile
++++ b/Makefile
+@@ -10,11 +10,11 @@ PLAT= guess
+ # so take care if INSTALL_TOP is not an absolute path. See the local target.
+ # You may want to make INSTALL_LMOD and INSTALL_CMOD consistent with
+ # LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h.
+-INSTALL_TOP= /usr/local
++INSTALL_TOP= /usr
+ INSTALL_BIN= $(INSTALL_TOP)/bin
+-INSTALL_INC= $(INSTALL_TOP)/include
++INSTALL_INC= $(INSTALL_TOP)/include/lua$V
+ INSTALL_LIB= $(INSTALL_TOP)/lib
+-INSTALL_MAN= $(INSTALL_TOP)/man/man1
++INSTALL_MAN= $(INSTALL_TOP)/share/man/man1
+ INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
+ INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V
+
+@@ -104,3 +104,18 @@ pc:
+ .PHONY: all $(PLATS) help test clean install uninstall local dummy echo pc
+
+ # (end of Makefile)
++
++# Use libtool for binary installs, etc.
++
++export V
++export LIBTOOL = /usr/bin/libtool --quiet --tag=CC
++# See libtool manual about how to set this
++
++gentoo_clean:
++ cd src; $(MAKE) $@
++
++gentoo_install:
++ mkdir -p $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB)
++ cd src; $(LIBTOOL) --mode=install $(INSTALL_EXEC) lua$V luac$V $(INSTALL_BIN)
++ cd src; $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
++ cd src; $(LIBTOOL) --mode=install $(INSTALL_DATA) liblua$V.la $(INSTALL_LIB)
+diff --git a/src/Makefile b/src/Makefile
+index 514593d..8af8f99 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -37,10 +37,10 @@ CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem
+ LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o
+ BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
+
+-LUA_T= lua
++LUA_T= lua$V
+ LUA_O= lua.o
+
+-LUAC_T= luac
++LUAC_T= luac$V
+ LUAC_O= luac.o
+
+ ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
+@@ -60,10 +60,10 @@ $(LUA_A): $(BASE_O)
+ $(AR) $@ $(BASE_O)
+ $(RANLIB) $@
+
+-$(LUA_T): $(LUA_O) $(LUA_A)
++origin$(LUA_T): $(LUA_O) $(LUA_A)
+ $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
+
+-$(LUAC_T): $(LUAC_O) $(LUA_A)
++origin$(LUAC_T): $(LUAC_O) $(LUA_A)
+ $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
+
+ test:
+@@ -218,3 +218,30 @@ lzio.o: lzio.c lprefix.h lua.h luaconf.h llimits.h lmem.h lstate.h \
+ lobject.h ltm.h lzio.h
+
+ # (end of Makefile)
++
++export LIBTOOL = /usr/bin/libtool --quiet --tag=CC
++export LIB_VERSION = 6:1:1
++
++# The following rules use libtool for compiling and linking in order to
++# provide shared library support.
++
++LIB_NAME = liblua$V.la
++LIB_OBJS = $(CORE_O:.o=.lo) $(LIB_O:.o=.lo)
++
++%.lo %.o: %.c
++ $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
++
++$(LIB_NAME): $(LIB_OBJS)
++ $(LIBTOOL) --mode=link $(CC) -version-info $(LIB_VERSION) \
++ -rpath $(RPATH) $(LDFLAGS) -o $(LIB_NAME) $(LIB_OBJS) $(LIB_LIBS)
++
++$(LUA_T): $(LUA_O:.o=.lo) $(LIB_NAME)
++ $(LIBTOOL) --mode=link $(CC) -static -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS)
++
++$(LUAC_T): $(LUAC_O:.o=.lo) $(LIB_NAME)
++ $(LIBTOOL) --mode=link $(CC) -static $(LDFLAGS) -o $@ $(LUAC_O:.o=.lo) $(LIB_NAME)
++
++gentoo_clean:
++ $(LIBTOOL) --mode=clean $(RM) $(ALL_O:.o=.lo) $(LIB_NAME) lua$V luac$V
++
++gentoo_all: $(LIB_NAME) $(LUA_T) $(LUAC_T)
diff --git a/dev-lang/lua/lua-5.1.5-r105.ebuild b/dev-lang/lua/lua-5.1.5-r106.ebuild
index d46f6ca7a7af..5e38cf0738b2 100644
--- a/dev-lang/lua/lua-5.1.5-r105.ebuild
+++ b/dev-lang/lua/lua-5.1.5-r106.ebuild
@@ -1,35 +1,48 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-
inherit multilib multilib-minimal portability toolchain-funcs
DESCRIPTION="A powerful light-weight programming language designed for extending applications"
HOMEPAGE="https://www.lua.org/"
-SRC_URI="http://www.lua.org/ftp/${P}.tar.gz"
+SRC_URI="https://www.lua.org/ftp/${P}.tar.gz"
LICENSE="MIT"
SLOT="5.1"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+deprecated readline static"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="+deprecated readline"
-RDEPEND="readline? ( >=sys-libs/readline-6.2_p5-r1:0=[${MULTILIB_USEDEP}] )
- app-eselect/eselect-lua
+COMMON_DEPEND="
+ >=app-eselect/eselect-lua-3
+ readline? ( >=sys-libs/readline-6.2_p5-r1:0=[${MULTILIB_USEDEP}] )
!dev-lang/lua:0"
-DEPEND="${RDEPEND}
- sys-devel/libtool"
+DEPEND="${COMMON_DEPEND}"
+RDEPEND="${COMMON_DEPEND}"
+BDEPEND="sys-devel/libtool"
MULTILIB_WRAPPED_HEADERS=(
/usr/include/lua${SLOT}/luaconf.h
)
-PATCHES=(
- "${FILESDIR}/${PN}-$(ver_cut 1-2)-make-r2.patch"
- "${FILESDIR}/${PN}-$(ver_cut 1-2)-module_paths.patch"
-)
-
src_prepare() {
+ PATCHES=(
+ "${FILESDIR}/lua-5.1.5-make.patch"
+ "${FILESDIR}/${PN}-$(ver_cut 1-2)-module_paths.patch"
+ )
+ if ! use deprecated ; then
+ # patches from 5.1.4 still apply
+ PATCHES+=(
+ "${FILESDIR}"/${PN}-5.1.4-deprecated.patch
+ "${FILESDIR}"/${PN}-5.1.4-test.patch
+ )
+ fi
+ if ! use readline ; then
+ PATCHES+=(
+ "${FILESDIR}"/${PN}-$(ver_cut 1-2)-readline.patch
+ )
+ fi
+
default
# use glibtool on Darwin (versus Apple libtool)
@@ -43,25 +56,11 @@ src_prepare() {
sed -i -e 's:\(/README\)\("\):\1.gz\2:g' doc/readme.html
- if ! use deprecated ; then
- # patches from 5.1.4 still apply
- eapply "${FILESDIR}"/${PN}-5.1.4-deprecated.patch
- eapply "${FILESDIR}"/${PN}-5.1.4-test.patch
- fi
-
- if ! use readline ; then
- eapply "${FILESDIR}"/${PN}-$(ver_cut 1-2)-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
- sed -i -e 's:\(-export-dynamic\):-static \1:' src/Makefile || die
- fi
+ # compiler (built statically) nor the lua libraries.
# A slotted Lua uses different directories for headers & names for
# libraries, and pkgconfig should reflect that.
@@ -121,6 +120,8 @@ multilib_src_install_all() {
einstalldocs
newman doc/lua.1 lua${SLOT}.1
newman doc/luac.1 luac${SLOT}.1
+ find "${ED}" -name '*.la' -delete || die
+ find "${ED}" -name 'liblua*.a' -delete || die
}
multilib_src_test() {
@@ -140,6 +141,8 @@ multilib_src_test() {
}
pkg_postinst() {
+ eselect lua set --if-unset "${PN}${SLOT}"
+
if has_version "app-editor/emacs"; then
if ! has_version "app-emacs/lua-mode"; then
einfo "Install app-emacs/lua-mode for lua support for emacs"
diff --git a/dev-lang/lua/lua-5.1.5-r4.ebuild b/dev-lang/lua/lua-5.1.5-r4.ebuild
index 4f087af960a1..a975c2e460e5 100644
--- a/dev-lang/lua/lua-5.1.5-r4.ebuild
+++ b/dev-lang/lua/lua-5.1.5-r4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=5
@@ -11,7 +11,7 @@ SRC_URI="http://www.lua.org/ftp/${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-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}] )"
diff --git a/dev-lang/lua/lua-5.1.5-r5.ebuild b/dev-lang/lua/lua-5.1.5-r5.ebuild
deleted file mode 100644
index a48e5c0d7542..000000000000
--- a/dev-lang/lua/lua-5.1.5-r5.ebuild
+++ /dev/null
@@ -1,113 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit eutils multilib multilib-minimal portability toolchain-funcs versionator flag-o-matic
-
-DESCRIPTION="A powerful light-weight programming language designed for extending applications"
-HOMEPAGE="https://www.lua.org/"
-SRC_URI="http://www.lua.org/ftp/${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+deprecated emacs readline doc"
-
-RDEPEND="readline? ( >=sys-libs/readline-6.2_p5-r1:0=[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}"
-PDEPEND="emacs? ( app-emacs/lua-mode )"
-
-MULTILIB_WRAPPED_HEADERS=(
- /usr/include/luaconf.h
-)
-
-src_prepare() {
- # Correct documentation link
- sed -i -e 's:\(/README\)\("\):\1.gz\2:g' doc/readme.html || die
-
- # 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.
-
- # Therefore both lua interpreter and compiler are statically linked to
- # the core library modules.
-
- # Note: This patch only adds the required targets to the makefiles
- # instead of relying upon libtool, which fails cross-compiling. Both
- # shared and static versions of lua libraries are installed.
- epatch "${FILESDIR}"/${P}-gentoo-build.patch
-
- # Rename deprecated functions in scripts
- use deprecated || epatch "${FILESDIR}"/${P}-disable-deprecated.patch
-
- # Remove readline dependency if not requested
- use readline || epatch "${FILESDIR}"/${P}-disable-readline.patch
-
- epatch "${FILESDIR}/${P}-fix_vararg_calls.patch"
-
- # Required by EAPI >= 6
- eapply_user
-
- # Add documentation URIs if needed
- use doc && \
- HTML_DOCS=( doc/*.{html,css,png,gif} ) && \
- DOCS="HISTORY README"
-
- # custom Makefiles
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- # Fix directories according to FHS/Gentoo policy paths and ABI
- sed -i \
- -e 's:/usr/local:'${EPREFIX}'/usr:' \
- -e 's:/man/:/share/man/:' \
- -e "s:\([/\"]\)\<lib\>:\1$(get_libdir):g" \
- Makefile etc/lua.pc src/luaconf.h doc/manual.html || die
-}
-
-multilib_src_compile() {
- append-cflags "-DLUA_USE_LINUX"
- append-ldflags "-Wl,-E"
- tc-export AR CC CPP LD RANLIB
- emake \
- MYLDFLAGS="${LDFLAGS}" \
- MYCFLAGS="${CFLAGS}" \
- linux
-}
-
-multilib_src_install() {
- emake -j1 install INSTALL_TOP="${ED}/usr"
-
- insinto usr/$(get_libdir)/pkgconfig
- doins etc/lua.pc
-}
-
-multilib_src_install_all() {
- einstalldocs -r
-
- doicon etc/lua.ico
-
- doman doc/lua.1 doc/luac.1
-}
-
-multilib_src_test() {
- # These tests MUST succeed for the ebuild to succeed
- local MUST_SUCCEED="bisect cf echo env factorial fib fibfor hello printf sieve
- sort trace-calls trace-globals"
-
- # These tests MUST fail for the ebuild to succeed
- local MUST_FAIL="readonly"
-
- cd "${BUILD_DIR}" || die
-
- local test
- for test in ${MUST_SUCCEED}; do
- src/lua test/${test}.lua || die "test $test failed"
- done
-
- for test in ${MUST_FAIL}; do
- src/lua test/${test}.lua && die "test $test failed"
- done
-}
diff --git a/dev-lang/lua/lua-5.2.4-r2.ebuild b/dev-lang/lua/lua-5.2.4-r3.ebuild
index 68f83619268e..7b7c1c61f732 100644
--- a/dev-lang/lua/lua-5.2.4-r2.ebuild
+++ b/dev-lang/lua/lua-5.2.4-r3.ebuild
@@ -1,42 +1,42 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-
inherit autotools multilib multilib-minimal portability toolchain-funcs
DESCRIPTION="A powerful light-weight programming language designed for extending applications"
HOMEPAGE="https://www.lua.org/"
TEST_PV="5.2.2" # no 5.2.3-specific release yet
-TEST_A="${PN}-${TEST_PV}-tests.tar.gz"
-PKG_A="${P}.tar.gz"
+TEST_P="${PN}-${TEST_PV}-tests"
SRC_URI="
- http://www.lua.org/ftp/${PKG_A}
- test? ( https://www.lua.org/tests/${TEST_A} )"
+ https://www.lua.org/ftp/${P}.tar.gz
+ test? ( https://www.lua.org/tests/${TEST_P}.tar.gz )"
LICENSE="MIT"
SLOT="5.2"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+deprecated readline static test test-complete"
-RESTRICT="!test? ( test )"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="+deprecated readline test test-complete"
-RDEPEND="readline? ( sys-libs/readline:0= )
- app-eselect/eselect-lua
+COMMON_DEPEND="
+ >=app-eselect/eselect-lua-3
+ readline? ( sys-libs/readline:0= )
!dev-lang/lua:0"
-DEPEND="${RDEPEND}
- sys-devel/libtool"
+DEPEND="${COMMON_DEPEND}"
+RDEPEND="${COMMON_DEPEND}"
+BDEPEND="sys-devel/libtool"
+
+RESTRICT="!test? ( test )"
MULTILIB_WRAPPED_HEADERS=(
/usr/include/lua${SLOT}/luaconf.h
)
PATCHES=(
- "${FILESDIR}/${PN}-$(ver_cut 1-2)-make-r1.patch"
+ "${FILESDIR}/lua-5.2.4-make.patch"
)
src_prepare() {
default
-
# use glibtool on Darwin (versus Apple libtool)
if [[ ${CHOST} == *-darwin* ]] ; then
sed -i -e '/LIBTOOL = /s:/libtool:/glibtool:' \
@@ -56,11 +56,7 @@ src_prepare() {
# 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
+ # compiler (built statically) nor the lua libraries.
# upstream does not use libtool, but we do (see bug #336167)
cp "${FILESDIR}/configure.in" "${S}/configure.ac" || die
@@ -155,6 +151,8 @@ multilib_src_install_all() {
einstalldocs
newman doc/lua.1 lua${SLOT}.1
newman doc/luac.1 luac${SLOT}.1
+ find "${ED}" -name '*.la' -delete || die
+ find "${ED}" -name 'liblua*.a' -delete || die
}
# Makefile contains a dummy target that doesn't do tests
@@ -170,7 +168,7 @@ src_test() {
# The basic subset is selected by passing -e'_U=true'
# The complete set is noted to contain tests that may consume too much memory or have non-portable tests.
# attrib.lua for example needs some multilib customization (have to compile the stuff in libs/ for each ABI)
- use test-complete || TEST_OPTS="-e_U=true"
+ TEST_OPTS="$(usex test-complete '' '-e_U=true')"
TEST_MARKER="${T}/test.failed"
rm -f "${TEST_MARKER}"
@@ -192,6 +190,8 @@ src_test() {
}
pkg_postinst() {
+ eselect lua set --if-unset "${PN}${SLOT}"
+
if has_version "app-editor/emacs"; then
if ! has_version "app-emacs/lua-mode"; then
einfo "Install app-emacs/lua-mode for lua support for emacs"
diff --git a/dev-lang/lua/lua-5.3.6-r1.ebuild b/dev-lang/lua/lua-5.3.6-r2.ebuild
index 557f34da93a2..c47b745cd1cb 100644
--- a/dev-lang/lua/lua-5.3.6-r1.ebuild
+++ b/dev-lang/lua/lua-5.3.6-r2.ebuild
@@ -1,42 +1,42 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-
inherit autotools multilib multilib-minimal portability toolchain-funcs
DESCRIPTION="A powerful light-weight programming language designed for extending applications"
HOMEPAGE="https://www.lua.org/"
TEST_PV="5.3.4"
-TEST_A="${PN}-${TEST_PV}-tests.tar.gz"
-PKG_A="${P}.tar.gz"
+TEST_P="${PN}-${TEST_PV}-tests"
SRC_URI="
- http://www.lua.org/ftp/${PKG_A}
- test? ( https://www.lua.org/tests/${TEST_A} )"
+ https://www.lua.org/ftp/${P}.tar.gz
+ test? ( https://www.lua.org/tests/${TEST_P}.tar.gz )"
LICENSE="MIT"
SLOT="5.3"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+deprecated readline static test test-complete"
-RESTRICT="!test? ( test )"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="+deprecated readline test test-complete"
-RDEPEND="readline? ( sys-libs/readline:0= )
- app-eselect/eselect-lua
+COMMON_DEPEND="
+ >=app-eselect/eselect-lua-3
+ readline? ( sys-libs/readline:0= )
!dev-lang/lua:0"
-DEPEND="${RDEPEND}
- sys-devel/libtool"
+DEPEND="${COMMON_DEPEND}"
+RDEPEND="${COMMON_DEPEND}"
+BDEPEND="sys-devel/libtool"
+
+RESTRICT="!test? ( test )"
MULTILIB_WRAPPED_HEADERS=(
/usr/include/lua${SLOT}/luaconf.h
)
PATCHES=(
- "${FILESDIR}/${PN}-$(ver_cut 1-2)-make-r1.patch"
+ "${FILESDIR}/lua-5.3.6-make.patch"
)
src_prepare() {
default
-
# use glibtool on Darwin (versus Apple libtool)
if [[ ${CHOST} == *-darwin* ]] ; then
sed -i -e '/LIBTOOL = /s:/libtool:/glibtool:' \
@@ -56,11 +56,7 @@ src_prepare() {
# 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
+ # compiler (built statically) nor the lua libraries.
# upstream does not use libtool, but we do (see bug #336167)
cp "${FILESDIR}/configure.in" "${S}/configure.ac" || die
@@ -155,6 +151,8 @@ multilib_src_install_all() {
einstalldocs
newman doc/lua.1 lua${SLOT}.1
newman doc/luac.1 luac${SLOT}.1
+ find "${ED}" -name '*.la' -delete || die
+ find "${ED}" -name 'liblua*.a' -delete || die
}
# Makefile contains a dummy target that doesn't do tests
@@ -170,7 +168,7 @@ src_test() {
# The basic subset is selected by passing -e'_U=true'
# The complete set is noted to contain tests that may consume too much memory or have non-portable tests.
# attrib.lua for example needs some multilib customization (have to compile the stuff in libs/ for each ABI)
- use test-complete || TEST_OPTS="-e_U=true"
+ TEST_OPTS="$(usex test-complete '' '-e_U=true')"
TEST_MARKER="${T}/test.failed"
rm -f "${TEST_MARKER}"
@@ -192,6 +190,8 @@ src_test() {
}
pkg_postinst() {
+ eselect lua set --if-unset "${PN}${SLOT}"
+
if has_version "app-editor/emacs"; then
if ! has_version "app-emacs/lua-mode"; then
einfo "Install app-emacs/lua-mode for lua support for emacs"
diff --git a/dev-lang/lua/lua-5.4.1-r1.ebuild b/dev-lang/lua/lua-5.4.2-r1.ebuild
index d18a78747bc4..3840219215a7 100644
--- a/dev-lang/lua/lua-5.4.1-r1.ebuild
+++ b/dev-lang/lua/lua-5.4.2-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -6,19 +6,19 @@ inherit autotools multilib multilib-minimal portability toolchain-funcs
DESCRIPTION="A powerful light-weight programming language designed for extending applications"
HOMEPAGE="https://www.lua.org/"
-TEST_PV="5.4.1"
+TEST_PV="5.4.2"
TEST_P="${PN}-${TEST_PV}-tests"
SRC_URI="
- http://www.lua.org/ftp/${P}.tar.gz
+ https://www.lua.org/ftp/${P}.tar.gz
test? ( https://www.lua.org/tests/${TEST_P}.tar.gz )"
LICENSE="MIT"
SLOT="5.4"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+deprecated readline static test test-complete"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="+deprecated readline test test-complete"
COMMON_DEPEND="
- app-eselect/eselect-lua
+ >=app-eselect/eselect-lua-3
readline? ( sys-libs/readline:0= )
!dev-lang/lua:0"
DEPEND="${COMMON_DEPEND}"
@@ -32,7 +32,7 @@ MULTILIB_WRAPPED_HEADERS=(
)
PATCHES=(
- "${FILESDIR}"/lua-5.4-makefiles.patch
+ "${FILESDIR}"/lua-5.4.2-make.patch
)
src_prepare() {
@@ -52,11 +52,7 @@ src_prepare() {
# 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
+ # compiler (built statically) nor the lua libraries.
# upstream does not use libtool, but we do (see bug #336167)
cp "${FILESDIR}/configure.in" "${S}/configure.ac" || die
@@ -90,12 +86,12 @@ multilib_src_compile() {
cd src
local myCFLAGS=""
- use deprecated && myCFLAGS="-DLUA_COMPAT_5_3"
- use readline && myCFLAGS="-DLUA_USE_READLINE"
+ use deprecated && myCFLAGS+="-DLUA_COMPAT_5_3 "
+ use readline && myCFLAGS+="-DLUA_USE_READLINE "
case "${CHOST}" in
*-mingw*) : ;;
- *) myCFLAGS+=" -DLUA_USE_LINUX" ;;
+ *) myCFLAGS+="-DLUA_USE_LINUX " ;;
esac
emake CC="${CC}" CFLAGS="${myCFLAGS} ${CFLAGS}" \
@@ -152,6 +148,8 @@ multilib_src_install_all() {
einstalldocs
newman doc/lua.1 lua${SLOT}.1
newman doc/luac.1 luac${SLOT}.1
+ find "${ED}" -name '*.la' -delete || die
+ find "${ED}" -name 'liblua*.a' -delete || die
}
# Makefile contains a dummy target that doesn't do tests
@@ -189,6 +187,8 @@ src_test() {
}
pkg_postinst() {
+ eselect lua set --if-unset "${PN}${SLOT}"
+
if has_version "app-editor/emacs"; then
if ! has_version "app-emacs/lua-mode"; then
einfo "Install app-emacs/lua-mode for lua support for emacs"
diff --git a/dev-lang/mercury-extras/mercury-extras-20.06.ebuild b/dev-lang/mercury-extras/mercury-extras-20.06.ebuild
index cf0817367fe4..7a5e3bfc206c 100644
--- a/dev-lang/mercury-extras/mercury-extras-20.06.ebuild
+++ b/dev-lang/mercury-extras/mercury-extras-20.06.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -15,7 +15,7 @@ SRC_URI="https://dl.mercurylang.org/release/${MY_P}.tar.gz
LICENSE="GPL-2 LGPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
IUSE="cairo examples glut gmp iodbc ncurses odbc opengl ssl tk tommath X xml"
REQUIRED_USE="?? ( odbc iodbc )"
diff --git a/dev-lang/mercury/Manifest b/dev-lang/mercury/Manifest
index e1e93e434625..81b026c9b23c 100644
--- a/dev-lang/mercury/Manifest
+++ b/dev-lang/mercury/Manifest
@@ -2,7 +2,7 @@ DIST mercury-14.01.1-gentoo-patchset-5.tar.gz 5693 BLAKE2B 300de3254bc0d2f59493c
DIST mercury-20.01-gentoo-patchset-0.tar.gz 3862 BLAKE2B 79ef6d30add63a5d419e3dd5b376fd9c1727038102db2bc0e8ccd8b71cdc1c80e721647f34764b0aa4fd6d58b9e38c9675f234714f381f94be572b9b64b478e1 SHA512 2835b4740453bcc358363f9eaa0264706125b5e5f7a38802d5f280ccd777d4c760124ed3a635f17ecc2ae772767e9fa5d61093c40094358a0a96a726a23ff08e
DIST mercury-20.01.1-gentoo-patchset-0.tar.gz 3943 BLAKE2B 0fd149c622715bf191182bd93e264096327d7869e30aaa10bb19b70bec5563520026e2561cc6607c62801ed00ed6b5907bbae4be997869b9facb2f9d65ec0c7a SHA512 d866b35b6df14645ef60ff25497f9bbf0c2caeae2145bc0aef2adea0e651379c673c1815c717f1a51457d93cc67e9ae3dafe5d9fce1d4734bf1673e4cfcbd367
DIST mercury-20.01.2-gentoo-patchset-1.tar.gz 4562 BLAKE2B f1e9d040cfd5930c4f4d9722fc10e11532272f1fa0ab6bd25cc0d2ed42eb0edfbe6f9bc1d41972775fa720b80601d5fdae1681d56f677861fab15e10cc6d05cb SHA512 4f89b09e1e196a61892811167bc0dc1b3ee868ef336efdf66e417574c18ea53b557bd87d5c5300eee8194a3c4250b47e70f5991fcc25b1c58d956a4b097eaec5
-DIST mercury-20.06-gentoo-patchset-0.tar.gz 4429 BLAKE2B 3093f022073a1183f34036612a78335fdb317462332933ce415d859573ac7074f55e5311dd4802d263ab9c8c14962e63dcbfc08dd8d8f08c31cebb93e1a82881 SHA512 3e20ef930076dc8833f5ed5563130345e131fb17a7990f7a57552ad806c7cc3ac90667c8a3de4e5fa9a2d451ed104c35e3146f59fce4efb48e8891ac05cc9a41
+DIST mercury-20.06-gentoo-patchset-1.tar.gz 4555 BLAKE2B 8609ba7cd43d82ceb6b6e25fd6af3b2c750df6446c1235bd9c6f8e3bc87bb1fe0a43cafb9f1d061562bb80ade1deb7809889bf0d703c99ea1e2286bbeb7c5182 SHA512 23fae769c5c1204154c6ed55cc31644967e3554f499b23a6585d34615d062a214d6485de3a4acf8cf90a582a229aeab519e57a6df80cee62e9e6789f210e8256
DIST mercury-srcdist-14.01.1.tar.gz 52658945 BLAKE2B 6497921a0227b9a6fbcbabdd309ef3325f32dda14fc4ddb443368385b89be4011d677a24b30b3702147d1b782fe2597760ad66dd34503aa6aebaf79707466529 SHA512 a128ef0fd4955abadea32019ec59297ffe32537415f32e9e948cbc1c3439bb40eb09de77569690fb18dd7d6969a2b1141b3ae5baeb87f2627eaa65ad93add92c
DIST mercury-srcdist-20.01.1.tar.gz 47088335 BLAKE2B 1e3285dadc3748934e801b8ac0316d3005fbe24c20c9ceb694e9fc316d820fdb89c659107b25ee474fd6ac50d661dd029af9ca5082016a3b0827dd640a54a707 SHA512 24ad0bbecee46ab6ff669d63d64096b37a0d010bb44978a1785eee2701a8b30a83eab229af97cbbb18bca55b5e89be9ba74fe126d1d430da1e1e909366dc5b90
DIST mercury-srcdist-20.01.2.tar.gz 46789217 BLAKE2B bc9637c1b4afb81d4bf35cd94a1f1d87b17094d8a6cbb7e5c8b0ff9c99ce59178d9e32bae246dd041ad781fe5d04e68db8f5effbb6bfcc29b76a83aad91a5666 SHA512 0deed9c0a13ebf793fb80def3fe6d9ee0aa4f0f2974865364eff81bdcac1ec0c41aafbec3e0146c8bdcf3245789e1003b2e4f8e219b53bec71e90074867a834d
diff --git a/dev-lang/mercury/mercury-20.06.ebuild b/dev-lang/mercury/mercury-20.06.ebuild
index 3757ae56109d..2a3855fb7950 100644
--- a/dev-lang/mercury/mercury-20.06.ebuild
+++ b/dev-lang/mercury/mercury-20.06.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools elisp-common eutils flag-o-matic java-pkg-opt-2 multilib vcs-clean xdg-utils
-PATCHSET_VER="0"
+PATCHSET_VER="1"
MY_P=${PN}-srcdist-${PV}
DESCRIPTION="Mercury is a modern general-purpose logic/functional programming language"
@@ -15,7 +15,7 @@ SRC_URI="https://dl.mercurylang.org/release-20.06/${MY_P}.tar.gz
LICENSE="GPL-2 LGPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
IUSE="debug doc emacs erlang examples java mono profile readline threads trail"
diff --git a/dev-lang/moarvm/Manifest b/dev-lang/moarvm/Manifest
index a5766c4f1232..ce8896647701 100644
--- a/dev-lang/moarvm/Manifest
+++ b/dev-lang/moarvm/Manifest
@@ -5,3 +5,4 @@ DIST MoarVM-2020.08.tar.gz 5333410 BLAKE2B 4590576148d26c96eda390c9b66966b102056
DIST MoarVM-2020.09.tar.gz 5361349 BLAKE2B 4846f7b44a238f6f2b40e829999c4939cb6cd6988ff11ae68dd2381db3144f2c7b7ec37dd71fa6749b4a0147e20224a801342e3ea8bf03dbd758012723468861 SHA512 3859e96e6861dc7bf3f64708db33bb9a761b7a7bc3a05655424d6c27010cf6f01e73066e26bff7256f58ed4044f9aee2f186c886a419c3d6aff23f75102f6c48
DIST MoarVM-2020.10.tar.gz 5362845 BLAKE2B 1486fbbe5407aaf010a2b929458750989820e62d9baadcf66ae97df55c93914639bc988ffe30055fee0a0b0f88f73d9de8d253e138b6d594581160d976831280 SHA512 5251d564909313ca7a660d462370e899d415cbd0b493da189abde952d80992c3e04525b2d8ae5066c9c4ea2c99860e38f9a8beaee4ea0d53d9b32973104fa7d3
DIST MoarVM-2020.11.tar.gz 5402860 BLAKE2B f29ec4a8f4979fd65adb24cbfbbed586b69d47dd1176770e1e0e46a8bc35ef90146bae468fd6e088cd19201ba7e43d43d486d569970a81a695d6b642f57c2417 SHA512 c3ffe128db43316f93ad19f2804cd963cd2613dc46ffd29b099a165f122f6e7fdf28ce0b6c226a31f44abaeca72468f6774c39ceac3cea992596e8ce042ae7a5
+DIST MoarVM-2020.12.tar.gz 5429137 BLAKE2B dbf9b0b29226dde10b27ddb9195678c86efc77eff16b57745d31dbcef316c8ba4f5233e2c3672b436d089ce59d4ed9acc908e483d081768946c088708caf5711 SHA512 2e95a3336f0b5687f525a5117daf6cd62da6c59fd6d96d508637a30ca5a0bc7a86a35bb21f09f29068e2ec940b859944838eec4c4a2412a3f3bf8320c3d9cfd5
diff --git a/dev-lang/moarvm/moarvm-2020.12.ebuild b/dev-lang/moarvm/moarvm-2020.12.ebuild
new file mode 100644
index 000000000000..dfc9e614ad17
--- /dev/null
+++ b/dev-lang/moarvm/moarvm-2020.12.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit flag-o-matic
+
+MY_PN="MoarVM"
+if [[ ${PV} == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git"
+ inherit git-r3
+ KEYWORDS=""
+ S="${WORKDIR}/${P}"
+else
+ SRC_URI="http://moarvm.org/releases/${MY_PN}-${PV}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+ S="${WORKDIR}/${MY_PN}-${PV}"
+fi
+
+DESCRIPTION="A 6model-based VM for NQP and Rakudo Perl 6"
+HOMEPAGE="https://moarvm.org"
+LICENSE="Artistic-2"
+SLOT="0"
+
+IUSE="asan clang debug doc +jit optimize static-libs ubsan"
+
+RDEPEND="dev-libs/libatomic_ops
+ >=dev-libs/libuv-1.26
+ dev-libs/libffi"
+DEPEND="${RDEPEND}
+ clang? ( >=sys-devel/clang-3.1 )
+ dev-lang/perl"
+
+DOCS=( CREDITS README.markdown )
+
+# Tests are conducted via nqp
+RESTRICT=test
+
+src_configure() {
+ MAKEOPTS+=" NOISY=1"
+ use doc && DOCS+=( docs/* )
+ local prefix="${EPREFIX}/usr"
+ local libdir="${EPREFIX}/usr/$(get_libdir)"
+ einfo "--prefix '${prefix}'"
+ einfo "--libdir '${libdir}'"
+ local myconfigargs=(
+ "--prefix" "${prefix}"
+ "--has-libuv"
+ "--has-libatomic_ops"
+ "--has-libffi"
+ "--libdir" "${libdir}"
+ "--compiler" "$(usex clang clang gcc)"
+ "$(usex asan --asan)"
+ "$(usex debug --debug --no-debug)"
+ "$(usex optimize --optimize= --no-optimize)"
+ "$(usex static-libs --static)"
+ "$(usex ubsan --ubsan)"
+ )
+
+ perl Configure.pl "${myconfigargs[@]}" moarshared || die
+}
diff --git a/dev-lang/mujs/Manifest b/dev-lang/mujs/Manifest
index 138a4ae94957..c4b43650c73b 100644
--- a/dev-lang/mujs/Manifest
+++ b/dev-lang/mujs/Manifest
@@ -1,3 +1 @@
-DIST mujs-1.0.6.tar.gz 121385 BLAKE2B b74da9cc9df6c51d81fe4b6170fddd9bfd3e37cc1c48509ddbcc9b657feb7169cfa98427770a118fb9c0923e70320668198739ea111cbd5d1c2303b2ada7093d SHA512 c3062348dcc79b8ea3726fc528b3ba765d3462232059617b9ab221ba47fa904cc81a305a6199a9a2cea24a2d891ca63d475b4884cd4e53fa715b3a55f51ca4d9
-DIST mujs-1.0.7.tar.xz 93928 BLAKE2B 3c29ad3c23b75ee310824a36c0b08ede07b4ebaebff78558d07bc0eda55d6a994551502089cebd5b53ae24364ec1170e0865b7f1560d909dd15a18040666fea2 SHA512 30cc06ce4a608e091d46ba903ffc2eda29972cf583eb077d7824627fa20423c4721a406bf4271ebd5e5cade74f34e19acc9cffbc6d4d44314085a5525e91564f
DIST mujs-1.0.9.tar.gz 123113 BLAKE2B c55deaf14508c412394bf5fe3a53ef581d4e4726024d65f2ba5155eb2400a6e2f043c9f6721b170d19297e2cd38c62c462f3b4e102eb4bfe6e7857b40156c18b SHA512 a3dbc8dbf5c16b7de9803954fe38ea9f77c0e5b7de3895966ec0877e063d463c9950499791ea0d102e464bd0426413689f3edb15e38db3f13915d72f27556725
diff --git a/dev-lang/mujs/metadata.xml b/dev-lang/mujs/metadata.xml
index 54a230513199..20c8b9fc904e 100644
--- a/dev-lang/mujs/metadata.xml
+++ b/dev-lang/mujs/metadata.xml
@@ -4,7 +4,6 @@
<maintainer type="person">
<email>sam@gentoo.org</email>
<name>Sam James</name>
- <description>Caretaker; feel free to share this pkg</description>
</maintainer>
<longdescription>
MuJS is a lightweight Javascript interpreter designed for embedding in
diff --git a/dev-lang/mujs/mujs-1.0.6.ebuild b/dev-lang/mujs/mujs-1.0.6.ebuild
deleted file mode 100644
index c6663ac60e38..000000000000
--- a/dev-lang/mujs/mujs-1.0.6.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit flag-o-matic toolchain-funcs
-
-DESCRIPTION="An embeddable Javascript interpreter in C."
-HOMEPAGE="
- https://mujs.com/
- https://github.com/ccxvii/mujs/
-"
-SRC_URI="https://github.com/ccxvii/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="ISC"
-# subslot matches SONAME
-SLOT="0/${PV}"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 s390 sparc x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos"
-IUSE="static-libs"
-
-RDEPEND="sys-libs/readline:0="
-DEPEND="${RDEPEND}"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.0.5-flags.patch"
-)
-
-src_prepare() {
- default
-
- tc-export AR CC
-
- # library's ABI (and API) changes in ~each release:
- # diff 'usr/includemujs.h' across releases to validate
- append-cflags -fPIC -Wl,-soname=lib${PN}.so.${PV}
-}
-
-src_compile() {
- emake VERSION=${PV} prefix=/usr shared
-}
-
-src_install() {
- local myeconfargs=(
- DESTDIR="${ED}"
- install-shared
- libdir="/usr/$(get_libdir)"
- prefix="/usr"
- VERSION="${PV}"
- $(usex static-libs install-static '')
- )
-
- emake "${myeconfargs[@]}"
-
- mv -v "${ED}"/usr/$(get_libdir)/lib${PN}.so{,.${PV}} || die
-
- dosym lib${PN}.so.${PV} /usr/$(get_libdir)/lib${PN}.so
- dosym lib${PN}.so.${PV} /usr/$(get_libdir)/lib${PN}.so.${PV:0:1}
-}
diff --git a/dev-lang/mujs/mujs-1.0.7.ebuild b/dev-lang/mujs/mujs-1.0.7.ebuild
deleted file mode 100644
index b95335f324a9..000000000000
--- a/dev-lang/mujs/mujs-1.0.7.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit flag-o-matic toolchain-funcs
-
-DESCRIPTION="An embeddable Javascript interpreter in C."
-HOMEPAGE="
- https://mujs.com/
- https://github.com/ccxvii/mujs/
-"
-SRC_URI="https://mujs.com/downloads/${P}.tar.xz"
-
-LICENSE="ISC"
-# subslot matches SONAME
-SLOT="0/${PV}"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 s390 sparc x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos"
-IUSE="static-libs"
-
-RDEPEND="sys-libs/readline:0="
-DEPEND="${RDEPEND}"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.0.5-flags.patch"
-)
-
-src_prepare() {
- default
-
- tc-export AR CC
-
- # library's ABI (and API) changes in ~each release:
- # diff 'usr/includemujs.h' across releases to validate
- append-cflags -fPIC -Wl,-soname=lib${PN}.so.${PV}
-}
-
-src_compile() {
- emake VERSION=${PV} prefix=/usr shared
-}
-
-src_install() {
- local myeconfargs=(
- DESTDIR="${ED}"
- install-shared
- libdir="/usr/$(get_libdir)"
- prefix="/usr"
- VERSION="${PV}"
- $(usex static-libs install-static '')
- )
-
- emake "${myeconfargs[@]}"
-
- mv -v "${ED}"/usr/$(get_libdir)/lib${PN}.so{,.${PV}} || die
-
- dosym lib${PN}.so.${PV} /usr/$(get_libdir)/lib${PN}.so
- dosym lib${PN}.so.${PV} /usr/$(get_libdir)/lib${PN}.so.${PV:0:1}
-}
diff --git a/dev-lang/mujs/mujs-1.0.9.ebuild b/dev-lang/mujs/mujs-1.0.9.ebuild
index 5e989016cc43..86fdb839d116 100644
--- a/dev-lang/mujs/mujs-1.0.9.ebuild
+++ b/dev-lang/mujs/mujs-1.0.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -17,7 +17,7 @@ SRC_URI="https://github.com/ccxvii/mujs/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="ISC"
# subslot matches SONAME
SLOT="0/${PV}"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 s390 sparc x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 s390 sparc x86 ~amd64-linux ~ppc-macos ~x64-macos"
IUSE="static-libs"
RDEPEND="sys-libs/readline:0="
diff --git a/dev-lang/nqp/Manifest b/dev-lang/nqp/Manifest
index f4b18b2cb7a0..13900a24a5df 100644
--- a/dev-lang/nqp/Manifest
+++ b/dev-lang/nqp/Manifest
@@ -5,3 +5,4 @@ DIST nqp-2020.08.tar.gz 3951313 BLAKE2B 0eda6b50268cd4faf49a7311e4d94d9846e22307
DIST nqp-2020.09.tar.gz 3951646 BLAKE2B 9ec1d121f9dc276ad52ea22d43fb24fefeda009f648b64f330669d7f9aaaef599522cca708b3671f982969cba0a1346cc078c55c98247545408b3a929899edd1 SHA512 dcebf63ea062c0fec95d701b1f20c492c845060599f4524fa87758ce5f8e52f6eae9a409c31b238783285f30a497acffd97242dc2ca7fbe4b8dd20291104b261
DIST nqp-2020.10.tar.gz 3954398 BLAKE2B 5c44a20c3696bb596bd1d3088fba8db8c63ce6e612f00c2d24456dc7d908b12a214b4bde7e4e79505c39f6237a6f91578de47778185fa6cc3b6287c90e6c370e SHA512 279715fa0b2012852cc31b9e7898092510a1ba76005576a3ffe38f9dc8e9c002a4161be8f0b66e38c501e656a8124a320dbf2c90c89f53e57d0950e1baa1ea2b
DIST nqp-2020.11.tar.gz 3954688 BLAKE2B d273c78c8f2083908b2815dc10787fec31404eb13c1e64253e7e5ae896d27a3755cf5c8045d47c4f465178568731e0d74951db6e45d103cf3ee18470124e97e0 SHA512 51b5e7f9d290bca7ada24cf9c12c61608be92269fc848976cada49f7445694e0f26929b5f9e90a9153eb379f0d74a6bb8068cd5ebf383d4501f75535b70e7605
+DIST nqp-2020.12.tar.gz 3957981 BLAKE2B d45ad66ebb0788db6e7191b4b7af4093b73e63e5f66ab4ccab62163b0285adb7d4e18a7c906c34f99dd63e0920f4d6e16e11005eb5df1d726796e9f106f9c4f8 SHA512 4ce87dc868c91565ebe896db766403bb018b2f5ea919bd0fb5b173498ba124712ffa795ec4e219240e5aabb59c55285bee5e46d3ac3d5869fc445b0ab3ea8485
diff --git a/dev-lang/nqp/nqp-2020.12.ebuild b/dev-lang/nqp/nqp-2020.12.ebuild
new file mode 100644
index 000000000000..c41412d388c5
--- /dev/null
+++ b/dev-lang/nqp/nqp-2020.12.ebuild
@@ -0,0 +1,160 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit java-pkg-opt-2 multibuild
+
+if [[ ${PV} == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/perl6/${PN}.git"
+ inherit git-r3
+ KEYWORDS=""
+else
+ SRC_URI="https://github.com/perl6/${PN}/releases/download/${PV}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler"
+HOMEPAGE="https://rakudo.org"
+
+LICENSE="Artistic-2"
+SLOT="0"
+IUSE="doc clang java +moar test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="|| ( java moar )"
+
+CDEPEND="java? (
+ dev-java/asm:4
+ dev-java/jline:0
+ dev-java/jna:4
+ )
+ moar? ( ~dev-lang/moarvm-${PV}[clang=] )"
+RDEPEND="${CDEPEND}
+ java? ( >=virtual/jre-1.8 )"
+DEPEND="${CDEPEND}"
+BDEPEND="${CDEPEND}
+ clang? ( sys-devel/clang )
+ java? ( >=virtual/jdk-1.8 )
+ dev-lang/perl"
+
+pkg_pretend() {
+ if has_version dev-lang/rakudo || has_version dev-lang/nqp; then
+ ewarn "NQP is known to fail compilation/installation with Rakudo and/or NQP"
+ ewarn "already being installed. So if it fails, try uninstalling both"
+ ewarn "dev-lang/nqp and dev-lang/rakudo, then do a new installation."
+ ewarn "(see Bug #584394)"
+ fi
+}
+
+java_prepare() {
+ # Don't clean stage0 jars.
+ einfo "Cleaning upstream jars"
+ java-pkg_clean 3rdparty/
+
+ # Don't use jars we just deleted.
+ sed -i -r 's/(:3rdparty[^:]*)+/:${THIRDPARTY_JARS}/g' \
+ src/vm/jvm/runners/nqp-j || die
+}
+
+src_prepare() {
+ MULTIBUILD_VARIANTS=()
+ use moar && MULTIBUILD_VARIANTS+=( moar )
+ use java && MULTIBUILD_VARIANTS+=( jvm )
+
+ multibuild_copy_sources
+
+ # This will pull in conditional java_prepare
+ default
+}
+
+nqp_configure() {
+ pushd "${BUILD_DIR}" > /dev/null || die
+ local myconfargs=(
+ "--backend=${MULTIBUILD_VARIANT}"
+ "--prefix=${EPREFIX}/usr" )
+
+ perl Configure.pl "${myconfargs[@]}" || die
+ popd || die
+}
+
+nqp_compile() {
+ if [[ "${MULTIBUILD_VARIANT}" = jvm ]]; then
+ emake -j1 \
+ -C "${BUILD_DIR}" \
+ THIRDPARTY_JARS=$(java-pkg_getjars --with-dependencies asm-4,jline,jna-4) \
+ JAVAC="$(java-pkg_get-javac) $(java-pkg_javac-args)"
+ elif [[ "${MULTIBUILD_VARIANT}" = moar ]]; then
+ emake -j1 \
+ -C "${BUILD_DIR}"
+ fi
+}
+
+nqp_test() {
+ emake -j1 \
+ -C "${BUILD_DIR}" \
+ test
+}
+
+nqp_install() {
+ # This is the actual reason we need multibuild.eclass.
+ # We need to distinguish the install procedure for MoarVM and JVM backends.
+ case "${MULTIBUILD_VARIANT}" in
+ moar)
+ emake \
+ DESTDIR="${ED}" \
+ -C "${BUILD_DIR}" \
+ install
+ ;;
+ jvm)
+ pushd "${BUILD_DIR}" > /dev/null || die
+ # Set JAVA_PKG_JARDEST early.
+ java-pkg_init_paths_
+
+ # Upstream sets the classpath to this location. Perhaps it's
+ # used to locate the additional libraries?
+ java-pkg_addcp "${JAVA_PKG_JARDEST}"
+
+ insinto "${JAVA_PKG_JARDEST}"
+ local jar
+
+ for jar in *.jar; do
+ if has ${jar} ${PN}.jar ${PN}-runtime.jar; then
+ # jars for NQP itself.
+ java-pkg_dojar ${jar}
+ else
+ # jars used by NQP.
+ doins ${jar}
+ fi
+ done
+
+ # Upstream uses -Xbootclasspath/a, which is faster due to lack
+ # of verification, but gjl isn't flexible enough yet. :(
+ java-pkg_dolauncher ${PN}-j --main ${PN}
+ dosym ${PN}-j /usr/bin/${PN}
+ dobin tools/jvm/eval-client.pl
+ popd > /dev/null || die
+ ;;
+ *)
+ die "Unknown MULTIBUILD_VARIANT ${MULTIBUILD_VARIANT}."
+ ;;
+ esac
+}
+
+src_configure() {
+ multibuild_foreach_variant nqp_configure
+}
+
+src_compile() {
+ multibuild_foreach_variant nqp_compile
+}
+
+src_test() {
+ multibuild_foreach_variant nqp_test
+}
+
+src_install() {
+ multibuild_foreach_variant nqp_install
+
+ dodoc CREDITS README.pod
+ use doc && dodoc -r docs/*
+}
diff --git a/dev-lang/ocaml/Manifest b/dev-lang/ocaml/Manifest
index bdcf6a4915f0..84240dde1f1b 100644
--- a/dev-lang/ocaml/Manifest
+++ b/dev-lang/ocaml/Manifest
@@ -2,6 +2,7 @@ DIST ocaml-4.04.2.tar.gz 4061873 BLAKE2B 756936592c7e0c87da27f154f07850eb3e4b2ed
DIST ocaml-4.05.0.tar.gz 4431750 BLAKE2B c2ab003a13e0a581ebd0e1c96eeb8a9baea9bfe6bee08823b0e4541819201ec109f1846e13fc1aefa51a001eefbb8f73320ba854d41975fc68cef41bc75b1ecc SHA512 9a060ae4b741e1687277403e5bdb8f6eda2e2ebf6c45f7c0149b66ea1213cb26d13febfbb3f11c12543e244cfdd053b786b09c4145e2348e5d89a7206f7de225
DIST ocaml-4.09.0.tar.gz 4838748 BLAKE2B 80f29d535c64bf2371b480217723ed20b2b21cfd93ce31366a7b91e7ddffdf68db4e88d085288b7e21efee567a13f42ecff24c3a0115507b006acf844239cefd SHA512 dc0271e591bf929b751705835790949a9d741e12d085c8b207c3689b5838a02ea8de80da8b2605d2e6744f2f541b0d1694ffafff9509e99ce01f3a391f6ef2ae
DIST ocaml-4.10.0.tar.gz 4927867 BLAKE2B 71b8448a10bf3049e3b005dfbb2030d479e69e4c2ef00055f1dacd38eff838b0a5c18b4883d899b5eb4cbd05bb7ca35867010794ed25682ad51b2fe19ef2114d SHA512 f39269d572b3f7755f7881b7a9fdfe5253e49d847835ae2a8695f67e3309fc1e925523d66ecbe1fb8bc0cc3b5602e077ce7feac4926aab571383766442265179
+DIST ocaml-4.10.2.tar.gz 4933135 BLAKE2B ec5e92adb23c28a254247182c79ab555fd82603e02f24799049b8057abf869d18234302408c8ae89b9997a2b210ed6965e45c2c03e4f0cab34262ad3f6ebb528 SHA512 1dd827da07f01e815fd74dd7ee84db0900f24782f8f7fd426e2d71b9fb03c7b8045f22e018120a0446c362315751365d1bd8c1724edef2b182394e76eb0a07b2
DIST ocaml-4.11.1.tar.gz 5069552 BLAKE2B a731d4b60d7965c860dda5c9dfb26b968320760501ff3cac908b8cd96e34391c417e16077cdf753b27b85a79857451e6ff0b566a9158178026a0e6bd5240aac4 SHA512 93fa8b2ff71d5f645e3ed72913205e7d35aa523cfa87d1939d77e796495b94c2fdb4a429ea65330cdeecfb0a36f7ab053b15090d9baa151b58e5331148dc8150
DIST ocaml-patches-8.tar.bz2 1803 BLAKE2B 5e76a198c2f5ca9f231d4e80499d784cf061ec79bf6b5e3aac917e1260d1f2b927f0f8015d39c01ce4fd481d32a5d211c31e081a7ab87ba1e7c7d5def95bc0fb SHA512 fc477fbb5bdec60a3c4d3dfa110119bb579560ac0e0e57e30e076da72643bda6359c06fd3745fd3436c5d611dbbd888ec2921e9d1920f4929df633c35a797411
DIST ocaml-patches-9.tar.bz2 1700 BLAKE2B 4e46b8fb490db28f815414e285f54e251394ea53e1d25c529bbea9f03e426fd19132b1e2c7c2be7d14983fceb4cad073d191b001f6da522fee4226371d4a2eca SHA512 cc19f9104fac69aecc5effa8cb772342e1fb61cdcd38ba0176efe04cf3d710b1c56d5178748f3bd29099af91fa684da432a8ef8d42de76dbd1b6954a255ea6c0
diff --git a/dev-lang/ocaml/metadata.xml b/dev-lang/ocaml/metadata.xml
index 5ca2f32550fb..c21628c736cb 100644
--- a/dev-lang/ocaml/metadata.xml
+++ b/dev-lang/ocaml/metadata.xml
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
+ <maintainer type="project">
+ <email>ml@gentoo.org</email>
+ <name>ML</name>
+ </maintainer>
<maintainer type="person">
<email>gienah@gentoo.org</email>
<name>Mark Wright</name>
diff --git a/dev-lang/ocaml/ocaml-4.05.0-r1.ebuild b/dev-lang/ocaml/ocaml-4.05.0-r1.ebuild
index c36e7f00e47d..f1e64c43cdab 100644
--- a/dev-lang/ocaml/ocaml-4.05.0-r1.ebuild
+++ b/dev-lang/ocaml/ocaml-4.05.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="5"
@@ -16,7 +16,7 @@ LICENSE="QPL-1.0 LGPL-2"
# Everytime ocaml is updated to a new version, everything ocaml must be rebuilt,
# so here we go with the subslot.
SLOT="0/${PV}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
IUSE="emacs flambda latex ncurses +ocamlopt spacetime X xemacs"
RDEPEND="
diff --git a/dev-lang/ocaml/ocaml-4.09.0.ebuild b/dev-lang/ocaml/ocaml-4.09.0.ebuild
index ddfaf3a10f2b..181f30b8fef2 100644
--- a/dev-lang/ocaml/ocaml-4.09.0.ebuild
+++ b/dev-lang/ocaml/ocaml-4.09.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -9,7 +9,7 @@ DESCRIPTION="Programming language supporting functional, imperative & object-ori
LICENSE="LGPL-2.1"
SLOT="0/${PV}"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
IUSE="emacs flambda latex +ocamlopt spacetime xemacs"
RDEPEND="sys-libs/binutils-libs:=
diff --git a/dev-lang/ocaml/ocaml-4.10.0.ebuild b/dev-lang/ocaml/ocaml-4.10.0.ebuild
index 73512531e69a..903534e88c81 100644
--- a/dev-lang/ocaml/ocaml-4.10.0.ebuild
+++ b/dev-lang/ocaml/ocaml-4.10.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -9,7 +9,7 @@ DESCRIPTION="Programming language supporting functional, imperative & object-ori
LICENSE="LGPL-2.1"
SLOT="0/${PV}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
IUSE="emacs flambda latex +ocamlopt spacetime xemacs"
RDEPEND="sys-libs/binutils-libs:=
diff --git a/dev-lang/ocaml/ocaml-4.10.2.ebuild b/dev-lang/ocaml/ocaml-4.10.2.ebuild
new file mode 100644
index 000000000000..f29e4ae72201
--- /dev/null
+++ b/dev-lang/ocaml/ocaml-4.10.2.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+HOMEPAGE="https://ocaml.org/"
+SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
+DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
+
+LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
+IUSE="emacs flambda latex +ocamlopt spacetime xemacs"
+
+RDEPEND="sys-libs/binutils-libs:=
+ spacetime? ( sys-libs/libunwind:= )"
+BDEPEND="${RDEPEND}
+ virtual/pkgconfig"
+PDEPEND="emacs? ( app-emacs/ocaml-mode )
+ xemacs? ( app-xemacs/ocaml )"
+
+src_prepare() {
+ default
+ # Upstream build ignores LDFLAGS in several places.
+ sed -i -e 's/\(^MKDLL=.*\)/\1 $(LDFLAGS)/' \
+ -e 's/\(^OC_CFLAGS=.*\)/\1 $(LDFLAGS)/' \
+ -e 's/\(^OC_LDFLAGS=.*\)/\1 $(LDFLAGS)/' \
+ Makefile.config.in || die "LDFLAGS fix failed"
+ # ${P} overrides upstream build's own P due to a wrong assignment operator.
+ sed -i -e 's/^P ?=/P =/' stdlib/StdlibModules || die "P fix failed"
+}
+
+src_configure() {
+ local opt=(
+ --bindir="${EPREFIX}/usr/bin"
+ --libdir="${EPREFIX}/usr/$(get_libdir)/ocaml"
+ --mandir="${EPREFIX}/usr/share/man"
+ --prefix="${EPREFIX}/usr"
+ $(use_enable flambda)
+ $(use_enable spacetime)
+ )
+ econf ${opt[@]}
+}
+
+src_compile() {
+ if use ocamlopt ; then
+ emake world.opt
+ else
+ emake world
+ fi
+}
+
+src_test() {
+ if use ocamlopt ; then
+ # OCaml tests only work when run sequentially
+ emake -j1 -C testsuite all
+ else
+ ewarn "${PN} was built without 'ocamlopt' USE flag; skipping tests."
+ fi
+}
+
+src_install() {
+ default
+ dodir /usr/include
+
+ # Create symlink for header files
+ dosym "../$(get_libdir)/ocaml/caml" /usr/include/caml
+ dodoc Changes README.adoc
+
+ # Create envd entry for latex input files
+ if use latex ; then
+ echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}/99ocamldoc"
+ doenvd "${T}/99ocamldoc"
+ fi
+
+ # Install ocaml-rebuild portage set
+ insinto /usr/share/portage/config/sets
+ doins "${FILESDIR}/ocaml.conf"
+}
diff --git a/dev-lang/ocaml/ocaml-4.11.1.ebuild b/dev-lang/ocaml/ocaml-4.11.1.ebuild
index 1afc9e3e1b3a..280d813184b1 100644
--- a/dev-lang/ocaml/ocaml-4.11.1.ebuild
+++ b/dev-lang/ocaml/ocaml-4.11.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -9,7 +9,7 @@ DESCRIPTION="Programming language supporting functional, imperative & object-ori
LICENSE="QPL-1.0 LGPL-2"
SLOT="0/${PV}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
IUSE="emacs flambda latex +ocamlopt spacetime xemacs"
RDEPEND="sys-libs/binutils-libs:=
diff --git a/dev-lang/orc/orc-0.4.28-r1.ebuild b/dev-lang/orc/orc-0.4.28-r1.ebuild
index fc949eb836b7..1d22e3f53076 100644
--- a/dev-lang/orc/orc-0.4.28-r1.ebuild
+++ b/dev-lang/orc/orc-0.4.28-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -11,7 +11,7 @@ SRC_URI="https://gstreamer.freedesktop.org/src/${PN}/${P}.tar.xz"
LICENSE="BSD BSD-2"
SLOT="0"
-KEYWORDS="amd64 arm ~arm64 ~hppa ppc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="amd64 arm ~arm64 ~hppa ppc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="examples pax_kernel static-libs"
RDEPEND=""
diff --git a/dev-lang/orc/orc-0.4.29.ebuild b/dev-lang/orc/orc-0.4.29.ebuild
index 7a0d9f36864c..11728d5cf617 100644
--- a/dev-lang/orc/orc-0.4.29.ebuild
+++ b/dev-lang/orc/orc-0.4.29.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -11,7 +11,7 @@ SRC_URI="https://gstreamer.freedesktop.org/src/${PN}/${P}.tar.xz"
LICENSE="BSD BSD-2"
SLOT="0"
-KEYWORDS="amd64 arm ~arm64 ~hppa ppc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="amd64 arm ~arm64 ~hppa ppc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="examples pax_kernel static-libs"
RDEPEND=""
diff --git a/dev-lang/orc/orc-0.4.31.ebuild b/dev-lang/orc/orc-0.4.31.ebuild
index 9e3fbb59e424..f6afe427d1ae 100644
--- a/dev-lang/orc/orc-0.4.31.ebuild
+++ b/dev-lang/orc/orc-0.4.31.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -11,7 +11,7 @@ SRC_URI="https://gstreamer.freedesktop.org/src/${PN}/${P}.tar.xz"
LICENSE="BSD BSD-2"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
RESTRICT="!test? ( test )"
IUSE="gtk-doc static-libs test"
diff --git a/dev-lang/parrot/parrot-8.1.0-r2.ebuild b/dev-lang/parrot/parrot-8.1.0-r2.ebuild
index 86f2761b897a..7e142004ff12 100644
--- a/dev-lang/parrot/parrot-8.1.0-r2.ebuild
+++ b/dev-lang/parrot/parrot-8.1.0-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -14,7 +14,7 @@ SRC_URI="ftp://ftp.parrot.org/pub/parrot/releases/all/${PV}/${P}.tar.gz"
LICENSE="Artistic-2"
SLOT="0/${PV}"
-KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="opengl nls doc examples gdbm +gmp ssl +unicode pcre"
CDEPEND="sys-libs/readline:0=
diff --git a/dev-lang/pcc/pcc-9999.ebuild b/dev-lang/pcc/pcc-9999.ebuild
index 7e9446e4afe5..65a17a3fbbd3 100644
--- a/dev-lang/pcc/pcc-9999.ebuild
+++ b/dev-lang/pcc/pcc-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=5
@@ -36,7 +36,7 @@ src_configure() {
}
src_compile() {
- emake
+ emake
}
src_install() {
diff --git a/dev-lang/perl/files/perl-5.30.3-darwin-macos11.patch b/dev-lang/perl/files/perl-5.30.3-darwin-macos11.patch
new file mode 100644
index 000000000000..73879b398c4d
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.30.3-darwin-macos11.patch
@@ -0,0 +1,180 @@
+https://github.com/Perl/perl5/pull/17946
+https://bugs.gentoo.org/757249
+---
+From b382aafc793fe1007f9058a5145a1d39d56cef70 Mon Sep 17 00:00:00 2001
+From: Adam Hartley <git@ahartley.com>
+Date: Mon, 6 Jul 2020 22:59:42 +0100
+Subject: [PATCH 1/7] Add 11.x support for darwin.sh
+
+---
+ hints/darwin.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/hints/darwin.sh b/hints/darwin.sh
+index 0a91bc083c0..c0f06de1cab 100644
+--- a/hints/darwin.sh
++++ b/hints/darwin.sh
+@@ -301,7 +301,7 @@ case "$osvers" in # Note: osvers is the kernel version, not the 10.x
+ # We now use MACOSX_DEPLOYMENT_TARGET, if set, as an override by
+ # capturing its value and adding it to the flags.
+ case "$MACOSX_DEPLOYMENT_TARGET" in
+- 10.*)
++ 10.* | 11.*)
+ add_macosx_version_min ccflags $MACOSX_DEPLOYMENT_TARGET
+ add_macosx_version_min ldflags $MACOSX_DEPLOYMENT_TARGET
+ ;;
+@@ -327,7 +327,7 @@ EOM
+ # "ProductVersion: 10.11" "10.11"
+ prodvers=`sw_vers|awk '/^ProductVersion:/{print $2}'|awk -F. '{print $1"."$2}'`
+ case "$prodvers" in
+- 10.*)
++ 10.* | 11.*)
+ add_macosx_version_min ccflags $prodvers
+ add_macosx_version_min ldflags $prodvers
+ ;;
+
+From 960d1a5c4225d1dd12636a469e10a568464e4e7c Mon Sep 17 00:00:00 2001
+From: Adam Hartley <git@ahartley.com>
+Date: Wed, 8 Jul 2020 19:10:33 +0100
+Subject: [PATCH 3/7] Update error message
+
+---
+ hints/darwin.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/hints/darwin.sh b/hints/darwin.sh
+index c0f06de1cab..988b766c4f4 100644
+--- a/hints/darwin.sh
++++ b/hints/darwin.sh
+@@ -313,7 +313,7 @@ case "$osvers" in # Note: osvers is the kernel version, not the 10.x
+
+ *** Unexpected MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET
+ ***
+-*** Please either set it to 10.something, or to empty.
++*** Please either set it to 10.something, 11.something or to empty.
+
+ EOM
+ exit 1
+
+From d633cced1d5174e19c5f2234a9fb4c7603cfb9db Mon Sep 17 00:00:00 2001
+From: Adam Hartley <git@ahartley.com>
+Date: Sat, 11 Jul 2020 11:41:27 +0100
+Subject: [PATCH 4/7] Update deprecated syscall check for 11.x and greater
+
+---
+ hints/darwin.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/hints/darwin.sh b/hints/darwin.sh
+index 988b766c4f4..4f73a9995e7 100644
+--- a/hints/darwin.sh
++++ b/hints/darwin.sh
+@@ -342,11 +342,11 @@ EOM
+ exit 1
+ esac
+
+- # The X in 10.X
++ prodvers_major=$(echo $prodvers|awk -F. '{print $1}')
+ prodvers_minor=$(echo $prodvers|awk -F. '{print $2}')
+
+ # macOS (10.12) deprecated syscall().
+- if [ "$prodvers_minor" -ge 12 ]; then
++ if [[ ( "$prodvers_minor" -ge 12 && "$prodvers_major" -eq 10 ) || "$prodvers_major" -ge 11 ]]; then
+ d_syscall='undef'
+ # If deploying to pre-10.12, suppress Time::HiRes's detection of the system clock_gettime()
+ case "$MACOSX_DEPLOYMENT_TARGET" in
+
+From 9c3890f8521a7db6d9b2aa21561c7d0dae9fb91d Mon Sep 17 00:00:00 2001
+From: Adam Hartley <BytesGuy@users.noreply.github.com>
+Date: Wed, 22 Jul 2020 13:15:30 +0100
+Subject: [PATCH 5/7] Simplify syscall check
+
+---
+ hints/darwin.sh | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/hints/darwin.sh b/hints/darwin.sh
+index 4f73a9995e7..40c84cf267a 100644
+--- a/hints/darwin.sh
++++ b/hints/darwin.sh
+@@ -342,11 +342,10 @@ EOM
+ exit 1
+ esac
+
+- prodvers_major=$(echo $prodvers|awk -F. '{print $1}')
+- prodvers_minor=$(echo $prodvers|awk -F. '{print $2}')
++ darwin_major=$(echo $osvers|awk -F. '{print $1}')
+
+- # macOS (10.12) deprecated syscall().
+- if [[ ( "$prodvers_minor" -ge 12 && "$prodvers_major" -eq 10 ) || "$prodvers_major" -ge 11 ]]; then
++ # macOS 10.12 (darwin 6.0.0) deprecated syscall().
++ if [ "$darwin_major" -ge 6 ]; then
+ d_syscall='undef'
+ # If deploying to pre-10.12, suppress Time::HiRes's detection of the system clock_gettime()
+ case "$MACOSX_DEPLOYMENT_TARGET" in
+
+From 99ff8934992102a3db63805e8ba9710577de164e Mon Sep 17 00:00:00 2001
+From: Adam Hartley <BytesGuy@users.noreply.github.com>
+Date: Wed, 22 Jul 2020 13:15:53 +0100
+Subject: [PATCH 6/7] Update darwin.sh
+
+---
+ hints/darwin.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/hints/darwin.sh b/hints/darwin.sh
+index 40c84cf267a..1709d224f7c 100644
+--- a/hints/darwin.sh
++++ b/hints/darwin.sh
+@@ -344,8 +344,8 @@ EOM
+
+ darwin_major=$(echo $osvers|awk -F. '{print $1}')
+
+- # macOS 10.12 (darwin 6.0.0) deprecated syscall().
+- if [ "$darwin_major" -ge 6 ]; then
++ # macOS 10.12 (darwin 16.0.0) deprecated syscall().
++ if [ "$darwin_major" -ge 16 ]; then
+ d_syscall='undef'
+ # If deploying to pre-10.12, suppress Time::HiRes's detection of the system clock_gettime()
+ case "$MACOSX_DEPLOYMENT_TARGET" in
+
+From 1b712e4b359d9508461a0a832d06baa6e589b955 Mon Sep 17 00:00:00 2001
+From: Adam Hartley <BytesGuy@users.noreply.github.com>
+Date: Thu, 23 Jul 2020 19:53:07 +0100
+Subject: [PATCH 7/7] Future proof version check
+
+---
+ hints/darwin.sh | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/hints/darwin.sh b/hints/darwin.sh
+index 1709d224f7c..fdfbdd4a3b9 100644
+--- a/hints/darwin.sh
++++ b/hints/darwin.sh
+@@ -301,7 +301,7 @@ case "$osvers" in # Note: osvers is the kernel version, not the 10.x
+ # We now use MACOSX_DEPLOYMENT_TARGET, if set, as an override by
+ # capturing its value and adding it to the flags.
+ case "$MACOSX_DEPLOYMENT_TARGET" in
+- 10.* | 11.*)
++ [1-9][0-9].*)
+ add_macosx_version_min ccflags $MACOSX_DEPLOYMENT_TARGET
+ add_macosx_version_min ldflags $MACOSX_DEPLOYMENT_TARGET
+ ;;
+@@ -313,7 +313,7 @@ case "$osvers" in # Note: osvers is the kernel version, not the 10.x
+
+ *** Unexpected MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET
+ ***
+-*** Please either set it to 10.something, 11.something or to empty.
++*** Please either set it to a valid macOS version number (e.g., 10.15) or to empty.
+
+ EOM
+ exit 1
+@@ -327,7 +327,7 @@ EOM
+ # "ProductVersion: 10.11" "10.11"
+ prodvers=`sw_vers|awk '/^ProductVersion:/{print $2}'|awk -F. '{print $1"."$2}'`
+ case "$prodvers" in
+- 10.* | 11.*)
++ [1-9][0-9].*)
+ add_macosx_version_min ccflags $prodvers
+ add_macosx_version_min ldflags $prodvers
+ ;;
diff --git a/dev-lang/perl/perl-5.30.3-r1.ebuild b/dev-lang/perl/perl-5.30.3-r1.ebuild
index b437e661e578..7dc3e6631a75 100644
--- a/dev-lang/perl/perl-5.30.3-r1.ebuild
+++ b/dev-lang/perl/perl-5.30.3-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -51,7 +51,7 @@ LICENSE="|| ( Artistic GPL-1+ )"
SLOT="0/${SUBSLOT}"
if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi
IUSE="berkdb debug doc gdbm ithreads minimal"
@@ -140,8 +140,6 @@ pkg_setup() {
*-openbsd*) osname="openbsd" ;;
*-darwin*) osname="darwin" ;;
*-solaris*) osname="solaris" ;;
- *-interix*) osname="interix" ;;
- *-aix*) osname="aix" ;;
*-cygwin*) osname="cygwin" ;;
*) osname="linux" ;;
esac
@@ -342,6 +340,10 @@ src_prepare() {
if [[ ${CHOST} == *-darwin* ]] ; then
# fix install_name (soname) not to reference $D
sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
+
+ # Upstreamed, but not in this version.
+ # Need to recognise macOS 11 / 10.16. #757249
+ eapply "${FILESDIR}/${PN}-5.30.3-darwin-macos11.patch"
fi
default
@@ -463,6 +465,10 @@ src_configure() {
[[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
append-cflags -Dinline=__inline__
+ # flock on 32-bit sparc Solaris is broken, fall back to fcntl
+ [[ ${CHOST} == sparc-*-solaris* ]] && \
+ myconf -Ud_flock
+
# fix unaligned access misdetection
# https://rt.perl.org/Public/Bug/Display.html?id=133495
# https://rt.perl.org/Public/Bug/Display.html?id=133803
@@ -478,7 +484,7 @@ src_configure() {
# Set a hook to check for each detected library whether it actually works.
export libscheck="
( echo 'main(){}' > '${T}'/conftest.c &&
- $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
+ $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
) || xxx=/dev/null"
# Use all host paths that might contain useful stuff, the hook above will filter out bad choices.
diff --git a/dev-lang/perl/perl-5.30.3-r2.ebuild b/dev-lang/perl/perl-5.30.3-r2.ebuild
index 6e6c7bf0efc9..c8e7c2a615b2 100644
--- a/dev-lang/perl/perl-5.30.3-r2.ebuild
+++ b/dev-lang/perl/perl-5.30.3-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -53,7 +53,7 @@ if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then
# SOMEWHAT EXPERIMENTAL CODE, DO NOT USE WITHOUT AN ADULT PRESENT, CHECK CHANGELOG
# FOR DETAILS
KEYWORDS=""
-# KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+# KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi
IUSE="berkdb debug doc gdbm ithreads"
@@ -142,8 +142,6 @@ pkg_setup() {
*-openbsd*) osname="openbsd" ;;
*-darwin*) osname="darwin" ;;
*-solaris*) osname="solaris" ;;
- *-interix*) osname="interix" ;;
- *-aix*) osname="aix" ;;
*-cygwin*) osname="cygwin" ;;
*) osname="linux" ;;
esac
@@ -424,6 +422,10 @@ src_prepare() {
if [[ ${CHOST} == *-darwin* ]] ; then
# fix install_name (soname) not to reference $D
sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
+
+ # Upstreamed, but not in this version.
+ # Need to recognise macOS 11 / 10.16. #757249
+ eapply "${FILESDIR}/${PN}-5.30.3-darwin-macos11.patch"
fi
default
@@ -619,6 +621,10 @@ src_configure() {
[[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
append-cflags -Dinline=__inline__
+ # flock on 32-bit sparc Solaris is broken, fall back to fcntl
+ [[ ${CHOST} == sparc-*-solaris* ]] && \
+ myconf -Ud_flock
+
# fix unaligned access misdetection
# https://rt.perl.org/Public/Bug/Display.html?id=133495
# https://rt.perl.org/Public/Bug/Display.html?id=133803
@@ -634,7 +640,7 @@ src_configure() {
# Set a hook to check for each detected library whether it actually works.
export libscheck="
( echo 'main(){}' > '${T}'/conftest.c &&
- $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
+ $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
) || xxx=/dev/null"
# Use all host paths that might contain useful stuff, the hook above will filter out bad choices.
diff --git a/dev-lang/perl/perl-5.30.3.ebuild b/dev-lang/perl/perl-5.30.3.ebuild
index 792b17054133..8f88325107c3 100644
--- a/dev-lang/perl/perl-5.30.3.ebuild
+++ b/dev-lang/perl/perl-5.30.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -51,7 +51,7 @@ LICENSE="|| ( Artistic GPL-1+ )"
SLOT="0/${SUBSLOT}"
if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi
IUSE="berkdb debug doc gdbm ithreads"
@@ -137,8 +137,6 @@ pkg_setup() {
*-openbsd*) osname="openbsd" ;;
*-darwin*) osname="darwin" ;;
*-solaris*) osname="solaris" ;;
- *-interix*) osname="interix" ;;
- *-aix*) osname="aix" ;;
*-cygwin*) osname="cygwin" ;;
*) osname="linux" ;;
esac
diff --git a/dev-lang/perl/perl-5.32.0-r1.ebuild b/dev-lang/perl/perl-5.32.0-r1.ebuild
index 0c5fdc0e83d1..96cc75c62b77 100644
--- a/dev-lang/perl/perl-5.32.0-r1.ebuild
+++ b/dev-lang/perl/perl-5.32.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -17,6 +17,9 @@ DIST_AUTHOR=XSAWYERX
# BIN_OLDVERSEN is contains only C-ABI-intercompatible versions
PERL_BIN_OLDVERSEN=""
+# Yes we can.
+PERL_SINGLE_SLOT=y
+
if [[ "${PV##*.}" == "9999" ]]; then
DIST_VERSION=5.30.0
else
@@ -52,8 +55,7 @@ SLOT="0/${SUBSLOT}"
if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then
# SOMEWHAT EXPERIMENTAL CODE, DO NOT USE WITHOUT AN ADULT PRESENT, CHECK CHANGELOG
# FOR DETAILS
-KEYWORDS=""
-# KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi
IUSE="berkdb debug doc gdbm ithreads minimal"
@@ -145,8 +147,6 @@ pkg_setup() {
*-openbsd*) osname="openbsd" ;;
*-darwin*) osname="darwin" ;;
*-solaris*) osname="solaris" ;;
- *-interix*) osname="interix" ;;
- *-aix*) osname="aix" ;;
*-cygwin*) osname="cygwin" ;;
*) osname="linux" ;;
esac
@@ -427,6 +427,10 @@ src_prepare() {
if [[ ${CHOST} == *-darwin* ]] ; then
# fix install_name (soname) not to reference $D
sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
+
+ # Upstreamed, but not in this version.
+ # Need to recognise macOS 11 / 10.16. #757249
+ eapply "${FILESDIR}/${PN}-5.30.3-darwin-macos11.patch"
fi
default
@@ -622,6 +626,10 @@ src_configure() {
[[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
append-cflags -Dinline=__inline__
+ # flock on 32-bit sparc Solaris is broken, fall back to fcntl
+ [[ ${CHOST} == sparc-*-solaris* ]] && \
+ myconf -Ud_flock
+
# 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.
@@ -629,7 +637,7 @@ src_configure() {
# Set a hook to check for each detected library whether it actually works.
export libscheck="
( echo 'main(){}' > '${T}'/conftest.c &&
- $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
+ $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
) || xxx=/dev/null"
# Use all host paths that might contain useful stuff, the hook above will filter out bad choices.
diff --git a/dev-lang/perl/perl-5.32.0.ebuild b/dev-lang/perl/perl-5.32.0.ebuild
deleted file mode 100644
index b375dbc322bb..000000000000
--- a/dev-lang/perl/perl-5.32.0.ebuild
+++ /dev/null
@@ -1,655 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit eutils alternatives flag-o-matic toolchain-funcs multilib multiprocessing
-
-PATCH_VER=1
-CROSS_VER=1.3.4
-PATCH_BASE="perl-5.30.0-patches-${PATCH_VER}"
-PATCH_DEV=dilfridge
-
-DIST_AUTHOR=XSAWYERX
-
-# Greatest first, don't include yourself
-# Devel point-releases are not ABI-intercompatible, but stable point releases are
-# BIN_OLDVERSEN is contains only C-ABI-intercompatible versions
-PERL_BIN_OLDVERSEN=""
-
-if [[ "${PV##*.}" == "9999" ]]; then
- DIST_VERSION=5.30.0
-else
- DIST_VERSION="${PV/_rc/-RC}"
-fi
-SHORT_PV="${DIST_VERSION%.*}"
-# Even numbered major versions are ABI intercompatible
-# Odd numbered major versions are not
-if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then
- SUBSLOT="${DIST_VERSION%-RC*}"
-else
- SUBSLOT="${DIST_VERSION%.*}"
-fi
-# Used only in tar paths
-MY_P="perl-${DIST_VERSION}"
-# Used in library paths
-MY_PV="${DIST_VERSION%-RC*}"
-
-DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
-
-SRC_URI="
- mirror://cpan/src/5.0/${MY_P}.tar.xz
- mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
- https://github.com/gentoo-perl/perl-patchset/releases/download/${PATCH_BASE}/${PATCH_BASE}.tar.xz
- mirror://gentoo/${PATCH_BASE}.tar.xz
- https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz
- https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
-"
-HOMEPAGE="https://www.perl.org/"
-
-LICENSE="|| ( Artistic GPL-1+ )"
-SLOT="0/${SUBSLOT}"
-
-if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-fi
-
-IUSE="berkdb debug doc gdbm ithreads minimal"
-
-RDEPEND="
- berkdb? ( sys-libs/db:= )
- gdbm? ( >=sys-libs/gdbm-1.8.3:= )
- app-arch/bzip2
- sys-libs/zlib
- virtual/libcrypt:=
-"
-DEPEND="${RDEPEND}"
-PDEPEND="
- !minimal? (
- >=app-admin/perl-cleaner-2.5
- >=virtual/perl-File-Temp-0.230.400-r2
- >=virtual/perl-Data-Dumper-2.154.0
- virtual/perl-Test-Harness
- )
-"
-# bug 390719, bug 523624
-# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
-
-S="${WORKDIR}/${MY_P}"
-
-dual_scripts() {
- src_remove_dual perl-core/Archive-Tar 2.360.0 ptar ptardiff ptargrep
- src_remove_dual perl-core/CPAN 2.270.0 cpan
- src_remove_dual perl-core/Digest-SHA 6.20.0 shasum
- src_remove_dual perl-core/Encode 3.60.0 enc2xs piconv
- src_remove_dual perl-core/ExtUtils-MakeMaker 7.440.0 instmodsh
- src_remove_dual perl-core/ExtUtils-ParseXS 3.400.0 xsubpp
- src_remove_dual perl-core/IO-Compress 2.93.0 zipdetails
- src_remove_dual perl-core/JSON-PP 4.40.0 json_pp
- src_remove_dual perl-core/Module-CoreList 5.202.6.20 corelist
- src_remove_dual perl-core/Pod-Checker 1.730.0 podchecker
- src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc
- src_remove_dual perl-core/Pod-Usage 1.690.0 pod2usage
- src_remove_dual perl-core/Test-Harness 3.420.0 prove
- src_remove_dual perl-core/podlators 4.140.0 pod2man pod2text
- src_remove_dual_man perl-core/podlators 4.140.0 /usr/share/man/man1/perlpodstyle.1
-}
-
-check_rebuild() {
- # Fresh install
- if [[ -z "${REPLACING_VERSIONS}" ]]; then
- return 0;
- # Major Upgrade
- # doesn't matter if there's multiple copies, it still needs a rebuild
- # if the string is anything other than "5.CURRENTMAJOR"
- elif [[ "${REPLACING_VERSIONS%.*}" != "${PV%.*}" ]]; then
- echo ""
- ewarn "UPDATE THE PERL MODULES:"
- ewarn "After updating dev-lang/perl the installed Perl modules"
- ewarn "have to be re-installed. In most cases, this is done automatically"
- ewarn "by the package manager, but subsequent steps are still recommended"
- ewarn "to ensure system consistency."
- ewarn
- ewarn "You should start with a depclean to remove any unused perl dependencies"
- ewarn "that may confuse portage in future. Regular depcleans are also encouraged"
- ewarn "as part of your regular update cycle, as that will keep perl upgrades working."
- ewarn "Recommended: emerge --depclean -va"
- ewarn
- ewarn "You should then call perl-cleaner to clean up any old files and trigger any"
- ewarn "remaining rebuilds portage may have missed."
- ewarn "Use: perl-cleaner --all"
- return 0;
-
- # Reinstall w/ USE Change
- elif ( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \
- ( ! use ithreads && has_version dev-lang/perl[ithreads] ) || \
- ( use debug && ! has_version dev-lang/perl[debug] ) || \
- ( ! use debug && has_version dev-lang/perl[debug] ) ; then
- echo ""
- ewarn "TOGGLED USE-FLAGS WARNING:"
- ewarn "You changed one of the use-flags ithreads or debug."
- ewarn "You must rebuild all perl-modules installed."
- ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl"
- fi
-}
-
-pkg_setup() {
- case ${CHOST} in
- *-freebsd*) osname="freebsd" ;;
- *-dragonfly*) osname="dragonfly" ;;
- *-netbsd*) osname="netbsd" ;;
- *-openbsd*) osname="openbsd" ;;
- *-darwin*) osname="darwin" ;;
- *-solaris*) osname="solaris" ;;
- *-interix*) osname="interix" ;;
- *-aix*) osname="aix" ;;
- *-cygwin*) osname="cygwin" ;;
- *) osname="linux" ;;
- esac
-
- myarch="${CHOST%%-*}-${osname}"
- if use debug ; then
- myarch+="-debug"
- fi
- if use ithreads ; then
- mythreading="-multi"
- myarch+="-thread"
- fi
-
- PRIV_BASE="/usr/$(get_libdir)/perl5"
- SITE_BASE="/usr/local/$(get_libdir)/perl5"
- VENDOR_BASE="/usr/$(get_libdir)/perl5/vendor_perl"
-
- LIBPERL="libperl$(get_libname ${MY_PV} )"
- PRIV_LIB="${PRIV_BASE}/${MY_PV}"
- ARCH_LIB="${PRIV_BASE}/${MY_PV}/${myarch}${mythreading}"
- SITE_LIB="${SITE_BASE}/${MY_PV}"
- SITE_ARCH="${SITE_BASE}/${MY_PV}/${myarch}${mythreading}"
- VENDOR_LIB="${VENDOR_BASE}/${MY_PV}"
- VENDOR_ARCH="${VENDOR_BASE}/${MY_PV}/${myarch}${mythreading}"
-
- dual_scripts
-}
-
-src_remove_dual_file() {
- local i pkg ver
- pkg="$1"
- ver="$2"
- shift 2
- case "${EBUILD_PHASE:-none}" in
- postinst|postrm)
- for i in "$@" ; do
- alternatives_auto_makesym "${i}" "${i}-[0-9]*"
- done
- ;;
- setup)
- for i in "$@" ; do
- if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; then
- has_version ${pkg} && ewarn "You must reinstall ${pkg} !"
- break
- fi
- done
- ;;
- install)
- for i in "$@" ; do
- if ! [[ -f "${ED}"${i} ]] ; then
- ewarn "${i} does not exist!"
- continue
- fi
- mv "${ED}"${i}{,-${ver}-${P}} || die
- done
- ;;
- esac
-}
-
-src_remove_dual_man() {
- local i pkg ver ff
- pkg="$1"
- ver="$2"
- shift 2
- case "${EBUILD_PHASE:-none}" in
- postinst|postrm)
- for i in "$@" ; do
- ff=`echo "${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*`
- ff=${ff##*${i#${i%.[0-9]}}}
- alternatives_auto_makesym "${i}${ff}" "${i%.[0-9]}-[0-9]*"
- done
- ;;
- install)
- for i in "$@" ; do
- if ! [[ -f "${ED}"${i} ]] ; then
- ewarn "${i} does not exist!"
- continue
- fi
- mv "${ED}"${i} "${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die
- done
- ;;
- esac
-}
-
-src_remove_dual() {
- local i pkg ver
- pkg="$1"
- ver="$2"
- shift 2
- for i in "$@" ; do
- src_remove_dual_file "${pkg}" "${ver}" "/usr/bin/${i}"
- src_remove_dual_man "${pkg}" "${ver}" "/usr/share/man/man1/${i}.1"
- done
-}
-
-src_prepare_update_patchlevel_h() {
- # Copied and modified from debian:
- # Copyright 2011 Niko Tyni
- # This program is free software; you can redistribute it and/or modify
- # it under the same terms as Perl itself.
- local patchdir="${WORKDIR}/patches"
- local prefix
- local patchoutput="patchlevel-gentoo.h"
-
- [[ -f ${patchdir}/series ]] || return 0
-
-while read patch
-do
- patchname=$(echo $patch | sed 's/\.diff$//')
- < $patchdir/$patch sed -e '/^Subject:/ { N; s/\n / / }' | sed -n -e '
-
- # massage the patch headers
- s|^Bug: .*https\?://rt\.perl\.org/.*id=\(.*\).*|[perl #\1]|; tprepend;
- s|^Bug: .*https\?://rt\.cpan\.org/.*id=\(.*\).*|[rt.cpan.org #\1]|; tprepend;
- s|^Bug-Gentoo: ||; tprepend;
- s/^\(Subject\|Description\): //; tappend;
- s|^Origin: .*http://perl5\.git\.perl\.org/perl\.git/commit\(diff\)\?/\(.......\).*|[\2]|; tprepend;
-
- # post-process at the end of input
- $ { x;
- # include the version number in the patchlevel.h description (if available)
- s/List packaged patches/&'" for ${PF}(#${PATCH_VER})"'/;
-
- # escape any backslashes and double quotes
- s|\\|\\\\|g; s|"|\\"|g;
-
- # add a prefix
- s|^|\t,"'"$prefix$patchname"' - |;
- # newlines away
- s/\n/ /g; s/ */ /g;
- # add a suffix
- s/ *$/"/; p
- };
- # stop all processing
- d;
- # label: append to the hold space
- :append H; d;
- # label: prepend to the hold space
- :prepend x; H; d;
- '
-done < "${WORKDIR}"/patches/series > "${S}/${patchoutput}"
-echo "${patchoutput}" >> "${S}/MANIFEST"
-}
-
-src_prepare_perlcross() {
- cp -a ../perl-cross-${CROSS_VER}/* . || die
-
- # bug 604072
- MAKEOPTS+=" -j1"
- export MAKEOPTS
-}
-src_prepare_dynamic() {
- ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
- ln -s ${LIBPERL} libperl$(get_libname ) || die
-}
-
-src_prepare() {
- local patch
- EPATCH_OPTS+=" -p1"
-
- if use hppa ; then
- epatch "${FILESDIR}/${PN}-5.26.2-hppa.patch" # bug 634162
- fi
-
- if [[ ${CHOST} == *-solaris* ]] ; then
- # do NOT mess with nsl, on Solaris this is always necessary,
- # when -lsocket is used e.g. to get h_errno
- sed -i '/gentoo\/no-nsl-cl\.patch/d' "${WORKDIR}/patches/series" || die
- fi
-
- einfo "Applying patches from ${PATCH_BASE} ..."
- while read patch ; do
- EPATCH_SINGLE_MSG=" ${patch} ..."
- epatch "${WORKDIR}"/patches/${patch}
- done < "${WORKDIR}"/patches/series
-
- src_prepare_update_patchlevel_h
-
- tc-is-cross-compiler && src_prepare_perlcross
-
- tc-is-static-only || src_prepare_dynamic
-
- if use gdbm; then
- sed -i "s:INC => .*:INC => \"-I${EROOT}usr/include/gdbm\":g" \
- ext/NDBM_File/Makefile.PL || die
- fi
-
- # Use errno.h from prefix rather than from host system, bug #645804
- if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
- sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
- fi
-
- if [[ ${CHOST} == *-solaris* ]] ; then
- # set a soname, fix linking against just built libperl
- sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die
- fi
-
- if [[ ${CHOST} == *-darwin* ]] ; then
- # fix install_name (soname) not to reference $D
- sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
- fi
-
- default
-}
-
-myconf() {
- # the myconf array is declared in src_configure
- myconf=( "${myconf[@]}" "$@" )
-}
-
-src_configure() {
- declare -a myconf
-
- export LC_ALL="C"
- [[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
-
- # Perl has problems compiling with -Os in your flags with glibc
- use elibc_uclibc || replace-flags "-Os" "-O2"
-
- # xlocale.h is going away in glibc-2.26, so it's counterproductive
- # if we use it and include it in CORE/perl.h ... Perl builds just
- # fine with glibc and locale.h only.
- # However, the darwin prefix people have no locale.h ...
- use elibc_glibc && myconf -Ui_xlocale
-
- # This flag makes compiling crash in interesting ways
- filter-flags "-malign-double"
-
- # Generic LTO broken since 5.28, triggers EUMM failures
- filter-flags "-flto"
-
- use sparc && myconf -Ud_longdbl
-
- export BUILD_BZIP2=0
- export BZIP2_INCLUDE=${EROOT}/usr/include
- export BZIP2_LIB=${EROOT}/usr/$(get_libdir)
-
- export BUILD_ZLIB=False
- export ZLIB_INCLUDE=${EROOT}/usr/include
- export ZLIB_LIB=${EROOT}/usr/$(get_libdir)
-
- # allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1
- myndbm='U'
- mygdbm='U'
- mydb='U'
- if use gdbm ; then
- mygdbm='D'
- if use berkdb ; then
- myndbm='D'
- fi
- fi
- if use berkdb ; then
- mydb='D'
- has_version '=sys-libs/db-1*' && myndbm='D'
- fi
-
- myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db"
-
- if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then
- ewarn "Perl will not be built with berkdb support, use gcc if you needed it..."
- myconf -Ui_db -Ui_ndbm
- fi
-
- use ithreads && myconf -Dusethreads
-
- if use debug ; then
- append-cflags "-g"
- myconf -DDEBUGGING
- elif [[ ${CFLAGS} == *-g* ]] ; then
- myconf -DDEBUGGING=-g
- else
- myconf -DDEBUGGING=none
- fi
-
- # Autodiscover all old version directories, some of them will even be newer
- # if you downgrade
- if [[ -z ${PERL_OLDVERSEN} ]]; then
- PERL_OLDVERSEN="$(
- find "${EROOT%/}${PRIV_BASE}" "${EROOT%/}${SITE_BASE}" "${EROOT%/}${VENDOR_BASE}" \
- -maxdepth 1 -mindepth 1 -type d -regex '.*/5[.][0-9]+[.][0-9]+$' \
- -printf "%f " 2>/dev/null )"
- fi
- # Fixup versions, removing self match, fixing order and dupes
- PERL_OLDVERSEN="$(
- echo "${PERL_OLDVERSEN}" |\
- tr " " "\n" |\
- grep -vF "${DIST_VERSION%-RC}" |\
- sort -u -nr -t'.' -k1,1 -k2,2 -k3,3
- )"
-
- # Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string
- if [[ -n "${PERL_OLDVERSEN// }" ]]; then
- local inclist="$(
- for v in ${PERL_OLDVERSEN}; do
- has "${v}" ${PERL_BIN_OLDVERSEN} && echo -n "${v}/${myarch}${mythreading} ";
- echo -n "${v} ";
- done )"
- einfo "This version of perl may partially support modules previously"
- einfo "installed in any of the following paths:"
- for incpath in ${inclist}; do
- [[ -e "${EROOT%/}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT%/}${VENDOR_BASE}/${incpath}"
- [[ -e "${EROOT%/}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROO%/T}${PRIV_BASE}/${incpath}"
- [[ -e "${EROOT%/}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT%/}${SITE_BASE}/${incpath}"
- done
- einfo "This is a temporary measure and you should aim to cleanup these paths"
- einfo "via world updates and perl-cleaner"
- myconf -Dinc_version_list="${inclist}"
- fi
-
- [[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a"
-
- # Make sure we can do the final link #523730, need to set deployment
- # target to override hardcoded 10.3 which breaks on modern OSX
- [[ ${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.
- if use prefix ; then
- # Set a hook to check for each detected library whether it actually works.
- export libscheck="
- ( echo 'main(){}' > '${T}'/conftest.c &&
- $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
- ) || xxx=/dev/null"
-
- # Use all host paths that might contain useful stuff, the hook above will filter out bad choices.
- local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib"
- myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}"
- elif [[ $(get_libdir) != "lib" ]] ; then
- # We need to use " and not ', as the written config.sh use ' ...
- myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)"
- fi
-
- # don't try building ODBM, bug #354453
- disabled_extensions="ODBM_File"
-
- if ! use gdbm ; then
- # workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm"
- disabled_extensions="${disabled_extensions} GDBM_File NDBM_File"
- fi
-
- myconf -Dnoextensions="${disabled_extensions}"
-
- [[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly
-
- [[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF}
- # allow fiddling via EXTRA_ECONF, bug 558070
- eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})"
-
- # setting -Dld= to tc-getLD breaks perl and all perl things
- # https://github.com/Perl/perl5/issues/17791#issuecomment-630145202
- myconf \
- -Duseshrplib \
- -Darchname="${myarch}" \
- -Dcc="$(tc-getCC)" \
- -Dar="$(tc-getAR)" \
- -Dnm="$(tc-getNM)" \
- -Dcpp="$(tc-getCPP)" \
- -Dranlib="$(tc-getRANLIB)" \
- -Doptimize="${CFLAGS}" \
- -Dldflags="${LDFLAGS}" \
- -Dprefix="${EPREFIX}"'/usr' \
- -Dsiteprefix="${EPREFIX}"'/usr/local' \
- -Dvendorprefix="${EPREFIX}"'/usr' \
- -Dscriptdir="${EPREFIX}"'/usr/bin' \
- -Dprivlib="${EPREFIX}${PRIV_LIB}" \
- -Darchlib="${EPREFIX}${ARCH_LIB}" \
- -Dsitelib="${EPREFIX}${SITE_LIB}" \
- -Dsitearch="${EPREFIX}${SITE_ARCH}" \
- -Dvendorlib="${EPREFIX}${VENDOR_LIB}" \
- -Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \
- -Dman1dir="${EPREFIX}"/usr/share/man/man1 \
- -Dman3dir="${EPREFIX}"/usr/share/man/man3 \
- -Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \
- -Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \
- -Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \
- -Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \
- -Dman1ext='1' \
- -Dman3ext='3pm' \
- -Dlibperl="${LIBPERL}" \
- -Dlocincpth="${EPREFIX}"'/usr/include ' \
- -Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \
- -Duselargefiles \
- -Dd_semctl_semun \
- -Dcf_by='Gentoo' \
- -Dmyhostname='localhost' \
- -Dperladmin='root@localhost' \
- -Ud_csh \
- -Dsh="${EPREFIX}"/bin/sh \
- -Dtargetsh="${EPREFIX}"/bin/sh \
- -Uusenm \
- "${myconf[@]}" \
- "${EXTRA_ECONF[@]}"
-
- if tc-is-cross-compiler; then
- ./configure \
- --target="${CHOST}" \
- --build="${CBUILD}" \
- -Dinstallprefix='' \
- -Dinstallusrbinperl='undef' \
- -Dusevendorprefix='define' \
- "${myconf[@]}" \
- || die "Unable to configure"
- else
- sh Configure \
- -des \
- -Dinstallprefix="${EPREFIX}"'/usr' \
- -Dinstallusrbinperl='n' \
- "${myconf[@]}" \
- || die "Unable to configure"
- fi
-}
-
-src_test() {
- export NO_GENTOO_NETWORK_TESTS=1;
- export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}"
- export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}"
- if [[ ${EUID} == 0 ]] ; then
- ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..."
- return 0
- fi
- use elibc_uclibc && export MAKEOPTS+=" -j1"
- TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed"
-}
-
-src_install() {
- local i
- local coredir="${ARCH_LIB}/CORE"
-
- emake DESTDIR="${D}" install
-
- rm -f "${ED}/usr/bin/perl${MY_PV}"
- ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die
-
- if ! tc-is-static-only ; then
- dolib.so "${ED}"${coredir}/${LIBPERL}
- rm -f "${ED}"${coredir}/${LIBPERL}
- ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die
- ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die
-
- ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die
- ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die
- ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die
- fi
-
- rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages"
-
- # This removes ${D} from Config.pm
- for i in $(find "${D}" -iname "Config.pm" ) ; do
- einfo "Removing ${D} from ${i}..."
- sed -i -e "s:${D}::" "${i}" || die "Sed failed"
- done
-
- dodoc Changes* README AUTHORS
-
- if use doc ; then
- # HTML Documentation
- # We expect errors, warnings, and such with the following.
-
- dodir /usr/share/doc/${PF}/html
- LD_LIBRARY_PATH=. ./perl installhtml \
- --podroot='.' \
- --podpath='lib:ext:pod:vms' \
- --recurse \
- --htmldir="${ED}/usr/share/doc/${PF}/html"
- fi
-
- [[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local
-
- dual_scripts
-}
-
-pkg_preinst() {
- check_rebuild
-}
-
-pkg_postinst() {
- dual_scripts
-
- if [[ "${ROOT}" = "/" ]] ; then
- local INC DIR file
- INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }')
- einfo "Removing old .ph files"
- for DIR in ${INC} ; do
- if [[ -d "${DIR}" ]] ; then
- for file in $(find "${DIR}" -name "*.ph" -type f ) ; do
- rm -f "${file}"
- einfo "<< ${file}"
- done
- fi
- done
- # Silently remove the now empty dirs
- for DIR in ${INC} ; do
- if [[ -d "${DIR}" ]] ; then
- find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null
- fi
- done
-
- fi
-}
-
-pkg_postrm() {
- dual_scripts
-}
diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest
index 718e2e97bedd..550cce1d84c1 100644
--- a/dev-lang/php/Manifest
+++ b/dev-lang/php/Manifest
@@ -1,13 +1,7 @@
-DIST php-7.2.33.tar.xz 12310624 BLAKE2B 3eca6a2aee79b791abb6b0427496e6041b63800ac1aeea86b4465e9326fdcde5d7a69e6323902b6874f27cf6197b705397381319d0b5ff6f93605e791bf0eb86 SHA512 1c28e741fc6de88a33e1307bc88ba8dddf1ba767ce6eb9c1f0da35482c7d3ee1154831b997fa746340c4b7ec8de9196b21a9b1cf319c8e69eca2c92602ceee4a
DIST php-7.2.34.tar.xz 12309432 BLAKE2B 50522786d39296bc7411931c4f357d53c7a25da264192a6a6e7f7594f3dee108e22974e00a4bdc4d3af269ab63d07b28045ff6b4f4f0c79672ed059882647b93 SHA512 7ecc3de3b5db41ec4ff6a5ce6c7e77dc330753c6f3fd87db4d07d6bb763a0b047e83afeef2251b4c6a5d2ff53fd9f3d7e99d091ef2e2c6ab8f18db7447d8a97d
-DIST php-7.3.21.tar.xz 12123192 BLAKE2B ff5fca092f6c4e92c009ade9f4bee01ec07686645a4844297cee0518f12b3ebc16a7322b64579d9ee2d3a3f7cd62ed9184d0afbe77dbcf2d24a11139242c88c5 SHA512 fc2b9a40c92a6e79522a49cd025e56c0a52c2c2bd3f7379aaf004ca6b67957cf4ad059c40a5daac45665710abd07962562870430338f700f573856d797df3ff4
-DIST php-7.3.22.tar.xz 12134212 BLAKE2B 2a299d0e1a69425e06b71fcdd471bc659747a1a4adce276c0d42715045ee81a5241982b2408daa8122b8737d9dccc898847406dd007ea583a76cf29b893bc555 SHA512 7f06473e394e3236dff1376c8c9e6d15b998eef8b8b1148b103bd13dfd27785c01e1c6b15414ff64ea511f3f5e59e925831a7546f235d7c58bd47dcf46f6ff00
-DIST php-7.3.23.tar.xz 12133616 BLAKE2B 6a241443d75a0b404d4d65580208b67a425b91cf1951050752e5e7d653f439200514efa65ae9d9ae3a6c5375c711b8cc53dde9cb89b87dd68ff533b25a8dc04a SHA512 b5e318bd59951b470a22b2ef2db19cd542d42bed72cf4abe4344c0521eeba606eac31a38ff49d2ab0cb7ed17441655e029d5984584d86b935f576515179777af
-DIST php-7.3.24.tar.xz 12138212 BLAKE2B d1a056423d8b88dd042c7e794c4dfe97338e8f397cce65cfeb8b253caabd1108a84a9b6301eccd1c4abc693a78845ba3ba6a2ee37afce81dba82fd116ab78b81 SHA512 0ebc2fb7d58ded231ff5f55e9e033ca5c7865a13cc496884082b126cf2b31fb4486f61ad93ac9fe3592433e43d652cac2add96b2ad276dad937d458fd186d633
DIST php-7.3.25.tar.xz 12136668 BLAKE2B b9bfb1de15a3f02bf5d228a2cf9b307c9eeadaea10cac22d40647db0147f4f93b41858ea4affa0701478dd397f0a87cae4e2f29a378f7c6730fdf7da5c48e0e8 SHA512 30b27deab12cf2544671afbbdaefd4bfea308eeed8e9c2150751c5bc9ece18d981bcc020eace35cbdbe88b45cffba8a1fca718fc4e74c3a7903d8b038015d31e
-DIST php-7.4.10.tar.xz 10298480 BLAKE2B ef5e051da37c0bddc6819459c2e2b00b28bbfe6efbdc7ad9651200d2e453c434e59cb91642d775334db86a95afd9255012c4a57d57dac4d6cf7e1692067d0f90 SHA512 c7beb2d821f4e28b0444c8653c360d210a924e0638cc4b4ebc71bf2c22ef83caedfc880275329c3ffa644adc5858ccff59d35bf36255d57218774089d3376a21
-DIST php-7.4.11.tar.xz 10302076 BLAKE2B e32e77057ddd7b12553766e30366262812d4342742e6dabd0084a261f3d8e82d7c76924e26ead4c9295609f913d34903b9b1c271af76d8d9725f10cd108b7681 SHA512 9bdd29a4a6c1ac55ed75d8fb2203ae5ef41992c518cb7e3b84cf74db62b03cfbe0ef4ea5614a684a37fcd2ae727376022ce49ed3ff32fc3a728e2f1e2474fb92
-DIST php-7.4.12.tar.xz 10311980 BLAKE2B 11052d59881f84d4012fa993e5969abf52d4419877bf595ba524b31f5971f623adc382f49d4f7ed75f33dcf85c903a66d88b7c983807ee5f79152314334061c5 SHA512 6c06fb74f8e479ead000b0e2e56602c217d012f1a80e47e151543c033bb5426e56aaa5e8acfcd19fd49ae14c4ca827c8e57a5b56386b20002dbc80fbd07ab04f
+DIST php-7.3.26.tar.xz 12138088 BLAKE2B eb0090d1edff251341a9d7668a9a6d9ad2f45f7db902e7a51b133d77b0ac155248643ea2bb5fb68b9ba5f363bfdecf1db58dc41b78e5ae24ad66e4443f7c607e SHA512 36494c7907adf75378bcd2c8e5a4761271307d2b507df09c35b8f1114d189320bc7e73f1b05cb171aa93209dc2c3026256f7826e5563f13b99f1b4dbe9741732
DIST php-7.4.13.tar.xz 10319848 BLAKE2B c1da97eb605f1fc2b36190bfe92feb1fd527f4aaf1483865561a08cf990e70445f5520c8abcea7d9c6482dc47e500507644e0cd2cc756cfa99adfec0359cd795 SHA512 3525f4fd4ea6d97ed75ed8360d2a851e8577c09247ae3c6eb7e7b43265ee418297d91c1022bf5bbb64d1eecdebbbc2e0f6d42b560f584a741b475db2c6897ea7
-DIST php-7.4.9.tar.xz 10289560 BLAKE2B 0fd9d82539a46f7ce58857560f5aeb4be6dfe5f5a05f8b8c55c30d6000d19408b4ecc460c9135736298cdb8312ec958ab8358110b2b265bb8c185f80b1522dc6 SHA512 6179c2d867d6775d7f41785003c36d06ce620e7746ea7e6a4d275264e814a66d465776b47b04e2926ed1228cf58f2c15cdda74faf10372435c74ede7aeb79e18
+DIST php-7.4.14.tar.xz 10326868 BLAKE2B 59099de517b276171539242332c7847b945c97ad73d82ad7555aa6eb37ea2fd923a554c715ddcc730a9b224af7878dfd373bb238a3611ba505eb26213397076d SHA512 5c48874d1e78d83297e98773089993ee3c8a7cdd8a611afc536eed8bc91cc4b2b492e1940923ccb7fe2dd039732082e568191e64923b74d4fc80362fbd06e6b7
DIST php-8.0.0.tar.xz 10726788 BLAKE2B 16c4aa075ba5dee6d47086323cd152b33dc7b62ac6b3ab6637ec386c1048e256a160d72e72cbc88450af1e84389042ebf2d644d3361c9a34879cc494d5b9b64f SHA512 65630940c95436f3e3ecb71b9f1ca15bb4118267dbda604ed1ee009d528c21a3ec21f48a15e4dd3529fe9cd2b354c211a7b4975b5de43e1f2afa6656cabe1fd0
+DIST php-8.0.1.tar.xz 10642344 BLAKE2B 38e523f316c41de61b39e2f069018fa32cd9886a10ebe74cd772aa6003678821129292b61b6d1c2466ebf8c47b1bb98f0c686aefd3b1abf1aa560fb8ec954080 SHA512 6b21837bde4a4c7a550d49afb3650613a72bdfb1041294fa287936cf4b04027cd05c82fafc6f3978d77452c2539b198fe10c1241446431e7947e98d48d841ded
diff --git a/dev-lang/php/files/php-7.2.34-use-after-free-bug76047.patch b/dev-lang/php/files/php-7.2.34-use-after-free-bug76047.patch
new file mode 100644
index 000000000000..b3a864ee82a8
--- /dev/null
+++ b/dev-lang/php/files/php-7.2.34-use-after-free-bug76047.patch
@@ -0,0 +1,174 @@
+Backport of https://git.php.net/?p=php-src.git;a=commit;h=ef1e4891b47949c8dc0f9482eef9454a0ecdfa1d
+
+--- a/Zend/tests/bug52361.phpt
++++ b/Zend/tests/bug52361.phpt
+@@ -25,9 +25,8 @@ try {
+ --EXPECTF--
+ 1. Exception: aaa in %sbug52361.php:5
+ Stack trace:
+-#0 %sbug52361.php(13): aaa->__destruct()
+-#1 %sbug52361.php(16): bbb()
+-#2 {main}
++#0 %sbug52361.php(16): aaa->__destruct()
++#1 {main}
+ 2. Exception: bbb in %sbug52361.php:13
+ Stack trace:
+ #0 %sbug52361.php(16): bbb()
+--- /dev/null
++++ b/Zend/tests/bug76047.phpt
+@@ -0,0 +1,68 @@
++--TEST--
++Bug #76047: Use-after-free when accessing already destructed backtrace arguments
++--FILE--
++<?php
++
++class Vuln {
++ public $a;
++ public function __destruct() {
++ unset($this->a);
++ $backtrace = (new Exception)->getTrace();
++ var_dump($backtrace);
++ }
++}
++
++function test($arg) {
++ $arg = str_shuffle(str_repeat('A', 79));
++ $vuln = new Vuln();
++ $vuln->a = $arg;
++}
++
++function test2($arg) {
++ $$arg = 1; // Trigger symbol table
++ $arg = str_shuffle(str_repeat('A', 79));
++ $vuln = new Vuln();
++ $vuln->a = $arg;
++}
++
++test('x');
++test2('x');
++
++?>
++--EXPECTF--
++array(1) {
++ [0]=>
++ array(6) {
++ ["file"]=>
++ string(%d) "%s"
++ ["line"]=>
++ int(%d)
++ ["function"]=>
++ string(10) "__destruct"
++ ["class"]=>
++ string(4) "Vuln"
++ ["type"]=>
++ string(2) "->"
++ ["args"]=>
++ array(0) {
++ }
++ }
++}
++array(1) {
++ [0]=>
++ array(6) {
++ ["file"]=>
++ string(%d) "%s"
++ ["line"]=>
++ int(%d)
++ ["function"]=>
++ string(10) "__destruct"
++ ["class"]=>
++ string(4) "Vuln"
++ ["type"]=>
++ string(2) "->"
++ ["args"]=>
++ array(0) {
++ }
++ }
++}
+--- a/Zend/zend_vm_def.h
++++ b/Zend/zend_vm_def.h
+@@ -2366,9 +2366,9 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
+ uint32_t call_info = EX_CALL_INFO();
+
+ if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP|ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS|ZEND_CALL_ALLOCATED)) == 0)) {
++ EG(current_execute_data) = EX(prev_execute_data);
+ i_free_compiled_variables(execute_data);
+
+- EG(current_execute_data) = EX(prev_execute_data);
+ if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) {
+ zend_object *object = Z_OBJ(execute_data->This);
+ #if 0
+@@ -2394,12 +2394,12 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
+ LOAD_NEXT_OPLINE();
+ ZEND_VM_LEAVE();
+ } else if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP)) == 0)) {
++ EG(current_execute_data) = EX(prev_execute_data);
+ i_free_compiled_variables(execute_data);
+
+ if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) {
+ zend_clean_and_cache_symbol_table(EX(symbol_table));
+ }
+- EG(current_execute_data) = EX(prev_execute_data);
+
+ /* Free extra args before releasing the closure,
+ * as that may free the op_array. */
+@@ -2449,6 +2449,7 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
+ ZEND_VM_LEAVE();
+ } else {
+ if (EXPECTED((call_info & ZEND_CALL_CODE) == 0)) {
++ EG(current_execute_data) = EX(prev_execute_data);
+ i_free_compiled_variables(execute_data);
+ if (UNEXPECTED(call_info & (ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS))) {
+ if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) {
+@@ -2456,7 +2457,6 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
+ }
+ zend_vm_stack_free_extra_args_ex(call_info, execute_data);
+ }
+- EG(current_execute_data) = EX(prev_execute_data);
+ if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) {
+ OBJ_RELEASE((zend_object*)EX(func)->op_array.prototype);
+ }
+--- a/Zend/zend_vm_execute.h
++++ b/Zend/zend_vm_execute.h
+@@ -434,9 +434,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_
+ uint32_t call_info = EX_CALL_INFO();
+
+ if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP|ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS|ZEND_CALL_ALLOCATED)) == 0)) {
++ EG(current_execute_data) = EX(prev_execute_data);
+ i_free_compiled_variables(execute_data);
+
+- EG(current_execute_data) = EX(prev_execute_data);
+ if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) {
+ zend_object *object = Z_OBJ(execute_data->This);
+ #if 0
+@@ -462,12 +462,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_
+ LOAD_NEXT_OPLINE();
+ ZEND_VM_LEAVE();
+ } else if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP)) == 0)) {
++ EG(current_execute_data) = EX(prev_execute_data);
+ i_free_compiled_variables(execute_data);
+
+ if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) {
+ zend_clean_and_cache_symbol_table(EX(symbol_table));
+ }
+- EG(current_execute_data) = EX(prev_execute_data);
+
+ /* Free extra args before releasing the closure,
+ * as that may free the op_array. */
+@@ -517,6 +517,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_
+ ZEND_VM_LEAVE();
+ } else {
+ if (EXPECTED((call_info & ZEND_CALL_CODE) == 0)) {
++ EG(current_execute_data) = EX(prev_execute_data);
+ i_free_compiled_variables(execute_data);
+ if (UNEXPECTED(call_info & (ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS))) {
+ if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) {
+@@ -524,7 +525,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_
+ }
+ zend_vm_stack_free_extra_args_ex(call_info, execute_data);
+ }
+- EG(current_execute_data) = EX(prev_execute_data);
+ if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) {
+ OBJ_RELEASE((zend_object*)EX(func)->op_array.prototype);
+ }
+
diff --git a/dev-lang/php/php-7.2.33.ebuild b/dev-lang/php/php-7.2.34-r1.ebuild
index 07f0645b8d80..331c786bb1a2 100644
--- a/dev-lang/php/php-7.2.33.ebuild
+++ b/dev-lang/php/php-7.2.34-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
-inherit flag-o-matic systemd autotools
+inherit flag-o-matic systemd autotools toolchain-funcs
DESCRIPTION="The PHP language runtime engine"
HOMEPAGE="https://www.php.net/"
@@ -18,7 +18,7 @@ LICENSE="PHP-3.01
unicode? ( BSD-2 LGPL-2.1 )"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
# We can build the following SAPIs in the given order
SAPIS="embed cli cgi fpm apache2 phpdbg"
@@ -157,6 +157,7 @@ RESTRICT="!test? ( test )"
PATCHES=(
"${FILESDIR}/php-freetype-2.9.1.patch"
"${FILESDIR}/php-7.2.13-intl-use-icu-namespace.patch"
+ "${FILESDIR}/php-7.2.34-use-after-free-bug76047.patch"
)
PHP_MV="$(ver_cut 1)"
@@ -239,6 +240,10 @@ src_configure() {
addpredict /usr/share/snmp/mibs/.index #nowarn
addpredict /var/lib/net-snmp/mib_indexes #nowarn
+ # Fix building against >=ICU-68, https://bugs.php.net/80310
+ append-cflags -DU_DEFINE_FALSE_AND_TRUE=1
+ append-cxxflags -DU_DEFINE_FALSE_AND_TRUE=1
+
PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
# The php-fpm config file wants localstatedir to be ${EPREFIX}/var
diff --git a/dev-lang/php/php-7.2.34.ebuild b/dev-lang/php/php-7.2.34-r2.ebuild
index 07f0645b8d80..643a7372408c 100644
--- a/dev-lang/php/php-7.2.34.ebuild
+++ b/dev-lang/php/php-7.2.34-r2.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
-inherit flag-o-matic systemd autotools
+inherit flag-o-matic systemd autotools toolchain-funcs
DESCRIPTION="The PHP language runtime engine"
HOMEPAGE="https://www.php.net/"
@@ -18,7 +18,7 @@ LICENSE="PHP-3.01
unicode? ( BSD-2 LGPL-2.1 )"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
# We can build the following SAPIs in the given order
SAPIS="embed cli cgi fpm apache2 phpdbg"
@@ -80,7 +80,7 @@ COMMON_DEPEND="
postgres? ( dev-db/postgresql:* )
qdbm? ( dev-db/qdbm )
readline? ( sys-libs/readline:0= )
- recode? ( app-text/recode )
+ recode? ( app-text/recode:0= )
session-mm? ( dev-libs/mm )
simplexml? ( >=dev-libs/libxml2-2.6.8 )
snmp? ( >=net-analyzer/net-snmp-5.2 )
@@ -157,6 +157,7 @@ RESTRICT="!test? ( test )"
PATCHES=(
"${FILESDIR}/php-freetype-2.9.1.patch"
"${FILESDIR}/php-7.2.13-intl-use-icu-namespace.patch"
+ "${FILESDIR}/php-7.2.34-use-after-free-bug76047.patch"
)
PHP_MV="$(ver_cut 1)"
@@ -239,6 +240,10 @@ src_configure() {
addpredict /usr/share/snmp/mibs/.index #nowarn
addpredict /var/lib/net-snmp/mib_indexes #nowarn
+ # Fix building against >=ICU-68, https://bugs.php.net/80310
+ append-cflags -DU_DEFINE_FALSE_AND_TRUE=1
+ append-cxxflags -DU_DEFINE_FALSE_AND_TRUE=1
+
PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
# The php-fpm config file wants localstatedir to be ${EPREFIX}/var
diff --git a/dev-lang/php/php-7.3.21.ebuild b/dev-lang/php/php-7.3.21.ebuild
deleted file mode 100644
index 9c97e02a635a..000000000000
--- a/dev-lang/php/php-7.3.21.ebuild
+++ /dev/null
@@ -1,760 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-inherit flag-o-matic systemd autotools
-
-MY_PV=${PV/_rc/RC}
-DESCRIPTION="The PHP language runtime engine"
-HOMEPAGE="https://www.php.net/"
-SRC_URI="https://www.php.net/distributions/${P}.tar.xz"
-
-LICENSE="PHP-3.01
- BSD
- Zend-2.0
- bcmath? ( LGPL-2.1+ )
- fpm? ( BSD-2 )
- gd? ( gd )
- unicode? ( BSD-2 LGPL-2.1 )"
-
-SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
-
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-# We can build the following SAPIs in the given order
-SAPIS="embed cli cgi fpm apache2 phpdbg"
-
-# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
-IUSE="${IUSE}
- ${SAPIS/cli/+cli}
- threads"
-
-IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk
- coverage +ctype curl debug
- enchant exif +fileinfo +filter firebird
- +flatfile ftp gd gdbm gmp +hash +iconv imap inifile
- intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb
- mhash mssql mysql mysqli nls
- oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
- readline recode selinux +session session-mm sharedmem
- +simplexml snmp soap sockets sodium spell sqlite ssl
- sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode wddx webp
- +xml xmlreader xmlwriter xmlrpc xpm xslt zip zip-encryption zlib"
-
-# The supported (that is, autodetected) versions of BDB are listed in
-# the ./configure script. Other versions *work*, but we need to stick to
-# the ones that can be detected to avoid a repeat of bug #564824.
-COMMON_DEPEND="
- >=app-eselect/eselect-php-0.9.1[apache2?,fpm?]
- >=dev-libs/libpcre2-10.30[unicode]
- fpm? ( acl? ( sys-apps/acl ) )
- apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
- argon2? ( app-crypt/argon2:= )
- berkdb? ( || ( sys-libs/db:5.3
- sys-libs/db:5.1
- sys-libs/db:4.8
- sys-libs/db:4.7
- sys-libs/db:4.6
- sys-libs/db:4.5 ) )
- bzip2? ( app-arch/bzip2:0= )
- cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
- coverage? ( dev-util/lcov )
- curl? ( >=net-misc/curl-7.10.5 )
- enchant? ( <app-text/enchant-2.0:0 )
- firebird? ( dev-db/firebird )
- gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= >=sys-libs/zlib-1.2.0.4 )
- gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
- gmp? ( dev-libs/gmp:0= )
- iconv? ( virtual/libiconv )
- imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] )
- intl? ( dev-libs/icu:= )
- iodbc? ( dev-db/libiodbc )
- kerberos? ( virtual/krb5 )
- ldap? ( >=net-nds/openldap-1.2.11 )
- ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 )
- libedit? ( dev-libs/libedit )
- lmdb? ( dev-db/lmdb:= )
- mssql? ( dev-db/freetds[mssql] )
- nls? ( sys-devel/gettext )
- oci8-instant-client? ( dev-db/oracle-instantclient-basic )
- odbc? ( >=dev-db/unixODBC-1.8.13 )
- postgres? ( dev-db/postgresql:* )
- qdbm? ( dev-db/qdbm )
- readline? ( sys-libs/readline:0= )
- recode? ( app-text/recode )
- session-mm? ( dev-libs/mm )
- simplexml? ( >=dev-libs/libxml2-2.6.8 )
- snmp? ( >=net-analyzer/net-snmp-5.2 )
- soap? ( >=dev-libs/libxml2-2.6.8 )
- sodium? ( dev-libs/libsodium:= )
- spell? ( >=app-text/aspell-0.50 )
- sqlite? ( >=dev-db/sqlite-3.7.6.3 )
- ssl? (
- !libressl? ( >=dev-libs/openssl-1.0.1:0= )
- libressl? ( dev-libs/libressl:0= )
- )
- tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) )
- tokyocabinet? ( dev-db/tokyocabinet )
- truetype? ( =media-libs/freetype-2* )
- unicode? ( dev-libs/oniguruma:= )
- wddx? ( >=dev-libs/libxml2-2.6.8 )
- webp? ( media-libs/libwebp:0= )
- xml? ( >=dev-libs/libxml2-2.6.8 )
- xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv )
- xmlreader? ( >=dev-libs/libxml2-2.6.8 )
- xmlwriter? ( >=dev-libs/libxml2-2.6.8 )
- xpm? ( x11-libs/libXpm )
- xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )
- zip? ( >=sys-libs/zlib-1.2.0.4:0= )
- zip-encryption? ( >=dev-libs/libzip-1.2.0:= )
- zlib? ( >=sys-libs/zlib-1.2.0.4:0= )
-"
-
-RDEPEND="${COMMON_DEPEND}
- virtual/mta
- fpm? (
- selinux? ( sec-policy/selinux-phpfpm )
- systemd? ( sys-apps/systemd ) )"
-
-# Bison isn't actually needed when building from a release tarball
-# However, the configure script will warn if it's absent or if you
-# have an incompatible version installed. See bug 593278.
-DEPEND="${COMMON_DEPEND}
- app-arch/xz-utils
- >=sys-devel/bison-3.0.1"
-
-BDEPEND="virtual/pkgconfig"
-
-# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
-REQUIRED_USE="
- || ( cli cgi fpm apache2 embed phpdbg )
- cli? ( ^^ ( readline libedit ) )
- truetype? ( gd zlib )
- webp? ( gd zlib )
- cjk? ( gd zlib )
- exif? ( gd zlib )
- xpm? ( gd zlib )
- gd? ( zlib )
- simplexml? ( xml )
- soap? ( xml )
- wddx? ( xml )
- xmlrpc? ( || ( xml iconv ) )
- xmlreader? ( xml )
- xslt? ( xml )
- ldap-sasl? ( ldap )
- mhash? ( hash )
- phar? ( hash )
- qdbm? ( !gdbm )
- readline? ( !libedit )
- recode? ( !imap !mysqli !mysql )
- session-mm? ( session !threads )
- mysql? ( || ( mysqli pdo ) )
- zip-encryption? ( zip )
-"
-
-RESTRICT="!test? ( test )"
-
-PATCHES=(
- "${FILESDIR}/php-freetype-2.9.1.patch"
-)
-
-PHP_MV="$(ver_cut 1)"
-
-php_install_ini() {
- local phpsapi="${1}"
-
- # work out where we are installing the ini file
- php_set_ini_dir "${phpsapi}"
-
- # Always install the production INI file, bug 611214.
- local phpinisrc="php.ini-production-${phpsapi}"
- cp php.ini-production "${phpinisrc}" || die
-
- # default to /tmp for save_path, bug #282768
- sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die
-
- # Set the extension dir
- sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \
- -i "${phpinisrc}" || die
-
- # Set the include path to point to where we want to find PEAR packages
- sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die
-
- insinto "${PHP_INI_DIR#${EPREFIX}}"
- newins "${phpinisrc}" php.ini
-
- elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}"
- elog
-
- dodir "${PHP_EXT_INI_DIR#${EPREFIX}}"
- dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}"
-
- if use opcache; then
- elog "Adding opcache to $PHP_EXT_INI_DIR"
- echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
- "${D}/${PHP_EXT_INI_DIR}"/opcache.ini
- dosym "../ext/opcache.ini" \
- "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini"
- fi
-
- # SAPI-specific handling
- if [[ "${sapi}" == "fpm" ]] ; then
- einfo "Installing FPM config files php-fpm.conf and www.conf"
- insinto "${PHP_INI_DIR#${EPREFIX}}"
- doins sapi/fpm/php-fpm.conf
- insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d"
- doins sapi/fpm/www.conf
- fi
-
- dodoc php.ini-{development,production}
-}
-
-php_set_ini_dir() {
- PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}"
- PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext"
- PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active"
-}
-
-src_prepare() {
- default
-
- # In php-7.x, the FPM pool configuration files have been split off
- # of the main config. By default the pool config files go in
- # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the
- # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later
- # we'll install the pool configuration file "www.conf" there.
- php_set_ini_dir fpm
- sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \
- sapi/fpm/php-fpm.conf.in \
- || die 'failed to move the include directory in php-fpm.conf'
-
- # Bug 669566 - necessary so that build tools are updated for commands like pecl
- # Force rebuilding aclocal.m4
- rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare"
- eautoreconf
-}
-
-src_configure() {
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
-
- # The php-fpm config file wants localstatedir to be ${EPREFIX}/var
- # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002.
- local our_conf=(
- --prefix="${PHP_DESTDIR}"
- --mandir="${PHP_DESTDIR}/man"
- --infodir="${PHP_DESTDIR}/info"
- --libdir="${PHP_DESTDIR}/lib"
- --with-libdir="$(get_libdir)"
- --localstatedir="${EPREFIX}/var"
- --without-pear
- $(use_enable threads maintainer-zts)
- )
-
- our_conf+=(
- $(use_with argon2 password-argon2 "${EPREFIX}/usr")
- $(use_enable bcmath bcmath)
- $(use_with bzip2 bz2 "${EPREFIX}/usr")
- $(use_enable calendar calendar)
- $(use_enable coverage gcov)
- $(use_enable ctype ctype)
- $(use_with curl curl "${EPREFIX}/usr")
- $(use_enable xml dom)
- $(use_with enchant enchant "${EPREFIX}/usr")
- $(use_enable exif exif)
- $(use_enable fileinfo fileinfo)
- $(use_enable filter filter)
- $(use_enable ftp ftp)
- $(use_with nls gettext "${EPREFIX}/usr")
- $(use_with gmp gmp "${EPREFIX}/usr")
- $(use_enable hash hash)
- $(use_with mhash mhash "${EPREFIX}/usr")
- $(use_with iconv iconv \
- $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr"))
- $(use_enable intl intl)
- $(use_enable ipv6 ipv6)
- $(use_enable json json)
- $(use_with kerberos kerberos "${EPREFIX}/usr")
- $(use_enable xml libxml)
- $(use_with xml libxml-dir "${EPREFIX}/usr")
- $(use_enable unicode mbstring)
- $(use_with unicode onig "${EPREFIX}/usr")
- $(use_with ssl openssl "${EPREFIX}/usr")
- $(use_with ssl openssl-dir "${EPREFIX}/usr")
- $(use_enable pcntl pcntl)
- $(use_enable phar phar)
- $(use_enable pdo pdo)
- $(use_enable opcache opcache)
- $(use_with postgres pgsql "${EPREFIX}/usr")
- $(use_enable posix posix)
- $(use_with spell pspell "${EPREFIX}/usr")
- $(use_with recode recode "${EPREFIX}/usr")
- $(use_enable simplexml simplexml)
- $(use_enable sharedmem shmop)
- $(use_with snmp snmp "${EPREFIX}/usr")
- $(use_enable soap soap)
- $(use_enable sockets sockets)
- $(use_with sodium sodium "${EPREFIX}/usr")
- $(use_with sqlite sqlite3 "${EPREFIX}/usr")
- $(use_enable sysvipc sysvmsg)
- $(use_enable sysvipc sysvsem)
- $(use_enable sysvipc sysvshm)
- $(use_with tidy tidy "${EPREFIX}/usr")
- $(use_enable tokenizer tokenizer)
- $(use_enable wddx wddx)
- $(use_enable xml xml)
- $(use_enable xmlreader xmlreader)
- $(use_enable xmlwriter xmlwriter)
- $(use_with xmlrpc xmlrpc)
- $(use_with xslt xsl "${EPREFIX}/usr")
- $(use_enable zip zip)
- $(use_with zip-encryption libzip "${EPREFIX}/usr")
- $(use_with zlib zlib "${EPREFIX}/usr")
- $(use_enable debug debug)
- )
-
- # DBA support
- if use cdb || use berkdb || use flatfile || use gdbm || use inifile \
- || use qdbm || use lmdb || use tokyocabinet ; then
- our_conf+=( "--enable-dba${shared}" )
- fi
-
- # DBA drivers support
- our_conf+=(
- $(use_with cdb cdb)
- $(use_with berkdb db4 "${EPREFIX}/usr")
- $(use_enable flatfile flatfile)
- $(use_with gdbm gdbm "${EPREFIX}/usr")
- $(use_enable inifile inifile)
- $(use_with qdbm qdbm "${EPREFIX}/usr")
- $(use_with lmdb lmdb "${EPREFIX}/usr")
- )
-
- # Support for the GD graphics library
- our_conf+=(
- $(use_with truetype freetype-dir "${EPREFIX}/usr")
- $(use_enable cjk gd-jis-conv)
- $(use_with gd jpeg-dir "${EPREFIX}/usr")
- $(use_with gd png-dir "${EPREFIX}/usr")
- $(use_with xpm xpm-dir "${EPREFIX}/usr")
- )
- if use webp; then
- our_conf+=( --with-webp-dir="${EPREFIX}/usr" )
- fi
- # enable gd last, so configure can pick up the previous settings
- our_conf+=( $(use_with gd gd) )
-
- # IMAP support
- if use imap ; then
- our_conf+=(
- $(use_with imap imap "${EPREFIX}/usr")
- $(use_with ssl imap-ssl "${EPREFIX}/usr")
- )
- fi
-
- # Interbase/firebird support
- our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") )
-
- # LDAP support
- if use ldap ; then
- our_conf+=(
- $(use_with ldap ldap "${EPREFIX}/usr")
- $(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr")
- )
- fi
-
- # MySQL support
- local mysqllib="mysqlnd"
- local mysqlilib="mysqlnd"
-
- our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") )
-
- local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
- if use mysql || use mysqli ; then
- our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") )
- fi
-
- # ODBC support
- our_conf+=(
- $(use_with odbc unixODBC "${EPREFIX}/usr")
- $(use_with iodbc iodbc "${EPREFIX}/usr")
- )
-
- # Oracle support
- our_conf+=( $(use_with oci8-instant-client oci8) )
-
- # PDO support
- if use pdo ; then
- our_conf+=(
- $(use_with mssql pdo-dblib "${EPREFIX}/usr")
- $(use_with mysql pdo-mysql "${mysqllib}")
- $(use_with postgres pdo-pgsql)
- $(use_with sqlite pdo-sqlite "${EPREFIX}/usr")
- $(use_with firebird pdo-firebird "${EPREFIX}/usr")
- $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr")
- $(use_with oci8-instant-client pdo-oci)
- )
- fi
-
- # readline/libedit support
- our_conf+=(
- $(use_with readline readline "${EPREFIX}/usr")
- $(use_with libedit libedit "${EPREFIX}/usr")
- )
-
- # Session support
- if use session ; then
- our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") )
- else
- our_conf+=( $(use_enable session session) )
- fi
-
- # Use pic for shared modules such as apache2's mod_php
- our_conf+=( --with-pic )
-
- # we use the system copy of pcre
- # --with-pcre-regex affects ext/pcre
- # --with-pcre-dir affects ext/filter and ext/zip
- # --with-pcre-valgrind cannot be enabled with system pcre
- # Many arches don't support pcre-jit
- our_conf+=(
- --with-pcre-regex="${EPREFIX}/usr"
- --with-pcre-dir="${EPREFIX}/usr"
- --without-pcre-valgrind
- --without-pcre-jit
- )
-
- # Catch CFLAGS problems
- # Fixes bug #14067.
- # Changed order to run it in reverse for bug #32022 and #12021.
- replace-cpu-flags "k6*" "i586"
-
- # Cache the ./configure test results between SAPIs.
- our_conf+=( --cache-file="${T}/config.cache" )
-
- # Support user-passed configuration parameters
- our_conf+=( ${EXTRA_ECONF:-} )
-
- # Support the Apache2 extras, they must be set globally for all
- # SAPIs to work correctly, especially for external PHP extensions
-
- local one_sapi
- local sapi
- mkdir -p "${WORKDIR}/sapis-build" || die
- for one_sapi in $SAPIS ; do
- use "${one_sapi}" || continue
- php_set_ini_dir "${one_sapi}"
-
- # The BUILD_DIR variable is used to determine where to output
- # the files that autotools creates. This was all originally
- # based on the autotools-utils eclass.
- BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
- cp -a "${S}" "${BUILD_DIR}" || die
- cd "${BUILD_DIR}" || die
-
- local sapi_conf=(
- --with-config-file-path="${PHP_INI_DIR}"
- --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
- )
-
- for sapi in $SAPIS ; do
- case "$sapi" in
- cli|cgi|embed|fpm|phpdbg)
- if [[ "${one_sapi}" == "${sapi}" ]] ; then
- sapi_conf+=( "--enable-${sapi}" )
- if [[ "fpm" == "${sapi}" ]] ; then
- sapi_conf+=(
- $(use_with acl fpm-acl)
- $(use_with systemd fpm-systemd)
- )
- fi
- else
- sapi_conf+=( "--disable-${sapi}" )
- fi
- ;;
-
- apache2)
- if [[ "${one_sapi}" == "${sapi}" ]] ; then
- sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" )
- else
- sapi_conf+=( --without-apxs2 )
- fi
- ;;
- esac
- done
-
- # Construct the $myeconfargs array by concatenating $our_conf
- # (the common args) and $sapi_conf (the SAPI-specific args).
- local myeconfargs=( "${our_conf[@]}" )
- myeconfargs+=( "${sapi_conf[@]}" )
-
- pushd "${BUILD_DIR}" > /dev/null || die
- econf "${myeconfargs[@]}"
- popd > /dev/null || die
- done
-}
-
-src_compile() {
- # snmp seems to run during src_compile, too (bug #324739)
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- local sapi
- for sapi in ${SAPIS} ; do
- if use "${sapi}"; then
- cd "${WORKDIR}/sapis-build/$sapi" || \
- die "Failed to change dir to ${WORKDIR}/sapis-build/$1"
- emake
- fi
- done
-}
-
-src_install() {
- # see bug #324739 for what happens when we don't have that
- addpredict /usr/share/snmp/mibs/.index #nowarn
-
- # grab the first SAPI that got built and install common files from there
- local first_sapi="", sapi=""
- for sapi in $SAPIS ; do
- if use $sapi ; then
- first_sapi=$sapi
- break
- fi
- done
-
- # Makefile forgets to create this before trying to write to it...
- dodir "${PHP_DESTDIR#${EPREFIX}}/bin"
-
- # Install php environment (without any sapis)
- cd "${WORKDIR}/sapis-build/$first_sapi" || die
- emake INSTALL_ROOT="${D}" \
- install-build install-headers install-programs
-
- local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)"
-
- # Create the directory where we'll put version-specific php scripts
- keepdir "/usr/share/php${PHP_MV}"
-
- local file=""
- local sapi_list=""
-
- for sapi in ${SAPIS}; do
- if use "${sapi}" ; then
- einfo "Installing SAPI: ${sapi}"
- cd "${WORKDIR}/sapis-build/${sapi}" || die
-
- if [[ "${sapi}" == "apache2" ]] ; then
- # We're specifically not using emake install-sapi as libtool
- # may cause unnecessary relink failures (see bug #351266)
- insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/"
- newins ".libs/libphp${PHP_MV}$(get_libname)" \
- "libphp${PHP_MV}$(get_libname)"
- keepdir "/usr/$(get_libdir)/apache2/modules"
- else
- # needed each time, php_install_ini would reset it
- local dest="${PHP_DESTDIR#${EPREFIX}}"
- into "${dest}"
- case "$sapi" in
- cli)
- source="sapi/cli/php"
- # Install the "phar" archive utility.
- if use phar ; then
- emake INSTALL_ROOT="${D}" install-pharcmd
- dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}"
- fi
- ;;
- cgi)
- source="sapi/cgi/php-cgi"
- ;;
- fpm)
- source="sapi/fpm/php-fpm"
- ;;
- embed)
- source="libs/libphp${PHP_MV}$(get_libname)"
- ;;
- phpdbg)
- source="sapi/phpdbg/phpdbg"
- ;;
- *)
- die "unhandled sapi in src_install"
- ;;
- esac
-
- if [[ "${source}" == *"$(get_libname)" ]]; then
- dolib.so "${source}"
- else
- dobin "${source}"
- local name="$(basename ${source})"
- dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}"
- fi
- fi
-
- php_install_ini "${sapi}"
-
- # construct correct SAPI string for php-config
- # thanks to ferringb for the bash voodoo
- if [[ "${sapi}" == "apache2" ]]; then
- sapi_list="${sapi_list:+${sapi_list} }apache2handler"
- else
- sapi_list="${sapi_list:+${sapi_list} }${sapi}"
- fi
- fi
- done
-
- # Installing opcache module
- if use opcache ; then
- into "${PHP_DESTDIR#${EPREFIX}}"
- dolib.so "modules/opcache$(get_libname)"
- fi
-
- # Install env.d files
- newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}"
- sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
- sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
-
- # set php-config variable correctly (bug #278439)
- sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
- "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die
-
- if use fpm ; then
- if use systemd; then
- systemd_newunit "${FILESDIR}/php-fpm_at.service" \
- "php-fpm@${SLOT}.service"
- else
- systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \
- "php-fpm@${SLOT}.service"
- fi
- fi
-}
-
-src_test() {
- echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
- PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php"
- if [[ ! -x "${PHP_BIN}" ]] ; then
- ewarn "Test phase requires USE=cli, skipping"
- return
- else
- export TEST_PHP_EXECUTABLE="${PHP_BIN}"
- fi
-
- if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then
- export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi"
- fi
-
- if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then
- export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
- fi
-
- REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \
- "session.save_path=${T}" \
- "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \
- "session.save_path=${T}"
-
- for name in ${EXPECTED_TEST_FAILURES}; do
- mv "${name}.out" "${name}.out.orig" 2>/dev/null || die
- done
-
- local failed="$(find -name '*.out')"
- if [[ ${failed} != "" ]] ; then
- ewarn "The following test cases failed unexpectedly:"
- for name in ${failed}; do
- ewarn " ${name/.out/}"
- done
- else
- einfo "No unexpected test failures, all fine"
- fi
-
- if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then
- local passed=""
- for name in ${EXPECTED_TEST_FAILURES}; do
- [[ -f "${name}.diff" ]] && continue
- passed="${passed} ${name}"
- done
- if [[ ${passed} != "" ]] ; then
- einfo "The following test cases passed unexpectedly:"
- for name in ${passed}; do
- ewarn " ${passed}"
- done
- else
- einfo "None of the known-to-fail tests passed, all fine"
- fi
- fi
-}
-
-pkg_postinst() {
- # Output some general info to the user
- if use apache2 ; then
- elog
- elog "To enable PHP in apache, you will need to add \"-D PHP\" to"
- elog "your apache2 command. OpenRC users can append that string to"
- elog "APACHE2_OPTS in /etc/conf.d/apache2."
- elog
- elog "The apache module configuration file 70_mod_php.conf is"
- elog "provided (and maintained) by eselect-php."
- elog
- fi
-
- # Create the symlinks for php
- local m
- for m in ${SAPIS}; do
- [[ ${m} == 'embed' ]] && continue;
- if use $m ; then
- local ci=$(eselect php show $m)
- if [[ -z $ci ]]; then
- eselect php set $m php${SLOT} || die
- einfo "Switched ${m} to use php:${SLOT}"
- einfo
- elif [[ $ci != "php${SLOT}" ]] ; then
- elog "To switch $m to use php:${SLOT}, run"
- elog " eselect php set $m php${SLOT}"
- elog
- fi
- fi
- done
-
- # Remove dead symlinks for SAPIs that were just disabled. For
- # example, if the user has the cgi SAPI enabled, then he has an
- # eselect-php symlink for it. If he later reinstalls PHP with
- # USE="-cgi", that symlink will break. This call to eselect is
- # supposed to remove that dead link per bug 572436.
- eselect php cleanup || die
-
- if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then
- elog "To build extensions for this version of PHP, you will need to"
- elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable."
- elog
- fi
-
- # Warn about the removal of PHP_INI_VERSION if the user has it set.
- if [[ -n "${PHP_INI_VERSION}" ]]; then
- ewarn 'The PHP_INI_VERSION variable has been phased out. You may'
- ewarn 'remove it from your configuration at your convenience. See'
- ewarn
- ewarn ' https://bugs.gentoo.org/611214'
- ewarn
- ewarn 'for more information.'
- fi
-
- elog "For details on how version slotting works, please see"
- elog "the wiki:"
- elog
- elog " https://wiki.gentoo.org/wiki/PHP"
- elog
-}
-
-pkg_postrm() {
- # This serves two purposes. First, if we have just removed the last
- # installed version of PHP, then this will remove any dead symlinks
- # belonging to eselect-php. Second, if a user upgrades slots from
- # (say) 5.6 to 7.0 and depcleans the old slot, then this will update
- # his existing symlinks to point to the new 7.0 installation. The
- # latter is bug 432962.
- #
- # Note: the eselect-php package may not be installed at this point,
- # so we can't die() if this command fails.
- eselect php cleanup
-}
diff --git a/dev-lang/php/php-7.3.23.ebuild b/dev-lang/php/php-7.3.23.ebuild
deleted file mode 100644
index 9c97e02a635a..000000000000
--- a/dev-lang/php/php-7.3.23.ebuild
+++ /dev/null
@@ -1,760 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-inherit flag-o-matic systemd autotools
-
-MY_PV=${PV/_rc/RC}
-DESCRIPTION="The PHP language runtime engine"
-HOMEPAGE="https://www.php.net/"
-SRC_URI="https://www.php.net/distributions/${P}.tar.xz"
-
-LICENSE="PHP-3.01
- BSD
- Zend-2.0
- bcmath? ( LGPL-2.1+ )
- fpm? ( BSD-2 )
- gd? ( gd )
- unicode? ( BSD-2 LGPL-2.1 )"
-
-SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
-
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-# We can build the following SAPIs in the given order
-SAPIS="embed cli cgi fpm apache2 phpdbg"
-
-# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
-IUSE="${IUSE}
- ${SAPIS/cli/+cli}
- threads"
-
-IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk
- coverage +ctype curl debug
- enchant exif +fileinfo +filter firebird
- +flatfile ftp gd gdbm gmp +hash +iconv imap inifile
- intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb
- mhash mssql mysql mysqli nls
- oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
- readline recode selinux +session session-mm sharedmem
- +simplexml snmp soap sockets sodium spell sqlite ssl
- sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode wddx webp
- +xml xmlreader xmlwriter xmlrpc xpm xslt zip zip-encryption zlib"
-
-# The supported (that is, autodetected) versions of BDB are listed in
-# the ./configure script. Other versions *work*, but we need to stick to
-# the ones that can be detected to avoid a repeat of bug #564824.
-COMMON_DEPEND="
- >=app-eselect/eselect-php-0.9.1[apache2?,fpm?]
- >=dev-libs/libpcre2-10.30[unicode]
- fpm? ( acl? ( sys-apps/acl ) )
- apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
- argon2? ( app-crypt/argon2:= )
- berkdb? ( || ( sys-libs/db:5.3
- sys-libs/db:5.1
- sys-libs/db:4.8
- sys-libs/db:4.7
- sys-libs/db:4.6
- sys-libs/db:4.5 ) )
- bzip2? ( app-arch/bzip2:0= )
- cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
- coverage? ( dev-util/lcov )
- curl? ( >=net-misc/curl-7.10.5 )
- enchant? ( <app-text/enchant-2.0:0 )
- firebird? ( dev-db/firebird )
- gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= >=sys-libs/zlib-1.2.0.4 )
- gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
- gmp? ( dev-libs/gmp:0= )
- iconv? ( virtual/libiconv )
- imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] )
- intl? ( dev-libs/icu:= )
- iodbc? ( dev-db/libiodbc )
- kerberos? ( virtual/krb5 )
- ldap? ( >=net-nds/openldap-1.2.11 )
- ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 )
- libedit? ( dev-libs/libedit )
- lmdb? ( dev-db/lmdb:= )
- mssql? ( dev-db/freetds[mssql] )
- nls? ( sys-devel/gettext )
- oci8-instant-client? ( dev-db/oracle-instantclient-basic )
- odbc? ( >=dev-db/unixODBC-1.8.13 )
- postgres? ( dev-db/postgresql:* )
- qdbm? ( dev-db/qdbm )
- readline? ( sys-libs/readline:0= )
- recode? ( app-text/recode )
- session-mm? ( dev-libs/mm )
- simplexml? ( >=dev-libs/libxml2-2.6.8 )
- snmp? ( >=net-analyzer/net-snmp-5.2 )
- soap? ( >=dev-libs/libxml2-2.6.8 )
- sodium? ( dev-libs/libsodium:= )
- spell? ( >=app-text/aspell-0.50 )
- sqlite? ( >=dev-db/sqlite-3.7.6.3 )
- ssl? (
- !libressl? ( >=dev-libs/openssl-1.0.1:0= )
- libressl? ( dev-libs/libressl:0= )
- )
- tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) )
- tokyocabinet? ( dev-db/tokyocabinet )
- truetype? ( =media-libs/freetype-2* )
- unicode? ( dev-libs/oniguruma:= )
- wddx? ( >=dev-libs/libxml2-2.6.8 )
- webp? ( media-libs/libwebp:0= )
- xml? ( >=dev-libs/libxml2-2.6.8 )
- xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv )
- xmlreader? ( >=dev-libs/libxml2-2.6.8 )
- xmlwriter? ( >=dev-libs/libxml2-2.6.8 )
- xpm? ( x11-libs/libXpm )
- xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )
- zip? ( >=sys-libs/zlib-1.2.0.4:0= )
- zip-encryption? ( >=dev-libs/libzip-1.2.0:= )
- zlib? ( >=sys-libs/zlib-1.2.0.4:0= )
-"
-
-RDEPEND="${COMMON_DEPEND}
- virtual/mta
- fpm? (
- selinux? ( sec-policy/selinux-phpfpm )
- systemd? ( sys-apps/systemd ) )"
-
-# Bison isn't actually needed when building from a release tarball
-# However, the configure script will warn if it's absent or if you
-# have an incompatible version installed. See bug 593278.
-DEPEND="${COMMON_DEPEND}
- app-arch/xz-utils
- >=sys-devel/bison-3.0.1"
-
-BDEPEND="virtual/pkgconfig"
-
-# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
-REQUIRED_USE="
- || ( cli cgi fpm apache2 embed phpdbg )
- cli? ( ^^ ( readline libedit ) )
- truetype? ( gd zlib )
- webp? ( gd zlib )
- cjk? ( gd zlib )
- exif? ( gd zlib )
- xpm? ( gd zlib )
- gd? ( zlib )
- simplexml? ( xml )
- soap? ( xml )
- wddx? ( xml )
- xmlrpc? ( || ( xml iconv ) )
- xmlreader? ( xml )
- xslt? ( xml )
- ldap-sasl? ( ldap )
- mhash? ( hash )
- phar? ( hash )
- qdbm? ( !gdbm )
- readline? ( !libedit )
- recode? ( !imap !mysqli !mysql )
- session-mm? ( session !threads )
- mysql? ( || ( mysqli pdo ) )
- zip-encryption? ( zip )
-"
-
-RESTRICT="!test? ( test )"
-
-PATCHES=(
- "${FILESDIR}/php-freetype-2.9.1.patch"
-)
-
-PHP_MV="$(ver_cut 1)"
-
-php_install_ini() {
- local phpsapi="${1}"
-
- # work out where we are installing the ini file
- php_set_ini_dir "${phpsapi}"
-
- # Always install the production INI file, bug 611214.
- local phpinisrc="php.ini-production-${phpsapi}"
- cp php.ini-production "${phpinisrc}" || die
-
- # default to /tmp for save_path, bug #282768
- sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die
-
- # Set the extension dir
- sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \
- -i "${phpinisrc}" || die
-
- # Set the include path to point to where we want to find PEAR packages
- sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die
-
- insinto "${PHP_INI_DIR#${EPREFIX}}"
- newins "${phpinisrc}" php.ini
-
- elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}"
- elog
-
- dodir "${PHP_EXT_INI_DIR#${EPREFIX}}"
- dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}"
-
- if use opcache; then
- elog "Adding opcache to $PHP_EXT_INI_DIR"
- echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
- "${D}/${PHP_EXT_INI_DIR}"/opcache.ini
- dosym "../ext/opcache.ini" \
- "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini"
- fi
-
- # SAPI-specific handling
- if [[ "${sapi}" == "fpm" ]] ; then
- einfo "Installing FPM config files php-fpm.conf and www.conf"
- insinto "${PHP_INI_DIR#${EPREFIX}}"
- doins sapi/fpm/php-fpm.conf
- insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d"
- doins sapi/fpm/www.conf
- fi
-
- dodoc php.ini-{development,production}
-}
-
-php_set_ini_dir() {
- PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}"
- PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext"
- PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active"
-}
-
-src_prepare() {
- default
-
- # In php-7.x, the FPM pool configuration files have been split off
- # of the main config. By default the pool config files go in
- # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the
- # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later
- # we'll install the pool configuration file "www.conf" there.
- php_set_ini_dir fpm
- sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \
- sapi/fpm/php-fpm.conf.in \
- || die 'failed to move the include directory in php-fpm.conf'
-
- # Bug 669566 - necessary so that build tools are updated for commands like pecl
- # Force rebuilding aclocal.m4
- rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare"
- eautoreconf
-}
-
-src_configure() {
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
-
- # The php-fpm config file wants localstatedir to be ${EPREFIX}/var
- # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002.
- local our_conf=(
- --prefix="${PHP_DESTDIR}"
- --mandir="${PHP_DESTDIR}/man"
- --infodir="${PHP_DESTDIR}/info"
- --libdir="${PHP_DESTDIR}/lib"
- --with-libdir="$(get_libdir)"
- --localstatedir="${EPREFIX}/var"
- --without-pear
- $(use_enable threads maintainer-zts)
- )
-
- our_conf+=(
- $(use_with argon2 password-argon2 "${EPREFIX}/usr")
- $(use_enable bcmath bcmath)
- $(use_with bzip2 bz2 "${EPREFIX}/usr")
- $(use_enable calendar calendar)
- $(use_enable coverage gcov)
- $(use_enable ctype ctype)
- $(use_with curl curl "${EPREFIX}/usr")
- $(use_enable xml dom)
- $(use_with enchant enchant "${EPREFIX}/usr")
- $(use_enable exif exif)
- $(use_enable fileinfo fileinfo)
- $(use_enable filter filter)
- $(use_enable ftp ftp)
- $(use_with nls gettext "${EPREFIX}/usr")
- $(use_with gmp gmp "${EPREFIX}/usr")
- $(use_enable hash hash)
- $(use_with mhash mhash "${EPREFIX}/usr")
- $(use_with iconv iconv \
- $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr"))
- $(use_enable intl intl)
- $(use_enable ipv6 ipv6)
- $(use_enable json json)
- $(use_with kerberos kerberos "${EPREFIX}/usr")
- $(use_enable xml libxml)
- $(use_with xml libxml-dir "${EPREFIX}/usr")
- $(use_enable unicode mbstring)
- $(use_with unicode onig "${EPREFIX}/usr")
- $(use_with ssl openssl "${EPREFIX}/usr")
- $(use_with ssl openssl-dir "${EPREFIX}/usr")
- $(use_enable pcntl pcntl)
- $(use_enable phar phar)
- $(use_enable pdo pdo)
- $(use_enable opcache opcache)
- $(use_with postgres pgsql "${EPREFIX}/usr")
- $(use_enable posix posix)
- $(use_with spell pspell "${EPREFIX}/usr")
- $(use_with recode recode "${EPREFIX}/usr")
- $(use_enable simplexml simplexml)
- $(use_enable sharedmem shmop)
- $(use_with snmp snmp "${EPREFIX}/usr")
- $(use_enable soap soap)
- $(use_enable sockets sockets)
- $(use_with sodium sodium "${EPREFIX}/usr")
- $(use_with sqlite sqlite3 "${EPREFIX}/usr")
- $(use_enable sysvipc sysvmsg)
- $(use_enable sysvipc sysvsem)
- $(use_enable sysvipc sysvshm)
- $(use_with tidy tidy "${EPREFIX}/usr")
- $(use_enable tokenizer tokenizer)
- $(use_enable wddx wddx)
- $(use_enable xml xml)
- $(use_enable xmlreader xmlreader)
- $(use_enable xmlwriter xmlwriter)
- $(use_with xmlrpc xmlrpc)
- $(use_with xslt xsl "${EPREFIX}/usr")
- $(use_enable zip zip)
- $(use_with zip-encryption libzip "${EPREFIX}/usr")
- $(use_with zlib zlib "${EPREFIX}/usr")
- $(use_enable debug debug)
- )
-
- # DBA support
- if use cdb || use berkdb || use flatfile || use gdbm || use inifile \
- || use qdbm || use lmdb || use tokyocabinet ; then
- our_conf+=( "--enable-dba${shared}" )
- fi
-
- # DBA drivers support
- our_conf+=(
- $(use_with cdb cdb)
- $(use_with berkdb db4 "${EPREFIX}/usr")
- $(use_enable flatfile flatfile)
- $(use_with gdbm gdbm "${EPREFIX}/usr")
- $(use_enable inifile inifile)
- $(use_with qdbm qdbm "${EPREFIX}/usr")
- $(use_with lmdb lmdb "${EPREFIX}/usr")
- )
-
- # Support for the GD graphics library
- our_conf+=(
- $(use_with truetype freetype-dir "${EPREFIX}/usr")
- $(use_enable cjk gd-jis-conv)
- $(use_with gd jpeg-dir "${EPREFIX}/usr")
- $(use_with gd png-dir "${EPREFIX}/usr")
- $(use_with xpm xpm-dir "${EPREFIX}/usr")
- )
- if use webp; then
- our_conf+=( --with-webp-dir="${EPREFIX}/usr" )
- fi
- # enable gd last, so configure can pick up the previous settings
- our_conf+=( $(use_with gd gd) )
-
- # IMAP support
- if use imap ; then
- our_conf+=(
- $(use_with imap imap "${EPREFIX}/usr")
- $(use_with ssl imap-ssl "${EPREFIX}/usr")
- )
- fi
-
- # Interbase/firebird support
- our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") )
-
- # LDAP support
- if use ldap ; then
- our_conf+=(
- $(use_with ldap ldap "${EPREFIX}/usr")
- $(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr")
- )
- fi
-
- # MySQL support
- local mysqllib="mysqlnd"
- local mysqlilib="mysqlnd"
-
- our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") )
-
- local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
- if use mysql || use mysqli ; then
- our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") )
- fi
-
- # ODBC support
- our_conf+=(
- $(use_with odbc unixODBC "${EPREFIX}/usr")
- $(use_with iodbc iodbc "${EPREFIX}/usr")
- )
-
- # Oracle support
- our_conf+=( $(use_with oci8-instant-client oci8) )
-
- # PDO support
- if use pdo ; then
- our_conf+=(
- $(use_with mssql pdo-dblib "${EPREFIX}/usr")
- $(use_with mysql pdo-mysql "${mysqllib}")
- $(use_with postgres pdo-pgsql)
- $(use_with sqlite pdo-sqlite "${EPREFIX}/usr")
- $(use_with firebird pdo-firebird "${EPREFIX}/usr")
- $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr")
- $(use_with oci8-instant-client pdo-oci)
- )
- fi
-
- # readline/libedit support
- our_conf+=(
- $(use_with readline readline "${EPREFIX}/usr")
- $(use_with libedit libedit "${EPREFIX}/usr")
- )
-
- # Session support
- if use session ; then
- our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") )
- else
- our_conf+=( $(use_enable session session) )
- fi
-
- # Use pic for shared modules such as apache2's mod_php
- our_conf+=( --with-pic )
-
- # we use the system copy of pcre
- # --with-pcre-regex affects ext/pcre
- # --with-pcre-dir affects ext/filter and ext/zip
- # --with-pcre-valgrind cannot be enabled with system pcre
- # Many arches don't support pcre-jit
- our_conf+=(
- --with-pcre-regex="${EPREFIX}/usr"
- --with-pcre-dir="${EPREFIX}/usr"
- --without-pcre-valgrind
- --without-pcre-jit
- )
-
- # Catch CFLAGS problems
- # Fixes bug #14067.
- # Changed order to run it in reverse for bug #32022 and #12021.
- replace-cpu-flags "k6*" "i586"
-
- # Cache the ./configure test results between SAPIs.
- our_conf+=( --cache-file="${T}/config.cache" )
-
- # Support user-passed configuration parameters
- our_conf+=( ${EXTRA_ECONF:-} )
-
- # Support the Apache2 extras, they must be set globally for all
- # SAPIs to work correctly, especially for external PHP extensions
-
- local one_sapi
- local sapi
- mkdir -p "${WORKDIR}/sapis-build" || die
- for one_sapi in $SAPIS ; do
- use "${one_sapi}" || continue
- php_set_ini_dir "${one_sapi}"
-
- # The BUILD_DIR variable is used to determine where to output
- # the files that autotools creates. This was all originally
- # based on the autotools-utils eclass.
- BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
- cp -a "${S}" "${BUILD_DIR}" || die
- cd "${BUILD_DIR}" || die
-
- local sapi_conf=(
- --with-config-file-path="${PHP_INI_DIR}"
- --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
- )
-
- for sapi in $SAPIS ; do
- case "$sapi" in
- cli|cgi|embed|fpm|phpdbg)
- if [[ "${one_sapi}" == "${sapi}" ]] ; then
- sapi_conf+=( "--enable-${sapi}" )
- if [[ "fpm" == "${sapi}" ]] ; then
- sapi_conf+=(
- $(use_with acl fpm-acl)
- $(use_with systemd fpm-systemd)
- )
- fi
- else
- sapi_conf+=( "--disable-${sapi}" )
- fi
- ;;
-
- apache2)
- if [[ "${one_sapi}" == "${sapi}" ]] ; then
- sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" )
- else
- sapi_conf+=( --without-apxs2 )
- fi
- ;;
- esac
- done
-
- # Construct the $myeconfargs array by concatenating $our_conf
- # (the common args) and $sapi_conf (the SAPI-specific args).
- local myeconfargs=( "${our_conf[@]}" )
- myeconfargs+=( "${sapi_conf[@]}" )
-
- pushd "${BUILD_DIR}" > /dev/null || die
- econf "${myeconfargs[@]}"
- popd > /dev/null || die
- done
-}
-
-src_compile() {
- # snmp seems to run during src_compile, too (bug #324739)
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- local sapi
- for sapi in ${SAPIS} ; do
- if use "${sapi}"; then
- cd "${WORKDIR}/sapis-build/$sapi" || \
- die "Failed to change dir to ${WORKDIR}/sapis-build/$1"
- emake
- fi
- done
-}
-
-src_install() {
- # see bug #324739 for what happens when we don't have that
- addpredict /usr/share/snmp/mibs/.index #nowarn
-
- # grab the first SAPI that got built and install common files from there
- local first_sapi="", sapi=""
- for sapi in $SAPIS ; do
- if use $sapi ; then
- first_sapi=$sapi
- break
- fi
- done
-
- # Makefile forgets to create this before trying to write to it...
- dodir "${PHP_DESTDIR#${EPREFIX}}/bin"
-
- # Install php environment (without any sapis)
- cd "${WORKDIR}/sapis-build/$first_sapi" || die
- emake INSTALL_ROOT="${D}" \
- install-build install-headers install-programs
-
- local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)"
-
- # Create the directory where we'll put version-specific php scripts
- keepdir "/usr/share/php${PHP_MV}"
-
- local file=""
- local sapi_list=""
-
- for sapi in ${SAPIS}; do
- if use "${sapi}" ; then
- einfo "Installing SAPI: ${sapi}"
- cd "${WORKDIR}/sapis-build/${sapi}" || die
-
- if [[ "${sapi}" == "apache2" ]] ; then
- # We're specifically not using emake install-sapi as libtool
- # may cause unnecessary relink failures (see bug #351266)
- insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/"
- newins ".libs/libphp${PHP_MV}$(get_libname)" \
- "libphp${PHP_MV}$(get_libname)"
- keepdir "/usr/$(get_libdir)/apache2/modules"
- else
- # needed each time, php_install_ini would reset it
- local dest="${PHP_DESTDIR#${EPREFIX}}"
- into "${dest}"
- case "$sapi" in
- cli)
- source="sapi/cli/php"
- # Install the "phar" archive utility.
- if use phar ; then
- emake INSTALL_ROOT="${D}" install-pharcmd
- dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}"
- fi
- ;;
- cgi)
- source="sapi/cgi/php-cgi"
- ;;
- fpm)
- source="sapi/fpm/php-fpm"
- ;;
- embed)
- source="libs/libphp${PHP_MV}$(get_libname)"
- ;;
- phpdbg)
- source="sapi/phpdbg/phpdbg"
- ;;
- *)
- die "unhandled sapi in src_install"
- ;;
- esac
-
- if [[ "${source}" == *"$(get_libname)" ]]; then
- dolib.so "${source}"
- else
- dobin "${source}"
- local name="$(basename ${source})"
- dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}"
- fi
- fi
-
- php_install_ini "${sapi}"
-
- # construct correct SAPI string for php-config
- # thanks to ferringb for the bash voodoo
- if [[ "${sapi}" == "apache2" ]]; then
- sapi_list="${sapi_list:+${sapi_list} }apache2handler"
- else
- sapi_list="${sapi_list:+${sapi_list} }${sapi}"
- fi
- fi
- done
-
- # Installing opcache module
- if use opcache ; then
- into "${PHP_DESTDIR#${EPREFIX}}"
- dolib.so "modules/opcache$(get_libname)"
- fi
-
- # Install env.d files
- newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}"
- sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
- sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
-
- # set php-config variable correctly (bug #278439)
- sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
- "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die
-
- if use fpm ; then
- if use systemd; then
- systemd_newunit "${FILESDIR}/php-fpm_at.service" \
- "php-fpm@${SLOT}.service"
- else
- systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \
- "php-fpm@${SLOT}.service"
- fi
- fi
-}
-
-src_test() {
- echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
- PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php"
- if [[ ! -x "${PHP_BIN}" ]] ; then
- ewarn "Test phase requires USE=cli, skipping"
- return
- else
- export TEST_PHP_EXECUTABLE="${PHP_BIN}"
- fi
-
- if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then
- export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi"
- fi
-
- if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then
- export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
- fi
-
- REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \
- "session.save_path=${T}" \
- "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \
- "session.save_path=${T}"
-
- for name in ${EXPECTED_TEST_FAILURES}; do
- mv "${name}.out" "${name}.out.orig" 2>/dev/null || die
- done
-
- local failed="$(find -name '*.out')"
- if [[ ${failed} != "" ]] ; then
- ewarn "The following test cases failed unexpectedly:"
- for name in ${failed}; do
- ewarn " ${name/.out/}"
- done
- else
- einfo "No unexpected test failures, all fine"
- fi
-
- if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then
- local passed=""
- for name in ${EXPECTED_TEST_FAILURES}; do
- [[ -f "${name}.diff" ]] && continue
- passed="${passed} ${name}"
- done
- if [[ ${passed} != "" ]] ; then
- einfo "The following test cases passed unexpectedly:"
- for name in ${passed}; do
- ewarn " ${passed}"
- done
- else
- einfo "None of the known-to-fail tests passed, all fine"
- fi
- fi
-}
-
-pkg_postinst() {
- # Output some general info to the user
- if use apache2 ; then
- elog
- elog "To enable PHP in apache, you will need to add \"-D PHP\" to"
- elog "your apache2 command. OpenRC users can append that string to"
- elog "APACHE2_OPTS in /etc/conf.d/apache2."
- elog
- elog "The apache module configuration file 70_mod_php.conf is"
- elog "provided (and maintained) by eselect-php."
- elog
- fi
-
- # Create the symlinks for php
- local m
- for m in ${SAPIS}; do
- [[ ${m} == 'embed' ]] && continue;
- if use $m ; then
- local ci=$(eselect php show $m)
- if [[ -z $ci ]]; then
- eselect php set $m php${SLOT} || die
- einfo "Switched ${m} to use php:${SLOT}"
- einfo
- elif [[ $ci != "php${SLOT}" ]] ; then
- elog "To switch $m to use php:${SLOT}, run"
- elog " eselect php set $m php${SLOT}"
- elog
- fi
- fi
- done
-
- # Remove dead symlinks for SAPIs that were just disabled. For
- # example, if the user has the cgi SAPI enabled, then he has an
- # eselect-php symlink for it. If he later reinstalls PHP with
- # USE="-cgi", that symlink will break. This call to eselect is
- # supposed to remove that dead link per bug 572436.
- eselect php cleanup || die
-
- if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then
- elog "To build extensions for this version of PHP, you will need to"
- elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable."
- elog
- fi
-
- # Warn about the removal of PHP_INI_VERSION if the user has it set.
- if [[ -n "${PHP_INI_VERSION}" ]]; then
- ewarn 'The PHP_INI_VERSION variable has been phased out. You may'
- ewarn 'remove it from your configuration at your convenience. See'
- ewarn
- ewarn ' https://bugs.gentoo.org/611214'
- ewarn
- ewarn 'for more information.'
- fi
-
- elog "For details on how version slotting works, please see"
- elog "the wiki:"
- elog
- elog " https://wiki.gentoo.org/wiki/PHP"
- elog
-}
-
-pkg_postrm() {
- # This serves two purposes. First, if we have just removed the last
- # installed version of PHP, then this will remove any dead symlinks
- # belonging to eselect-php. Second, if a user upgrades slots from
- # (say) 5.6 to 7.0 and depcleans the old slot, then this will update
- # his existing symlinks to point to the new 7.0 installation. The
- # latter is bug 432962.
- #
- # Note: the eselect-php package may not be installed at this point,
- # so we can't die() if this command fails.
- eselect php cleanup
-}
diff --git a/dev-lang/php/php-7.3.24.ebuild b/dev-lang/php/php-7.3.24.ebuild
deleted file mode 100644
index 705d68d153f3..000000000000
--- a/dev-lang/php/php-7.3.24.ebuild
+++ /dev/null
@@ -1,760 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-inherit flag-o-matic systemd autotools
-
-MY_PV=${PV/_rc/RC}
-DESCRIPTION="The PHP language runtime engine"
-HOMEPAGE="https://www.php.net/"
-SRC_URI="https://www.php.net/distributions/${P}.tar.xz"
-
-LICENSE="PHP-3.01
- BSD
- Zend-2.0
- bcmath? ( LGPL-2.1+ )
- fpm? ( BSD-2 )
- gd? ( gd )
- unicode? ( BSD-2 LGPL-2.1 )"
-
-SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
-
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-# We can build the following SAPIs in the given order
-SAPIS="embed cli cgi fpm apache2 phpdbg"
-
-# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
-IUSE="${IUSE}
- ${SAPIS/cli/+cli}
- threads"
-
-IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk
- coverage +ctype curl debug
- enchant exif +fileinfo +filter firebird
- +flatfile ftp gd gdbm gmp +hash +iconv imap inifile
- intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb
- mhash mssql mysql mysqli nls
- oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
- readline recode selinux +session session-mm sharedmem
- +simplexml snmp soap sockets sodium spell sqlite ssl
- sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode wddx webp
- +xml xmlreader xmlwriter xmlrpc xpm xslt zip zip-encryption zlib"
-
-# The supported (that is, autodetected) versions of BDB are listed in
-# the ./configure script. Other versions *work*, but we need to stick to
-# the ones that can be detected to avoid a repeat of bug #564824.
-COMMON_DEPEND="
- >=app-eselect/eselect-php-0.9.1[apache2?,fpm?]
- >=dev-libs/libpcre2-10.30[unicode]
- fpm? ( acl? ( sys-apps/acl ) )
- apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
- argon2? ( app-crypt/argon2:= )
- berkdb? ( || ( sys-libs/db:5.3
- sys-libs/db:5.1
- sys-libs/db:4.8
- sys-libs/db:4.7
- sys-libs/db:4.6
- sys-libs/db:4.5 ) )
- bzip2? ( app-arch/bzip2:0= )
- cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
- coverage? ( dev-util/lcov )
- curl? ( >=net-misc/curl-7.10.5 )
- enchant? ( <app-text/enchant-2.0:0 )
- firebird? ( dev-db/firebird )
- gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= >=sys-libs/zlib-1.2.0.4 )
- gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
- gmp? ( dev-libs/gmp:0= )
- iconv? ( virtual/libiconv )
- imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] )
- intl? ( dev-libs/icu:= )
- iodbc? ( dev-db/libiodbc )
- kerberos? ( virtual/krb5 )
- ldap? ( >=net-nds/openldap-1.2.11 )
- ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 )
- libedit? ( dev-libs/libedit )
- lmdb? ( dev-db/lmdb:= )
- mssql? ( dev-db/freetds[mssql] )
- nls? ( sys-devel/gettext )
- oci8-instant-client? ( dev-db/oracle-instantclient-basic )
- odbc? ( >=dev-db/unixODBC-1.8.13 )
- postgres? ( dev-db/postgresql:* )
- qdbm? ( dev-db/qdbm )
- readline? ( sys-libs/readline:0= )
- recode? ( app-text/recode )
- session-mm? ( dev-libs/mm )
- simplexml? ( >=dev-libs/libxml2-2.6.8 )
- snmp? ( >=net-analyzer/net-snmp-5.2 )
- soap? ( >=dev-libs/libxml2-2.6.8 )
- sodium? ( dev-libs/libsodium:= )
- spell? ( >=app-text/aspell-0.50 )
- sqlite? ( >=dev-db/sqlite-3.7.6.3 )
- ssl? (
- !libressl? ( >=dev-libs/openssl-1.0.1:0= )
- libressl? ( dev-libs/libressl:0= )
- )
- tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) )
- tokyocabinet? ( dev-db/tokyocabinet )
- truetype? ( =media-libs/freetype-2* )
- unicode? ( dev-libs/oniguruma:= )
- wddx? ( >=dev-libs/libxml2-2.6.8 )
- webp? ( media-libs/libwebp:0= )
- xml? ( >=dev-libs/libxml2-2.6.8 )
- xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv )
- xmlreader? ( >=dev-libs/libxml2-2.6.8 )
- xmlwriter? ( >=dev-libs/libxml2-2.6.8 )
- xpm? ( x11-libs/libXpm )
- xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )
- zip? ( >=sys-libs/zlib-1.2.0.4:0= )
- zip-encryption? ( >=dev-libs/libzip-1.2.0:= )
- zlib? ( >=sys-libs/zlib-1.2.0.4:0= )
-"
-
-RDEPEND="${COMMON_DEPEND}
- virtual/mta
- fpm? (
- selinux? ( sec-policy/selinux-phpfpm )
- systemd? ( sys-apps/systemd ) )"
-
-# Bison isn't actually needed when building from a release tarball
-# However, the configure script will warn if it's absent or if you
-# have an incompatible version installed. See bug 593278.
-DEPEND="${COMMON_DEPEND}
- app-arch/xz-utils
- >=sys-devel/bison-3.0.1"
-
-BDEPEND="virtual/pkgconfig"
-
-# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
-REQUIRED_USE="
- || ( cli cgi fpm apache2 embed phpdbg )
- cli? ( ^^ ( readline libedit ) )
- truetype? ( gd zlib )
- webp? ( gd zlib )
- cjk? ( gd zlib )
- exif? ( gd zlib )
- xpm? ( gd zlib )
- gd? ( zlib )
- simplexml? ( xml )
- soap? ( xml )
- wddx? ( xml )
- xmlrpc? ( || ( xml iconv ) )
- xmlreader? ( xml )
- xslt? ( xml )
- ldap-sasl? ( ldap )
- mhash? ( hash )
- phar? ( hash )
- qdbm? ( !gdbm )
- readline? ( !libedit )
- recode? ( !imap !mysqli !mysql )
- session-mm? ( session !threads )
- mysql? ( || ( mysqli pdo ) )
- zip-encryption? ( zip )
-"
-
-RESTRICT="!test? ( test )"
-
-PATCHES=(
- "${FILESDIR}/php-freetype-2.9.1.patch"
-)
-
-PHP_MV="$(ver_cut 1)"
-
-php_install_ini() {
- local phpsapi="${1}"
-
- # work out where we are installing the ini file
- php_set_ini_dir "${phpsapi}"
-
- # Always install the production INI file, bug 611214.
- local phpinisrc="php.ini-production-${phpsapi}"
- cp php.ini-production "${phpinisrc}" || die
-
- # default to /tmp for save_path, bug #282768
- sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die
-
- # Set the extension dir
- sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \
- -i "${phpinisrc}" || die
-
- # Set the include path to point to where we want to find PEAR packages
- sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die
-
- insinto "${PHP_INI_DIR#${EPREFIX}}"
- newins "${phpinisrc}" php.ini
-
- elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}"
- elog
-
- dodir "${PHP_EXT_INI_DIR#${EPREFIX}}"
- dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}"
-
- if use opcache; then
- elog "Adding opcache to $PHP_EXT_INI_DIR"
- echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
- "${D}/${PHP_EXT_INI_DIR}"/opcache.ini
- dosym "../ext/opcache.ini" \
- "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini"
- fi
-
- # SAPI-specific handling
- if [[ "${sapi}" == "fpm" ]] ; then
- einfo "Installing FPM config files php-fpm.conf and www.conf"
- insinto "${PHP_INI_DIR#${EPREFIX}}"
- doins sapi/fpm/php-fpm.conf
- insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d"
- doins sapi/fpm/www.conf
- fi
-
- dodoc php.ini-{development,production}
-}
-
-php_set_ini_dir() {
- PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}"
- PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext"
- PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active"
-}
-
-src_prepare() {
- default
-
- # In php-7.x, the FPM pool configuration files have been split off
- # of the main config. By default the pool config files go in
- # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the
- # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later
- # we'll install the pool configuration file "www.conf" there.
- php_set_ini_dir fpm
- sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \
- sapi/fpm/php-fpm.conf.in \
- || die 'failed to move the include directory in php-fpm.conf'
-
- # Bug 669566 - necessary so that build tools are updated for commands like pecl
- # Force rebuilding aclocal.m4
- rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare"
- eautoreconf
-}
-
-src_configure() {
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
-
- # The php-fpm config file wants localstatedir to be ${EPREFIX}/var
- # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002.
- local our_conf=(
- --prefix="${PHP_DESTDIR}"
- --mandir="${PHP_DESTDIR}/man"
- --infodir="${PHP_DESTDIR}/info"
- --libdir="${PHP_DESTDIR}/lib"
- --with-libdir="$(get_libdir)"
- --localstatedir="${EPREFIX}/var"
- --without-pear
- $(use_enable threads maintainer-zts)
- )
-
- our_conf+=(
- $(use_with argon2 password-argon2 "${EPREFIX}/usr")
- $(use_enable bcmath bcmath)
- $(use_with bzip2 bz2 "${EPREFIX}/usr")
- $(use_enable calendar calendar)
- $(use_enable coverage gcov)
- $(use_enable ctype ctype)
- $(use_with curl curl "${EPREFIX}/usr")
- $(use_enable xml dom)
- $(use_with enchant enchant "${EPREFIX}/usr")
- $(use_enable exif exif)
- $(use_enable fileinfo fileinfo)
- $(use_enable filter filter)
- $(use_enable ftp ftp)
- $(use_with nls gettext "${EPREFIX}/usr")
- $(use_with gmp gmp "${EPREFIX}/usr")
- $(use_enable hash hash)
- $(use_with mhash mhash "${EPREFIX}/usr")
- $(use_with iconv iconv \
- $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr"))
- $(use_enable intl intl)
- $(use_enable ipv6 ipv6)
- $(use_enable json json)
- $(use_with kerberos kerberos "${EPREFIX}/usr")
- $(use_enable xml libxml)
- $(use_with xml libxml-dir "${EPREFIX}/usr")
- $(use_enable unicode mbstring)
- $(use_with unicode onig "${EPREFIX}/usr")
- $(use_with ssl openssl "${EPREFIX}/usr")
- $(use_with ssl openssl-dir "${EPREFIX}/usr")
- $(use_enable pcntl pcntl)
- $(use_enable phar phar)
- $(use_enable pdo pdo)
- $(use_enable opcache opcache)
- $(use_with postgres pgsql "${EPREFIX}/usr")
- $(use_enable posix posix)
- $(use_with spell pspell "${EPREFIX}/usr")
- $(use_with recode recode "${EPREFIX}/usr")
- $(use_enable simplexml simplexml)
- $(use_enable sharedmem shmop)
- $(use_with snmp snmp "${EPREFIX}/usr")
- $(use_enable soap soap)
- $(use_enable sockets sockets)
- $(use_with sodium sodium "${EPREFIX}/usr")
- $(use_with sqlite sqlite3 "${EPREFIX}/usr")
- $(use_enable sysvipc sysvmsg)
- $(use_enable sysvipc sysvsem)
- $(use_enable sysvipc sysvshm)
- $(use_with tidy tidy "${EPREFIX}/usr")
- $(use_enable tokenizer tokenizer)
- $(use_enable wddx wddx)
- $(use_enable xml xml)
- $(use_enable xmlreader xmlreader)
- $(use_enable xmlwriter xmlwriter)
- $(use_with xmlrpc xmlrpc)
- $(use_with xslt xsl "${EPREFIX}/usr")
- $(use_enable zip zip)
- $(use_with zip-encryption libzip "${EPREFIX}/usr")
- $(use_with zlib zlib "${EPREFIX}/usr")
- $(use_enable debug debug)
- )
-
- # DBA support
- if use cdb || use berkdb || use flatfile || use gdbm || use inifile \
- || use qdbm || use lmdb || use tokyocabinet ; then
- our_conf+=( "--enable-dba${shared}" )
- fi
-
- # DBA drivers support
- our_conf+=(
- $(use_with cdb cdb)
- $(use_with berkdb db4 "${EPREFIX}/usr")
- $(use_enable flatfile flatfile)
- $(use_with gdbm gdbm "${EPREFIX}/usr")
- $(use_enable inifile inifile)
- $(use_with qdbm qdbm "${EPREFIX}/usr")
- $(use_with lmdb lmdb "${EPREFIX}/usr")
- )
-
- # Support for the GD graphics library
- our_conf+=(
- $(use_with truetype freetype-dir "${EPREFIX}/usr")
- $(use_enable cjk gd-jis-conv)
- $(use_with gd jpeg-dir "${EPREFIX}/usr")
- $(use_with gd png-dir "${EPREFIX}/usr")
- $(use_with xpm xpm-dir "${EPREFIX}/usr")
- )
- if use webp; then
- our_conf+=( --with-webp-dir="${EPREFIX}/usr" )
- fi
- # enable gd last, so configure can pick up the previous settings
- our_conf+=( $(use_with gd gd) )
-
- # IMAP support
- if use imap ; then
- our_conf+=(
- $(use_with imap imap "${EPREFIX}/usr")
- $(use_with ssl imap-ssl "${EPREFIX}/usr")
- )
- fi
-
- # Interbase/firebird support
- our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") )
-
- # LDAP support
- if use ldap ; then
- our_conf+=(
- $(use_with ldap ldap "${EPREFIX}/usr")
- $(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr")
- )
- fi
-
- # MySQL support
- local mysqllib="mysqlnd"
- local mysqlilib="mysqlnd"
-
- our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") )
-
- local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
- if use mysql || use mysqli ; then
- our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") )
- fi
-
- # ODBC support
- our_conf+=(
- $(use_with odbc unixODBC "${EPREFIX}/usr")
- $(use_with iodbc iodbc "${EPREFIX}/usr")
- )
-
- # Oracle support
- our_conf+=( $(use_with oci8-instant-client oci8) )
-
- # PDO support
- if use pdo ; then
- our_conf+=(
- $(use_with mssql pdo-dblib "${EPREFIX}/usr")
- $(use_with mysql pdo-mysql "${mysqllib}")
- $(use_with postgres pdo-pgsql)
- $(use_with sqlite pdo-sqlite "${EPREFIX}/usr")
- $(use_with firebird pdo-firebird "${EPREFIX}/usr")
- $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr")
- $(use_with oci8-instant-client pdo-oci)
- )
- fi
-
- # readline/libedit support
- our_conf+=(
- $(use_with readline readline "${EPREFIX}/usr")
- $(use_with libedit libedit "${EPREFIX}/usr")
- )
-
- # Session support
- if use session ; then
- our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") )
- else
- our_conf+=( $(use_enable session session) )
- fi
-
- # Use pic for shared modules such as apache2's mod_php
- our_conf+=( --with-pic )
-
- # we use the system copy of pcre
- # --with-pcre-regex affects ext/pcre
- # --with-pcre-dir affects ext/filter and ext/zip
- # --with-pcre-valgrind cannot be enabled with system pcre
- # Many arches don't support pcre-jit
- our_conf+=(
- --with-pcre-regex="${EPREFIX}/usr"
- --with-pcre-dir="${EPREFIX}/usr"
- --without-pcre-valgrind
- --without-pcre-jit
- )
-
- # Catch CFLAGS problems
- # Fixes bug #14067.
- # Changed order to run it in reverse for bug #32022 and #12021.
- replace-cpu-flags "k6*" "i586"
-
- # Cache the ./configure test results between SAPIs.
- our_conf+=( --cache-file="${T}/config.cache" )
-
- # Support user-passed configuration parameters
- our_conf+=( ${EXTRA_ECONF:-} )
-
- # Support the Apache2 extras, they must be set globally for all
- # SAPIs to work correctly, especially for external PHP extensions
-
- local one_sapi
- local sapi
- mkdir -p "${WORKDIR}/sapis-build" || die
- for one_sapi in $SAPIS ; do
- use "${one_sapi}" || continue
- php_set_ini_dir "${one_sapi}"
-
- # The BUILD_DIR variable is used to determine where to output
- # the files that autotools creates. This was all originally
- # based on the autotools-utils eclass.
- BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
- cp -a "${S}" "${BUILD_DIR}" || die
- cd "${BUILD_DIR}" || die
-
- local sapi_conf=(
- --with-config-file-path="${PHP_INI_DIR}"
- --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
- )
-
- for sapi in $SAPIS ; do
- case "$sapi" in
- cli|cgi|embed|fpm|phpdbg)
- if [[ "${one_sapi}" == "${sapi}" ]] ; then
- sapi_conf+=( "--enable-${sapi}" )
- if [[ "fpm" == "${sapi}" ]] ; then
- sapi_conf+=(
- $(use_with acl fpm-acl)
- $(use_with systemd fpm-systemd)
- )
- fi
- else
- sapi_conf+=( "--disable-${sapi}" )
- fi
- ;;
-
- apache2)
- if [[ "${one_sapi}" == "${sapi}" ]] ; then
- sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" )
- else
- sapi_conf+=( --without-apxs2 )
- fi
- ;;
- esac
- done
-
- # Construct the $myeconfargs array by concatenating $our_conf
- # (the common args) and $sapi_conf (the SAPI-specific args).
- local myeconfargs=( "${our_conf[@]}" )
- myeconfargs+=( "${sapi_conf[@]}" )
-
- pushd "${BUILD_DIR}" > /dev/null || die
- econf "${myeconfargs[@]}"
- popd > /dev/null || die
- done
-}
-
-src_compile() {
- # snmp seems to run during src_compile, too (bug #324739)
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- local sapi
- for sapi in ${SAPIS} ; do
- if use "${sapi}"; then
- cd "${WORKDIR}/sapis-build/$sapi" || \
- die "Failed to change dir to ${WORKDIR}/sapis-build/$1"
- emake
- fi
- done
-}
-
-src_install() {
- # see bug #324739 for what happens when we don't have that
- addpredict /usr/share/snmp/mibs/.index #nowarn
-
- # grab the first SAPI that got built and install common files from there
- local first_sapi="", sapi=""
- for sapi in $SAPIS ; do
- if use $sapi ; then
- first_sapi=$sapi
- break
- fi
- done
-
- # Makefile forgets to create this before trying to write to it...
- dodir "${PHP_DESTDIR#${EPREFIX}}/bin"
-
- # Install php environment (without any sapis)
- cd "${WORKDIR}/sapis-build/$first_sapi" || die
- emake INSTALL_ROOT="${D}" \
- install-build install-headers install-programs
-
- local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)"
-
- # Create the directory where we'll put version-specific php scripts
- keepdir "/usr/share/php${PHP_MV}"
-
- local file=""
- local sapi_list=""
-
- for sapi in ${SAPIS}; do
- if use "${sapi}" ; then
- einfo "Installing SAPI: ${sapi}"
- cd "${WORKDIR}/sapis-build/${sapi}" || die
-
- if [[ "${sapi}" == "apache2" ]] ; then
- # We're specifically not using emake install-sapi as libtool
- # may cause unnecessary relink failures (see bug #351266)
- insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/"
- newins ".libs/libphp${PHP_MV}$(get_libname)" \
- "libphp${PHP_MV}$(get_libname)"
- keepdir "/usr/$(get_libdir)/apache2/modules"
- else
- # needed each time, php_install_ini would reset it
- local dest="${PHP_DESTDIR#${EPREFIX}}"
- into "${dest}"
- case "$sapi" in
- cli)
- source="sapi/cli/php"
- # Install the "phar" archive utility.
- if use phar ; then
- emake INSTALL_ROOT="${D}" install-pharcmd
- dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}"
- fi
- ;;
- cgi)
- source="sapi/cgi/php-cgi"
- ;;
- fpm)
- source="sapi/fpm/php-fpm"
- ;;
- embed)
- source="libs/libphp${PHP_MV}$(get_libname)"
- ;;
- phpdbg)
- source="sapi/phpdbg/phpdbg"
- ;;
- *)
- die "unhandled sapi in src_install"
- ;;
- esac
-
- if [[ "${source}" == *"$(get_libname)" ]]; then
- dolib.so "${source}"
- else
- dobin "${source}"
- local name="$(basename ${source})"
- dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}"
- fi
- fi
-
- php_install_ini "${sapi}"
-
- # construct correct SAPI string for php-config
- # thanks to ferringb for the bash voodoo
- if [[ "${sapi}" == "apache2" ]]; then
- sapi_list="${sapi_list:+${sapi_list} }apache2handler"
- else
- sapi_list="${sapi_list:+${sapi_list} }${sapi}"
- fi
- fi
- done
-
- # Installing opcache module
- if use opcache ; then
- into "${PHP_DESTDIR#${EPREFIX}}"
- dolib.so "modules/opcache$(get_libname)"
- fi
-
- # Install env.d files
- newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}"
- sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
- sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
-
- # set php-config variable correctly (bug #278439)
- sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
- "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die
-
- if use fpm ; then
- if use systemd; then
- systemd_newunit "${FILESDIR}/php-fpm_at.service" \
- "php-fpm@${SLOT}.service"
- else
- systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \
- "php-fpm@${SLOT}.service"
- fi
- fi
-}
-
-src_test() {
- echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
- PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php"
- if [[ ! -x "${PHP_BIN}" ]] ; then
- ewarn "Test phase requires USE=cli, skipping"
- return
- else
- export TEST_PHP_EXECUTABLE="${PHP_BIN}"
- fi
-
- if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then
- export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi"
- fi
-
- if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then
- export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
- fi
-
- REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \
- "session.save_path=${T}" \
- "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \
- "session.save_path=${T}"
-
- for name in ${EXPECTED_TEST_FAILURES}; do
- mv "${name}.out" "${name}.out.orig" 2>/dev/null || die
- done
-
- local failed="$(find -name '*.out')"
- if [[ ${failed} != "" ]] ; then
- ewarn "The following test cases failed unexpectedly:"
- for name in ${failed}; do
- ewarn " ${name/.out/}"
- done
- else
- einfo "No unexpected test failures, all fine"
- fi
-
- if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then
- local passed=""
- for name in ${EXPECTED_TEST_FAILURES}; do
- [[ -f "${name}.diff" ]] && continue
- passed="${passed} ${name}"
- done
- if [[ ${passed} != "" ]] ; then
- einfo "The following test cases passed unexpectedly:"
- for name in ${passed}; do
- ewarn " ${passed}"
- done
- else
- einfo "None of the known-to-fail tests passed, all fine"
- fi
- fi
-}
-
-pkg_postinst() {
- # Output some general info to the user
- if use apache2 ; then
- elog
- elog "To enable PHP in apache, you will need to add \"-D PHP\" to"
- elog "your apache2 command. OpenRC users can append that string to"
- elog "APACHE2_OPTS in /etc/conf.d/apache2."
- elog
- elog "The apache module configuration file 70_mod_php.conf is"
- elog "provided (and maintained) by eselect-php."
- elog
- fi
-
- # Create the symlinks for php
- local m
- for m in ${SAPIS}; do
- [[ ${m} == 'embed' ]] && continue;
- if use $m ; then
- local ci=$(eselect php show $m)
- if [[ -z $ci ]]; then
- eselect php set $m php${SLOT} || die
- einfo "Switched ${m} to use php:${SLOT}"
- einfo
- elif [[ $ci != "php${SLOT}" ]] ; then
- elog "To switch $m to use php:${SLOT}, run"
- elog " eselect php set $m php${SLOT}"
- elog
- fi
- fi
- done
-
- # Remove dead symlinks for SAPIs that were just disabled. For
- # example, if the user has the cgi SAPI enabled, then he has an
- # eselect-php symlink for it. If he later reinstalls PHP with
- # USE="-cgi", that symlink will break. This call to eselect is
- # supposed to remove that dead link per bug 572436.
- eselect php cleanup || die
-
- if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then
- elog "To build extensions for this version of PHP, you will need to"
- elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable."
- elog
- fi
-
- # Warn about the removal of PHP_INI_VERSION if the user has it set.
- if [[ -n "${PHP_INI_VERSION}" ]]; then
- ewarn 'The PHP_INI_VERSION variable has been phased out. You may'
- ewarn 'remove it from your configuration at your convenience. See'
- ewarn
- ewarn ' https://bugs.gentoo.org/611214'
- ewarn
- ewarn 'for more information.'
- fi
-
- elog "For details on how version slotting works, please see"
- elog "the wiki:"
- elog
- elog " https://wiki.gentoo.org/wiki/PHP"
- elog
-}
-
-pkg_postrm() {
- # This serves two purposes. First, if we have just removed the last
- # installed version of PHP, then this will remove any dead symlinks
- # belonging to eselect-php. Second, if a user upgrades slots from
- # (say) 5.6 to 7.0 and depcleans the old slot, then this will update
- # his existing symlinks to point to the new 7.0 installation. The
- # latter is bug 432962.
- #
- # Note: the eselect-php package may not be installed at this point,
- # so we can't die() if this command fails.
- eselect php cleanup
-}
diff --git a/dev-lang/php/php-7.3.25.ebuild b/dev-lang/php/php-7.3.25.ebuild
index 9c97e02a635a..f1d01ba617fc 100644
--- a/dev-lang/php/php-7.3.25.ebuild
+++ b/dev-lang/php/php-7.3.25.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
@@ -19,7 +19,7 @@ LICENSE="PHP-3.01
unicode? ( BSD-2 LGPL-2.1 )"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
S="${WORKDIR}/${PN}-${MY_PV}"
diff --git a/dev-lang/php/php-7.3.22.ebuild b/dev-lang/php/php-7.3.26.ebuild
index 705d68d153f3..61f3dba48c99 100644
--- a/dev-lang/php/php-7.3.22.ebuild
+++ b/dev-lang/php/php-7.3.26.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
@@ -19,7 +19,7 @@ LICENSE="PHP-3.01
unicode? ( BSD-2 LGPL-2.1 )"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
S="${WORKDIR}/${PN}-${MY_PV}"
@@ -83,7 +83,7 @@ COMMON_DEPEND="
postgres? ( dev-db/postgresql:* )
qdbm? ( dev-db/qdbm )
readline? ( sys-libs/readline:0= )
- recode? ( app-text/recode )
+ recode? ( app-text/recode:0= )
session-mm? ( dev-libs/mm )
simplexml? ( >=dev-libs/libxml2-2.6.8 )
snmp? ( >=net-analyzer/net-snmp-5.2 )
diff --git a/dev-lang/php/php-7.4.11.ebuild b/dev-lang/php/php-7.4.11.ebuild
deleted file mode 100644
index de0cec9f7020..000000000000
--- a/dev-lang/php/php-7.4.11.ebuild
+++ /dev/null
@@ -1,750 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-WANT_AUTOMAKE="none"
-
-inherit flag-o-matic systemd autotools
-
-MY_PV=${PV/_rc/RC}
-DESCRIPTION="The PHP language runtime engine"
-HOMEPAGE="https://www.php.net/"
-SRC_URI="https://www.php.net/distributions/${P}.tar.xz"
-
-LICENSE="PHP-3.01
- BSD
- Zend-2.0
- bcmath? ( LGPL-2.1+ )
- fpm? ( BSD-2 )
- gd? ( gd )
- unicode? ( BSD-2 LGPL-2.1 )"
-
-SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
-
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-# We can build the following SAPIs in the given order
-SAPIS="embed cli cgi fpm apache2 phpdbg"
-
-# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
-IUSE="${IUSE}
- ${SAPIS/cli/+cli}
- threads"
-
-IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk
- coverage +ctype curl debug
- enchant exif ffi +fileinfo +filter firebird
- +flatfile ftp gd gdbm gmp +iconv imap inifile
- intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb
- mhash mssql mysql mysqli nls
- oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
- readline selinux +session session-mm sharedmem
- +simplexml snmp soap sockets sodium spell sqlite ssl
- sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode webp
- +xml xmlreader xmlwriter xmlrpc xpm xslt zip zlib"
-
-# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
-REQUIRED_USE="
- || ( cli cgi fpm apache2 embed phpdbg )
- cli? ( ^^ ( readline libedit ) )
- !cli? ( ?? ( readline libedit ) )
- truetype? ( gd zlib )
- webp? ( gd zlib )
- cjk? ( gd zlib )
- exif? ( gd zlib )
- xpm? ( gd zlib )
- gd? ( zlib )
- simplexml? ( xml )
- soap? ( xml )
- xmlrpc? ( xml iconv )
- xmlreader? ( xml )
- xmlwriter? ( xml )
- xslt? ( xml )
- ldap-sasl? ( ldap )
- qdbm? ( !gdbm )
- session-mm? ( session !threads )
- mysql? ( || ( mysqli pdo ) )
- firebird? ( pdo )
- mssql? ( pdo )
-"
-
-RESTRICT="!test? ( test )"
-
-# The supported (that is, autodetected) versions of BDB are listed in
-# the ./configure script. Other versions *work*, but we need to stick to
-# the ones that can be detected to avoid a repeat of bug #564824.
-COMMON_DEPEND="
- >=app-eselect/eselect-php-0.9.1[apache2?,fpm?]
- >=dev-libs/libpcre2-10.30[unicode]
- fpm? ( acl? ( sys-apps/acl ) )
- apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
- argon2? ( app-crypt/argon2:= )
- berkdb? ( || ( sys-libs/db:5.3
- sys-libs/db:5.1
- sys-libs/db:4.8
- sys-libs/db:4.7
- sys-libs/db:4.6
- sys-libs/db:4.5 ) )
- bzip2? ( app-arch/bzip2:0= )
- cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
- coverage? ( dev-util/lcov )
- curl? ( >=net-misc/curl-7.10.5 )
- enchant? ( <app-text/enchant-2.0:0 )
- ffi? ( >=dev-libs/libffi-3.0.11 )
- firebird? ( dev-db/firebird )
- gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= )
- gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
- gmp? ( dev-libs/gmp:0= )
- iconv? ( virtual/libiconv )
- imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] )
- intl? ( dev-libs/icu:= )
- kerberos? ( virtual/krb5 )
- ldap? ( >=net-nds/openldap-1.2.11 )
- ldap-sasl? ( dev-libs/cyrus-sasl )
- libedit? ( dev-libs/libedit )
- lmdb? ( dev-db/lmdb:= )
- mssql? ( dev-db/freetds[mssql] )
- nls? ( sys-devel/gettext )
- oci8-instant-client? ( dev-db/oracle-instantclient-basic )
- odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) )
- postgres? ( dev-db/postgresql:* )
- qdbm? ( dev-db/qdbm )
- readline? ( sys-libs/readline:0= )
- session-mm? ( dev-libs/mm )
- snmp? ( >=net-analyzer/net-snmp-5.2 )
- sodium? ( dev-libs/libsodium:= )
- spell? ( >=app-text/aspell-0.50 )
- sqlite? ( >=dev-db/sqlite-3.7.6.3 )
- ssl? (
- !libressl? ( >=dev-libs/openssl-1.0.1:0= )
- libressl? ( dev-libs/libressl:0= )
- )
- tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) )
- tokyocabinet? ( dev-db/tokyocabinet )
- truetype? ( =media-libs/freetype-2* )
- unicode? ( dev-libs/oniguruma:= )
- webp? ( media-libs/libwebp:0= )
- xml? ( >=dev-libs/libxml2-2.7.6 )
- xpm? ( x11-libs/libXpm )
- xslt? ( dev-libs/libxslt )
- zip? ( >=dev-libs/libzip-1.2.0:= )
- zlib? ( >=sys-libs/zlib-1.2.0.4:0= )
-"
-
-RDEPEND="${COMMON_DEPEND}
- virtual/mta
- fpm? (
- selinux? ( sec-policy/selinux-phpfpm )
- systemd? ( sys-apps/systemd ) )"
-
-# Bison isn't actually needed when building from a release tarball
-# However, the configure script will warn if it's absent or if you
-# have an incompatible version installed. See bug 593278.
-DEPEND="${COMMON_DEPEND}
- app-arch/xz-utils
- >=sys-devel/bison-3.0.1"
-
-BDEPEND="virtual/pkgconfig"
-
-PHP_MV="$(ver_cut 1)"
-
-PATCHES=( "${FILESDIR}/php-iodbc-header-location.patch" )
-
-php_install_ini() {
- local phpsapi="${1}"
-
- # work out where we are installing the ini file
- php_set_ini_dir "${phpsapi}"
-
- # Always install the production INI file, bug 611214.
- local phpinisrc="php.ini-production-${phpsapi}"
- cp php.ini-production "${phpinisrc}" || die
-
- # default to /tmp for save_path, bug #282768
- sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die
-
- # Set the extension dir
- sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \
- -i "${phpinisrc}" || die
-
- # Set the include path to point to where we want to find PEAR packages
- sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die
-
- insinto "${PHP_INI_DIR#${EPREFIX}}"
- newins "${phpinisrc}" php.ini
-
- elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}"
- elog
-
- dodir "${PHP_EXT_INI_DIR#${EPREFIX}}"
- dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}"
-
- if use opcache; then
- elog "Adding opcache to $PHP_EXT_INI_DIR"
- echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
- "${D}/${PHP_EXT_INI_DIR}"/opcache.ini
- dosym "../ext/opcache.ini" \
- "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini"
- fi
-
- # SAPI-specific handling
- if [[ "${sapi}" == "fpm" ]] ; then
- einfo "Installing FPM config files php-fpm.conf and www.conf"
- insinto "${PHP_INI_DIR#${EPREFIX}}"
- doins sapi/fpm/php-fpm.conf
- insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d"
- doins sapi/fpm/www.conf
- fi
-
- dodoc php.ini-{development,production}
-}
-
-php_set_ini_dir() {
- PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}"
- PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext"
- PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active"
-}
-
-src_prepare() {
- default
-
- # In php-7.x, the FPM pool configuration files have been split off
- # of the main config. By default the pool config files go in
- # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the
- # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later
- # we'll install the pool configuration file "www.conf" there.
- php_set_ini_dir fpm
- sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \
- sapi/fpm/php-fpm.conf.in \
- || die 'failed to move the include directory in php-fpm.conf'
-
- # Emulate buildconf to support cross-compilation
- rm -fr aclocal.m4 autom4te.cache config.cache \
- configure main/php_config.h.in || die
- eautoconf --force
- eautoheader
-}
-
-src_configure() {
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
-
- # The php-fpm config file wants localstatedir to be ${EPREFIX}/var
- # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002.
- local our_conf=(
- --prefix="${PHP_DESTDIR}"
- --mandir="${PHP_DESTDIR}/man"
- --infodir="${PHP_DESTDIR}/info"
- --libdir="${PHP_DESTDIR}/lib"
- --with-libdir="$(get_libdir)"
- --localstatedir="${EPREFIX}/var"
- --without-pear
- $(use_enable threads maintainer-zts)
- )
-
- our_conf+=(
- $(use_with argon2 password-argon2 "${EPREFIX}/usr")
- $(use_enable bcmath)
- $(use_with bzip2 bz2 "${EPREFIX}/usr")
- $(use_enable calendar)
- $(use_enable coverage gcov)
- $(use_enable ctype)
- $(use_with curl)
- $(use_enable xml dom)
- $(use_with enchant)
- $(use_enable exif)
- $(use_with ffi)
- $(use_enable fileinfo)
- $(use_enable filter)
- $(use_enable ftp)
- $(use_with nls gettext "${EPREFIX}/usr")
- $(use_with gmp gmp "${EPREFIX}/usr")
- $(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)
- $(use_enable ipv6)
- $(use_enable json)
- $(use_with kerberos)
- $(use_with xml libxml)
- $(use_enable unicode mbstring)
- $(use_with ssl openssl)
- $(use_enable pcntl)
- $(use_enable phar)
- $(use_enable pdo)
- $(use_enable opcache)
- $(use_with postgres pgsql "${EPREFIX}/usr")
- $(use_enable posix)
- $(use_with spell pspell "${EPREFIX}/usr")
- $(use_enable simplexml)
- $(use_enable sharedmem shmop)
- $(use_with snmp snmp "${EPREFIX}/usr")
- $(use_enable soap)
- $(use_enable sockets)
- $(use_with sodium)
- $(use_with sqlite sqlite3)
- $(use_enable sysvipc sysvmsg)
- $(use_enable sysvipc sysvsem)
- $(use_enable sysvipc sysvshm)
- $(use_with tidy tidy "${EPREFIX}/usr")
- $(use_enable tokenizer)
- $(use_enable xml)
- $(use_enable xmlreader)
- $(use_enable xmlwriter)
- $(use_with xmlrpc)
- $(use_with xslt xsl)
- $(use_with zip)
- $(use_with zlib zlib "${EPREFIX}/usr")
- $(use_enable debug)
- )
-
- # DBA support
- if use cdb || use berkdb || use flatfile || use gdbm || use inifile \
- || use qdbm || use lmdb || use tokyocabinet ; then
- our_conf+=( "--enable-dba" )
- fi
-
- # DBA drivers support
- our_conf+=(
- $(use_with cdb)
- $(use_with berkdb db4 "${EPREFIX}/usr")
- $(use_enable flatfile)
- $(use_with gdbm gdbm "${EPREFIX}/usr")
- $(use_enable inifile)
- $(use_with qdbm qdbm "${EPREFIX}/usr")
- $(use_with tokyocabinet tcadb "${EPREFIX}/usr")
- $(use_with lmdb lmdb "${EPREFIX}/usr")
- )
-
- # Support for the GD graphics library
- our_conf+=(
- $(use_with truetype freetype)
- $(use_enable cjk gd-jis-conv)
- $(use_with gd jpeg)
- $(use_with xpm)
- $(use_with webp)
- )
- # enable gd last, so configure can pick up the previous settings
- our_conf+=( $(use_enable gd) )
-
- # IMAP support
- if use imap ; then
- our_conf+=(
- $(use_with imap imap "${EPREFIX}/usr")
- $(use_with ssl imap-ssl "${EPREFIX}/usr")
- )
- fi
-
- # LDAP support
- if use ldap ; then
- our_conf+=(
- $(use_with ldap ldap "${EPREFIX}/usr")
- $(use_with ldap-sasl)
- )
- 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
- if use odbc && use iodbc ; then
- our_conf+=(
- --without-unixODBC
- --with-iodbc
- $(use_with pdo pdo-odbc "iODBC,${EPREFIX}/usr")
- )
- elif use odbc ; then
- our_conf+=(
- --with-unixODBC="${EPREFIX}/usr"
- --without-iodbc
- $(use_with pdo pdo-odbc "unixODBC,${EPREFIX}/usr")
- )
- else
- our_conf+=(
- --without-unixODBC
- --without-iodbc
- --without-pdo-odbc
- )
- fi
-
- # 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)
- $(use_with firebird pdo-firebird "${EPREFIX}/usr")
- $(use_with oci8-instant-client pdo-oci)
- )
- fi
-
- # readline/libedit support
- our_conf+=(
- $(use_with readline readline "${EPREFIX}/usr")
- $(use_with libedit)
- )
-
- # Session support
- if use session ; then
- our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") )
- else
- our_conf+=( $(use_enable 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-external-pcre affects ext/pcre
- # Many arches don't support pcre-jit
- our_conf+=(
- --with-external-pcre
- --without-pcre-jit
- )
-
- # Catch CFLAGS problems
- # Fixes bug #14067.
- # Changed order to run it in reverse for bug #32022 and #12021.
- replace-cpu-flags "k6*" "i586"
-
- # Cache the ./configure test results between SAPIs.
- our_conf+=( --cache-file="${T}/config.cache" )
-
- # Support user-passed configuration parameters
- our_conf+=( ${EXTRA_ECONF:-} )
-
- # Support the Apache2 extras, they must be set globally for all
- # SAPIs to work correctly, especially for external PHP extensions
-
- local one_sapi
- local sapi
- mkdir -p "${WORKDIR}/sapis-build" || die
- for one_sapi in $SAPIS ; do
- use "${one_sapi}" || continue
- php_set_ini_dir "${one_sapi}"
-
- # The BUILD_DIR variable is used to determine where to output
- # the files that autotools creates. This was all originally
- # based on the autotools-utils eclass.
- BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
- cp -a "${S}" "${BUILD_DIR}" || die
- cd "${BUILD_DIR}" || die
-
- local sapi_conf=(
- --with-config-file-path="${PHP_INI_DIR}"
- --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
- )
-
- for sapi in $SAPIS ; do
- case "$sapi" in
- cli|cgi|embed|fpm|phpdbg)
- if [[ "${one_sapi}" == "${sapi}" ]] ; then
- sapi_conf+=( "--enable-${sapi}" )
- if [[ "fpm" == "${sapi}" ]] ; then
- sapi_conf+=(
- $(use_with acl fpm-acl)
- $(use_with systemd fpm-systemd)
- )
- fi
- else
- sapi_conf+=( "--disable-${sapi}" )
- fi
- ;;
-
- apache2)
- if [[ "${one_sapi}" == "${sapi}" ]] ; then
- sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" )
- else
- sapi_conf+=( --without-apxs2 )
- fi
- ;;
- esac
- done
-
- # Construct the $myeconfargs array by concatenating $our_conf
- # (the common args) and $sapi_conf (the SAPI-specific args).
- local myeconfargs=( "${our_conf[@]}" )
- myeconfargs+=( "${sapi_conf[@]}" )
-
- pushd "${BUILD_DIR}" > /dev/null || die
- econf "${myeconfargs[@]}"
- popd > /dev/null || die
- done
-}
-
-src_compile() {
- # snmp seems to run during src_compile, too (bug #324739)
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- local sapi
- for sapi in ${SAPIS} ; do
- if use "${sapi}"; then
- cd "${WORKDIR}/sapis-build/$sapi" || \
- die "Failed to change dir to ${WORKDIR}/sapis-build/$1"
- emake
- fi
- done
-}
-
-src_install() {
- # see bug #324739 for what happens when we don't have that
- addpredict /usr/share/snmp/mibs/.index #nowarn
-
- # grab the first SAPI that got built and install common files from there
- local first_sapi="", sapi=""
- for sapi in $SAPIS ; do
- if use $sapi ; then
- first_sapi=$sapi
- break
- fi
- done
-
- # Makefile forgets to create this before trying to write to it...
- dodir "${PHP_DESTDIR#${EPREFIX}}/bin"
-
- # Install php environment (without any sapis)
- cd "${WORKDIR}/sapis-build/$first_sapi" || die
- emake INSTALL_ROOT="${D}" \
- install-build install-headers install-programs
-
- local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)"
-
- # Create the directory where we'll put version-specific php scripts
- keepdir "/usr/share/php${PHP_MV}"
-
- local file=""
- local sapi_list=""
-
- for sapi in ${SAPIS}; do
- if use "${sapi}" ; then
- einfo "Installing SAPI: ${sapi}"
- cd "${WORKDIR}/sapis-build/${sapi}" || die
-
- if [[ "${sapi}" == "apache2" ]] ; then
- # We're specifically not using emake install-sapi as libtool
- # may cause unnecessary relink failures (see bug #351266)
- insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/"
- newins ".libs/libphp${PHP_MV}$(get_libname)" \
- "libphp${PHP_MV}$(get_libname)"
- keepdir "/usr/$(get_libdir)/apache2/modules"
- else
- # needed each time, php_install_ini would reset it
- local dest="${PHP_DESTDIR#${EPREFIX}}"
- into "${dest}"
- case "$sapi" in
- cli)
- source="sapi/cli/php"
- # Install the "phar" archive utility.
- if use phar ; then
- emake INSTALL_ROOT="${D}" install-pharcmd
- dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}"
- fi
- ;;
- cgi)
- source="sapi/cgi/php-cgi"
- ;;
- fpm)
- source="sapi/fpm/php-fpm"
- ;;
- embed)
- source="libs/libphp${PHP_MV}$(get_libname)"
- ;;
- phpdbg)
- source="sapi/phpdbg/phpdbg"
- ;;
- *)
- die "unhandled sapi in src_install"
- ;;
- esac
-
- if [[ "${source}" == *"$(get_libname)" ]]; then
- dolib.so "${source}"
- else
- dobin "${source}"
- local name="$(basename ${source})"
- dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}"
- fi
- fi
-
- php_install_ini "${sapi}"
-
- # construct correct SAPI string for php-config
- # thanks to ferringb for the bash voodoo
- if [[ "${sapi}" == "apache2" ]]; then
- sapi_list="${sapi_list:+${sapi_list} }apache2handler"
- else
- sapi_list="${sapi_list:+${sapi_list} }${sapi}"
- fi
- fi
- done
-
- # Installing opcache module
- if use opcache ; then
- into "${PHP_DESTDIR#${EPREFIX}}"
- dolib.so "modules/opcache$(get_libname)"
- fi
-
- # Install env.d files
- newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}"
- sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
- sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
-
- # set php-config variable correctly (bug #278439)
- sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
- "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die
-
- if use fpm ; then
- if use systemd; then
- systemd_newunit "${FILESDIR}/php-fpm_at.service" \
- "php-fpm@${SLOT}.service"
- else
- systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \
- "php-fpm@${SLOT}.service"
- fi
- fi
-}
-
-src_test() {
- echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
- PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php"
- if [[ ! -x "${PHP_BIN}" ]] ; then
- ewarn "Test phase requires USE=cli, skipping"
- return
- else
- export TEST_PHP_EXECUTABLE="${PHP_BIN}"
- fi
-
- if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then
- export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi"
- fi
-
- if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then
- export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
- fi
-
- REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \
- "session.save_path=${T}" \
- "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \
- "session.save_path=${T}"
-
- for name in ${EXPECTED_TEST_FAILURES}; do
- mv "${name}.out" "${name}.out.orig" 2>/dev/null || die
- done
-
- local failed="$(find -name '*.out')"
- if [[ ${failed} != "" ]] ; then
- ewarn "The following test cases failed unexpectedly:"
- for name in ${failed}; do
- ewarn " ${name/.out/}"
- done
- else
- einfo "No unexpected test failures, all fine"
- fi
-
- if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then
- local passed=""
- for name in ${EXPECTED_TEST_FAILURES}; do
- [[ -f "${name}.diff" ]] && continue
- passed="${passed} ${name}"
- done
- if [[ ${passed} != "" ]] ; then
- einfo "The following test cases passed unexpectedly:"
- for name in ${passed}; do
- ewarn " ${passed}"
- done
- else
- einfo "None of the known-to-fail tests passed, all fine"
- fi
- fi
-}
-
-pkg_postinst() {
- # Output some general info to the user
- if use apache2 ; then
- elog
- elog "To enable PHP in apache, you will need to add \"-D PHP\" to"
- elog "your apache2 command. OpenRC users can append that string to"
- elog "APACHE2_OPTS in /etc/conf.d/apache2."
- elog
- elog "The apache module configuration file 70_mod_php.conf is"
- elog "provided (and maintained) by eselect-php."
- elog
- fi
-
- # Create the symlinks for php
- local m
- for m in ${SAPIS}; do
- [[ ${m} == 'embed' ]] && continue;
- if use $m ; then
- local ci=$(eselect php show $m)
- if [[ -z $ci ]]; then
- eselect php set $m php${SLOT} || die
- einfo "Switched ${m} to use php:${SLOT}"
- einfo
- elif [[ $ci != "php${SLOT}" ]] ; then
- elog "To switch $m to use php:${SLOT}, run"
- elog " eselect php set $m php${SLOT}"
- elog
- fi
- fi
- done
-
- # Remove dead symlinks for SAPIs that were just disabled. For
- # example, if the user has the cgi SAPI enabled, then he has an
- # eselect-php symlink for it. If he later reinstalls PHP with
- # USE="-cgi", that symlink will break. This call to eselect is
- # supposed to remove that dead link per bug 572436.
- eselect php cleanup || die
-
- if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then
- elog "To build extensions for this version of PHP, you will need to"
- elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable."
- elog
- fi
-
- # Warn about the removal of PHP_INI_VERSION if the user has it set.
- if [[ -n "${PHP_INI_VERSION}" ]]; then
- ewarn 'The PHP_INI_VERSION variable has been phased out. You may'
- ewarn 'remove it from your configuration at your convenience. See'
- ewarn
- ewarn ' https://bugs.gentoo.org/611214'
- ewarn
- ewarn 'for more information.'
- fi
-
- elog "For details on how version slotting works, please see"
- elog "the wiki:"
- elog
- elog " https://wiki.gentoo.org/wiki/PHP"
- elog
-}
-
-pkg_postrm() {
- # This serves two purposes. First, if we have just removed the last
- # installed version of PHP, then this will remove any dead symlinks
- # belonging to eselect-php. Second, if a user upgrades slots from
- # (say) 5.6 to 7.0 and depcleans the old slot, then this will update
- # his existing symlinks to point to the new 7.0 installation. The
- # latter is bug 432962.
- #
- # Note: the eselect-php package may not be installed at this point,
- # so we can't die() if this command fails.
- eselect php cleanup
-}
diff --git a/dev-lang/php/php-7.4.13.ebuild b/dev-lang/php/php-7.4.13.ebuild
index 0823cddd0b4f..611b04a1f2cd 100644
--- a/dev-lang/php/php-7.4.13.ebuild
+++ b/dev-lang/php/php-7.4.13.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
@@ -21,7 +21,7 @@ LICENSE="PHP-3.01
unicode? ( BSD-2 LGPL-2.1 )"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
S="${WORKDIR}/${PN}-${MY_PV}"
diff --git a/dev-lang/php/php-7.4.12.ebuild b/dev-lang/php/php-7.4.14.ebuild
index 3ac0d8c9ace3..1bf3fa44bce0 100644
--- a/dev-lang/php/php-7.4.12.ebuild
+++ b/dev-lang/php/php-7.4.14.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
@@ -21,7 +21,7 @@ LICENSE="PHP-3.01
unicode? ( BSD-2 LGPL-2.1 )"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
S="${WORKDIR}/${PN}-${MY_PV}"
@@ -150,7 +150,9 @@ BDEPEND="virtual/pkgconfig"
PHP_MV="$(ver_cut 1)"
-PATCHES=( "${FILESDIR}/php-iodbc-header-location.patch" )
+PATCHES=(
+ "${FILESDIR}"/php-iodbc-header-location.patch
+)
php_install_ini() {
local phpsapi="${1}"
diff --git a/dev-lang/php/php-7.4.9.ebuild b/dev-lang/php/php-7.4.9.ebuild
deleted file mode 100644
index de0cec9f7020..000000000000
--- a/dev-lang/php/php-7.4.9.ebuild
+++ /dev/null
@@ -1,750 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-WANT_AUTOMAKE="none"
-
-inherit flag-o-matic systemd autotools
-
-MY_PV=${PV/_rc/RC}
-DESCRIPTION="The PHP language runtime engine"
-HOMEPAGE="https://www.php.net/"
-SRC_URI="https://www.php.net/distributions/${P}.tar.xz"
-
-LICENSE="PHP-3.01
- BSD
- Zend-2.0
- bcmath? ( LGPL-2.1+ )
- fpm? ( BSD-2 )
- gd? ( gd )
- unicode? ( BSD-2 LGPL-2.1 )"
-
-SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
-
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-# We can build the following SAPIs in the given order
-SAPIS="embed cli cgi fpm apache2 phpdbg"
-
-# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
-IUSE="${IUSE}
- ${SAPIS/cli/+cli}
- threads"
-
-IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk
- coverage +ctype curl debug
- enchant exif ffi +fileinfo +filter firebird
- +flatfile ftp gd gdbm gmp +iconv imap inifile
- intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb
- mhash mssql mysql mysqli nls
- oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
- readline selinux +session session-mm sharedmem
- +simplexml snmp soap sockets sodium spell sqlite ssl
- sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode webp
- +xml xmlreader xmlwriter xmlrpc xpm xslt zip zlib"
-
-# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
-REQUIRED_USE="
- || ( cli cgi fpm apache2 embed phpdbg )
- cli? ( ^^ ( readline libedit ) )
- !cli? ( ?? ( readline libedit ) )
- truetype? ( gd zlib )
- webp? ( gd zlib )
- cjk? ( gd zlib )
- exif? ( gd zlib )
- xpm? ( gd zlib )
- gd? ( zlib )
- simplexml? ( xml )
- soap? ( xml )
- xmlrpc? ( xml iconv )
- xmlreader? ( xml )
- xmlwriter? ( xml )
- xslt? ( xml )
- ldap-sasl? ( ldap )
- qdbm? ( !gdbm )
- session-mm? ( session !threads )
- mysql? ( || ( mysqli pdo ) )
- firebird? ( pdo )
- mssql? ( pdo )
-"
-
-RESTRICT="!test? ( test )"
-
-# The supported (that is, autodetected) versions of BDB are listed in
-# the ./configure script. Other versions *work*, but we need to stick to
-# the ones that can be detected to avoid a repeat of bug #564824.
-COMMON_DEPEND="
- >=app-eselect/eselect-php-0.9.1[apache2?,fpm?]
- >=dev-libs/libpcre2-10.30[unicode]
- fpm? ( acl? ( sys-apps/acl ) )
- apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
- argon2? ( app-crypt/argon2:= )
- berkdb? ( || ( sys-libs/db:5.3
- sys-libs/db:5.1
- sys-libs/db:4.8
- sys-libs/db:4.7
- sys-libs/db:4.6
- sys-libs/db:4.5 ) )
- bzip2? ( app-arch/bzip2:0= )
- cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
- coverage? ( dev-util/lcov )
- curl? ( >=net-misc/curl-7.10.5 )
- enchant? ( <app-text/enchant-2.0:0 )
- ffi? ( >=dev-libs/libffi-3.0.11 )
- firebird? ( dev-db/firebird )
- gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= )
- gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
- gmp? ( dev-libs/gmp:0= )
- iconv? ( virtual/libiconv )
- imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] )
- intl? ( dev-libs/icu:= )
- kerberos? ( virtual/krb5 )
- ldap? ( >=net-nds/openldap-1.2.11 )
- ldap-sasl? ( dev-libs/cyrus-sasl )
- libedit? ( dev-libs/libedit )
- lmdb? ( dev-db/lmdb:= )
- mssql? ( dev-db/freetds[mssql] )
- nls? ( sys-devel/gettext )
- oci8-instant-client? ( dev-db/oracle-instantclient-basic )
- odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) )
- postgres? ( dev-db/postgresql:* )
- qdbm? ( dev-db/qdbm )
- readline? ( sys-libs/readline:0= )
- session-mm? ( dev-libs/mm )
- snmp? ( >=net-analyzer/net-snmp-5.2 )
- sodium? ( dev-libs/libsodium:= )
- spell? ( >=app-text/aspell-0.50 )
- sqlite? ( >=dev-db/sqlite-3.7.6.3 )
- ssl? (
- !libressl? ( >=dev-libs/openssl-1.0.1:0= )
- libressl? ( dev-libs/libressl:0= )
- )
- tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) )
- tokyocabinet? ( dev-db/tokyocabinet )
- truetype? ( =media-libs/freetype-2* )
- unicode? ( dev-libs/oniguruma:= )
- webp? ( media-libs/libwebp:0= )
- xml? ( >=dev-libs/libxml2-2.7.6 )
- xpm? ( x11-libs/libXpm )
- xslt? ( dev-libs/libxslt )
- zip? ( >=dev-libs/libzip-1.2.0:= )
- zlib? ( >=sys-libs/zlib-1.2.0.4:0= )
-"
-
-RDEPEND="${COMMON_DEPEND}
- virtual/mta
- fpm? (
- selinux? ( sec-policy/selinux-phpfpm )
- systemd? ( sys-apps/systemd ) )"
-
-# Bison isn't actually needed when building from a release tarball
-# However, the configure script will warn if it's absent or if you
-# have an incompatible version installed. See bug 593278.
-DEPEND="${COMMON_DEPEND}
- app-arch/xz-utils
- >=sys-devel/bison-3.0.1"
-
-BDEPEND="virtual/pkgconfig"
-
-PHP_MV="$(ver_cut 1)"
-
-PATCHES=( "${FILESDIR}/php-iodbc-header-location.patch" )
-
-php_install_ini() {
- local phpsapi="${1}"
-
- # work out where we are installing the ini file
- php_set_ini_dir "${phpsapi}"
-
- # Always install the production INI file, bug 611214.
- local phpinisrc="php.ini-production-${phpsapi}"
- cp php.ini-production "${phpinisrc}" || die
-
- # default to /tmp for save_path, bug #282768
- sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die
-
- # Set the extension dir
- sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \
- -i "${phpinisrc}" || die
-
- # Set the include path to point to where we want to find PEAR packages
- sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die
-
- insinto "${PHP_INI_DIR#${EPREFIX}}"
- newins "${phpinisrc}" php.ini
-
- elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}"
- elog
-
- dodir "${PHP_EXT_INI_DIR#${EPREFIX}}"
- dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}"
-
- if use opcache; then
- elog "Adding opcache to $PHP_EXT_INI_DIR"
- echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
- "${D}/${PHP_EXT_INI_DIR}"/opcache.ini
- dosym "../ext/opcache.ini" \
- "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini"
- fi
-
- # SAPI-specific handling
- if [[ "${sapi}" == "fpm" ]] ; then
- einfo "Installing FPM config files php-fpm.conf and www.conf"
- insinto "${PHP_INI_DIR#${EPREFIX}}"
- doins sapi/fpm/php-fpm.conf
- insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d"
- doins sapi/fpm/www.conf
- fi
-
- dodoc php.ini-{development,production}
-}
-
-php_set_ini_dir() {
- PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}"
- PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext"
- PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active"
-}
-
-src_prepare() {
- default
-
- # In php-7.x, the FPM pool configuration files have been split off
- # of the main config. By default the pool config files go in
- # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the
- # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later
- # we'll install the pool configuration file "www.conf" there.
- php_set_ini_dir fpm
- sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \
- sapi/fpm/php-fpm.conf.in \
- || die 'failed to move the include directory in php-fpm.conf'
-
- # Emulate buildconf to support cross-compilation
- rm -fr aclocal.m4 autom4te.cache config.cache \
- configure main/php_config.h.in || die
- eautoconf --force
- eautoheader
-}
-
-src_configure() {
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
-
- # The php-fpm config file wants localstatedir to be ${EPREFIX}/var
- # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002.
- local our_conf=(
- --prefix="${PHP_DESTDIR}"
- --mandir="${PHP_DESTDIR}/man"
- --infodir="${PHP_DESTDIR}/info"
- --libdir="${PHP_DESTDIR}/lib"
- --with-libdir="$(get_libdir)"
- --localstatedir="${EPREFIX}/var"
- --without-pear
- $(use_enable threads maintainer-zts)
- )
-
- our_conf+=(
- $(use_with argon2 password-argon2 "${EPREFIX}/usr")
- $(use_enable bcmath)
- $(use_with bzip2 bz2 "${EPREFIX}/usr")
- $(use_enable calendar)
- $(use_enable coverage gcov)
- $(use_enable ctype)
- $(use_with curl)
- $(use_enable xml dom)
- $(use_with enchant)
- $(use_enable exif)
- $(use_with ffi)
- $(use_enable fileinfo)
- $(use_enable filter)
- $(use_enable ftp)
- $(use_with nls gettext "${EPREFIX}/usr")
- $(use_with gmp gmp "${EPREFIX}/usr")
- $(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)
- $(use_enable ipv6)
- $(use_enable json)
- $(use_with kerberos)
- $(use_with xml libxml)
- $(use_enable unicode mbstring)
- $(use_with ssl openssl)
- $(use_enable pcntl)
- $(use_enable phar)
- $(use_enable pdo)
- $(use_enable opcache)
- $(use_with postgres pgsql "${EPREFIX}/usr")
- $(use_enable posix)
- $(use_with spell pspell "${EPREFIX}/usr")
- $(use_enable simplexml)
- $(use_enable sharedmem shmop)
- $(use_with snmp snmp "${EPREFIX}/usr")
- $(use_enable soap)
- $(use_enable sockets)
- $(use_with sodium)
- $(use_with sqlite sqlite3)
- $(use_enable sysvipc sysvmsg)
- $(use_enable sysvipc sysvsem)
- $(use_enable sysvipc sysvshm)
- $(use_with tidy tidy "${EPREFIX}/usr")
- $(use_enable tokenizer)
- $(use_enable xml)
- $(use_enable xmlreader)
- $(use_enable xmlwriter)
- $(use_with xmlrpc)
- $(use_with xslt xsl)
- $(use_with zip)
- $(use_with zlib zlib "${EPREFIX}/usr")
- $(use_enable debug)
- )
-
- # DBA support
- if use cdb || use berkdb || use flatfile || use gdbm || use inifile \
- || use qdbm || use lmdb || use tokyocabinet ; then
- our_conf+=( "--enable-dba" )
- fi
-
- # DBA drivers support
- our_conf+=(
- $(use_with cdb)
- $(use_with berkdb db4 "${EPREFIX}/usr")
- $(use_enable flatfile)
- $(use_with gdbm gdbm "${EPREFIX}/usr")
- $(use_enable inifile)
- $(use_with qdbm qdbm "${EPREFIX}/usr")
- $(use_with tokyocabinet tcadb "${EPREFIX}/usr")
- $(use_with lmdb lmdb "${EPREFIX}/usr")
- )
-
- # Support for the GD graphics library
- our_conf+=(
- $(use_with truetype freetype)
- $(use_enable cjk gd-jis-conv)
- $(use_with gd jpeg)
- $(use_with xpm)
- $(use_with webp)
- )
- # enable gd last, so configure can pick up the previous settings
- our_conf+=( $(use_enable gd) )
-
- # IMAP support
- if use imap ; then
- our_conf+=(
- $(use_with imap imap "${EPREFIX}/usr")
- $(use_with ssl imap-ssl "${EPREFIX}/usr")
- )
- fi
-
- # LDAP support
- if use ldap ; then
- our_conf+=(
- $(use_with ldap ldap "${EPREFIX}/usr")
- $(use_with ldap-sasl)
- )
- 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
- if use odbc && use iodbc ; then
- our_conf+=(
- --without-unixODBC
- --with-iodbc
- $(use_with pdo pdo-odbc "iODBC,${EPREFIX}/usr")
- )
- elif use odbc ; then
- our_conf+=(
- --with-unixODBC="${EPREFIX}/usr"
- --without-iodbc
- $(use_with pdo pdo-odbc "unixODBC,${EPREFIX}/usr")
- )
- else
- our_conf+=(
- --without-unixODBC
- --without-iodbc
- --without-pdo-odbc
- )
- fi
-
- # 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)
- $(use_with firebird pdo-firebird "${EPREFIX}/usr")
- $(use_with oci8-instant-client pdo-oci)
- )
- fi
-
- # readline/libedit support
- our_conf+=(
- $(use_with readline readline "${EPREFIX}/usr")
- $(use_with libedit)
- )
-
- # Session support
- if use session ; then
- our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") )
- else
- our_conf+=( $(use_enable 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-external-pcre affects ext/pcre
- # Many arches don't support pcre-jit
- our_conf+=(
- --with-external-pcre
- --without-pcre-jit
- )
-
- # Catch CFLAGS problems
- # Fixes bug #14067.
- # Changed order to run it in reverse for bug #32022 and #12021.
- replace-cpu-flags "k6*" "i586"
-
- # Cache the ./configure test results between SAPIs.
- our_conf+=( --cache-file="${T}/config.cache" )
-
- # Support user-passed configuration parameters
- our_conf+=( ${EXTRA_ECONF:-} )
-
- # Support the Apache2 extras, they must be set globally for all
- # SAPIs to work correctly, especially for external PHP extensions
-
- local one_sapi
- local sapi
- mkdir -p "${WORKDIR}/sapis-build" || die
- for one_sapi in $SAPIS ; do
- use "${one_sapi}" || continue
- php_set_ini_dir "${one_sapi}"
-
- # The BUILD_DIR variable is used to determine where to output
- # the files that autotools creates. This was all originally
- # based on the autotools-utils eclass.
- BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
- cp -a "${S}" "${BUILD_DIR}" || die
- cd "${BUILD_DIR}" || die
-
- local sapi_conf=(
- --with-config-file-path="${PHP_INI_DIR}"
- --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
- )
-
- for sapi in $SAPIS ; do
- case "$sapi" in
- cli|cgi|embed|fpm|phpdbg)
- if [[ "${one_sapi}" == "${sapi}" ]] ; then
- sapi_conf+=( "--enable-${sapi}" )
- if [[ "fpm" == "${sapi}" ]] ; then
- sapi_conf+=(
- $(use_with acl fpm-acl)
- $(use_with systemd fpm-systemd)
- )
- fi
- else
- sapi_conf+=( "--disable-${sapi}" )
- fi
- ;;
-
- apache2)
- if [[ "${one_sapi}" == "${sapi}" ]] ; then
- sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" )
- else
- sapi_conf+=( --without-apxs2 )
- fi
- ;;
- esac
- done
-
- # Construct the $myeconfargs array by concatenating $our_conf
- # (the common args) and $sapi_conf (the SAPI-specific args).
- local myeconfargs=( "${our_conf[@]}" )
- myeconfargs+=( "${sapi_conf[@]}" )
-
- pushd "${BUILD_DIR}" > /dev/null || die
- econf "${myeconfargs[@]}"
- popd > /dev/null || die
- done
-}
-
-src_compile() {
- # snmp seems to run during src_compile, too (bug #324739)
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- local sapi
- for sapi in ${SAPIS} ; do
- if use "${sapi}"; then
- cd "${WORKDIR}/sapis-build/$sapi" || \
- die "Failed to change dir to ${WORKDIR}/sapis-build/$1"
- emake
- fi
- done
-}
-
-src_install() {
- # see bug #324739 for what happens when we don't have that
- addpredict /usr/share/snmp/mibs/.index #nowarn
-
- # grab the first SAPI that got built and install common files from there
- local first_sapi="", sapi=""
- for sapi in $SAPIS ; do
- if use $sapi ; then
- first_sapi=$sapi
- break
- fi
- done
-
- # Makefile forgets to create this before trying to write to it...
- dodir "${PHP_DESTDIR#${EPREFIX}}/bin"
-
- # Install php environment (without any sapis)
- cd "${WORKDIR}/sapis-build/$first_sapi" || die
- emake INSTALL_ROOT="${D}" \
- install-build install-headers install-programs
-
- local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)"
-
- # Create the directory where we'll put version-specific php scripts
- keepdir "/usr/share/php${PHP_MV}"
-
- local file=""
- local sapi_list=""
-
- for sapi in ${SAPIS}; do
- if use "${sapi}" ; then
- einfo "Installing SAPI: ${sapi}"
- cd "${WORKDIR}/sapis-build/${sapi}" || die
-
- if [[ "${sapi}" == "apache2" ]] ; then
- # We're specifically not using emake install-sapi as libtool
- # may cause unnecessary relink failures (see bug #351266)
- insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/"
- newins ".libs/libphp${PHP_MV}$(get_libname)" \
- "libphp${PHP_MV}$(get_libname)"
- keepdir "/usr/$(get_libdir)/apache2/modules"
- else
- # needed each time, php_install_ini would reset it
- local dest="${PHP_DESTDIR#${EPREFIX}}"
- into "${dest}"
- case "$sapi" in
- cli)
- source="sapi/cli/php"
- # Install the "phar" archive utility.
- if use phar ; then
- emake INSTALL_ROOT="${D}" install-pharcmd
- dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}"
- fi
- ;;
- cgi)
- source="sapi/cgi/php-cgi"
- ;;
- fpm)
- source="sapi/fpm/php-fpm"
- ;;
- embed)
- source="libs/libphp${PHP_MV}$(get_libname)"
- ;;
- phpdbg)
- source="sapi/phpdbg/phpdbg"
- ;;
- *)
- die "unhandled sapi in src_install"
- ;;
- esac
-
- if [[ "${source}" == *"$(get_libname)" ]]; then
- dolib.so "${source}"
- else
- dobin "${source}"
- local name="$(basename ${source})"
- dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}"
- fi
- fi
-
- php_install_ini "${sapi}"
-
- # construct correct SAPI string for php-config
- # thanks to ferringb for the bash voodoo
- if [[ "${sapi}" == "apache2" ]]; then
- sapi_list="${sapi_list:+${sapi_list} }apache2handler"
- else
- sapi_list="${sapi_list:+${sapi_list} }${sapi}"
- fi
- fi
- done
-
- # Installing opcache module
- if use opcache ; then
- into "${PHP_DESTDIR#${EPREFIX}}"
- dolib.so "modules/opcache$(get_libname)"
- fi
-
- # Install env.d files
- newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}"
- sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
- sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
-
- # set php-config variable correctly (bug #278439)
- sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
- "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die
-
- if use fpm ; then
- if use systemd; then
- systemd_newunit "${FILESDIR}/php-fpm_at.service" \
- "php-fpm@${SLOT}.service"
- else
- systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \
- "php-fpm@${SLOT}.service"
- fi
- fi
-}
-
-src_test() {
- echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
- PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php"
- if [[ ! -x "${PHP_BIN}" ]] ; then
- ewarn "Test phase requires USE=cli, skipping"
- return
- else
- export TEST_PHP_EXECUTABLE="${PHP_BIN}"
- fi
-
- if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then
- export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi"
- fi
-
- if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then
- export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
- fi
-
- REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \
- "session.save_path=${T}" \
- "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \
- "session.save_path=${T}"
-
- for name in ${EXPECTED_TEST_FAILURES}; do
- mv "${name}.out" "${name}.out.orig" 2>/dev/null || die
- done
-
- local failed="$(find -name '*.out')"
- if [[ ${failed} != "" ]] ; then
- ewarn "The following test cases failed unexpectedly:"
- for name in ${failed}; do
- ewarn " ${name/.out/}"
- done
- else
- einfo "No unexpected test failures, all fine"
- fi
-
- if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then
- local passed=""
- for name in ${EXPECTED_TEST_FAILURES}; do
- [[ -f "${name}.diff" ]] && continue
- passed="${passed} ${name}"
- done
- if [[ ${passed} != "" ]] ; then
- einfo "The following test cases passed unexpectedly:"
- for name in ${passed}; do
- ewarn " ${passed}"
- done
- else
- einfo "None of the known-to-fail tests passed, all fine"
- fi
- fi
-}
-
-pkg_postinst() {
- # Output some general info to the user
- if use apache2 ; then
- elog
- elog "To enable PHP in apache, you will need to add \"-D PHP\" to"
- elog "your apache2 command. OpenRC users can append that string to"
- elog "APACHE2_OPTS in /etc/conf.d/apache2."
- elog
- elog "The apache module configuration file 70_mod_php.conf is"
- elog "provided (and maintained) by eselect-php."
- elog
- fi
-
- # Create the symlinks for php
- local m
- for m in ${SAPIS}; do
- [[ ${m} == 'embed' ]] && continue;
- if use $m ; then
- local ci=$(eselect php show $m)
- if [[ -z $ci ]]; then
- eselect php set $m php${SLOT} || die
- einfo "Switched ${m} to use php:${SLOT}"
- einfo
- elif [[ $ci != "php${SLOT}" ]] ; then
- elog "To switch $m to use php:${SLOT}, run"
- elog " eselect php set $m php${SLOT}"
- elog
- fi
- fi
- done
-
- # Remove dead symlinks for SAPIs that were just disabled. For
- # example, if the user has the cgi SAPI enabled, then he has an
- # eselect-php symlink for it. If he later reinstalls PHP with
- # USE="-cgi", that symlink will break. This call to eselect is
- # supposed to remove that dead link per bug 572436.
- eselect php cleanup || die
-
- if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then
- elog "To build extensions for this version of PHP, you will need to"
- elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable."
- elog
- fi
-
- # Warn about the removal of PHP_INI_VERSION if the user has it set.
- if [[ -n "${PHP_INI_VERSION}" ]]; then
- ewarn 'The PHP_INI_VERSION variable has been phased out. You may'
- ewarn 'remove it from your configuration at your convenience. See'
- ewarn
- ewarn ' https://bugs.gentoo.org/611214'
- ewarn
- ewarn 'for more information.'
- fi
-
- elog "For details on how version slotting works, please see"
- elog "the wiki:"
- elog
- elog " https://wiki.gentoo.org/wiki/PHP"
- elog
-}
-
-pkg_postrm() {
- # This serves two purposes. First, if we have just removed the last
- # installed version of PHP, then this will remove any dead symlinks
- # belonging to eselect-php. Second, if a user upgrades slots from
- # (say) 5.6 to 7.0 and depcleans the old slot, then this will update
- # his existing symlinks to point to the new 7.0 installation. The
- # latter is bug 432962.
- #
- # Note: the eselect-php package may not be installed at this point,
- # so we can't die() if this command fails.
- eselect php cleanup
-}
diff --git a/dev-lang/php/php-8.0.0.ebuild b/dev-lang/php/php-8.0.0.ebuild
index 801d79b66ceb..bda8c364a3e5 100644
--- a/dev-lang/php/php-8.0.0.ebuild
+++ b/dev-lang/php/php-8.0.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
@@ -21,7 +21,7 @@ LICENSE="PHP-3.01
unicode? ( BSD-2 LGPL-2.1 )"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
S="${WORKDIR}/${PN}-${MY_PV}"
diff --git a/dev-lang/php/php-7.4.10.ebuild b/dev-lang/php/php-8.0.1.ebuild
index 3ac0d8c9ace3..bda8c364a3e5 100644
--- a/dev-lang/php/php-7.4.10.ebuild
+++ b/dev-lang/php/php-8.0.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
@@ -7,7 +7,7 @@ WANT_AUTOMAKE="none"
inherit flag-o-matic systemd autotools
-MY_PV=${PV/_rc/RC}
+MY_PV=${PV/_rc/rc}
DESCRIPTION="The PHP language runtime engine"
HOMEPAGE="https://www.php.net/"
SRC_URI="https://www.php.net/distributions/${P}.tar.xz"
@@ -21,7 +21,7 @@ LICENSE="PHP-3.01
unicode? ( BSD-2 LGPL-2.1 )"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
S="${WORKDIR}/${PN}-${MY_PV}"
@@ -37,13 +37,13 @@ IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk
coverage +ctype curl debug
enchant exif ffi +fileinfo +filter firebird
+flatfile ftp gd gdbm gmp +iconv imap inifile
- intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb
+ intl iodbc ipv6 kerberos ldap ldap-sasl libedit libressl lmdb
mhash mssql mysql mysqli nls
oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
readline selinux +session session-mm sharedmem
+simplexml snmp soap sockets sodium spell sqlite ssl
sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode webp
- +xml xmlreader xmlwriter xmlrpc xpm xslt zip zlib"
+ +xml xmlreader xmlwriter xpm xslt zip zlib"
# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
REQUIRED_USE="
@@ -58,7 +58,6 @@ REQUIRED_USE="
gd? ( zlib )
simplexml? ( xml )
soap? ( xml )
- xmlrpc? ( xml iconv )
xmlreader? ( xml )
xmlwriter? ( xml )
xslt? ( xml )
@@ -76,7 +75,7 @@ RESTRICT="!test? ( test )"
# 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?]
+ >=app-eselect/eselect-php-0.9.7[apache2?,fpm?]
>=dev-libs/libpcre2-10.30[unicode]
fpm? ( acl? ( sys-apps/acl ) )
apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
@@ -90,8 +89,8 @@ COMMON_DEPEND="
bzip2? ( app-arch/bzip2:0= )
cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
coverage? ( dev-util/lcov )
- curl? ( >=net-misc/curl-7.10.5 )
- enchant? ( <app-text/enchant-2.0:0 )
+ curl? ( >=net-misc/curl-7.29.0 )
+ enchant? ( app-text/enchant:2 )
ffi? ( >=dev-libs/libffi-3.0.11 )
firebird? ( dev-db/firebird )
gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= )
@@ -109,7 +108,7 @@ COMMON_DEPEND="
nls? ( sys-devel/gettext )
oci8-instant-client? ( dev-db/oracle-instantclient-basic )
odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) )
- postgres? ( dev-db/postgresql:* )
+ postgres? ( >=dev-db/postgresql-9.1:* )
qdbm? ( dev-db/qdbm )
readline? ( sys-libs/readline:0= )
session-mm? ( dev-libs/mm )
@@ -126,7 +125,7 @@ COMMON_DEPEND="
truetype? ( =media-libs/freetype-2* )
unicode? ( dev-libs/oniguruma:= )
webp? ( media-libs/libwebp:0= )
- xml? ( >=dev-libs/libxml2-2.7.6 )
+ xml? ( >=dev-libs/libxml2-2.9.0 )
xpm? ( x11-libs/libXpm )
xslt? ( dev-libs/libxslt )
zip? ( >=dev-libs/libzip-1.2.0:= )
@@ -243,7 +242,7 @@ src_configure() {
--with-libdir="$(get_libdir)"
--localstatedir="${EPREFIX}/var"
--without-pear
- $(use_enable threads maintainer-zts)
+ $(use_enable threads zts)
)
our_conf+=(
@@ -268,7 +267,6 @@ src_configure() {
$(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr"))
$(use_enable intl)
$(use_enable ipv6)
- $(use_enable json)
$(use_with kerberos)
$(use_with xml libxml)
$(use_enable unicode mbstring)
@@ -295,7 +293,6 @@ src_configure() {
$(use_enable xml)
$(use_enable xmlreader)
$(use_enable xmlwriter)
- $(use_with xmlrpc)
$(use_with xslt xsl)
$(use_with zip)
$(use_with zlib zlib "${EPREFIX}/usr")
@@ -541,7 +538,7 @@ src_install() {
# 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)" \
+ newins ".libs/libphp$(get_libname)" \
"libphp${PHP_MV}$(get_libname)"
keepdir "/usr/$(get_libdir)/apache2/modules"
else
@@ -564,7 +561,7 @@ src_install() {
source="sapi/fpm/php-fpm"
;;
embed)
- source="libs/libphp${PHP_MV}$(get_libname)"
+ source="libs/libphp$(get_libname)"
;;
phpdbg)
source="sapi/phpdbg/phpdbg"
diff --git a/dev-lang/python-exec/python-exec-2.4.6-r2.ebuild b/dev-lang/python-exec/python-exec-2.4.6-r2.ebuild
index 3a975edc8d59..14bfdf3a2bc2 100644
--- a/dev-lang/python-exec/python-exec-2.4.6-r2.ebuild
+++ b/dev-lang/python-exec/python-exec-2.4.6-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/mgorny/python-exec/releases/download/v${PV}/${P}.tar
LICENSE="BSD-2"
SLOT="2"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
# Internal Python project hack. Do not copy it. Ever.
IUSE="${_PYTHON_ALL_IMPLS[@]/#/python_targets_}"
diff --git a/dev-lang/python-exec/python-exec-2.4.6-r3.ebuild b/dev-lang/python-exec/python-exec-2.4.6-r3.ebuild
index 6869fd24d057..0ba2c499b941 100644
--- a/dev-lang/python-exec/python-exec-2.4.6-r3.ebuild
+++ b/dev-lang/python-exec/python-exec-2.4.6-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/mgorny/python-exec/releases/download/v${PV}/${P}.tar
LICENSE="BSD-2"
SLOT="2"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
# Internal Python project hack. Do not copy it. Ever.
IUSE="${_PYTHON_ALL_IMPLS[@]/#/python_targets_} +native-symlinks"
diff --git a/dev-lang/qu-prolog/qu-prolog-10.6.ebuild b/dev-lang/qu-prolog/qu-prolog-10.6.ebuild
index 4dfa6c496c42..91cc7e05b029 100644
--- a/dev-lang/qu-prolog/qu-prolog-10.6.ebuild
+++ b/dev-lang/qu-prolog/qu-prolog-10.6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -13,7 +13,7 @@ SRC_URI="http://www.itee.uq.edu.au/~pjr/HomePages/QPFiles/${MY_P}.tar.gz"
LICENSE="Apache-2.0 GPL-2+"
SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
+KEYWORDS="amd64 ppc x86"
IUSE="debug doc examples pedro qt5 readline threads"
RDEPEND="
diff --git a/dev-lang/rakudo/Manifest b/dev-lang/rakudo/Manifest
index 9c63d94497b8..eab66d6906aa 100644
--- a/dev-lang/rakudo/Manifest
+++ b/dev-lang/rakudo/Manifest
@@ -5,3 +5,4 @@ DIST rakudo-2020.08.1.tar.gz 4740608 BLAKE2B be1b1f755690493483ba001407a89de69d6
DIST rakudo-2020.09.tar.gz 4743378 BLAKE2B 4ccac6fa59ca80868e7525eabc05d358da9265a87aced24af2c25fae6c0e386aae18c5f44d9d3dd6db377f155b481e003c91c6e51bb6a89ee9a380e749e0c847 SHA512 c838b7a42670a99860184464b22b1cb3c9a27988eb6e982f4367df883afe06608199bf363164965c1199027eeed880f237771c1e8580a80e585f1fd67d0c0574
DIST rakudo-2020.10.tar.gz 4755030 BLAKE2B 869f6dc6569093f7ad39d9c250d6564b6311cdefda2950784e54263bed6faca4b8653a9578b19f52819eb8e9f24e1f5f831468bf4620d885d4bb26944e22e8f4 SHA512 fcd00ac782ca28243ca2c6ceb45ff99322952086749aea01ccdfb5ae8c525cb6304fe5d20e7905a9808b1b7a1a96d7c4406847b10c0e4ea8b5fd7d053870f46a
DIST rakudo-2020.11.tar.gz 5678270 BLAKE2B 314da91b516d509fcfcfff16e46444243083bdeb21294bc33a2996f1883317b663cc3442cbb6090c8339c5607b4e64a4c8c3c9f2fa5d728bd5c6513d6ef20bcf SHA512 d6c0f7849570b82611db311445f6b60000ecf1c0773d1bb5f4da0d27a9e0d443149ab72f954da2e75a8323d9be9c31f655dee1183a8ca714d89c63baa6e2489e
+DIST rakudo-2020.12.tar.gz 5690849 BLAKE2B 2f2bae068419279346d4dd49b734221d9a8bbeaac94b8fd44f03812ed33fbf8d4e096ba768388cb56571970d41f8ef319bf12d1f33a1cf36fe3ebb7ec6da40be SHA512 dfb94d1c8f75ec16e0149a37b57a9d9fc80ddaf256526edd3d3a23c0435881a187efbe88fd95a2174a9e9d93820987e561bb77745c7492e7ac50eb72879b4ab8
diff --git a/dev-lang/rakudo/rakudo-2020.12.ebuild b/dev-lang/rakudo/rakudo-2020.12.ebuild
new file mode 100644
index 000000000000..e912ccc2de62
--- /dev/null
+++ b/dev-lang/rakudo/rakudo-2020.12.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit java-pkg-opt-2
+
+DESCRIPTION="A compiler for the Perl 6 programming language"
+HOMEPAGE="https://rakudo.org"
+
+if [[ ${PV} == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/rakudo/${PN}.git"
+ inherit git-r3
+ KEYWORDS=""
+else
+ SRC_URI="https://rakudo.org/dl/${PN}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="Artistic-2"
+SLOT="0"
+# TODO: add USE="javascript" once that's usable in nqp
+IUSE="clang java +moar test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="|| ( java moar )"
+
+CDEPEND="~dev-lang/nqp-${PV}:${SLOT}=[java?,moar?,clang=]"
+RDEPEND="${CDEPEND}
+ java? ( >=virtual/jre-1.7 )"
+DEPEND="${CDEPEND}
+ clang? ( sys-devel/clang )
+ java? ( >=virtual/jdk-1.7 )
+ >=dev-lang/perl-5.10"
+
+pkg_pretend() {
+ if has_version dev-lang/rakudo; then
+ ewarn "Rakudo is known to fail compilation/installation with Rakudo"
+ ewarn "already being installed. So if it fails, try unmerging dev-lang/rakudo,"
+ ewarn "then do a new installation."
+ ewarn "(see Bug #584394)"
+ fi
+}
+
+src_configure() {
+ local backends
+ use moar && backends+="moar,"
+ use java && backends+="jvm"
+
+ local myargs=(
+ "--prefix=/usr"
+ "--sysroot=/"
+ "--sdkroot=/"
+ "--backends=${backends}"
+ )
+
+ perl Configure.pl "${myargs[@]}" || die
+
+ if use java; then
+ NQP=$(java-pkg_getjars --with-dependencies nqp)
+ fi
+}
+
+src_compile() {
+ emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}"
+}
+
+src_install() {
+ emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}" install
+}
+
+src_test() {
+ RAKUDO_PRECOMP_PREFIX=$(mktemp -d) default
+}
diff --git a/dev-lang/ruby/Manifest b/dev-lang/ruby/Manifest
index 89d19b617cb0..a474614b3776 100644
--- a/dev-lang/ruby/Manifest
+++ b/dev-lang/ruby/Manifest
@@ -1,4 +1,4 @@
DIST ruby-2.5.8.tar.xz 11298404 BLAKE2B 3256c0448e72b63c0bd89f89a27fa9c09c8feed54d42cd79899b7d5cfe9dbc29ca708d12c630b3f52ff85b0c6a4011ae7ff0483d64b2fd445700a72a91028035 SHA512 2886be764a454425c5beef2777c64a70ee0d048b07896b327633d904f5077fea4299526689f9e2ac4dcd2fc4811cf9a6c8ce75367ed35d29dfe1a54222872e0d
DIST ruby-2.6.6.tar.xz 11567284 BLAKE2B 45e910dd9b128c46bff3003834c4fdcbbc2e2e4d3e44f298ff4356a285de2c375d6b6021a3aa28d89336b32a1655fa4a7c086d07f4a0f6bcd578a11dd4a894da SHA512 86caf93dbf61d03781767ab5375a7edf4761f13ba08ccfefe16c0a7550499237e7390c2f72a95d42670d4fe76b2401b4218936187c62ec1572799e9e04c50d62
-DIST ruby-2.7.1.tar.xz 12003684 BLAKE2B 90a35c3e246cfe982a146be29a3d121d6e2c251ed96703dbc46b98c21e0e43e5445132e6119e584ae35f7193f063ff1b14822f947a4e07037c37fbba5e4038da SHA512 79f98b1ea98e0b10ec79da1883e8fc84d48ffe5c09ae945cbebde94365e35a589d919aac965f74d70ca7e21370ecee631ac5a8f9c4eac61d62f5aa629f27bf31
DIST ruby-2.7.2.tar.xz 12037052 BLAKE2B a4ad22295b3fed4e8064fc6e77adb8642d1fa7ae1f4ef912d7bde19c735cb25b1a3e3aefba53dad944046d844d608bcefba61c314cf1e52747f50d7d91f4c436 SHA512 7972278b096aa768c7adf2befd26003e18781a29ca317640317d30d93d6e963ded197724c8e2f1dfe1e838c5647176d414a74732a62e931fb50d6f2e0f777349
+DIST ruby-3.0.0.tar.xz 14374176 BLAKE2B 9e7520e0b1ae6644285449c4ae92983d306772b3dd5366a17da709a55797c798d099424a5628c78c842b825fb336c6a769ac9c371ef276f42bf3550fd0761ebe SHA512 2a23c2894e62e24bb20cec6b2a016b66d7df05083668726b6f70af8338211cfec417aa3624290d1f5ccd130f65ee7b52b5db7d428abc4a9460459c9a5dd1a450
diff --git a/dev-lang/ruby/files/2.5/002-autoconf-2.70.patch b/dev-lang/ruby/files/2.5/002-autoconf-2.70.patch
new file mode 100644
index 000000000000..576ed6c759bd
--- /dev/null
+++ b/dev-lang/ruby/files/2.5/002-autoconf-2.70.patch
@@ -0,0 +1,65 @@
+From 6160ea5e22ee7353a0814159c94bd3cf890a52ce Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Mon, 16 Nov 2020 08:42:15 +0000
+Subject: [PATCH] configure.ac: fix for upcoming autoconf-2.70
+
+The failure initially noticed on `autoconf-2.69d` (soon to become 2.70):
+
+```
+$ ./configure
+./configure: line 8720: syntax error near unexpected token `fi'
+./configure: line 8720: `fi'
+```
+
+Before the change generated `./configure ` snippet looked like:
+
+```
+ if ! $CC -E -xc - <<SRC >/dev/null
+then :
+
+ #if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
+ #error premature clang
+ #endif
+SRC
+ as_fn_error $? "clang version 3.0 or later is required" "$LINENO" 5
+fi
+```
+
+Note the newline that breaks here-document syntax.
+
+After the change the snippet does not use here-document.
+
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+---
+ configure.ac | 15 ++++++++-------
+ 1 file changed, 8 insertions(+), 7 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index a5e3dc76f6..4e4a52f066 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -271,13 +271,14 @@ AS_CASE(["$host_os:$build_os"],
+ # clang version 1.0 (http://llvm.org/svn/llvm-project/cfe/tags/Apple/clang-23 exported)
+ # Apple clang version 2.0 (tags/Apple/clang-137) (based on LLVM 2.9svn)
+ # Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn)
+- AS_IF([! $CC -E -xc - <<SRC >/dev/null], [
+- @%:@if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
+- @%:@error premature clang
+- @%:@endif
+-SRC
+- AC_MSG_ERROR([clang version 3.0 or later is required])
+- ])
++ AC_PREPROC_IFELSE(
++ [AC_LANG_PROGRAM([
++ @%:@if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
++ @%:@error premature clang
++ @%:@endif
++ ])],
++ [],
++ [AC_MSG_ERROR([clang version 3.0 or later is required])])
+ ])
+
+ AS_CASE(["$target_os"],
+--
+2.29.2
+
diff --git a/dev-lang/ruby/files/2.6/002-autoconf-2.70.patch b/dev-lang/ruby/files/2.6/002-autoconf-2.70.patch
new file mode 100644
index 000000000000..576ed6c759bd
--- /dev/null
+++ b/dev-lang/ruby/files/2.6/002-autoconf-2.70.patch
@@ -0,0 +1,65 @@
+From 6160ea5e22ee7353a0814159c94bd3cf890a52ce Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Mon, 16 Nov 2020 08:42:15 +0000
+Subject: [PATCH] configure.ac: fix for upcoming autoconf-2.70
+
+The failure initially noticed on `autoconf-2.69d` (soon to become 2.70):
+
+```
+$ ./configure
+./configure: line 8720: syntax error near unexpected token `fi'
+./configure: line 8720: `fi'
+```
+
+Before the change generated `./configure ` snippet looked like:
+
+```
+ if ! $CC -E -xc - <<SRC >/dev/null
+then :
+
+ #if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
+ #error premature clang
+ #endif
+SRC
+ as_fn_error $? "clang version 3.0 or later is required" "$LINENO" 5
+fi
+```
+
+Note the newline that breaks here-document syntax.
+
+After the change the snippet does not use here-document.
+
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+---
+ configure.ac | 15 ++++++++-------
+ 1 file changed, 8 insertions(+), 7 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index a5e3dc76f6..4e4a52f066 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -271,13 +271,14 @@ AS_CASE(["$host_os:$build_os"],
+ # clang version 1.0 (http://llvm.org/svn/llvm-project/cfe/tags/Apple/clang-23 exported)
+ # Apple clang version 2.0 (tags/Apple/clang-137) (based on LLVM 2.9svn)
+ # Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn)
+- AS_IF([! $CC -E -xc - <<SRC >/dev/null], [
+- @%:@if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
+- @%:@error premature clang
+- @%:@endif
+-SRC
+- AC_MSG_ERROR([clang version 3.0 or later is required])
+- ])
++ AC_PREPROC_IFELSE(
++ [AC_LANG_PROGRAM([
++ @%:@if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
++ @%:@error premature clang
++ @%:@endif
++ ])],
++ [],
++ [AC_MSG_ERROR([clang version 3.0 or later is required])])
+ ])
+
+ AS_CASE(["$target_os"],
+--
+2.29.2
+
diff --git a/dev-lang/ruby/files/2.7/002-autoconf-2.70.patch b/dev-lang/ruby/files/2.7/002-autoconf-2.70.patch
new file mode 100644
index 000000000000..bea2bc178dc4
--- /dev/null
+++ b/dev-lang/ruby/files/2.7/002-autoconf-2.70.patch
@@ -0,0 +1,26 @@
+diff --git a/configure.ac b/configure.ac
+index 6766df2..bc503d6 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -177,13 +177,14 @@ AS_CASE(["$host_os:$build_os"],
+ # clang version 1.0 (http://llvm.org/svn/llvm-project/cfe/tags/Apple/clang-23 exported)
+ # Apple clang version 2.0 (tags/Apple/clang-137) (based on LLVM 2.9svn)
+ # Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn)
+- AS_IF([! $CC -E -xc - <<SRC >/dev/null], [
+- @%:@if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
+- @%:@error premature clang
+- @%:@endif
+-SRC
+- AC_MSG_ERROR([clang version 3.0 or later is required])
+- ])],
++ AC_PREPROC_IFELSE(
++ [AC_LANG_PROGRAM([
++ @%:@if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
++ @%:@error premature clang
++ @%:@endif
++ ])],
++ [],
++ [AC_MSG_ERROR([clang version 3.0 or later is required])])],
+ [openbsd*:openbsd*], [
+ AC_CHECK_TOOLS(CC, [cc])
+ ])
diff --git a/dev-lang/ruby/files/3.0/001-socksocket-fix.patch b/dev-lang/ruby/files/3.0/001-socksocket-fix.patch
new file mode 100644
index 000000000000..1a79e25491cc
--- /dev/null
+++ b/dev-lang/ruby/files/3.0/001-socksocket-fix.patch
@@ -0,0 +1,15 @@
+Fix compilation with socks5 USE flag.
+
+Patch by Phobos Kappa in https://bugs.gentoo.org/762253
+
+--- a/ext/socket/sockssocket.c 2020-12-25 05:33:01.000000000 +0200
++++ b/ext/socket/sockssocket.c 2020-12-28 15:42:50.310029778 +0200
+@@ -34,7 +34,7 @@
+ init = 1;
+ }
+
+- return rsock_init_inetsock(sock, host, port, Qnil, Qnil, INET_SOCKS, Qnil);
++ return rsock_init_inetsock(sock, host, port, Qnil, Qnil, INET_SOCKS, Qnil, Qnil);
+ }
+
+ #ifdef SOCKS5
diff --git a/dev-lang/ruby/files/3.0/010-default-gem-location.patch b/dev-lang/ruby/files/3.0/010-default-gem-location.patch
new file mode 100644
index 000000000000..060579b4f339
--- /dev/null
+++ b/dev-lang/ruby/files/3.0/010-default-gem-location.patch
@@ -0,0 +1,20 @@
+--- a/tool/rbinstall.rb.~1~ 2020-12-25 04:33:01.000000000 +0100
++++ b/tool/rbinstall.rb 2020-12-25 10:05:34.629096405 +0100
+@@ -897,7 +897,7 @@
+ end
+
+ def install_default_gem(dir, srcdir)
+- gem_dir = Gem.default_dir
++ gem_dir = ENV['GEM_DESTDIR']
+ install_dir = with_destdir(gem_dir)
+ prepare "default gems from #{dir}", gem_dir
+ makedirs(Gem.ensure_default_gem_subdirectories(install_dir, $dir_mode).map {|d| File.join(gem_dir, d)})
+@@ -943,7 +943,7 @@
+ end
+
+ install?(:ext, :comm, :gem, :'bundled-gems') do
+- gem_dir = Gem.default_dir
++ gem_dir = ENV['GEM_DESTDIR']
+ install_dir = with_destdir(gem_dir)
+ prepare "bundled gems", gem_dir
+ makedirs(Gem.ensure_gem_subdirectories(install_dir, $dir_mode).map {|d| File.join(gem_dir, d)})
diff --git a/dev-lang/ruby/ruby-2.5.8-r1.ebuild b/dev-lang/ruby/ruby-2.5.8-r1.ebuild
index 6c1a64eaf332..1a4584807865 100644
--- a/dev-lang/ruby/ruby-2.5.8-r1.ebuild
+++ b/dev-lang/ruby/ruby-2.5.8-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -17,7 +17,7 @@ HOMEPAGE="https://www.ruby-lang.org/"
SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
LICENSE="|| ( Ruby-BSD BSD-2 )"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="berkdb debug doc examples gdbm ipv6 jemalloc libressl +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs"
RDEPEND="
@@ -61,7 +61,7 @@ PDEPEND="
xemacs? ( app-xemacs/ruby-modes )"
src_prepare() {
- eapply "${FILESDIR}"/${SLOT}/{001,005,011}*.patch
+ eapply "${FILESDIR}"/${SLOT}/{001,002,005,011}*.patch
einfo "Unbundling gems..."
cd "$S"
diff --git a/dev-lang/ruby/ruby-2.6.6-r1.ebuild b/dev-lang/ruby/ruby-2.6.6-r1.ebuild
deleted file mode 100644
index 7a67e1a482c5..000000000000
--- a/dev-lang/ruby/ruby-2.6.6-r1.ebuild
+++ /dev/null
@@ -1,232 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools flag-o-matic multilib
-
-MY_P="${PN}-$(ver_cut 1-3)"
-S=${WORKDIR}/${MY_P}
-
-SLOT=$(ver_cut 1-2)
-MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
-RUBYVERSION=${SLOT}.0
-
-DESCRIPTION="An object-oriented scripting language"
-HOMEPAGE="https://www.ruby-lang.org/"
-SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
-
-LICENSE="|| ( Ruby-BSD BSD-2 )"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
-IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs tk xemacs"
-
-RDEPEND="
- berkdb? ( sys-libs/db:= )
- gdbm? ( sys-libs/gdbm:= )
- jemalloc? ( dev-libs/jemalloc )
- jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) )
- ssl? (
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl )
- )
- socks5? ( >=net-proxy/dante-1.1.13 )
- tk? (
- dev-lang/tcl:0=[threads]
- dev-lang/tk:0=[threads]
- )
- dev-libs/libyaml
- dev-libs/libffi:=
- sys-libs/readline:0=
- sys-libs/zlib
- >=app-eselect/eselect-ruby-20181225
-"
-
-DEPEND="${RDEPEND}"
-
-BUNDLED_GEMS="
- >=dev-ruby/did_you_mean-1.2.1[ruby_targets_ruby26]
- >=dev-ruby/minitest-5.11.3[ruby_targets_ruby26]
- >=dev-ruby/net-telnet-0.2.0[ruby_targets_ruby26]
- >=dev-ruby/power_assert-1.1.3[ruby_targets_ruby26]
- >=dev-ruby/rake-12.3.2[ruby_targets_ruby26]
- >=dev-ruby/test-unit-3.2.9[ruby_targets_ruby26]
- >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby26]
-"
-
-PDEPEND="
- ${BUNDLED_GEMS}
- virtual/rubygems[ruby_targets_ruby26]
- >=dev-ruby/bundler-1.17.2[ruby_targets_ruby26]
- >=dev-ruby/json-2.0.2[ruby_targets_ruby26]
- rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby26] )
- xemacs? ( app-xemacs/ruby-modes )"
-
-src_prepare() {
- # 005 does not compile bigdecimal and is questionable because it
- # compiles ruby in a non-standard way, may be dropped
- eapply "${FILESDIR}"/2.6/010*.patch
-
- einfo "Unbundling gems..."
- cd "$S"
- # Remove bundled gems that we will install via PDEPEND, bug
- # 539700.
- rm -fr gems/* || die
-
- einfo "Removing bundled libraries..."
- rm -fr ext/fiddle/libffi-3.2.1 || die
-
- eapply_user
-
- eautoreconf
-}
-
-src_configure() {
- local modules= myconf=
-
- # -fomit-frame-pointer makes ruby segfault, see bug #150413.
- filter-flags -fomit-frame-pointer
- # In many places aliasing rules are broken; play it safe
- # as it's risky with newer compilers to leave it as it is.
- append-flags -fno-strict-aliasing
-
- # Socks support via dante
- if use socks5 ; then
- # Socks support can't be disabled as long as SOCKS_SERVER is
- # set and socks library is present, so need to unset
- # SOCKS_SERVER in that case.
- unset SOCKS_SERVER
- fi
-
- # Increase GC_MALLOC_LIMIT if set (default is 8000000)
- if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
- append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
- fi
-
- # ipv6 hack, bug 168939. Needs --enable-ipv6.
- use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
-
- # Determine which modules *not* to build depending in the USE flags.
- if ! use berkdb ; then
- modules="${modules},dbm"
- fi
- if ! use gdbm ; then
- modules="${modules},gdbm"
- fi
- if ! use ssl ; then
- modules="${modules},openssl"
- fi
- if ! use tk ; then
- modules="${modules},tk"
- fi
-
- # Provide an empty LIBPATHENV because we disable rpath but we do not
- # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
- # #564272
- INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
- --program-suffix=${MY_SUFFIX} \
- --with-soname=ruby${MY_SUFFIX} \
- --enable-shared \
- --enable-pthread \
- --disable-rpath \
- --with-out-ext="${modules}" \
- $(use_with jemalloc jemalloc) \
- $(use_enable jit jit-support ) \
- $(use_enable socks5 socks) \
- $(use_enable doc install-doc) \
- --enable-ipv6 \
- $(use_enable static-libs static) \
- $(use_enable static-libs install-static-library) \
- $(use_with static-libs static-linked-ext) \
- $(use_enable debug) \
- ${myconf} \
- --enable-option-checking=no
-
- # Makefile is broken because it lacks -ldl
- rm -rf ext/-test-/popen_deadlock || die
-}
-
-src_compile() {
- emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS=""
-}
-
-src_test() {
- emake -j1 V=1 test
-
- elog "Ruby's make test has been run. Ruby also ships with a make check"
- elog "that cannot be run until after ruby has been installed."
- elog
- if use rubytests; then
- elog "You have enabled rubytests, so they will be installed to"
- elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
- elog "than root, and you must place them into a writeable directory."
- elog "Then call: "
- elog
- elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
- else
- elog "Enable the rubytests USE flag to install the make check tests"
- fi
-}
-
-src_install() {
- # Remove the remaining bundled gems. We do this late in the process
- # since they are used during the build to e.g. create the
- # documentation.
- rm -rf ext/json || die
- rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
-
- # Ruby is involved in the install process, we don't want interference here.
- unset RUBYOPT
-
- local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
-
- LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
- RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
- for d in $(find "${S}/ext" -type d) ; do
- RUBYLIB="${RUBYLIB}:$d"
- done
- export LD_LIBRARY_PATH RUBYLIB
-
- # Create directory for the default gems
- local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
- mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed"
-
- emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install
-
- # Remove installed rubygems and rdoc copy
- rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
- rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
- rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
- rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
-
- if use doc; then
- emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc
- fi
-
- if use examples; then
- dodoc -r sample
- fi
-
- dodoc ChangeLog NEWS doc/NEWS* README*
-
- if use rubytests; then
- pushd test
- insinto /usr/share/${PN}-${SLOT}/test
- doins -r .
- popd
- fi
-}
-
-pkg_postinst() {
- if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then
- eselect ruby set ruby${MY_SUFFIX}
- fi
-
- elog
- elog "To switch between available Ruby profiles, execute as root:"
- elog "\teselect ruby set ruby(23|24|...)"
- elog
-}
-
-pkg_postrm() {
- eselect ruby cleanup
-}
diff --git a/dev-lang/ruby/ruby-2.6.6-r2.ebuild b/dev-lang/ruby/ruby-2.6.6-r2.ebuild
index e8e8f2b88b64..795321234d25 100644
--- a/dev-lang/ruby/ruby-2.6.6-r2.ebuild
+++ b/dev-lang/ruby/ruby-2.6.6-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -17,7 +17,7 @@ HOMEPAGE="https://www.ruby-lang.org/"
SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
LICENSE="|| ( Ruby-BSD BSD-2 )"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~mips ppc ppc64 ~s390 sparc x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs"
RDEPEND="
@@ -65,7 +65,7 @@ PDEPEND="
src_prepare() {
# 005 does not compile bigdecimal and is questionable because it
# compiles ruby in a non-standard way, may be dropped
- eapply "${FILESDIR}"/2.6/010*.patch
+ eapply "${FILESDIR}"/2.6/{002,010}*.patch
einfo "Unbundling gems..."
cd "$S"
diff --git a/dev-lang/ruby/ruby-2.6.6.ebuild b/dev-lang/ruby/ruby-2.6.6.ebuild
deleted file mode 100644
index e7c55656994f..000000000000
--- a/dev-lang/ruby/ruby-2.6.6.ebuild
+++ /dev/null
@@ -1,232 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools flag-o-matic multilib
-
-MY_P="${PN}-$(ver_cut 1-3)"
-S=${WORKDIR}/${MY_P}
-
-SLOT=$(ver_cut 1-2)
-MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
-RUBYVERSION=${SLOT}.0
-
-DESCRIPTION="An object-oriented scripting language"
-HOMEPAGE="https://www.ruby-lang.org/"
-SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
-
-LICENSE="|| ( Ruby-BSD BSD-2 )"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
-IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs tk xemacs"
-
-RDEPEND="
- berkdb? ( sys-libs/db:= )
- gdbm? ( sys-libs/gdbm:= )
- jemalloc? ( dev-libs/jemalloc )
- jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) )
- ssl? (
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl )
- )
- socks5? ( >=net-proxy/dante-1.1.13 )
- tk? (
- dev-lang/tcl:0=[threads]
- dev-lang/tk:0=[threads]
- )
- dev-libs/libyaml
- dev-libs/libffi:=
- sys-libs/readline:0=
- sys-libs/zlib
- >=app-eselect/eselect-ruby-20171225
-"
-
-DEPEND="${RDEPEND}"
-
-BUNDLED_GEMS="
- >=dev-ruby/did_you_mean-1.2.1[ruby_targets_ruby26]
- >=dev-ruby/minitest-5.11.3[ruby_targets_ruby26]
- >=dev-ruby/net-telnet-0.2.0[ruby_targets_ruby26]
- >=dev-ruby/power_assert-1.1.3[ruby_targets_ruby26]
- >=dev-ruby/rake-12.3.2[ruby_targets_ruby26]
- >=dev-ruby/test-unit-3.2.9[ruby_targets_ruby26]
- >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby26]
-"
-
-PDEPEND="
- ${BUNDLED_GEMS}
- virtual/rubygems[ruby_targets_ruby26]
- >=dev-ruby/bundler-1.17.2[ruby_targets_ruby26]
- >=dev-ruby/json-2.0.2[ruby_targets_ruby26]
- rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby26] )
- xemacs? ( app-xemacs/ruby-modes )"
-
-src_prepare() {
- # 005 does not compile bigdecimal and is questionable because it
- # compiles ruby in a non-standard way, may be dropped
- eapply "${FILESDIR}"/2.6/010*.patch
-
- einfo "Unbundling gems..."
- cd "$S"
- # Remove bundled gems that we will install via PDEPEND, bug
- # 539700.
- rm -fr gems/* || die
-
- einfo "Removing bundled libraries..."
- rm -fr ext/fiddle/libffi-3.2.1 || die
-
- eapply_user
-
- eautoreconf
-}
-
-src_configure() {
- local modules= myconf=
-
- # -fomit-frame-pointer makes ruby segfault, see bug #150413.
- filter-flags -fomit-frame-pointer
- # In many places aliasing rules are broken; play it safe
- # as it's risky with newer compilers to leave it as it is.
- append-flags -fno-strict-aliasing
-
- # Socks support via dante
- if use socks5 ; then
- # Socks support can't be disabled as long as SOCKS_SERVER is
- # set and socks library is present, so need to unset
- # SOCKS_SERVER in that case.
- unset SOCKS_SERVER
- fi
-
- # Increase GC_MALLOC_LIMIT if set (default is 8000000)
- if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
- append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
- fi
-
- # ipv6 hack, bug 168939. Needs --enable-ipv6.
- use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
-
- # Determine which modules *not* to build depending in the USE flags.
- if ! use berkdb ; then
- modules="${modules},dbm"
- fi
- if ! use gdbm ; then
- modules="${modules},gdbm"
- fi
- if ! use ssl ; then
- modules="${modules},openssl"
- fi
- if ! use tk ; then
- modules="${modules},tk"
- fi
-
- # Provide an empty LIBPATHENV because we disable rpath but we do not
- # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
- # #564272
- INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
- --program-suffix=${MY_SUFFIX} \
- --with-soname=ruby${MY_SUFFIX} \
- --enable-shared \
- --enable-pthread \
- --disable-rpath \
- --with-out-ext="${modules}" \
- $(use_with jemalloc jemalloc) \
- $(use_enable jit jit-support ) \
- $(use_enable socks5 socks) \
- $(use_enable doc install-doc) \
- --enable-ipv6 \
- $(use_enable static-libs static) \
- $(use_enable static-libs install-static-library) \
- $(use_with static-libs static-linked-ext) \
- $(use_enable debug) \
- ${myconf} \
- --enable-option-checking=no
-
- # Makefile is broken because it lacks -ldl
- rm -rf ext/-test-/popen_deadlock || die
-}
-
-src_compile() {
- emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS=""
-}
-
-src_test() {
- emake -j1 V=1 test
-
- elog "Ruby's make test has been run. Ruby also ships with a make check"
- elog "that cannot be run until after ruby has been installed."
- elog
- if use rubytests; then
- elog "You have enabled rubytests, so they will be installed to"
- elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
- elog "than root, and you must place them into a writeable directory."
- elog "Then call: "
- elog
- elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
- else
- elog "Enable the rubytests USE flag to install the make check tests"
- fi
-}
-
-src_install() {
- # Remove the remaining bundled gems. We do this late in the process
- # since they are used during the build to e.g. create the
- # documentation.
- rm -rf ext/json || die
- rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
-
- # Ruby is involved in the install process, we don't want interference here.
- unset RUBYOPT
-
- local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
-
- LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
- RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
- for d in $(find "${S}/ext" -type d) ; do
- RUBYLIB="${RUBYLIB}:$d"
- done
- export LD_LIBRARY_PATH RUBYLIB
-
- # Create directory for the default gems
- local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
- mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed"
-
- emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install
-
- # Remove installed rubygems and rdoc copy
- rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
- rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
- rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
- rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
-
- if use doc; then
- emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc
- fi
-
- if use examples; then
- dodoc -r sample
- fi
-
- dodoc ChangeLog NEWS doc/NEWS* README*
-
- if use rubytests; then
- pushd test
- insinto /usr/share/${PN}-${SLOT}/test
- doins -r .
- popd
- fi
-}
-
-pkg_postinst() {
- if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then
- eselect ruby set ruby${MY_SUFFIX}
- fi
-
- elog
- elog "To switch between available Ruby profiles, execute as root:"
- elog "\teselect ruby set ruby(23|24|...)"
- elog
-}
-
-pkg_postrm() {
- eselect ruby cleanup
-}
diff --git a/dev-lang/ruby/ruby-2.7.1-r1.ebuild b/dev-lang/ruby/ruby-2.7.1-r1.ebuild
deleted file mode 100644
index c1b75c35766f..000000000000
--- a/dev-lang/ruby/ruby-2.7.1-r1.ebuild
+++ /dev/null
@@ -1,235 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools flag-o-matic multilib
-
-MY_P="${PN}-$(ver_cut 1-3)"
-S=${WORKDIR}/${MY_P}
-
-SLOT=$(ver_cut 1-2)
-MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
-RUBYVERSION=${SLOT}.0
-
-DESCRIPTION="An object-oriented scripting language"
-HOMEPAGE="https://www.ruby-lang.org/"
-SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
-
-LICENSE="|| ( Ruby-BSD BSD-2 )"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
-IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs tk xemacs"
-
-RDEPEND="
- berkdb? ( sys-libs/db:= )
- gdbm? ( sys-libs/gdbm:= )
- jemalloc? ( dev-libs/jemalloc )
- jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) )
- ssl? (
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl )
- )
- socks5? ( >=net-proxy/dante-1.1.13 )
- tk? (
- dev-lang/tcl:0=[threads]
- dev-lang/tk:0=[threads]
- )
- dev-libs/libyaml
- dev-libs/libffi:=
- sys-libs/readline:0=
- sys-libs/zlib
- >=app-eselect/eselect-ruby-20191222
-"
-
-DEPEND="${RDEPEND}"
-
-BUNDLED_GEMS="
- >=dev-ruby/minitest-5.13.0[ruby_targets_ruby27]
- >=dev-ruby/net-telnet-0.2.0[ruby_targets_ruby27]
- >=dev-ruby/power_assert-1.1.7[ruby_targets_ruby27]
- >=dev-ruby/rake-13.0.1[ruby_targets_ruby27]
- >=dev-ruby/test-unit-3.3.4[ruby_targets_ruby27]
- >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby27]
-"
-
-PDEPEND="
- ${BUNDLED_GEMS}
- virtual/rubygems[ruby_targets_ruby27]
- >=dev-ruby/bundler-2.1.4[ruby_targets_ruby27]
- >=dev-ruby/did_you_mean-1.3.1[ruby_targets_ruby27]
- >=dev-ruby/json-2.0.2[ruby_targets_ruby27]
- rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby27] )
- xemacs? ( app-xemacs/ruby-modes )"
-
-src_prepare() {
- # 005 does not compile bigdecimal and is questionable because it
- # compiles ruby in a non-standard way, may be dropped
- eapply "${FILESDIR}"/2.7/010*.patch
-
- einfo "Unbundling gems..."
- cd "$S"
- # Remove bundled gems that we will install via PDEPEND, bug
- # 539700.
- rm -fr gems/* || die
- # Don't install CLI tools since they will clash with the gem
- rm -f bin/{racc,racc2y,y2racc} || die
- sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die
-
- einfo "Removing bundled libraries..."
- rm -fr ext/fiddle/libffi-3.2.1 || die
-
- eapply_user
-
- eautoreconf
-}
-
-src_configure() {
- local modules= myconf=
-
- # -fomit-frame-pointer makes ruby segfault, see bug #150413.
- filter-flags -fomit-frame-pointer
- # In many places aliasing rules are broken; play it safe
- # as it's risky with newer compilers to leave it as it is.
- append-flags -fno-strict-aliasing
-
- # Socks support via dante
- if use socks5 ; then
- # Socks support can't be disabled as long as SOCKS_SERVER is
- # set and socks library is present, so need to unset
- # SOCKS_SERVER in that case.
- unset SOCKS_SERVER
- fi
-
- # Increase GC_MALLOC_LIMIT if set (default is 8000000)
- if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
- append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
- fi
-
- # ipv6 hack, bug 168939. Needs --enable-ipv6.
- use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
-
- # Determine which modules *not* to build depending in the USE flags.
- if ! use berkdb ; then
- modules="${modules},dbm"
- fi
- if ! use gdbm ; then
- modules="${modules},gdbm"
- fi
- if ! use ssl ; then
- modules="${modules},openssl"
- fi
- if ! use tk ; then
- modules="${modules},tk"
- fi
-
- # Provide an empty LIBPATHENV because we disable rpath but we do not
- # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
- # #564272
- INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
- --program-suffix=${MY_SUFFIX} \
- --with-soname=ruby${MY_SUFFIX} \
- --enable-shared \
- --enable-pthread \
- --disable-rpath \
- --with-out-ext="${modules}" \
- $(use_with jemalloc jemalloc) \
- $(use_enable jit jit-support ) \
- $(use_enable socks5 socks) \
- $(use_enable doc install-doc) \
- --enable-ipv6 \
- $(use_enable static-libs static) \
- $(use_enable static-libs install-static-library) \
- $(use_with static-libs static-linked-ext) \
- $(use_enable debug) \
- ${myconf} \
- --enable-option-checking=no
-
- # Makefile is broken because it lacks -ldl
- rm -rf ext/-test-/popen_deadlock || die
-}
-
-src_compile() {
- emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS=""
-}
-
-src_test() {
- emake -j1 V=1 test
-
- elog "Ruby's make test has been run. Ruby also ships with a make check"
- elog "that cannot be run until after ruby has been installed."
- elog
- if use rubytests; then
- elog "You have enabled rubytests, so they will be installed to"
- elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
- elog "than root, and you must place them into a writeable directory."
- elog "Then call: "
- elog
- elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
- else
- elog "Enable the rubytests USE flag to install the make check tests"
- fi
-}
-
-src_install() {
- # Remove the remaining bundled gems. We do this late in the process
- # since they are used during the build to e.g. create the
- # documentation.
- rm -rf ext/json || die
- rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
-
- # Ruby is involved in the install process, we don't want interference here.
- unset RUBYOPT
-
- local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
-
- LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
- RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
- for d in $(find "${S}/ext" -type d) ; do
- RUBYLIB="${RUBYLIB}:$d"
- done
- export LD_LIBRARY_PATH RUBYLIB
-
- # Create directory for the default gems
- local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
- mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed"
-
- emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install
-
- # Remove installed rubygems and rdoc copy
- rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
- rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
- rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
- rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
-
- if use doc; then
- emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc
- fi
-
- if use examples; then
- dodoc -r sample
- fi
-
- dodoc ChangeLog NEWS doc/NEWS* README*
-
- if use rubytests; then
- pushd test
- insinto /usr/share/${PN}-${SLOT}/test
- doins -r .
- popd
- fi
-}
-
-pkg_postinst() {
- if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then
- eselect ruby set ruby${MY_SUFFIX}
- fi
-
- elog
- elog "To switch between available Ruby profiles, execute as root:"
- elog "\teselect ruby set ruby(23|24|...)"
- elog
-}
-
-pkg_postrm() {
- eselect ruby cleanup
-}
diff --git a/dev-lang/ruby/ruby-2.7.2.ebuild b/dev-lang/ruby/ruby-2.7.2.ebuild
index 1afe088cc0ea..138024506971 100644
--- a/dev-lang/ruby/ruby-2.7.2.ebuild
+++ b/dev-lang/ruby/ruby-2.7.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -17,7 +17,7 @@ HOMEPAGE="https://www.ruby-lang.org/"
SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
LICENSE="|| ( Ruby-BSD BSD-2 )"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs"
RDEPEND="
@@ -65,7 +65,7 @@ PDEPEND="
src_prepare() {
# 005 does not compile bigdecimal and is questionable because it
# compiles ruby in a non-standard way, may be dropped
- eapply "${FILESDIR}"/2.7/010*.patch
+ eapply "${FILESDIR}"/2.7/{002,010}*.patch
einfo "Unbundling gems..."
cd "$S"
diff --git a/dev-lang/ruby/ruby-2.7.1.ebuild b/dev-lang/ruby/ruby-3.0.0-r1.ebuild
index 49b0ce2ee2e1..5653275879f3 100644
--- a/dev-lang/ruby/ruby-2.7.1.ebuild
+++ b/dev-lang/ruby/ruby-3.0.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -17,8 +17,8 @@ HOMEPAGE="https://www.ruby-lang.org/"
SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
LICENSE="|| ( Ruby-BSD BSD-2 )"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
-IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs tk xemacs"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs"
RDEPEND="
berkdb? ( sys-libs/db:= )
@@ -30,6 +30,7 @@ RDEPEND="
libressl? ( dev-libs/libressl )
)
socks5? ( >=net-proxy/dante-1.1.13 )
+ systemtap? ( dev-util/systemtap )
tk? (
dev-lang/tcl:0=[threads]
dev-lang/tk:0=[threads]
@@ -38,39 +39,40 @@ RDEPEND="
dev-libs/libffi:=
sys-libs/readline:0=
sys-libs/zlib
- >=app-eselect/eselect-ruby-20171225
+ >=app-eselect/eselect-ruby-20201225
"
DEPEND="${RDEPEND}"
BUNDLED_GEMS="
- >=dev-ruby/minitest-5.13.0[ruby_targets_ruby27]
- >=dev-ruby/net-telnet-0.2.0[ruby_targets_ruby27]
- >=dev-ruby/power_assert-1.1.7[ruby_targets_ruby27]
- >=dev-ruby/rake-13.0.1[ruby_targets_ruby27]
- >=dev-ruby/test-unit-3.3.4[ruby_targets_ruby27]
- >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby27]
+ >=dev-ruby/minitest-5.14.2[ruby_targets_ruby30]
+ >=dev-ruby/power_assert-1.2.0[ruby_targets_ruby30]
+ >=dev-ruby/rake-13.0.3[ruby_targets_ruby30]
+ >=dev-ruby/rbs-1.0.0[ruby_targets_ruby30]
+ >=dev-ruby/rexml-3.2.4[ruby_targets_ruby30]
+ >=dev-ruby/rss-0.2.9[ruby_targets_ruby30]
+ >=dev-ruby/test-unit-3.3.7[ruby_targets_ruby30]
+ >=dev-ruby/typeprof-0.11.0[ruby_targets_ruby30]
"
PDEPEND="
${BUNDLED_GEMS}
- virtual/rubygems[ruby_targets_ruby27]
- >=dev-ruby/bundler-2.1.4[ruby_targets_ruby27]
- >=dev-ruby/did_you_mean-1.3.1[ruby_targets_ruby27]
- >=dev-ruby/json-2.0.2[ruby_targets_ruby27]
- rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby27] )
+ virtual/rubygems[ruby_targets_ruby30]
+ >=dev-ruby/bundler-2.1.4[ruby_targets_ruby30]
+ >=dev-ruby/did_you_mean-1.5.0[ruby_targets_ruby30]
+ >=dev-ruby/json-2.5.1[ruby_targets_ruby30]
+ rdoc? ( >=dev-ruby/rdoc-6.3.0[ruby_targets_ruby30] )
xemacs? ( app-xemacs/ruby-modes )"
src_prepare() {
- # 005 does not compile bigdecimal and is questionable because it
- # compiles ruby in a non-standard way, may be dropped
- eapply "${FILESDIR}"/2.7/010*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/{001,010}*.patch
einfo "Unbundling gems..."
cd "$S"
# Remove bundled gems that we will install via PDEPEND, bug
# 539700.
rm -fr gems/* || die
+ touch gems/bundled_gems || die
# Don't install CLI tools since they will clash with the gem
rm -f bin/{racc,racc2y,y2racc} || die
sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die
@@ -78,6 +80,23 @@ src_prepare() {
einfo "Removing bundled libraries..."
rm -fr ext/fiddle/libffi-3.2.1 || die
+ if use prefix ; then
+ # Fix hardcoded SHELL var in mkmf library
+ sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die
+
+ if [[ ${CHOST} == *darwin* ]] ; then
+ # avoid symlink loop on Darwin (?!)
+ sed -i \
+ -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \
+ configure.ac || die
+
+ # make ar/libtool hack for Darwin work
+ sed -i \
+ -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \
+ configure.ac || die
+ fi
+ fi
+
eapply_user
eautoreconf
@@ -128,6 +147,7 @@ src_configure() {
INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
--program-suffix=${MY_SUFFIX} \
--with-soname=ruby${MY_SUFFIX} \
+ --with-readline-dir="${EPREFIX}"/usr \
--enable-shared \
--enable-pthread \
--disable-rpath \
@@ -135,6 +155,7 @@ src_configure() {
$(use_with jemalloc jemalloc) \
$(use_enable jit jit-support ) \
$(use_enable socks5 socks) \
+ $(use_enable systemtap dtrace) \
$(use_enable doc install-doc) \
--enable-ipv6 \
$(use_enable static-libs static) \
@@ -183,6 +204,12 @@ src_install() {
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}"
+
+ if [[ ${CHOST} == *darwin* ]] ; then
+ DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
+ export DYLD_LIBRARY_PATH
+ fi
+
RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
for d in $(find "${S}/ext" -type d) ; do
RUBYLIB="${RUBYLIB}:$d"
@@ -209,7 +236,7 @@ src_install() {
dodoc -r sample
fi
- dodoc ChangeLog NEWS doc/NEWS* README*
+ dodoc ChangeLog NEWS.md doc/NEWS* README*
if use rubytests; then
pushd test
diff --git a/dev-lang/ruby/ruby-2.7.1-r2.ebuild b/dev-lang/ruby/ruby-3.0.0.ebuild
index e4e8048e083a..bd5074777ec7 100644
--- a/dev-lang/ruby/ruby-2.7.1-r2.ebuild
+++ b/dev-lang/ruby/ruby-3.0.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -17,7 +17,7 @@ HOMEPAGE="https://www.ruby-lang.org/"
SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
LICENSE="|| ( Ruby-BSD BSD-2 )"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit libressl +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs"
RDEPEND="
@@ -39,39 +39,40 @@ RDEPEND="
dev-libs/libffi:=
sys-libs/readline:0=
sys-libs/zlib
- >=app-eselect/eselect-ruby-20191222
+ >=app-eselect/eselect-ruby-20201225
"
DEPEND="${RDEPEND}"
BUNDLED_GEMS="
- >=dev-ruby/minitest-5.13.0[ruby_targets_ruby27]
- >=dev-ruby/net-telnet-0.2.0[ruby_targets_ruby27]
- >=dev-ruby/power_assert-1.1.7[ruby_targets_ruby27]
- >=dev-ruby/rake-13.0.1[ruby_targets_ruby27]
- >=dev-ruby/test-unit-3.3.4[ruby_targets_ruby27]
- >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby27]
+ >=dev-ruby/minitest-5.14.2[ruby_targets_ruby30]
+ >=dev-ruby/power_assert-1.2.0[ruby_targets_ruby30]
+ >=dev-ruby/rake-13.0.3[ruby_targets_ruby30]
+ >=dev-ruby/rbs-1.0.0[ruby_targets_ruby30]
+ >=dev-ruby/rexml-3.2.4[ruby_targets_ruby30]
+ >=dev-ruby/rss-0.2.9[ruby_targets_ruby30]
+ >=dev-ruby/test-unit-3.3.7[ruby_targets_ruby30]
+ >=dev-ruby/typeprof-0.11.0[ruby_targets_ruby30]
"
PDEPEND="
${BUNDLED_GEMS}
- virtual/rubygems[ruby_targets_ruby27]
- >=dev-ruby/bundler-2.1.4[ruby_targets_ruby27]
- >=dev-ruby/did_you_mean-1.3.1[ruby_targets_ruby27]
- >=dev-ruby/json-2.0.2[ruby_targets_ruby27]
- rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby27] )
+ virtual/rubygems[ruby_targets_ruby30]
+ >=dev-ruby/bundler-2.1.4[ruby_targets_ruby30]
+ >=dev-ruby/did_you_mean-1.5.0[ruby_targets_ruby30]
+ >=dev-ruby/json-2.5.1[ruby_targets_ruby30]
+ rdoc? ( >=dev-ruby/rdoc-6.3.0[ruby_targets_ruby30] )
xemacs? ( app-xemacs/ruby-modes )"
src_prepare() {
- # 005 does not compile bigdecimal and is questionable because it
- # compiles ruby in a non-standard way, may be dropped
- eapply "${FILESDIR}"/2.7/010*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/010*.patch
einfo "Unbundling gems..."
cd "$S"
# Remove bundled gems that we will install via PDEPEND, bug
# 539700.
rm -fr gems/* || die
+ touch gems/bundled_gems || die
# Don't install CLI tools since they will clash with the gem
rm -f bin/{racc,racc2y,y2racc} || die
sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die
@@ -79,6 +80,23 @@ src_prepare() {
einfo "Removing bundled libraries..."
rm -fr ext/fiddle/libffi-3.2.1 || die
+ if use prefix ; then
+ # Fix hardcoded SHELL var in mkmf library
+ sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die
+
+ if [[ ${CHOST} == *darwin* ]] ; then
+ # avoid symlink loop on Darwin (?!)
+ sed -i \
+ -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \
+ configure.ac || die
+
+ # make ar/libtool hack for Darwin work
+ sed -i \
+ -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \
+ configure.ac || die
+ fi
+ fi
+
eapply_user
eautoreconf
@@ -129,6 +147,7 @@ src_configure() {
INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
--program-suffix=${MY_SUFFIX} \
--with-soname=ruby${MY_SUFFIX} \
+ --with-readline-dir="${EPREFIX}"/usr \
--enable-shared \
--enable-pthread \
--disable-rpath \
@@ -185,6 +204,12 @@ src_install() {
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}"
+
+ if [[ ${CHOST} == *darwin* ]] ; then
+ DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
+ export DYLD_LIBRARY_PATH
+ fi
+
RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
for d in $(find "${S}/ext" -type d) ; do
RUBYLIB="${RUBYLIB}:$d"
@@ -211,7 +236,7 @@ src_install() {
dodoc -r sample
fi
- dodoc ChangeLog NEWS doc/NEWS* README*
+ dodoc ChangeLog NEWS.md doc/NEWS* README*
if use rubytests; then
pushd test
diff --git a/dev-lang/rust/rust-1.47.0-r2.ebuild b/dev-lang/rust/rust-1.47.0-r2.ebuild
index ff35e735097c..1c9019693b05 100644
--- a/dev-lang/rust/rust-1.47.0-r2.ebuild
+++ b/dev-lang/rust/rust-1.47.0-r2.ebuild
@@ -169,21 +169,50 @@ boostrap_rust_version_check() {
}
pre_build_checks() {
- local M=6144
- M=$(( $(usex clippy 128 0) + ${M} ))
- M=$(( $(usex miri 128 0) + ${M} ))
+ # minimal useflags with system-llvm and system-bootstrap
+ local M=7680
+
+ # approximate component sizes
+ M=$(( $(usex clippy 256 0) + ${M} ))
+ M=$(( $(usex miri 256 0) + ${M} ))
M=$(( $(usex rls 512 0) + ${M} ))
- M=$(( $(usex rustfmt 256 0) + ${M} ))
- M=$(( $(usex system-llvm 0 2048) + ${M} ))
- M=$(( $(usex wasm 256 0) + ${M} ))
+ M=$(( $(usex rustfmt 512 0) + ${M} ))
+ M=$(( $(usex wasm 512 0) + ${M} ))
+
+ # multiply by 1.5 if debug enabled
M=$(( $(usex debug 15 10) * ${M} / 10 ))
+
+ # multiply by 1.5 if target-cpu in rustflags
+ case "${RUSTFLAGS}" in
+ *target-cpu=*)
+ M=$(( 15 * ${M} / 10 ))
+ ;;
+ esac
+
+ # count all enabled llvm targets
+ if ! use system-llvm; then
+ # base requirement is about 2G and 0.5 per llvm target
+ M=$(( 2048 + ${M} ))
+ local llvm_target
+ for llvm_target in ${ALL_LLVM_TARGETS}; do
+ use "${llvm_target}" && M=$(( 512 + ${M} ))
+ done
+ fi
+
+ # multiply by 1.5 if debugging *flags found
eshopts_push -s extglob
if is-flagq '-g?(gdb)?([1-9])'; then
M=$(( 15 * ${M} / 10 ))
fi
eshopts_pop
- M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
- M=$(( $(usex doc 256 0) + ${M} ))
+
+ # account for bootstrap compiler
+ # on ppc64 we unpack both BE and LE archive, so double that.
+ M=$(( $(usex system-bootstrap 0 $(usex ppc64 2048 1024) ) + ${M} ))
+
+ # docs appended last as those usually don't depend on flags
+ M=$(( $(usex doc 512 0) + ${M} ))
+
CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
}
diff --git a/dev-lang/rust/rust-1.48.0.ebuild b/dev-lang/rust/rust-1.48.0.ebuild
index 355e8ab059b0..787ee609d147 100644
--- a/dev-lang/rust/rust-1.48.0.ebuild
+++ b/dev-lang/rust/rust-1.48.0.ebuild
@@ -510,8 +510,8 @@ src_install() {
)
# bug #689562, #689160
- rm -v "${D}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
- rmdir -v "${D}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
+ rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
+ rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
dobashcomp build/tmp/dist/cargo-image/etc/bash_completion.d/cargo
local symlinks=(
diff --git a/dev-lang/sassc/Manifest b/dev-lang/sassc/Manifest
index d002f7969d31..c79ef9284f41 100644
--- a/dev-lang/sassc/Manifest
+++ b/dev-lang/sassc/Manifest
@@ -1 +1,2 @@
DIST sassc-3.6.0.tar.gz 26111 BLAKE2B 91d634bd652607407c48f141aa39260739357f6eeb4bade1fff1bfdd4e4e6e0757712501395c913ef1a8944ec9174649fa5ce657af4afec6f9f0eb7f804e1ff2 SHA512 0d8de651b1587f4994a5da85ad09ec2ce6e240213dbaa567c6b9baa612fe82e337061d9a5a8a3a5588e4c366c1178b6fd04e9d699a0be3d83c68f98bac774527
+DIST sassc-3.6.1.tar.gz 26137 BLAKE2B 73aaabe4f4dab7efdaef591918da8a4bd79e98dff0105666548f00b09657f46d2e28523988d60eef7f4b1eedacbfe17638e96f5a9c98a5325ef9e56f681c0e28 SHA512 b6df8f481db0737ca08808c0849dcbd83e80799d883271d382607b7a74028153195f5f9c26768ffe1a9a92ee8c26be3c382ad7b3a5336eb6e4a0dad58132690e
diff --git a/dev-lang/sassc/sassc-3.6.1.ebuild b/dev-lang/sassc/sassc-3.6.1.ebuild
new file mode 100644
index 000000000000..309816f17dd5
--- /dev/null
+++ b/dev-lang/sassc/sassc-3.6.1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools
+
+SRC_URI="https://github.com/sass/sassc/archive/${PV}.tar.gz -> ${P}.tar.gz"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux"
+
+DESCRIPTION="A libsass command line driver"
+HOMEPAGE="https://github.com/sass/sassc"
+LICENSE="MIT"
+SLOT="0"
+IUSE=""
+
+RDEPEND="dev-libs/libsass:="
+DEPEND="${RDEPEND}"
+
+DOCS=( Readme.md )
+
+src_prepare() {
+ default
+ eautoreconf
+}
diff --git a/dev-lang/scala/scala-2.12.10.ebuild b/dev-lang/scala/scala-2.12.10.ebuild
index 4699867705bc..dca42db2ba4c 100644
--- a/dev-lang/scala/scala-2.12.10.ebuild
+++ b/dev-lang/scala/scala-2.12.10.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
@@ -48,7 +48,7 @@ SRC_URI="
)"
LICENSE="BSD"
SLOT="${SV}/${PV}"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~x86-macos"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
IUSE="binary emacs"
diff --git a/dev-lang/scala/scala-2.12.4.ebuild b/dev-lang/scala/scala-2.12.4.ebuild
index 715bb6f6fb0e..7c6e29bcd4cf 100644
--- a/dev-lang/scala/scala-2.12.4.ebuild
+++ b/dev-lang/scala/scala-2.12.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
@@ -70,7 +70,7 @@ SRC_URI="
https://dev.gentoo.org/~gienah/files/dist/${P}-gentoo-binary.tar.xz )"
LICENSE="BSD"
SLOT="${SV}/${PV}"
-KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux ~x86-macos"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
IUSE="binary emacs"
diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest
index a13d0ff063fa..9f61526c28bd 100644
--- a/dev-lang/spidermonkey/Manifest
+++ b/dev-lang/spidermonkey/Manifest
@@ -1,9 +1,6 @@
DIST firefox-68.0-patches-15.tar.xz 16060 BLAKE2B f9e6cd58ea51bed1af90a9d30fd551dc7e939afcd1b4d00de1271bd4bda94021c6f1799fd9945962c14ffa1fd0b6a6429369c4e45efc2000f179b9b2e46971e7 SHA512 9cb2479637dd8b84e0ab68dc0fe144acd2dc74feca282fd3c4b485ca6f0de8190244587622713a5421b243ccda153f738e9a8f463e87e15e93e9b725d943e128
DIST firefox-68.12.0esr.source.tar.xz 313856956 BLAKE2B eeaa4acc9fabf15ec1b313170a30cee8e1fc10a8b08512b915b83b7d6a81c09b365733ed94638bd434864fd7b0cb8cbf1bc2e43441be69e31117e8e6a099234c SHA512 839b02422e4c87bdb12e0995cd35ca8c1996f3fba00bbb46b419e46b67df5ec48a264cb14632db777ce29166ee4fdcb06e2ee3ce847e64328c58c9a2f9129f4c
-DIST firefox-78.4.1esr.source.tar.xz 334673424 BLAKE2B 3ba8bf545c4c2b92914bf7f63b539ba61dc2ee6c14fb8995a6d75adb4bd11988f1d47d2c64639cbecf7a4b01b99085e63af4eb3afc7a27047f03048ffa9c2c2d SHA512 287096ad67e86b307554475c3b5d1003a325d6d13987bfbec2ec79aa0f8004dce1614ab62585ba5cf153545618906ab640cd4657d5a910085afb3d8ceb46e8de
-DIST firefox-78.5.0esr.source.tar.xz 333995288 BLAKE2B 35140afb6b4d15052858e7864753ca74099edb24ed5e459f1f48114f0946f5e007486b5561ba9a545566033d71a69f0e6163dd17204cab717c441323972f089e SHA512 0d16013342b6e8d67adb5c111177ea4796db4fb593da8aa254d0d95bdf33fad798c2dbb235d44db4177c32dd2d7b3ac26b938b476342753ee8d6c83d968d0281
DIST firefox-78.6.0esr.source.tar.xz 338098664 BLAKE2B 9d082b6104bffbd0d918dc1adf2a01ac32613d8048faf399177834c4949714a00c1f4383b778a21d6b6684296d8f9bd44fa547ee2507a8631d206e3764d2ceeb SHA512 a1e2d6af0020784d00ed3cb4d778c136685e7c2f6ae536cc270fbd331d51d483d17dff9acd7ad8e6b3b231b9df894c146092889357b23715814a080c6f08d11a
-DIST firefox-78esr-patches-04.tar.xz 171504 BLAKE2B d51e55c255d1f5cfa0c7c030b1ea50cb54951bed3bc21b21f5cb3b1e4b8b2ad406b3d12db2baabd4a90e3c88a38f187f277e7a4afe441ea6cf82c48f84bb0ac5 SHA512 6f00ec898fafb34d7c7e0ff2a6fb5c1cbf1205458845e14eb39c131125c5bf6b2418fea1050bb72449ec40e18fd775fc844437ce0290281d66961de40a53235a
DIST firefox-78esr-patches-07.tar.xz 66156 BLAKE2B 8f69883432dcbd484b1fb15e3fde1630b1424e502ba78d9ec3cbe70cb2676a6876853d3477c8bfe35e92bca91b200e2d14543de1778d895676a52d2608109af2 SHA512 b4a01d3499002bd33a7fb45a1a80e9e73ba27a0986b6bfa43b3482dd8d82a686a14ae0c5e013402c8c8f359a642632a40bf4c362a0e83a1f53b453914f42e3a7
DIST js185-1.0.0.tar.gz 6164605 BLAKE2B 76a37f0ceae05d3475853875bd0ce4be6e525e4114816f8f281ea6fc6b60a71060975a0fa1cb843f57ad1e2f842dfb26b24244fa0fd6c20f6ae2ebbe430f70be SHA512 2af7122a7c7007fd7b6668776fe1222515a810b3e43bbf0f76b8f94e1ef406ffd3fb5ccec393021b00274c05b38a77235bc8d6886994c56762fcaf0aa7cf6718
DIST mozjs-52.9.1pre1.tar.bz2 30178574 BLAKE2B 0920432b5140e78297a9bcbccb54268d75a223d5e75e4ff90b3b01aab4f7736b4a4e05c47b3a925ff0a74607a0abad3b6583c75d070ef5142009b20ebaf6e4bf SHA512 187b231b246a5ae09e55c0fef77866b316d75f38f4c2e066d5d4325d8da63433027020c929439cab46af3253ac63ab2f780223a8fd2c6ff535b3409bb6c4aa0f
@@ -11,6 +8,5 @@ DIST mozjs-60.5.2.tar.bz2 32816585 BLAKE2B 45ac4c9646e1275faf60eeedbf486f802cd10
DIST spidermonkey-52.0-patches-1.tar.xz 3112 BLAKE2B d8f4c44cb2ae290fa51efc4725a2c1b3cd85dd9f04f4ccfa5681ba6df5f37f5d8d4ad6859316a70d0f7647ac2cee014d126f88b7d4ca74a82796f35b141200ef SHA512 5328403e3b9ecd1c456037e7cca374c2453d9331752c48b9466e498e22fd8d4ca6e1804e51140ee0be027fcef7d0c3f26822b1f569305a3b2f03209b7fb15499
DIST spidermonkey-60.0-patches-04.tar.xz 4428 BLAKE2B af78049cd9b3ee6a9b689e6253486c4670fd3b506faade7d745dafaa7af329c0bd15cd35e95528a4c96688230f4803130967fb09b97aae2bda0ce0f73acaaf3e SHA512 fb1326a81512146ba98773d4f7e0c4bc1bff0f076897c13f576fcf63b56f6965efeff633eea9160bca9f9bc4546505901084eabc33bc955de0b7ab3d6334387a
DIST spidermonkey-68.6.0-patches-04.tar.xz 5956 BLAKE2B b1250391a5173e676272d5926b710c06b0e9de1ff03b130a57fdac30f2deefbee3fa92250b37e28087572fe5cce73eb112ef4e1fb0c0401d6ecdb22ab9868998 SHA512 94575b11b4f006c6ee0c8d64b315734a173cecb68e9128ca61ba1a28177e3c149b8cf1f3b3c47a7a263fad8da6196fc0101df87392f016686a827e0cd24fdc74
-DIST spidermonkey-78-patches-02.tar.xz 3432 BLAKE2B 3ac46306f1740e704ed1aa8cb0f2a963d0b94bee60349ce31bc0ac477942781c9cdfa1d791a22e31c9258ade5d955cf6d32696ced73247777a908cb3e5c464c2 SHA512 d94c33d327d07072aa5ca66135ab2100e86acf38e091bf5b9644c537f77fb734433246a2f4bf58bf76d884510bce565b6ab75c23472be7e9d1f566dc4e812b5c
DIST spidermonkey-78-patches-03.tar.xz 3732 BLAKE2B 5dc47527581c010994a102e6458119c762ec3836f57e403cbaac88c457f5f119bd75ae1a067307b20d229536f75db4b2b797408874d28156667ac63b61de8501 SHA512 f0921562dcd0ea519bf3f5ef2da43f87565e92493781d56e6e0b73d4124f41e7aadd34d8285bbb181f4286160dde0c9684920e98058f0683143a2687eb93cc1a
DIST spidermonkey-slot0-patches-02.tar.xz 10952 BLAKE2B fb7bf5cdac6c821a48d407ff172fe0ec7297e047d3b3bab952f226f413b83ea70325175b41c1680725ff588111b424efc97a0c66e392989da510c43d38528ff1 SHA512 cd62890c4b58658d99fc1b52f05ccb35c07da835b168bb9d5e6b219de5021122c199cc2255c5b0be01ef582f53dd51c9975921e6bde9f14e9b43536e2bee85f2
diff --git a/dev-lang/spidermonkey/spidermonkey-1.8.5-r9.ebuild b/dev-lang/spidermonkey/spidermonkey-1.8.5-r9.ebuild
index 805db3b4b0ab..aba809049ed0 100644
--- a/dev-lang/spidermonkey/spidermonkey-1.8.5-r9.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-1.8.5-r9.ebuild
@@ -19,7 +19,7 @@ SRC_URI="https://archive.mozilla.org/pub/js/${TARBALL_P}.tar.gz
LICENSE="NPL-1.1"
SLOT="0/mozjs185"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 s390 x86 ~x64-macos"
IUSE="debug minimal static-libs test"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/spidermonkey/spidermonkey-52.9.1_pre1-r2.ebuild b/dev-lang/spidermonkey/spidermonkey-52.9.1_pre1-r2.ebuild
index 8ee26fbc1d3f..5b47c03a9c44 100644
--- a/dev-lang/spidermonkey/spidermonkey-52.9.1_pre1-r2.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-52.9.1_pre1-r2.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 x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 s390 x86"
IUSE="debug minimal +system-icu test"
# Disable tests:
diff --git a/dev-lang/spidermonkey/spidermonkey-60.5.2_p0-r4.ebuild b/dev-lang/spidermonkey/spidermonkey-60.5.2_p0-r4.ebuild
index 264bc2a0d8d7..52f96f099364 100644
--- a/dev-lang/spidermonkey/spidermonkey-60.5.2_p0-r4.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-60.5.2_p0-r4.ebuild
@@ -17,7 +17,7 @@ SRC_URI="https://dev.gentoo.org/~axs/distfiles/${MY_P}.tar.bz2
LICENSE="NPL-1.1"
SLOT="60"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 s390 sparc x86"
IUSE="debug +jit minimal +system-icu test"
# Disable tests:
diff --git a/dev-lang/spidermonkey/spidermonkey-78.4.1.ebuild b/dev-lang/spidermonkey/spidermonkey-78.4.1.ebuild
deleted file mode 100644
index 825986f73f66..000000000000
--- a/dev-lang/spidermonkey/spidermonkey-78.4.1.ebuild
+++ /dev/null
@@ -1,303 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-# Patch version
-FIREFOX_PATCHSET="firefox-78esr-patches-04.tar.xz"
-SPIDERMONKEY_PATCHSET="spidermonkey-78-patches-02.tar.xz"
-
-PYTHON_COMPAT=( python3_{6,7,8,9,10} )
-
-WANT_AUTOCONF="2.1"
-
-inherit autotools check-reqs flag-o-matic multiprocessing python-any-r1 toolchain-funcs
-
-MY_PN="mozjs"
-MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
-
-MY_MAJOR=$(ver_cut 1)
-
-MOZ_ESR=yes
-
-MOZ_PV=${PV}
-MOZ_PV_SUFFIX=
-if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
- MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
-
- # Convert the ebuild version to the upstream Mozilla version
- MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
- MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
- MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
-fi
-
-if [[ -n ${MOZ_ESR} ]] ; then
- # ESR releases have slightly different version numbers
- MOZ_PV="${MOZ_PV}esr"
-fi
-
-MOZ_PN="firefox"
-MOZ_P="${MOZ_PN}-${MOZ_PV}"
-MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
-MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
-
-MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
-
-if [[ ${PV} == *_rc* ]] ; then
- MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
-fi
-
-PATCH_URIS=(
- https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${FIREFOX_PATCHSET}
- https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
-)
-
-SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
- ${PATCH_URIS[@]}"
-
-DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
-HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-
-KEYWORDS="amd64 arm arm64 ~mips ppc64 ~s390 x86"
-
-SLOT="78"
-LICENSE="MPL-2.0"
-IUSE="cpu_flags_arm_neon debug +jit lto test"
-
-RESTRICT="!test? ( test )"
-
-BDEPEND="${PYTHON_DEPS}
- sys-devel/llvm
- >=virtual/rust-1.41.0
- virtual/pkgconfig"
-
-CDEPEND=">=dev-libs/icu-67.1:=
- >=dev-libs/nspr-4.25
- sys-libs/readline:0=
- >=sys-libs/zlib-1.2.3"
-
-DEPEND="${CDEPEND}
- test? (
- $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
- )"
-
-RDEPEND="${CDEPEND}"
-
-S="${WORKDIR}/firefox-${MY_PV}/js/src"
-
-python_check_deps() {
- if use test ; then
- has_version "dev-python/six[${PYTHON_USEDEP}]"
- fi
-}
-
-pkg_pretend() {
- if use test ; then
- CHECKREQS_DISK_BUILD="7600M"
- else
- CHECKREQS_DISK_BUILD="6400M"
- fi
-
- check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- if use test ; then
- CHECKREQS_DISK_BUILD="7600M"
- else
- CHECKREQS_DISK_BUILD="6400M"
- fi
-
- check-reqs_pkg_setup
-
- python-any-r1_pkg_setup
-
- # Build system is using /proc/self/oom_score_adj, bug #604394
- addpredict /proc/self/oom_score_adj
-
- if ! mountpoint -q /dev/shm ; then
- # If /dev/shm is not available, configure is known to fail with
- # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
- ewarn "/dev/shm is not mounted -- expect build failures!"
- fi
-}
-
-src_prepare() {
- pushd ../.. &>/dev/null || die
-
- use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
-
- eapply "${WORKDIR}"/firefox-patches
- eapply "${WORKDIR}"/spidermonkey-patches
-
- default
-
- # Make LTO respect MAKEOPTS
- sed -i \
- -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
- build/moz.configure/lto-pgo.configure \
- || die "sed failed to set num_cores"
-
- # sed-in toolchain prefix
- sed -i \
- -e "s/objdump/${CHOST}-objdump/" \
- python/mozbuild/mozbuild/configure/check_debug_ranges.py \
- || die "sed failed to set toolchain prefix"
-
- einfo "Removing pre-built binaries ..."
- find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
-
- MOZJS_BUILDDIR="${WORKDIR}/build"
- mkdir "${MOZJS_BUILDDIR}" || die
-
- popd &>/dev/null || die
- eautoconf
-}
-
-src_configure() {
- tc-export CC CXX LD AR RANLIB
-
- cd "${MOZJS_BUILDDIR}" || die
-
- # ../python/mach/mach/mixin/process.py fails to detect SHELL
- export SHELL="${EPREFIX}/bin/bash"
-
- local -a myeconfargs=(
- --host="${CBUILD:-${CHOST}}"
- --target="${CHOST}"
- --disable-jemalloc
- --disable-optimize
- --disable-strip
- --enable-readline
- --enable-shared-js
- --with-intl-api
- --with-system-icu
- --with-system-nspr
- --with-system-zlib
- --with-toolchain-prefix="${CHOST}-"
- $(use_enable debug)
- $(use_enable jit)
- $(use_enable test tests)
- )
-
- if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
- myeconfargs+=( --enable-rust-simd )
- fi
-
- # Modifications to better support ARM, bug 717344
- if use cpu_flags_arm_neon ; then
- myeconfargs+=( --with-fpu=neon )
-
- if ! tc-is-clang ; then
- # thumb options aren't supported when using clang, bug 666966
- myeconfargs+=( --with-thumb=yes )
- myeconfargs+=( --with-thumb-interwork=no )
- fi
- fi
-
- # Tell build system that we want to use LTO
- if use lto ; then
- myeconfargs+=( --enable-lto )
- fi
-
- # LTO flag was handled via configure
- filter-flags '-flto*'
-
- # Forcing system-icu allows us to skip patching bundled ICU for PPC
- # and other minor arches
- ECONF_SOURCE="${S}" \
- econf \
- ${myeconfargs[@]} \
- XARGS="${EPREFIX}/usr/bin/xargs"
-}
-
-src_compile() {
- cd "${MOZJS_BUILDDIR}" || die
- default
-}
-
-src_test() {
- if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
- einfo "Smoke-test successful, continuing with full test suite"
- else
- die "Smoke-test failed: did interpreter initialization fail?"
- fi
-
- local -a KNOWN_TESTFAILURES
- KNOWN_TESTFAILURES+=( non262/Date/reset-time-zone-cache-same-offset.js )
- KNOWN_TESTFAILURES+=( non262/Date/time-zone-path.js )
- KNOWN_TESTFAILURES+=( non262/Date/time-zones-historic.js )
- KNOWN_TESTFAILURES+=( non262/Date/time-zones-imported.js )
- KNOWN_TESTFAILURES+=( non262/Date/toString-localized.js )
- KNOWN_TESTFAILURES+=( non262/Date/toString-localized-posix.js )
- KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/timeZone_backward_links.js )
- KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/tz-environment-variable.js )
- KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags.js )
- KNOWN_TESTFAILURES+=( test262/intl402/Locale/prototype/minimize/removing-likely-subtags-first-adds-likely-subtags.js )
-
- if use x86 ; then
- KNOWN_TESTFAILURES+=( non262/Date/timeclip.js )
- KNOWN_TESTFAILURES+=( test262/built-ins/Number/prototype/toPrecision/return-values.js )
- KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.1.js )
- KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.2.js )
- fi
-
- if [[ $(tc-endian) == "big" ]] ; then
- KNOWN_TESTFAILURES+=( test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js )
- fi
-
- echo "" > "${T}"/known_failures.list || die
-
- local KNOWN_TESTFAILURE
- for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
- echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
- done
-
- PYTHONPATH="${S}/tests/lib" \
- ${PYTHON} \
- "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
- --exclude-file="${T}"/known_failures.list \
- "${MOZJS_BUILDDIR}"/js/src/js \
- || die
-
- if use jit ; then
- KNOWN_TESTFAILURES=()
-
- echo "" > "${T}"/known_failures.list || die
-
- for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
- echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
- done
-
- PYTHONPATH="${S}/tests/lib" \
- ${PYTHON} \
- "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
- --exclude-file="${T}"/known_failures.list \
- "${MOZJS_BUILDDIR}"/js/src/js basic \
- || die
- fi
-}
-
-src_install() {
- cd "${MOZJS_BUILDDIR}" || die
- default
-
- # fix soname links
- pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
- mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
- popd &>/dev/null || die
-
- # remove unneeded files
- rm \
- "${ED}"/usr/bin/js${MY_MAJOR}-config \
- "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
- || die
-
- # fix permissions
- chmod -x \
- "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
- "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
- || die
-}
diff --git a/dev-lang/spidermonkey/spidermonkey-78.5.0.ebuild b/dev-lang/spidermonkey/spidermonkey-78.5.0.ebuild
deleted file mode 100644
index 5da12e4d4c6f..000000000000
--- a/dev-lang/spidermonkey/spidermonkey-78.5.0.ebuild
+++ /dev/null
@@ -1,303 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-# Patch version
-FIREFOX_PATCHSET="firefox-78esr-patches-07.tar.xz"
-SPIDERMONKEY_PATCHSET="spidermonkey-78-patches-02.tar.xz"
-
-PYTHON_COMPAT=( python3_{6,7,8,9,10} )
-
-WANT_AUTOCONF="2.1"
-
-inherit autotools check-reqs flag-o-matic multiprocessing python-any-r1 toolchain-funcs
-
-MY_PN="mozjs"
-MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
-
-MY_MAJOR=$(ver_cut 1)
-
-MOZ_ESR=yes
-
-MOZ_PV=${PV}
-MOZ_PV_SUFFIX=
-if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
- MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
-
- # Convert the ebuild version to the upstream Mozilla version
- MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
- MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
- MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
-fi
-
-if [[ -n ${MOZ_ESR} ]] ; then
- # ESR releases have slightly different version numbers
- MOZ_PV="${MOZ_PV}esr"
-fi
-
-MOZ_PN="firefox"
-MOZ_P="${MOZ_PN}-${MOZ_PV}"
-MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
-MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
-
-MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
-
-if [[ ${PV} == *_rc* ]] ; then
- MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
-fi
-
-PATCH_URIS=(
- https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${FIREFOX_PATCHSET}
- https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
-)
-
-SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
- ${PATCH_URIS[@]}"
-
-DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
-HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-
-KEYWORDS="amd64 arm arm64 ~mips ppc64 ~s390 x86"
-
-SLOT="78"
-LICENSE="MPL-2.0"
-IUSE="cpu_flags_arm_neon debug +jit lto test"
-
-RESTRICT="!test? ( test )"
-
-BDEPEND="${PYTHON_DEPS}
- sys-devel/llvm
- >=virtual/rust-1.41.0
- virtual/pkgconfig"
-
-CDEPEND=">=dev-libs/icu-67.1:=
- >=dev-libs/nspr-4.25
- sys-libs/readline:0=
- >=sys-libs/zlib-1.2.3"
-
-DEPEND="${CDEPEND}
- test? (
- $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
- )"
-
-RDEPEND="${CDEPEND}"
-
-S="${WORKDIR}/firefox-${MY_PV}/js/src"
-
-python_check_deps() {
- if use test ; then
- has_version "dev-python/six[${PYTHON_USEDEP}]"
- fi
-}
-
-pkg_pretend() {
- if use test ; then
- CHECKREQS_DISK_BUILD="7600M"
- else
- CHECKREQS_DISK_BUILD="6400M"
- fi
-
- check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- if use test ; then
- CHECKREQS_DISK_BUILD="7600M"
- else
- CHECKREQS_DISK_BUILD="6400M"
- fi
-
- check-reqs_pkg_setup
-
- python-any-r1_pkg_setup
-
- # Build system is using /proc/self/oom_score_adj, bug #604394
- addpredict /proc/self/oom_score_adj
-
- if ! mountpoint -q /dev/shm ; then
- # If /dev/shm is not available, configure is known to fail with
- # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
- ewarn "/dev/shm is not mounted -- expect build failures!"
- fi
-}
-
-src_prepare() {
- pushd ../.. &>/dev/null || die
-
- use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
-
- eapply "${WORKDIR}"/firefox-patches
- eapply "${WORKDIR}"/spidermonkey-patches
-
- default
-
- # Make LTO respect MAKEOPTS
- sed -i \
- -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
- build/moz.configure/lto-pgo.configure \
- || die "sed failed to set num_cores"
-
- # sed-in toolchain prefix
- sed -i \
- -e "s/objdump/${CHOST}-objdump/" \
- python/mozbuild/mozbuild/configure/check_debug_ranges.py \
- || die "sed failed to set toolchain prefix"
-
- einfo "Removing pre-built binaries ..."
- find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
-
- MOZJS_BUILDDIR="${WORKDIR}/build"
- mkdir "${MOZJS_BUILDDIR}" || die
-
- popd &>/dev/null || die
- eautoconf
-}
-
-src_configure() {
- tc-export CC CXX LD AR RANLIB
-
- cd "${MOZJS_BUILDDIR}" || die
-
- # ../python/mach/mach/mixin/process.py fails to detect SHELL
- export SHELL="${EPREFIX}/bin/bash"
-
- local -a myeconfargs=(
- --host="${CBUILD:-${CHOST}}"
- --target="${CHOST}"
- --disable-jemalloc
- --disable-optimize
- --disable-strip
- --enable-readline
- --enable-shared-js
- --with-intl-api
- --with-system-icu
- --with-system-nspr
- --with-system-zlib
- --with-toolchain-prefix="${CHOST}-"
- $(use_enable debug)
- $(use_enable jit)
- $(use_enable test tests)
- )
-
- if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
- myeconfargs+=( --enable-rust-simd )
- fi
-
- # Modifications to better support ARM, bug 717344
- if use cpu_flags_arm_neon ; then
- myeconfargs+=( --with-fpu=neon )
-
- if ! tc-is-clang ; then
- # thumb options aren't supported when using clang, bug 666966
- myeconfargs+=( --with-thumb=yes )
- myeconfargs+=( --with-thumb-interwork=no )
- fi
- fi
-
- # Tell build system that we want to use LTO
- if use lto ; then
- myeconfargs+=( --enable-lto )
- fi
-
- # LTO flag was handled via configure
- filter-flags '-flto*'
-
- # Forcing system-icu allows us to skip patching bundled ICU for PPC
- # and other minor arches
- ECONF_SOURCE="${S}" \
- econf \
- ${myeconfargs[@]} \
- XARGS="${EPREFIX}/usr/bin/xargs"
-}
-
-src_compile() {
- cd "${MOZJS_BUILDDIR}" || die
- default
-}
-
-src_test() {
- if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
- einfo "Smoke-test successful, continuing with full test suite"
- else
- die "Smoke-test failed: did interpreter initialization fail?"
- fi
-
- local -a KNOWN_TESTFAILURES
- KNOWN_TESTFAILURES+=( non262/Date/reset-time-zone-cache-same-offset.js )
- KNOWN_TESTFAILURES+=( non262/Date/time-zone-path.js )
- KNOWN_TESTFAILURES+=( non262/Date/time-zones-historic.js )
- KNOWN_TESTFAILURES+=( non262/Date/time-zones-imported.js )
- KNOWN_TESTFAILURES+=( non262/Date/toString-localized.js )
- KNOWN_TESTFAILURES+=( non262/Date/toString-localized-posix.js )
- KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/timeZone_backward_links.js )
- KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/tz-environment-variable.js )
- KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags.js )
- KNOWN_TESTFAILURES+=( test262/intl402/Locale/prototype/minimize/removing-likely-subtags-first-adds-likely-subtags.js )
-
- if use x86 ; then
- KNOWN_TESTFAILURES+=( non262/Date/timeclip.js )
- KNOWN_TESTFAILURES+=( test262/built-ins/Number/prototype/toPrecision/return-values.js )
- KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.1.js )
- KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.2.js )
- fi
-
- if [[ $(tc-endian) == "big" ]] ; then
- KNOWN_TESTFAILURES+=( test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js )
- fi
-
- echo "" > "${T}"/known_failures.list || die
-
- local KNOWN_TESTFAILURE
- for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
- echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
- done
-
- PYTHONPATH="${S}/tests/lib" \
- ${PYTHON} \
- "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
- --exclude-file="${T}"/known_failures.list \
- "${MOZJS_BUILDDIR}"/js/src/js \
- || die
-
- if use jit ; then
- KNOWN_TESTFAILURES=()
-
- echo "" > "${T}"/known_failures.list || die
-
- for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
- echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
- done
-
- PYTHONPATH="${S}/tests/lib" \
- ${PYTHON} \
- "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
- --exclude-file="${T}"/known_failures.list \
- "${MOZJS_BUILDDIR}"/js/src/js basic \
- || die
- fi
-}
-
-src_install() {
- cd "${MOZJS_BUILDDIR}" || die
- default
-
- # fix soname links
- pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
- mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
- popd &>/dev/null || die
-
- # remove unneeded files
- rm \
- "${ED}"/usr/bin/js${MY_MAJOR}-config \
- "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
- || die
-
- # fix permissions
- chmod -x \
- "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
- "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
- || die
-}
diff --git a/dev-lang/spidermonkey/spidermonkey-78.6.0.ebuild b/dev-lang/spidermonkey/spidermonkey-78.6.0.ebuild
index 1602c8663be7..880783ce8b19 100644
--- a/dev-lang/spidermonkey/spidermonkey-78.6.0.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-78.6.0.ebuild
@@ -60,11 +60,11 @@ SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}
DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc64 ~s390 ~x86"
+KEYWORDS="amd64 arm arm64 ~mips ppc64 ~s390 x86"
SLOT="78"
LICENSE="MPL-2.0"
-IUSE="+clang cpu_flags_arm_neon debug +jit lto test"
+IUSE="clang cpu_flags_arm_neon debug +jit lto test"
RESTRICT="!test? ( test )"
@@ -113,16 +113,18 @@ RDEPEND="${CDEPEND}"
S="${WORKDIR}/firefox-${MY_PV}/js/src"
llvm_check_deps() {
- if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
- ewarn "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if use clang && use lto ; then
- if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
- ewarn "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ if use clang ; then
+ if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+ ewarn "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
return 1
fi
+
+ if use lto ; then
+ if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+ ewarn "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
fi
einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
@@ -226,6 +228,7 @@ src_prepare() {
src_configure() {
# Show flags set at the beginning
einfo "Current CFLAGS: ${CFLAGS}"
+ einfo "Current CXXFLAGS: ${CXXFLAGS}"
einfo "Current LDFLAGS: ${LDFLAGS}"
einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
@@ -313,8 +316,16 @@ src_configure() {
# LTO flag was handled via configure
filter-flags '-flto*'
+ if tc-is-gcc ; then
+ if ver_test $(gcc-fullversion) -ge 10 ; then
+ einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
+ append-cxxflags -fno-tree-loop-vectorize
+ fi
+ fi
+
# Show flags we will use
einfo "Build CFLAGS: ${CFLAGS}"
+ einfo "Build CXXFLAGS: ${CXXFLAGS}"
einfo "Build LDFLAGS: ${LDFLAGS}"
einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
@@ -345,9 +356,16 @@ src_test() {
KNOWN_TESTFAILURES+=( non262/Date/time-zones-imported.js )
KNOWN_TESTFAILURES+=( non262/Date/toString-localized.js )
KNOWN_TESTFAILURES+=( non262/Date/toString-localized-posix.js )
+ KNOWN_TESTFAILURES+=( non262/Intl/Date/toLocaleString_timeZone.js )
+ KNOWN_TESTFAILURES+=( non262/Intl/Date/toLocaleDateString_timeZone.js )
+ KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/format.js )
+ KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/format_timeZone.js )
KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/timeZone_backward_links.js )
KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/tz-environment-variable.js )
+ KNOWN_TESTFAILURES+=( non262/Intl/DisplayNames/language.js )
+ KNOWN_TESTFAILURES+=( non262/Intl/DisplayNames/region.js )
KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags.js )
+ KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags-generated.js )
KNOWN_TESTFAILURES+=( test262/intl402/Locale/prototype/minimize/removing-likely-subtags-first-adds-likely-subtags.js )
if use x86 ; then
diff --git a/dev-lang/swi-prolog/Manifest b/dev-lang/swi-prolog/Manifest
index e3dbe78584be..bb6e273db518 100644
--- a/dev-lang/swi-prolog/Manifest
+++ b/dev-lang/swi-prolog/Manifest
@@ -1,4 +1,7 @@
+DIST swi-prolog-8.2.2-gentoo-patchset-0.tar.gz 539 BLAKE2B 53d8f4aeb6f83eae628027f3f4d581f7a8c4e7e6c763350acc85bd0cc4ec4f6e8d7afe680763afc4bef9e5babb8100aeca0f887d029ffa115f4ead89cbc48cdd SHA512 d745b978c6926ed6b9f84d98c5cfd08716aaebe05bcf4a6fd9bd647a5d265b731e4daf2c0f5028eac36d7cea052eb52f80fe8287d4e9e285b3b8ffd544408da1
+DIST swi-prolog-8.2.3-gentoo-patchset-0.tar.gz 535 BLAKE2B bb7869c5166104a3a7faa88dd14284ea147ab5090695ff1c950365823451ac656403bee97c7dd4a039e2d58085456842f8bbc7caa26d18916c6f8718a204097c SHA512 c1f0dce1e336c79fe84a3f9d0fe5e873d33c00071f91cbb683a73fbceaba1c6ca8c2875b58045829eafcbee78a0e713009a07bd51a2c56bf146f14881899f934
DIST swipl-8.2.1.tar.gz 10969688 BLAKE2B 754678d9683999b681e62321423df01c4d28ac0aefb5b836134790112a76a2710cc3b433d381f4b11756727037cada026a2778445fe533f51a5543332ca86e82 SHA512 b49fa0832b4bad3b48256c97538172a06e7a4c50b55823dad345360f98055f0702e7a10fb2bfdb636e3fd99557bcb243cfccbaccb7546cb2afd13335f1c09db8
DIST swipl-8.2.2.tar.gz 11002077 BLAKE2B 581c3ea83d2440cbe2454ba12ea2752bec9fda926f3afef6e36de1bbf70b43b34931ad768335bb15809a3d76959c7eec7dd3ad54a0a4085ad8ba34075dd3f4d9 SHA512 fb77cfd58932dc35c3d808899c1f493ffb22a58f56fe364ce0c0b48b8cabdd204d4f920346c39f696fadd9ee8335e163a8eb8d0a770c2835d803f030c1f3f878
-DIST swipl-8.3.10.tar.gz 11095901 BLAKE2B ff695f3a9ed77b8062c8e19fe0f099b3fe1a2ed84beacd965f133d2fa4c2b873ce95d0af6a71a9c5f8c8033b6026e72585ad36dbd7537cb90c5bd98bf852cff7 SHA512 f34e53df42ba3cfdce6be96a2c5dba9ecd0a938f1df9824522c852d8d1b7e42e1de96cebd7c988d9e9091a12cfc791f3916e198e8bb08e8798fc8b196c48058d
-DIST swipl-8.3.11.tar.gz 11098611 BLAKE2B 5ec01773be2466ac8e35f9cba5a5ce4b5c96beafed6e294ecff649a24dbfa332d1280d3022a379a68d8bee2080efb2616737a5e7f4113cc5301e7f4b8fc9a089 SHA512 f0d6bd40127d077a04028c9800c798f6745d80f9852b38d770bd9b1a4778652a90d13c04be1fb4f650c250bb95f9a7e576bfc6c298f8eac608cc96edadb77963
+DIST swipl-8.2.3.tar.gz 10999577 BLAKE2B 57cfa9f6fb97f0136a35da1850c7ae8da123d1c18fe6e18597d1b2131b7304a638d42d673efad2a01eaf3f9dad7b4754e6feb64917423abda002323bfc8dec8c SHA512 cd9ffc8a963682c0d02cec4b76338352459e004e07f3e5c0f02b3c2f9b19f23fe9639e037cf52531491a41c201113138f0b6a039d401e891ad5774383b0d852f
+DIST swipl-8.3.16.tar.gz 11123493 BLAKE2B 6d9566762b5d96a20a27dece39d895e2b29d3555dffe1d0495d8f8f579443ae2c37df2b0fe89c3fa6cc95743f55efdc6a4d6653e6cd1ba5ff8489181f8c7fc5a SHA512 ceaef49d29eac3a100e6d51e1bcc4e7925ce682ffda8bd2a668463b870a25e163c6d9e538c0cd46ffdc9a709c720ba9b31137a7c24a8087ea3bc0a1616304b00
+DIST swipl-8.3.17.tar.gz 11120834 BLAKE2B bc0c05a3305d30ec98f636e141b1d22e3ad06444ae98e7bb5b42a2a0e120effb68594f7c8af6da2fde915dfa679635c779a2a45144452e1b3598178b9e6095f5 SHA512 498fd807623d9ab596ce127a60430864faff6d803f63a77ef22fcbcd4e6ad02a9d6a528e0a782f68b9f92d3efd74838b95d72c1717b79000153f55ad4037b180
diff --git a/dev-lang/swi-prolog/swi-prolog-8.2.1.ebuild b/dev-lang/swi-prolog/swi-prolog-8.2.1.ebuild
index 13005e5a8487..dc429e1fd04a 100644
--- a/dev-lang/swi-prolog/swi-prolog-8.2.1.ebuild
+++ b/dev-lang/swi-prolog/swi-prolog-8.2.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -13,7 +13,7 @@ SRC_URI="https://www.swi-prolog.org/download/stable/src/swipl-${PV}.tar.gz"
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="archive berkdb debug doc +gmp java +libedit libressl minimal odbc pcre qt5 readline ssl test uuid X yaml"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/swi-prolog/swi-prolog-8.2.2.ebuild b/dev-lang/swi-prolog/swi-prolog-8.2.2.ebuild
index 236f4baaec6a..2b133f70327b 100644
--- a/dev-lang/swi-prolog/swi-prolog-8.2.2.ebuild
+++ b/dev-lang/swi-prolog/swi-prolog-8.2.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -9,11 +9,12 @@ PATCHSET_VER="0"
DESCRIPTION="versatile implementation of the Prolog programming language"
HOMEPAGE="https://www.swi-prolog.org/"
-SRC_URI="https://www.swi-prolog.org/download/stable/src/swipl-${PV}.tar.gz"
+SRC_URI="https://www.swi-prolog.org/download/stable/src/swipl-${PV}.tar.gz
+ https://dev.gentoo.org/~keri/distfiles/swi-prolog/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="archive berkdb debug doc +gmp java +libedit libressl minimal odbc pcre qt5 readline ssl test uuid X yaml"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/swi-prolog/swi-prolog-8.2.3.ebuild b/dev-lang/swi-prolog/swi-prolog-8.2.3.ebuild
new file mode 100644
index 000000000000..801eae67bea6
--- /dev/null
+++ b/dev-lang/swi-prolog/swi-prolog-8.2.3.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-utils eutils flag-o-matic multilib
+
+PATCHSET_VER="0"
+
+DESCRIPTION="versatile implementation of the Prolog programming language"
+HOMEPAGE="https://www.swi-prolog.org/"
+SRC_URI="https://www.swi-prolog.org/download/stable/src/swipl-${PV}.tar.gz
+ https://dev.gentoo.org/~keri/distfiles/swi-prolog/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="archive berkdb debug doc +gmp java +libedit libressl minimal odbc pcre qt5 readline ssl test uuid X yaml"
+RESTRICT="!test? ( test )"
+
+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/libXinerama
+ 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() {
+ if [[ -d "${WORKDIR}"/${PV} ]] ; then
+ eapply "${WORKDIR}"/${PV}
+ fi
+ eapply_user
+
+ sed -i -e "s|\(SWIPL_INSTALL_PREFIX\) lib/.*)|\1 $(get_libdir)/swipl)|" CMakeLists.txt || die
+ sed -i -e "s|\(SWIPL_INSTALL_CMAKE_CONFIG_DIR\) lib/|\1 $(get_libdir)/|" CMakeLists.txt || die
+
+ 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=$(use doc && usex archive)
+ -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_compile() {
+ XDG_CONFIG_DIRS="${HOME}" \
+ XDG_DATA_DIRS="${HOME}" \
+ cmake-utils_src_compile
+}
+
+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-8.3.10.ebuild b/dev-lang/swi-prolog/swi-prolog-8.3.16.ebuild
index f02a39ebffc1..6b53431e51f5 100644
--- a/dev-lang/swi-prolog/swi-prolog-8.3.10.ebuild
+++ b/dev-lang/swi-prolog/swi-prolog-8.3.16.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -13,7 +13,7 @@ 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"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="archive berkdb debug doc +gmp java +libedit libressl minimal odbc pcre qt5 readline ssl test uuid X yaml"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/swi-prolog/swi-prolog-8.3.11.ebuild b/dev-lang/swi-prolog/swi-prolog-8.3.17.ebuild
index f02a39ebffc1..6b53431e51f5 100644
--- a/dev-lang/swi-prolog/swi-prolog-8.3.11.ebuild
+++ b/dev-lang/swi-prolog/swi-prolog-8.3.17.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -13,7 +13,7 @@ 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"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="archive berkdb debug doc +gmp java +libedit libressl minimal odbc pcre qt5 readline ssl test uuid X yaml"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/swig/swig-3.0.12.ebuild b/dev-lang/swig/swig-3.0.12.ebuild
index 621fadfae329..6d79e6eae88f 100644
--- a/dev-lang/swig/swig-3.0.12.ebuild
+++ b/dev-lang/swig/swig-3.0.12.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -9,7 +9,7 @@ SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
LICENSE="GPL-3+ BSD BSD-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE="ccache doc pcre"
RESTRICT="test"
diff --git a/dev-lang/swig/swig-4.0.0.ebuild b/dev-lang/swig/swig-4.0.0.ebuild
index 42c8e3b47891..dfdde9ed56a5 100644
--- a/dev-lang/swig/swig-4.0.0.ebuild
+++ b/dev-lang/swig/swig-4.0.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -11,7 +11,7 @@ SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
LICENSE="GPL-3+ BSD BSD-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE="ccache doc pcre"
RESTRICT="test"
diff --git a/dev-lang/swig/swig-4.0.2.ebuild b/dev-lang/swig/swig-4.0.2.ebuild
index d0725b81f327..5696d2e21c1b 100644
--- a/dev-lang/swig/swig-4.0.2.ebuild
+++ b/dev-lang/swig/swig-4.0.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -11,7 +11,7 @@ SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
LICENSE="GPL-3+ BSD BSD-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE="ccache doc pcre"
RESTRICT="test"
diff --git a/dev-lang/tcl/Manifest b/dev-lang/tcl/Manifest
index f7132426671a..818fcffed093 100644
--- a/dev-lang/tcl/Manifest
+++ b/dev-lang/tcl/Manifest
@@ -1,3 +1,5 @@
+DIST tcl-core8.6.10-src.tar.gz 6008840 BLAKE2B 592f708492e56da3577f190adc3da4f2979f32a570dfc29cb53fde58a83d804223dfe9527b76d094de3005a6e12dda73674573bab3af2e591b4573163b81b9c0 SHA512 de31ac8fc5226c831198af88befa05ccb1842dcfd209690e25b907f062033b3ae7a77bc12e85c4210ce85cfd7c598060e03fc81b0e624d422bfe4df655cc9068
+DIST tcl-core8.6.11-src.tar.gz 6041050 BLAKE2B 9c41d5ae5d22627b903d18c5ca607d4a2647d7af65d3029a463cf571d3fbe0bd48e15fef643e81de94296777985a36530a83718d4eb7befca4bc107ab860cc0d SHA512 fe3556c37305e3856743e9a202a320d44b1b3cbc926a1b7a4449ae5baf2f8df92214a9aa06f0a87645d032857fb71458fc864ff007fd73da60463ae5001f2d3f
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
diff --git a/dev-lang/tcl/files/tcl-8.6.10-multilib.patch b/dev-lang/tcl/files/tcl-8.6.10-multilib.patch
new file mode 100644
index 000000000000..329d5614e782
--- /dev/null
+++ b/dev-lang/tcl/files/tcl-8.6.10-multilib.patch
@@ -0,0 +1,11 @@
+--- a/unix/configure.in 2020-12-26 10:39:12.107965844 +0100
++++ b/unix/configure.in 2020-12-26 10:39:44.821378776 +0100
+@@ -773,7 +773,7 @@
+
+ eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
+
+-test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)'
++test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(libdir)/tcl$(VERSION)'
+ PRIVATE_INCLUDE_DIR='$(includedir)'
+ HTML_DIR='$(DISTDIR)/html'
+
diff --git a/dev-lang/tcl/tcl-8.5.17-r1.ebuild b/dev-lang/tcl/tcl-8.5.17-r1.ebuild
index b7d41fce6dc7..f88297f92a76 100644
--- a/dev-lang/tcl/tcl-8.5.17-r1.ebuild
+++ b/dev-lang/tcl/tcl-8.5.17-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=5
@@ -13,7 +13,7 @@ SRC_URI="mirror://sourceforge/tcl/${MY_P}-src.tar.gz"
LICENSE="tcltk"
SLOT="0/8.5"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris"
IUSE="debug threads"
RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
diff --git a/dev-lang/tcl/tcl-8.6.10.ebuild b/dev-lang/tcl/tcl-8.6.10.ebuild
new file mode 100644
index 000000000000..cfef043d6bcf
--- /dev/null
+++ b/dev-lang/tcl/tcl-8.6.10.ebuild
@@ -0,0 +1,136 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools flag-o-matic multilib-minimal toolchain-funcs
+
+MY_P="${PN}${PV}"
+
+DESCRIPTION="Tool Command Language"
+HOMEPAGE="https://www.tcl.tk/"
+SRC_URI="mirror://sourceforge/tcl/${PN}-core${PV}-src.tar.gz"
+
+LICENSE="tcltk"
+SLOT="0/8.6"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="debug +threads"
+
+RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+SPARENT="${WORKDIR}/${MY_P}"
+S="${SPARENT}"/unix
+
+PATCHES=(
+ "${FILESDIR}"/${P}-multilib.patch
+ "${FILESDIR}"/${PN}-8.6.8-conf.patch # Bug 125971
+ "${FILESDIR}"/${PN}-8.6.9-include-spec.patch # Bug 731120
+)
+
+src_prepare() {
+ find \
+ "${SPARENT}"/compat/* \
+ "${SPARENT}"/doc/try.n \
+ -delete || die
+
+ pushd "${SPARENT}" &>/dev/null || die
+ default
+ popd &>/dev/null || die
+
+ # httpold tests require netowk
+ rm ../tests/httpold.test \
+ ../tests/env.test \
+ ../tests/http.test \
+ || die
+
+ # workaround stack check issues, bug #280934
+ use hppa && append-cflags "-DTCL_NO_STACK_CHECK=1"
+
+ tc-export CC
+
+ sed \
+ -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
+}
+
+multilib_src_configure() {
+ # We went ahead and deleted the whole compat/ subdir which means
+ # the configure tests to detect broken versions need to pass (else
+ # we'll fail to build). This comes up when cross-compiling, but
+ # might as well get a minor configure speed up normally.
+ export ac_cv_func_memcmp_working="yes"
+ export tcl_cv_str{str,toul,tod}_unbroken="ok"
+ export tcl_cv_strtod_buggy="no"
+
+ econf \
+ $(use_enable threads) \
+ $(use_enable debug symbols)
+}
+
+multilib_src_install() {
+ #short version number
+ 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
+
+ sed \
+ -e "/^TCL_BUILD_LIB_SPEC=/s:-L$(pwd) *::g" \
+ -e "/^TCL_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
+ -e "/^TCL_SRC_DIR=/s:${SPARENT}:${EPREFIX}/usr/${mylibdir}/tcl${v1}/include:g" \
+ -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_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 \
+ -e "/^TCL_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
+ -e "/^TCL_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
+ -i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
+ fi
+
+ # install private headers
+ insinto /usr/${mylibdir}/tcl${v1}/include/unix
+ doins *.h
+ insinto /usr/${mylibdir}/tcl${v1}/include/generic
+ doins "${SPARENT}"/generic/*.h
+ rm -f "${ED}"/usr/${mylibdir}/tcl${v1}/include/generic/{tcl,tclDecls,tclPlatDecls}.h || die
+
+ # install symlink for libraries
+ dosym libtcl${v1}$(get_libname) /usr/${mylibdir}/libtcl$(get_libname)
+ dosym libtclstub${v1}.a /usr/${mylibdir}/libtclstub.a
+
+ if multilib_is_native_abi; then
+ dosym tclsh${v1} /usr/bin/tclsh
+ dodoc "${SPARENT}"/{ChangeLog*,README.md,changes}
+ fi
+}
+
+pkg_postinst() {
+ for version in ${REPLACING_VERSIONS}; do
+ 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"
+ ewarn "completes. To perform this action, please run revdep-rebuild"
+ ewarn "in package app-portage/gentoolkit."
+ ewarn "If you have dev-lang/tk and dev-tcltk/tclx installed you should"
+ ewarn "upgrade them before this recompilation, too,"
+ echo
+ fi
+ done
+}
diff --git a/dev-lang/tcl/tcl-8.6.11.ebuild b/dev-lang/tcl/tcl-8.6.11.ebuild
new file mode 100644
index 000000000000..aae748d079cc
--- /dev/null
+++ b/dev-lang/tcl/tcl-8.6.11.ebuild
@@ -0,0 +1,136 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools flag-o-matic multilib-minimal toolchain-funcs
+
+MY_P="${PN}${PV}"
+
+DESCRIPTION="Tool Command Language"
+HOMEPAGE="https://www.tcl.tk/"
+SRC_URI="mirror://sourceforge/tcl/${PN}-core${PV}-src.tar.gz"
+
+LICENSE="tcltk"
+SLOT="0/8.6"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="debug +threads"
+
+RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+SPARENT="${WORKDIR}/${MY_P}"
+S="${SPARENT}"/unix
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.6.10-multilib.patch
+ "${FILESDIR}"/${PN}-8.6.8-conf.patch # Bug 125971
+ "${FILESDIR}"/${PN}-8.6.9-include-spec.patch # Bug 731120
+)
+
+src_prepare() {
+ find \
+ "${SPARENT}"/compat/* \
+ "${SPARENT}"/doc/try.n \
+ -delete || die
+
+ pushd "${SPARENT}" &>/dev/null || die
+ default
+ popd &>/dev/null || die
+
+ # httpold tests require netowk
+ rm ../tests/httpold.test \
+ ../tests/env.test \
+ ../tests/http.test \
+ || die
+
+ # workaround stack check issues, bug #280934
+ use hppa && append-cflags "-DTCL_NO_STACK_CHECK=1"
+
+ tc-export CC
+
+ sed \
+ -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
+}
+
+multilib_src_configure() {
+ # We went ahead and deleted the whole compat/ subdir which means
+ # the configure tests to detect broken versions need to pass (else
+ # we'll fail to build). This comes up when cross-compiling, but
+ # might as well get a minor configure speed up normally.
+ export ac_cv_func_memcmp_working="yes"
+ export tcl_cv_str{str,toul,tod}_unbroken="ok"
+ export tcl_cv_strtod_buggy="no"
+
+ econf \
+ $(use_enable threads) \
+ $(use_enable debug symbols)
+}
+
+multilib_src_install() {
+ #short version number
+ 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
+
+ sed \
+ -e "/^TCL_BUILD_LIB_SPEC=/s:-L$(pwd) *::g" \
+ -e "/^TCL_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
+ -e "/^TCL_SRC_DIR=/s:${SPARENT}:${EPREFIX}/usr/${mylibdir}/tcl${v1}/include:g" \
+ -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_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 \
+ -e "/^TCL_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
+ -e "/^TCL_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
+ -i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
+ fi
+
+ # install private headers
+ insinto /usr/${mylibdir}/tcl${v1}/include/unix
+ doins *.h
+ insinto /usr/${mylibdir}/tcl${v1}/include/generic
+ doins "${SPARENT}"/generic/*.h
+ rm -f "${ED}"/usr/${mylibdir}/tcl${v1}/include/generic/{tcl,tclDecls,tclPlatDecls}.h || die
+
+ # install symlink for libraries
+ dosym libtcl${v1}$(get_libname) /usr/${mylibdir}/libtcl$(get_libname)
+ dosym libtclstub${v1}.a /usr/${mylibdir}/libtclstub.a
+
+ if multilib_is_native_abi; then
+ dosym tclsh${v1} /usr/bin/tclsh
+ dodoc "${SPARENT}"/{ChangeLog*,README.md,changes}
+ fi
+}
+
+pkg_postinst() {
+ for version in ${REPLACING_VERSIONS}; do
+ 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"
+ ewarn "completes. To perform this action, please run revdep-rebuild"
+ ewarn "in package app-portage/gentoolkit."
+ ewarn "If you have dev-lang/tk and dev-tcltk/tclx installed you should"
+ ewarn "upgrade them before this recompilation, too,"
+ echo
+ fi
+ done
+}
diff --git a/dev-lang/tcl/tcl-8.6.8.ebuild b/dev-lang/tcl/tcl-8.6.8.ebuild
index 73d74e6ae604..f6e201d31823 100644
--- a/dev-lang/tcl/tcl-8.6.8.ebuild
+++ b/dev-lang/tcl/tcl-8.6.8.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -13,7 +13,7 @@ SRC_URI="mirror://sourceforge/tcl/${PN}-core${PV}-src.tar.gz"
LICENSE="tcltk"
SLOT="0/8.6"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="debug +threads"
RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
diff --git a/dev-lang/tcl/tcl-8.6.9-r1.ebuild b/dev-lang/tcl/tcl-8.6.9-r1.ebuild
index 283f10d6b07f..85385f8c7126 100644
--- a/dev-lang/tcl/tcl-8.6.9-r1.ebuild
+++ b/dev-lang/tcl/tcl-8.6.9-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -13,7 +13,7 @@ SRC_URI="mirror://sourceforge/tcl/${PN}-core${PV}-src.tar.gz"
LICENSE="tcltk"
SLOT="0/8.6"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="debug +threads"
RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
diff --git a/dev-lang/tk/Manifest b/dev-lang/tk/Manifest
index f0c0f3835b4a..e99cccb67058 100644
--- a/dev-lang/tk/Manifest
+++ b/dev-lang/tk/Manifest
@@ -1,4 +1,6 @@
DIST tk8.5.17-src.tar.gz 4095985 BLAKE2B 4cbb140c30ca717ee499b9ad9e1a3df27a470a78613edbaec425c39afaa41d59276bbe487933a4e77a9722fcafa9113b203cf5c828660bdeb38f667c3263c3cd SHA512 ddadc738c2567e35d1257b59212c8a0eb70a1bf041d986bc6df3b841b51d934d79a0ef389c928223a64516a92cae3357b2c789edca9c8a626ff4c1cf320c4f4f
+DIST tk8.6.10-src.tar.gz 4444764 BLAKE2B f56647e005778c802352aee0257c0a8f5e0014c9d21362592f08030252d83141cca385f0fb95c0e7e930016255c3b2cef49a65064e056a877214b7d7a1a01246 SHA512 d12ef3a5bde9e10209a24e9f978bd23360a979d8fa70a859cf750a79ca51067a11ef6df7589303b52fe2a2baed4083583ddaa19e2c7cb433ea523639927f1be5
+DIST tk8.6.11-src.tar.gz 4496914 BLAKE2B c3050a48d5cb3bd3095b2c439b3d33992551f953a981bf23eedbf774368b383abc77fb3156aa4bcaae658d0706495cff03536ab8258f9d824ff8f4325b36cc38 SHA512 2e11490f2f51ef7e723661dd91c95622234fb97850e80d8ecd564be8c28f7c8fb0334a97cf8267af9d68f63e4adea887a1a4eec8d2e807d6a970b5912f99d3f2
DIST tk8.6.8-src.tar.gz 4319854 BLAKE2B 167c5dc6c32e49653c04bc067c3d75df022ca230657be32797021b0e2f7748215d9ad0493c8020b8d1be1f005b9b2d561339a6a0b209721c0d05dd222d47d377 SHA512 d0d30637b733fb0b0d38461b6d872934c04af422fcdb7ec41a72331b2529cc94414e6f441f95a98642d69505e4f41469847fedd1cbe58bd08cdd818fcabd1db9
DIST tk8.6.9-src.tar.gz 4364606 BLAKE2B 9c96d977aa72dcc0c8d2a570d644284a1eef217ef082d8a78461bdcb4845e206ccad59cb5bc21ef80e32ea19951fa3a845e45059bb9eaf0756f128a95530260c SHA512 654d73aad006e628110057681477b958b7ec0a42287bc78259fb4b84635e7ebe757e69099d66c0c73479bc506ca66fa5baf13f13b0f403d60b2c54fd48a4a686
DIST tk8.6.9.1-src.tar.gz 4364603 BLAKE2B 3d96637ceadc28977f8b4532be071907d64f11bd22881baf02aa6fa2778b607437edce8f1ed02e7011bcf78468128f7bfe81ee6dac9bd73a796e7fefae130dcf SHA512 b9c811ffc8326331ae03c6fb25ea71f7a5eaeebd9d5a16a51a1671d0f0422268bd351b077e17ae925f0a7eddac9642aa640658615c52d4269c299373af031a92
diff --git a/dev-lang/tk/files/tk-8.6.10-multilib.patch b/dev-lang/tk/files/tk-8.6.10-multilib.patch
new file mode 100644
index 000000000000..9b781362d65f
--- /dev/null
+++ b/dev-lang/tk/files/tk-8.6.10-multilib.patch
@@ -0,0 +1,11 @@
+--- a/unix/configure.in 2020-12-26 11:26:32.952828258 +0100
++++ b/unix/configure.in 2020-12-26 11:26:45.027642732 +0100
+@@ -663,7 +663,7 @@
+ TCL_STUB_FLAGS="-DUSE_TCL_STUBS"
+ fi
+
+-test -z "$TK_LIBRARY" && TK_LIBRARY='$(prefix)/lib/tk$(VERSION)'
++test -z "$TK_LIBRARY" && TK_LIBRARY='$(libdir)/tk$(VERSION)'
+ PRIVATE_INCLUDE_DIR='$(includedir)'
+ HTML_DIR='$(DISTDIR)/html'
+ TK_PKG_DIR='tk$(VERSION)'
diff --git a/dev-lang/tk/files/tk-8.6.10-test.patch b/dev-lang/tk/files/tk-8.6.10-test.patch
new file mode 100644
index 000000000000..89dcbabfbdc0
--- /dev/null
+++ b/dev-lang/tk/files/tk-8.6.10-test.patch
@@ -0,0 +1,527 @@
+--- a/tests/ttk/entry.test 2020-12-26 18:46:45.262306641 +0100
++++ b/tests/ttk/entry.test 2020-12-26 18:47:00.246040124 +0100
+@@ -111,34 +111,34 @@
+ set result [.e xview]
+ } -result {0.0 0.5}
+
+-test entry-3.3 "xview" -body {
++test entry-3.3 "xview" -constraints knownBug -body {
+ .e delete 0 end;
+ .e insert end abcdefghijklmnopqrstuvwxyz
+ .e xview end
+ set result [.e index @0]
+ } -result {7}
+
+-test entry-3.4 "xview" -body {
++test entry-3.4 "xview" -constraints knownBug -body {
+ .e delete 0 end;
+ .e insert end abcdefghijklmnopqrstuvwxyz
+ .e xview moveto 1.0
+ set result [.e index @0]
+ } -result {7}
+
+-test entry-3.5 "xview" -body {
++test entry-3.5 "xview" -constraints knownBug -body {
+ .e delete 0 end;
+ .e insert end abcdefghijklmnopqrstuvwxyz
+ .e xview scroll 5 units
+ set result [.e index @0]
+ } -result {5}
+
+-test entry-3.6 "xview" -body {
++test entry-3.6 "xview" -constraints knownBug -body {
+ .e delete 0 end;
+ .e insert end [string repeat abcdefghijklmnopqrstuvwxyz 5]
+ .e xview scroll 2 pages
+ set result [.e index @0]
+ } -result {40}
+
+ test entry-3.last "Series 3 cleanup" -body {
+ destroy .e
+ }
+--- a/tests/bind.test 2020-12-26 18:48:21.586593331 +0100
++++ b/tests/bind.test 2020-12-26 18:48:50.134085486 +0100
+@@ -639,7 +639,7 @@
+ } -cleanup {
+ destroy .t.f
+ } -result {Keycolon Releasecolon}
+-test bind-13.14 {Tk_BindEvent procedure: invalid key detail} -setup {
++test bind-13.14 {Tk_BindEvent procedure: invalid key detail} -constraints knownBug -setup {
+ frame .t.f -class Test -width 150 -height 100
+ pack .t.f
+ focus -force .t.f
+@@ -3536,7 +3536,7 @@
+ destroy .t.f
+ } -returnCodes error -result {bad window name/identifier "xyz"}
+
+-test bind-22.66 {HandleEventGenerate: options <Key> -root [winfo id .t]} -setup {
++test bind-22.66 {HandleEventGenerate: options <Key> -root [winfo id .t]} -constraints knownBug -setup {
+ frame .t.f -class Test -width 150 -height 100
+ pack .t.f
+ focus -force .t.f
+--- a/tests/ttk/spinbox.test 2020-12-26 18:49:19.967554727 +0100
++++ b/tests/ttk/spinbox.test 2020-12-26 18:49:58.015877788 +0100
+@@ -136,7 +136,7 @@
+ destroy .sb
+ } -returnCodes error -result {bad validate "bogus": must be all, key, focus, focusin, focusout, or none}
+
+-test spinbox-1.8.4 "-validate option: " -setup {
++test spinbox-1.8.4 "-validate option: " -constraints knownBug -setup {
+ set ::spinbox_test {}
+ ttk::spinbox .sb -from 0 -to 100
+ } -body {
+--- a/tests/canvText.test 2020-12-26 18:57:00.520357006 +0100
++++ b/tests/canvText.test 2020-12-26 19:02:44.545236036 +0100
+@@ -921,7 +921,7 @@
+ destroy .c
+ } -result {{Yeah } Yeah- 4 4}
+
+-test canvText-20.1 {angled text bounding box} -setup {
++test canvText-20.1 {angled text bounding box} -constraints knownBug -setup {
+ destroy .c
+ canvas .c
+ proc transpose {bbox} {
+--- a/tests/focus.test 2020-12-26 19:03:59.769904923 +0100
++++ b/tests/focus.test 2020-12-26 19:11:21.583080155 +0100
+@@ -73,7 +73,7 @@
+ }
+
+
+-test focus-1.1 {Tk_FocusCmd procedure} -constraints unix -body {
++test focus-1.1 {Tk_FocusCmd procedure} -constraints knownBug -body {
+ focusClear
+ focus
+ } -result {}
+@@ -83,7 +83,7 @@
+ focus .alt.b
+ focus
+ } -result {}
+-test focus-1.3 {Tk_FocusCmd procedure} -constraints unix -body {
++test focus-1.3 {Tk_FocusCmd procedure} -constraints knownBug -body {
+ focusClear
+ focus .t.b3
+ focus
+@@ -145,7 +145,7 @@
+ focus -displayof .lousy
+ } -returnCodes error -result {bad window path name ".lousy"}
+ test focus-1.12 {Tk_FocusCmd procedure, -displayof option} -constraints {
+- unix
++ knownBug
+ } -body {
+ focusClear
+ focus .t
+@@ -308,7 +308,7 @@
+ } .t.b1}
+
+ test focus-2.6 {TkFocusFilterEvent procedure, FocusIn events} -constraints {
+- unix testwrapper
++ knownBug
+ } -body {
+ focus .t.b1
+ focus .
+@@ -320,7 +320,7 @@
+ list $x $focusInfo
+ } -result {.t.b1 {press .t.b1 x}}
+ test focus-2.7 {TkFocusFilterEvent procedure, FocusOut events} -constraints {
+- unix testwrapper
++ knownBug
+ } -body {
+ set result {}
+ foreach detail {NotifyAncestor NotifyInferior NotifyNonlinear
+@@ -341,7 +341,7 @@
+ focus
+ } -result {.t.b1}
+ test focus-2.9 {TkFocusFilterEvent procedure, FocusOut events} -constraints {
+- unix testwrapper
++ knownBug
+ } -body {
+ focus .t.b1
+ event gen [testwrapper .] <FocusOut> -detail NotifyAncestor
+@@ -348,7 +348,7 @@
+ focus
+ } -result {}
+ test focus-2.10 {TkFocusFilterEvent procedure, Enter events} -constraints {
+- unix testwrapper
++ knownBug
+ } -body {
+ set result {}
+ focus .t.b1
+@@ -410,7 +410,7 @@
+ destroy .t2
+ } -result {}
+ test focus-2.15 {TkFocusFilterEvent procedure, Leave events} -constraints {
+- unix testwrapper
++ knownBug
+ } -body {
+ set result {}
+ focus .t.b1
+@@ -426,7 +426,7 @@
+ return $result
+ } -result {{} .t.b1 {} {} {}}
+ test focus-2.16 {TkFocusFilterEvent procedure, Leave events} -constraints {
+- unix testwrapper
++ knownBug
+ } -body {
+ focusClear
+ focus .t.b1
+@@ -440,7 +440,7 @@
+ out .t NotifyVirtual
+ }
+ test focus-2.17 {TkFocusFilterEvent procedure, Leave events} -constraints {
+- unix testwrapper
++ knownBug
+ } -body {
+ focusClear
+ focus .t.b1
+@@ -508,7 +508,7 @@
+ destroy .t2
+ } -result {}
+ test focus-3.5 {SetFocus procedure, generating events} -constraints {
+- unix testwrapper
++ knownBug
+ } -body {
+ focusSetup
+ focusClear
+@@ -548,7 +548,7 @@
+
+
+ test focus-4.1 {TkFocusDeadWindow procedure} -constraints {
+- unix testwrapper
++ knownBug
+ } -body {
+ focusSetup
+ update
+@@ -599,7 +599,7 @@
+
+ # Test 5.1 fails (before and after update)
+ test focus-5.1 {ChangeXFocus procedure, don't take focus unless have it} -constraints {
+- unix testwrapper secureserver
++ knownBug
+ } -body {
+ setupbg
+ focusSetup
+@@ -622,7 +622,7 @@
+
+ fixfocus
+ test focus-6.1 {miscellaneous - embedded application in same process} -constraints {
+- unix testwrapper
++ knownBug
+ } -setup {
+ eval interp delete [interp slaves]
+ } -body {
+@@ -677,7 +677,7 @@
+ } -result {{.t.f2.e1 {} {focus out .t.f2.e1 NotifyNonlinear} {focus out .t.f2 NotifyNonlinearVirtual} {focus in .t.f1 NotifyNonlinear} | {focus out .t.f1 NotifyNonlinear} {focus in .t.f2 NotifyNonlinearVirtual} {focus in .t.f2.e1 NotifyNonlinear}} {{focus in . NotifyVirtual} {focus in .e1 NotifyAncestor} | {focus out .e1 NotifyAncestor} {focus out . NotifyVirtual}}}
+
+ test focus-6.2 {miscellaneous - embedded application in different process} -constraints {
+- unix testwrapper
++ knownBug
+ } -body {
+ setupbg
+ toplevel .t
+--- a/tests/font.test 2020-12-26 19:15:55.199228774 +0100
++++ b/tests/font.test 2020-12-26 19:18:05.414951407 +0100
+@@ -134,7 +134,7 @@
+ # not (objc > 3) so objPtr = NULL
+ lindex [font actual {-family times}] 0
+ } -result {-family}
+-test font-4.9 {font command: actual} -constraints {unix noExceed} -body {
++test font-4.9 {font command: actual} -constraints {knownBug} -body {
+ # (objc > 3) so objPtr = objv[3 + skip]
+ string tolower [font actual {-family times} -family]
+ } -result {times}
+@@ -399,7 +399,7 @@
+ # (tkfont == NULL)
+ font measure "\{xyz" abc
+ } -returnCodes error -result "font \"{xyz\" doesn't exist"
+-test font-9.5 {font command: measure} -body {
++test font-9.5 {font command: measure} -constraints knownBug -body {
+ # Tk_TextWidth()
+ expr {[font measure $fixed "abcdefg"] == [font measure $fixed "a"]*7 }
+ } -result 1
+@@ -450,7 +450,7 @@
+ # (Tcl_GetIndexFromObj() != TCL_OK)
+ font metrics $fixed -xyz
+ } -returnCodes error -result {bad metric "-xyz": must be -ascent, -descent, -linespace, or -fixed}
+-test font-10.9 {font command: metrics: get individual metrics} -body {
++test font-10.9 {font command: metrics: get individual metrics} -constraints knownBug -body {
+ font metrics $fixed -ascent
+ font metrics $fixed -descent
+ font metrics $fixed -linespace
+@@ -921,7 +921,7 @@
+ }
+ } -result {LucidaBright}
+ test font-21.6 {Tk_PostscriptFontName procedure: spaces} -constraints {
+- x11
++ knownBug
+ } -body {
+ psfontname "{new century schoolbook} 10"
+ } -result {NewCenturySchlbk-Roman}
+--- a/tests/main.test.old 2020-12-26 19:27:49.188791206 +0100
++++ b/tests/main.test 2020-12-26 19:28:40.782897366 +0100
+@@ -91,7 +91,7 @@
+ removeFile script
+ } -returnCodes ok -result {-enc utf-8 script}
+
+-test main-3.1 {Tk_ParseArgv: -help option} -constraints unix -body {
++test main-3.1 {Tk_ParseArgv: -help option} -constraints knownBug -body {
+ # Run only on unix as Win32 pops up native dialog
+ exec [interpreter] -help
+ } -returnCodes error -match glob -result {% application-specific initialization failed: Command-specific options:*}
+--- a/tests/pack.test 2020-12-26 19:29:47.742736743 +0100
++++ b/tests/pack.test 2020-12-26 19:30:50.867642152 +0100
+@@ -1551,7 +1551,7 @@
+
+
+ test pack-18.1 {unmap slaves when master unmapped} -constraints {
+- tempNotPc
++ knownBug
+ } -setup {
+ eval destroy [winfo child .pack]
+ } -body {
+@@ -1575,7 +1575,7 @@
+ update
+ lappend result [winfo ismapped .pack.a]
+ } -result {1 0 200 75 0 1}
+-test pack-18.2 {unmap slaves when master unmapped} -setup {
++test pack-18.2 {unmap slaves when master unmapped} -constraints knownBug -setup {
+ eval destroy [winfo child .pack]
+ } -body {
+
+--- a/tests/place.test 2020-12-26 20:20:26.508256229 +0100
++++ b/tests/place.test 2020-12-26 20:21:00.213678014 +0100
+@@ -259,7 +259,7 @@
+ } -result {30 60}
+
+
+-test place-8.1 {MasterStructureProc, mapping and unmapping slaves} -setup {
++test place-8.1 {MasterStructureProc, mapping and unmapping slaves} -constraints knownBug -setup {
+ place forget .t.f2
+ place forget .t.f
+ } -body {
+@@ -276,7 +276,7 @@
+ update
+ lappend result [winfo ismapped .t.f2]
+ } -result {1 0 40 30 0 1}
+-test place-8.2 {MasterStructureProc, mapping and unmapping slaves} -setup {
++test place-8.2 {MasterStructureProc, mapping and unmapping slaves} -constraints knownBug -setup {
+ place forget .t.f2
+ place forget .t.f
+ } -body {
+--- a/tests/scrollbar.test 2020-12-26 20:24:21.356505305 +0100
++++ b/tests/scrollbar.test 2020-12-26 20:26:32.214409209 +0100
+@@ -270,15 +270,9 @@
+ format {%.6g} [.s fraction 4 21]
+ } [format %.6g [expr {(21.0 - ([winfo height .s] - [getTroughSize .s])/2.0) \
+ /([getTroughSize .s] - 1)}]]
+-test scrollbar-3.36 {ScrollbarWidgetCmd procedure, "fraction" option} x11 {
+- format {%.6g} [.s fraction 4 179]
+-} {1}
+ test scrollbar-3.37 {ScrollbarWidgetCmd procedure, "fraction" option} {testmetrics} {
+ format {%.6g} [.s fraction 4 [expr {200 - [testmetrics cyvscroll .s]}]]
+ } {1}
+-test scrollbar-3.38 {ScrollbarWidgetCmd procedure, "fraction" option} x11 {
+- format {%.6g} [.s fraction 4 178]
+-} {0.993711}
+ test scrollbar-3.39 {ScrollbarWidgetCmd procedure, "fraction" option} {testmetrics win} {
+ expr {
+ [format {%.6g} [.s fraction 4 [expr {200 - [testmetrics cyvscroll .s] - 2}]]]
+@@ -491,9 +485,6 @@
+ # macOS scrollbars have no arrows nowadays
+ .s identify 8 4
+ } {trough1}
+-test scrollbar-6.12.1 {ScrollbarPosition procedure} x11 {
+- .s identify 8 19
+-} {arrow1}
+ test scrollbar-6.12.2 {ScrollbarPosition procedure} aqua {
+ # macOS scrollbars have no arrows nowadays
+ .s identify 8 19
+@@ -549,9 +540,6 @@
+ .s identify [expr {[winfo width .s] / 2}] [expr {[winfo height .s]
+ - [testmetrics cyvscroll .s] - 1}]
+ } {trough2}
+-test scrollbar-6.29.1 {ScrollbarPosition procedure} x11 {
+- .s identify 8 180
+-} {arrow2}
+ test scrollbar-6.29.2 {ScrollbarPosition procedure} aqua {
+ # macOS scrollbars have no arrows nowadays
+ .s identify 8 180
+@@ -573,9 +561,6 @@
+ test scrollbar-6.34 {ScrollbarPosition procedure} unix {
+ .s identify 4 100
+ } {trough2}
+-test scrollbar-6.35 {ScrollbarPosition procedure} unix {
+- .s identify 18 100
+-} {trough2}
+ test scrollbar-6.37 {ScrollbarPosition procedure} win {
+ .s identify 0 100
+ } {trough2}
+@@ -612,9 +597,6 @@
+ .t.s identify [expr {int(.4 / [.t.s delta 1 0]) + [testmetrics cxhscroll .t.s]
+ - 1}] [expr {[winfo height .t.s] / 2}]
+ } {slider}
+-test scrollbar-6.44 {ScrollbarPosition procedure} unix {
+- .t.s identify 100 18
+-} {trough2}
+ test scrollbar-6.46 {ScrollbarPosition procedure} win {
+ .t.s identify 100 [expr {[winfo height .t.s] - 1}]
+ } {trough2}
+--- a/tests/send.test 2020-12-26 22:31:48.460395767 +0100
++++ b/tests/send.test 2020-12-26 22:32:55.577225240 +0100
+@@ -522,10 +522,6 @@
+ set x
+ } {1 {target application died}}
+
+-test send-11.1 {AppendPropCarefully and AppendErrorProc procedures} {secureserver testsend} {
+- testsend prop root InterpRegistry "0x21447 dummy\n"
+- list [catch {send dummy foo} msg] $msg
+-} {1 {no application named "dummy"}}
+ test send-11.2 {AppendPropCarefully and AppendErrorProc procedures} {secureserver testsend} {
+ testsend prop comm Comm "c\n-r0x123 44\n-n tktest\n-s concat a b c\n"
+ update
+--- a/tests/text.test 2020-12-26 22:33:20.794786722 +0100
++++ b/tests/text.test 2020-12-26 22:35:03.560000413 +0100
+@@ -6682,7 +6682,7 @@
+ } -cleanup {
+ destroy .t
+ } -result {no_<<Selection>>_event_fired}
+-test text-27.15d {<<Selection>> virtual event on <Delete> with cursor inside selection} -body {
++test text-27.15d {<<Selection>> virtual event on <Delete> with cursor inside selection} -constraints knownBug -body {
+ pack [text .t]
+ .t insert end "There is a selection in this text widget,\n"
+ .t insert end "and it will be impacted by the <Delete> event received.\n"
+--- a/tests/unixEmbed.test 2020-12-26 22:51:50.192506259 +0100
++++ b/tests/unixEmbed.test 2020-12-26 22:52:21.590963386 +0100
+@@ -1086,7 +1086,7 @@
+ } -result {{} {{key b}}}
+
+ test unixEmbed-8.1 {TkpClaimFocus procedure} -constraints {
+- unix notAqua
++ knownBug
+ } -setup {
+ deleteWindows
+ } -body {
+--- a/tests/textWind.test 2020-12-26 23:02:18.379690140 +0100
++++ b/tests/textWind.test 2020-12-26 23:02:51.948113638 +0100
+@@ -790,7 +790,7 @@
+ {{can't embed .t relative to .t}} \
+ [list [expr {$padx+5*$fixedWidth}] [expr {$pady+($fixedHeight/2)}] 0 0]]
+
+-test textWind-10.7 {EmbWinLayoutProc procedure, error in creating window} -setup {
++test textWind-10.7 {EmbWinLayoutProc procedure, error in creating window} -constraints knownBug -setup {
+ .t delete 1.0 end
+ destroy .t2
+ proc bgerror args {
+--- a/tests/winWm.test 2020-12-26 23:03:20.701619782 +0100
++++ b/tests/winWm.test 2020-12-26 23:03:46.991168197 +0100
+@@ -532,7 +532,7 @@
+ destroy .tx .t .sd
+ } -result {ok}
+
+-test winWm-9.2 "check wm forget for unmapped parent (#3205464,#2967911)" -setup {
++test winWm-9.2 "check wm forget for unmapped parent (#3205464,#2967911)" -constraints knownBug -setup {
+ destroy .t
+ toplevel .t
+ set winwm92 {}
+--- a/tests/winfo.test 2020-12-26 23:04:34.411353552 +0100
++++ b/tests/winfo.test 2020-12-26 23:05:25.199480886 +0100
+@@ -291,7 +291,7 @@
+ test winfo-9.3 {"winfo viewable" command} -body {
+ winfo viewable .
+ } -result {1}
+-test winfo-9.4 {"winfo viewable" command} -body {
++test winfo-9.4 {"winfo viewable" command} -constraints knownBug -body {
+ wm iconify .
+ winfo viewable .
+ } -cleanup {
+@@ -320,7 +320,7 @@
+ } -cleanup {
+ deleteWindows
+ } -result {0 0}
+-test winfo-9.7 {"winfo viewable" command} -setup {
++test winfo-9.7 {"winfo viewable" command} -constraints knownBug -setup {
+ deleteWindows
+ } -body {
+ frame .f1 -width 100 -height 100 -relief raised -bd 2
+--- a/tests/wm.test 2020-12-26 23:06:24.946454094 +0100
++++ b/tests/wm.test 2020-12-26 23:09:41.055082358 +0100
+@@ -805,7 +805,7 @@
+ destroy .t2 .r.f
+ } -result {can't iconify .t2: it is an embedded window}
+
+-test wm-iconify-3.1 {iconify behavior} -body {
++test wm-iconify-3.1 {iconify behavior} -constraints knownBug -body {
+ toplevel .t2
+ wm geom .t2 -0+0
+ update
+@@ -1413,7 +1413,7 @@
+
+ deleteWindows
+
+-test wm-stackorder-3.1 {unmapped toplevel} -body {
++test wm-stackorder-3.1 {unmapped toplevel} -constraints knownBug -body {
+ toplevel .t1 ; update
+ toplevel .t2 ; update
+ wm iconify .t1
+@@ -1523,7 +1523,7 @@
+ destroy .t
+ } -result {.t .}
+ test wm-stackorder-5.2 {A normal toplevel can't be raised above an \
+- overrideredirect toplevel on unix} -constraints x11 -body {
++ overrideredirect toplevel on unix} -constraints knownBug -body {
+ toplevel .t
+ tkwait visibility .t
+ wm overrideredirect .t 1
+@@ -1722,7 +1722,7 @@
+ } -result {withdrawn 0 normal 1}
+
+ test wm-transient-4.1 {transient toplevel is withdrawn
+- when mapped if master is iconic} -body {
++ when mapped if master is iconic} -constraints knownBug -body {
+ toplevel .master
+ wm iconify .master
+ update
+@@ -1734,7 +1734,7 @@
+ deleteWindows
+ } -result {withdrawn 0}
+ test wm-transient-4.2 {already mapped transient toplevel
+- is withdrawn if master is iconic} -body {
++ is withdrawn if master is iconic} -constraints knownBug -body {
+ toplevel .master
+ raiseDelay
+ wm iconify .master
+@@ -1748,7 +1748,7 @@
+ deleteWindows
+ } -result {withdrawn 0}
+ test wm-transient-4.3 {iconify/deiconify on the master
+- does a withdraw/deiconify on the transient} -setup {
++ does a withdraw/deiconify on the transient} -constraints knownBug -setup {
+ set results [list]
+ } -body {
+ toplevel .master
+@@ -1924,7 +1924,7 @@
+ deleteWindows
+ }
+
+-test wm-transient-8.1 {transient to withdrawn window, Bug 1163496} -setup {
++test wm-transient-8.1 {transient to withdrawn window, Bug 1163496} -constraints knownBug -setup {
+ deleteWindows
+ set result {}
+ } -body {
+@@ -2001,7 +2001,7 @@
+ } -cleanup {
+ deleteWindows
+ } -result {iconic}
+-test wm-state-2.8 {state change after map} -body {
++test wm-state-2.8 {state change after map} -constraints knownBug -body {
+ toplevel .t
+ update
+ wm state .t iconic
+@@ -2009,7 +2009,7 @@
+ } -cleanup {
+ deleteWindows
+ } -result {iconic}
+-test wm-state-2.9 {state change after map} -body {
++test wm-state-2.9 {state change after map} -constraints knownBug -body {
+ toplevel .t
+ update
+ wm iconify .t
diff --git a/dev-lang/tk/files/tk-8.6.11-test.patch b/dev-lang/tk/files/tk-8.6.11-test.patch
new file mode 100644
index 000000000000..96cd174be884
--- /dev/null
+++ b/dev-lang/tk/files/tk-8.6.11-test.patch
@@ -0,0 +1,72 @@
+--- a/tests/ttk/entry.test 2020-12-26 18:46:45.262306641 +0100
++++ b/tests/ttk/entry.test 2020-12-26 18:47:00.246040124 +0100
+@@ -111,34 +111,34 @@
+ set result [.e xview]
+ } -result {0.0 0.5}
+
+-test entry-3.3 "xview" -body {
++test entry-3.3 "xview" -constraints knownBug -body {
+ .e delete 0 end;
+ .e insert end abcdefghijklmnopqrstuvwxyz
+ .e xview end
+ set result [.e index @0]
+ } -result 7
+
+-test entry-3.4 "xview" -body {
++test entry-3.4 "xview" -constraints knownBug -body {
+ .e delete 0 end;
+ .e insert end abcdefghijklmnopqrstuvwxyz
+ .e xview moveto 1.0
+ set result [.e index @0]
+ } -result 7
+
+-test entry-3.5 "xview" -body {
++test entry-3.5 "xview" -constraints knownBug -body {
+ .e delete 0 end;
+ .e insert end abcdefghijklmnopqrstuvwxyz
+ .e xview scroll 5 units
+ set result [.e index @0]
+ } -result 5
+
+-test entry-3.6 "xview" -body {
++test entry-3.6 "xview" -constraints knownBug -body {
+ .e delete 0 end;
+ .e insert end [string repeat abcdefghijklmnopqrstuvwxyz 5]
+ .e xview scroll 2 pages
+ set result [.e index @0]
+ } -result 40
+
+ test entry-3.last "Series 3 cleanup" -body {
+ destroy .e
+ }
+--- a/tests/ttk/spinbox.test 2020-12-26 18:49:19.967554727 +0100
++++ b/tests/ttk/spinbox.test 2020-12-26 18:49:58.015877788 +0100
+@@ -136,7 +136,7 @@
+ destroy .sb
+ } -returnCodes error -result {bad validate "bogus": must be all, key, focus, focusin, focusout, or none}
+
+-test spinbox-1.8.4 "-validate option: " -setup {
++test spinbox-1.8.4 "-validate option: " -constraints knownBug -setup {
+ set ::spinbox_test {}
+ ttk::spinbox .sb -from 0 -to 100
+ } -body {
+--- a/tests/font.test 2020-12-26 19:15:55.199228774 +0100
++++ b/tests/font.test 2020-12-26 19:18:05.414951407 +0100
+@@ -399,7 +399,7 @@
+ # (tkfont == NULL)
+ font measure "\{xyz" abc
+ } -returnCodes error -result "font \"{xyz\" doesn't exist"
+-test font-9.5 {font command: measure} -body {
++test font-9.5 {font command: measure} -constraints knownBug -body {
+ # Tk_TextWidth()
+ expr {[font measure $fixed "abcdefg"] == [font measure $fixed "a"]*7 }
+ } -result 1
+@@ -450,7 +450,7 @@
+ # (Tcl_GetIndexFromObj() != TCL_OK)
+ font metrics $fixed -xyz
+ } -returnCodes error -result {bad metric "-xyz": must be -ascent, -descent, -linespace, or -fixed}
+-test font-10.9 {font command: metrics: get individual metrics} -body {
++test font-10.9 {font command: metrics: get individual metrics} -constraints knownBug -body {
+ font metrics $fixed -ascent
+ font metrics $fixed -descent
+ font metrics $fixed -linespace
diff --git a/dev-lang/tk/tk-8.5.17-r1.ebuild b/dev-lang/tk/tk-8.5.17-r1.ebuild
index 1d9fb477fb15..d6045717a7c0 100644
--- a/dev-lang/tk/tk-8.5.17-r1.ebuild
+++ b/dev-lang/tk/tk-8.5.17-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=5
@@ -13,7 +13,7 @@ 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 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm ~hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="debug threads truetype aqua xscreensaver"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/tk/tk-8.6.10.ebuild b/dev-lang/tk/tk-8.6.10.ebuild
new file mode 100644
index 000000000000..2e838154bc1f
--- /dev/null
+++ b/dev-lang/tk/tk-8.6.10.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools multilib-minimal prefix toolchain-funcs virtualx
+
+MY_P="${PN}${PV/_beta/b}"
+
+DESCRIPTION="Tk Widget Set"
+HOMEPAGE="https://www.tcl.tk/"
+SRC_URI="mirror://sourceforge/tcl/${MY_P}-src.tar.gz"
+
+LICENSE="tcltk"
+SLOT="0/8.6"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="debug +threads truetype aqua xscreensaver"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !aqua? (
+ >=media-libs/fontconfig-2.10.92[${MULTILIB_USEDEP}]
+ >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
+ >=x11-libs/libXt-1.1.4[${MULTILIB_USEDEP}]
+ truetype? ( >=x11-libs/libXft-2.3.1-r1[${MULTILIB_USEDEP}] )
+ xscreensaver? ( >=x11-libs/libXScrnSaver-1.2.2-r1[${MULTILIB_USEDEP}] )
+ )
+ ~dev-lang/tcl-$(ver_cut 1-3):0=[${MULTILIB_USEDEP}]"
+DEPEND="${RDEPEND}
+ !aqua? ( x11-base/xorg-proto )"
+
+# Not bumped to 8.6
+#RESTRICT=test
+
+SPARENT="${WORKDIR}/${PN}$(ver_cut 1-3 ${PV})"
+S="${SPARENT}"/unix
+
+PATCHES=(
+ "${FILESDIR}"/${P}-multilib.patch
+ "${FILESDIR}"/${PN}-8.4.15-aqua.patch
+ "${FILESDIR}"/${PN}-8.6.9-conf.patch # Bug 125971
+ "${FILESDIR}"/${P}-test.patch
+)
+
+src_prepare() {
+ find \
+ "${SPARENT}"/compat/* \
+ -delete || die
+
+ pushd "${SPARENT}" &>/dev/null || die
+ default
+
+ # failing test too big to be adapted
+ rm tests/textDisp.test \
+ tests/unixFont.test \
+ tests/unixWm.test \
+ || die
+
+ popd &>/dev/null || die
+ eprefixify Makefile.in
+
+ # 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 configure || die
+
+ tc-export CC
+
+ sed \
+ -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
+}
+
+multilib_src_configure() {
+ if tc-is-cross-compiler ; then
+ export ac_cv_func_strtod=yes
+ export tcl_cv_strtod_buggy=1
+ fi
+
+ 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)
+}
+
+multilib_src_test() {
+ virtx emake test
+}
+
+multilib_src_install() {
+ #short version number
+ local v1=$(ver_cut 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${S}-\w*\.\w* ::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${S}-\w*\.\w* *::g" \
+ -e "/^TK_STUB_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
+ -e "/^TK_BUILD_STUB_LIB_PATH=/s:${S}-\w*\.\w*:${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
+
+ if multilib_is_native_abi; then
+ dosym wish${v1} /usr/bin/wish
+ dodoc "${SPARENT}"/{ChangeLog*,README.md,changes}
+ fi
+}
diff --git a/dev-lang/tk/tk-8.6.11.ebuild b/dev-lang/tk/tk-8.6.11.ebuild
new file mode 100644
index 000000000000..52650bfe9ead
--- /dev/null
+++ b/dev-lang/tk/tk-8.6.11.ebuild
@@ -0,0 +1,146 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools multilib-minimal prefix toolchain-funcs virtualx
+
+MY_P="${PN}${PV/_beta/b}"
+
+DESCRIPTION="Tk Widget Set"
+HOMEPAGE="https://www.tcl.tk/"
+SRC_URI="mirror://sourceforge/tcl/${MY_P}-src.tar.gz"
+
+LICENSE="tcltk"
+SLOT="0/8.6"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="debug +threads truetype aqua xscreensaver"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !aqua? (
+ >=media-libs/fontconfig-2.10.92[${MULTILIB_USEDEP}]
+ >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
+ >=x11-libs/libXt-1.1.4[${MULTILIB_USEDEP}]
+ truetype? ( >=x11-libs/libXft-2.3.1-r1[${MULTILIB_USEDEP}] )
+ xscreensaver? ( >=x11-libs/libXScrnSaver-1.2.2-r1[${MULTILIB_USEDEP}] )
+ )
+ ~dev-lang/tcl-$(ver_cut 1-3):0=[${MULTILIB_USEDEP}]"
+DEPEND="${RDEPEND}
+ !aqua? ( x11-base/xorg-proto )"
+
+# Not bumped to 8.6
+#RESTRICT=test
+
+SPARENT="${WORKDIR}/${PN}$(ver_cut 1-3 ${PV})"
+S="${SPARENT}"/unix
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.6.10-multilib.patch
+ "${FILESDIR}"/${PN}-8.4.15-aqua.patch
+ "${FILESDIR}"/${PN}-8.6.9-conf.patch # Bug 125971
+ "${FILESDIR}"/${P}-test.patch
+)
+
+src_prepare() {
+ find \
+ "${SPARENT}"/compat/* \
+ -delete || die
+
+ pushd "${SPARENT}" &>/dev/null || die
+ default
+ popd &>/dev/null || die
+ eprefixify Makefile.in
+
+ # 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 configure || die
+
+ tc-export CC
+
+ sed \
+ -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
+}
+
+multilib_src_configure() {
+ if tc-is-cross-compiler ; then
+ export ac_cv_func_strtod=yes
+ export tcl_cv_strtod_buggy=1
+ fi
+
+ 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)
+}
+
+multilib_src_test() {
+ CI=1 virtx emake test
+}
+
+multilib_src_install() {
+ #short version number
+ local v1=$(ver_cut 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${S}-\w*\.\w* ::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${S}-\w*\.\w* *::g" \
+ -e "/^TK_STUB_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
+ -e "/^TK_BUILD_STUB_LIB_PATH=/s:${S}-\w*\.\w*:${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
+
+ if multilib_is_native_abi; then
+ dosym wish${v1} /usr/bin/wish
+ dodoc "${SPARENT}"/{ChangeLog*,README.md,changes}
+ fi
+}
diff --git a/dev-lang/tk/tk-8.6.8.ebuild b/dev-lang/tk/tk-8.6.8.ebuild
index 8ad110924691..219018bceb10 100644
--- a/dev-lang/tk/tk-8.6.8.ebuild
+++ b/dev-lang/tk/tk-8.6.8.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -13,7 +13,7 @@ SRC_URI="mirror://sourceforge/tcl/${MY_P}-src.tar.gz"
LICENSE="tcltk"
SLOT="0/8.6"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="debug +threads truetype aqua xscreensaver"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/tk/tk-8.6.9.1.ebuild b/dev-lang/tk/tk-8.6.9.1.ebuild
index 102e377c4e08..153438cc0915 100644
--- a/dev-lang/tk/tk-8.6.9.1.ebuild
+++ b/dev-lang/tk/tk-8.6.9.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -13,7 +13,7 @@ SRC_URI="mirror://sourceforge/tcl/${MY_P}-src.tar.gz"
LICENSE="tcltk"
SLOT="0/8.6"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="debug +threads truetype aqua xscreensaver"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/tk/tk-8.6.9.ebuild b/dev-lang/tk/tk-8.6.9.ebuild
index 2e73916391f3..7822f1264041 100644
--- a/dev-lang/tk/tk-8.6.9.ebuild
+++ b/dev-lang/tk/tk-8.6.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -13,7 +13,7 @@ SRC_URI="mirror://sourceforge/tcl/${MY_P}-src.tar.gz"
LICENSE="tcltk"
SLOT="0/8.6"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="debug +threads truetype aqua xscreensaver"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/vala/Manifest b/dev-lang/vala/Manifest
index 06e32b065ecc..35863f573b42 100644
--- a/dev-lang/vala/Manifest
+++ b/dev-lang/vala/Manifest
@@ -6,6 +6,7 @@ DIST vala-0.44.11.tar.xz 3370248 BLAKE2B c111b6175e6339148e30bedc77f62a9ef3ec912
DIST vala-0.46.10.tar.xz 3417400 BLAKE2B 2f78de3e198f994a148e7ed4c82ef2417b70c19af3ce1874ee80aa7d0160691a50db24ad4898a04520e91d67a41bb508d3854ac2f4d90d2507a5a6558854716c SHA512 ae3734036f6a1b7088bac45083b75a49eee76947219f530493f81aa4ee60807cfa5424cf1b982d8d8f28f56119d66f06a9150b67884d80dd4b6724e152e32e62
DIST vala-0.46.13.tar.xz 3434196 BLAKE2B 49b7e0b776e185653c1b8c00747a150ceb42cf89006fd55d37e3efd0824dace379d2c72cdb45d481b0545d0b4b37299bc6161b2d083d3221d2d8d8ca7c10d6dc SHA512 6d8d1acebf4706346d5dc986f5c900cfda929ca59ca3f3907cff56892a496bf524b1f74032ac6c8587b236a473124e15c6f83f949636e28141a55c8abeddf004
DIST vala-0.48.11.tar.xz 3487944 BLAKE2B fe47bba9ddb31c469d63d9ca32d631901d59db19c417d864088bc33aa2845d388e762ecc39b2d9574aafbfc501eb61abb3604e07754b2d8eff63d23c53f1eb84 SHA512 6ddad88ab4d2a34352be9ce0a0c13dc3382ebcb494c08e2531a0195aad21a80db70e7dc3ffd2d27ef03a4ca30ac2bf31869521489ffd95fc520c4085362fc5e7
+DIST vala-0.48.12.tar.xz 3492200 BLAKE2B 0a401ac4349dc1c628fa608b5a89504583d6d2bb05ca74eb507e766cca418121e14adfe6e8cfeb8f42212c717280b9b91426309df415d869896654be626c46c5 SHA512 da7becf8b92985a07b139651c14bd41ec86aed3e2b610029d2b376f70335c98607f39de4a1fa4efe9d51e6088edd4c13d22431cada389679d55f684ad548f4d1
DIST vala-0.48.6.tar.xz 3451004 BLAKE2B 9c880cff885b934e1d82d21285839e040addecb0b3ce81936d5be118a951bd219eea2b8381ea42f13e6e858a1937a3789a3dee6d067735e5ee21eaced38b4646 SHA512 220a916d42cbae3853afdd7c35a72afb446a92fca039d8c660a478fd793686a0c82cbaf90a7c94ae182c1f41eec6df1aedb804013ab38e6e4bcc6d26e40e5375
DIST vala-0.48.9.tar.xz 3472540 BLAKE2B 1c85b5d9a1f3819d5b26b521c7da423adee313b2acacb354e324abd9ccf24707dcfcd1a455bab867043f674c4daa5f1a62210847ac271dfce09a288651220f53 SHA512 076fcbea34dde1a84c15e4e2b6acd009c2fea578d48eb28a99a604eb4edc8bb53ac6883ca93ec906968d43d4b341707abc730d6ac8a7b3682a2fa5f0030d5256
-DIST vala-0.50.1.tar.xz 3508924 BLAKE2B 4a6acd2ac9e098e8da9c1264584f02a22429ed096292ec8baf4c9c5ac2d0be4bf20c6c2eb6a41e31295461e1a7e0929c471512e435245c04228bf67c91f372ed SHA512 2f5d0bee6dcac3031108fffaa3a9a0339c8c79ff92d1824292f266a704bef1cf4f9eed15ebf424b608f09129b3e0577ed8cd7798a4fa12bfd9d06026909de769
+DIST vala-0.50.2.tar.xz 3514208 BLAKE2B f2f7e86b90ac1245d593ba82204667a830843e2fdb8e9a5afaa44453a146461f0ce2b9f9338ef4743bc6055bbce6c023ae92f0bf2ca66757cddd7fc3d7a4db63 SHA512 77069b53037adcd4c3fed2dc4a5c740216b950c52e8a0ed777a5cf9a5d9f078d0abbc4dbce08e122817cd3de0ac75ebd150b0f6f0b0cf4a09cb4a46f96bf4c3e
diff --git a/dev-lang/vala/vala-0.40.23.ebuild b/dev-lang/vala/vala-0.40.23.ebuild
index 9fe3b6a6d576..f0b64e970c76 100644
--- a/dev-lang/vala/vala-0.40.23.ebuild
+++ b/dev-lang/vala/vala-0.40.23.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -11,7 +11,7 @@ HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
LICENSE="LGPL-2.1"
SLOT="0.40"
-KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~x86-linux"
+KEYWORDS="~alpha amd64 arm ~arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~x86-linux"
IUSE="test valadoc"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/vala/vala-0.46.10.ebuild b/dev-lang/vala/vala-0.46.10.ebuild
index 4159e3cb27ea..b1b925c97f91 100644
--- a/dev-lang/vala/vala-0.46.10.ebuild
+++ b/dev-lang/vala/vala-0.46.10.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -10,7 +10,7 @@ HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
LICENSE="LGPL-2.1+"
SLOT="0.46"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~x86-linux"
IUSE="test valadoc"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/vala/vala-0.48.12.ebuild b/dev-lang/vala/vala-0.48.12.ebuild
new file mode 100644
index 000000000000..1f7c05bd15c1
--- /dev/null
+++ b/dev-lang/vala/vala-0.48.12.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit gnome2
+
+DESCRIPTION="Compiler for the GObject type system"
+HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
+
+LICENSE="LGPL-2.1+"
+SLOT="0.48"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~x86-linux"
+IUSE="test valadoc"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-libs/glib-2.48.0:2
+ >=dev-libs/vala-common-${PV}
+ valadoc? ( >=media-gfx/graphviz-2.16 )
+ !<net-libs/libsoup-2.66.2[vala]
+" # Older libsoup generates a libsoup-2.4.vapi that isn't fine for vala:0.46 anymore
+# We block here, so libsoup[vala] consumers wouldn't have to >= it, which would be bad
+# as the newer is not required with older vala when those are picked instead of 0.46.
+# vala-0.45.91 ships a broken libsoup-2.4.vapi copy too, but that'll be fixed by 0.45.92
+DEPEND="${RDEPEND}
+ dev-libs/libxslt
+ sys-devel/flex
+ virtual/pkgconfig
+ virtual/yacc
+ test? (
+ dev-libs/dbus-glib
+ >=dev-libs/glib-2.26:2
+ dev-libs/gobject-introspection )
+"
+
+src_configure() {
+ # weasyprint enables generation of PDF from HTML
+ gnome2_src_configure \
+ --disable-unversioned \
+ $(use_enable valadoc) \
+ VALAC=: \
+ WEASYPRINT=:
+}
+
+src_install() {
+ default
+ find "${D}" -name "*.la" -delete || die
+}
diff --git a/dev-lang/vala/vala-0.48.6.ebuild b/dev-lang/vala/vala-0.48.6.ebuild
index 04168dea9563..ee886530ce85 100644
--- a/dev-lang/vala/vala-0.48.6.ebuild
+++ b/dev-lang/vala/vala-0.48.6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -10,7 +10,7 @@ HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
LICENSE="LGPL-2.1+"
SLOT="0.48"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~x86-linux"
IUSE="test valadoc"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/vala/vala-0.50.1.ebuild b/dev-lang/vala/vala-0.50.2.ebuild
index c1a73c907f81..c1a73c907f81 100644
--- a/dev-lang/vala/vala-0.50.1.ebuild
+++ b/dev-lang/vala/vala-0.50.2.ebuild
diff --git a/dev-lang/whitespace/metadata.xml b/dev-lang/whitespace/metadata.xml
index 7439f7e35b75..bd664ac1426b 100644
--- a/dev-lang/whitespace/metadata.xml
+++ b/dev-lang/whitespace/metadata.xml
@@ -5,8 +5,5 @@
<email>haskell@gentoo.org</email>
<name>Gentoo Haskell</name>
</maintainer>
- <upstream>
- <remote-id type="github">haroldl/whitespace-nd</remote-id>
- </upstream>
<origin>gentoo-staging</origin>
</pkgmetadata>
diff --git a/dev-lang/whitespace/whitespace-0.4.ebuild b/dev-lang/whitespace/whitespace-0.4.ebuild
index c84fac19416d..1efe97570ebb 100644
--- a/dev-lang/whitespace/whitespace-0.4.ebuild
+++ b/dev-lang/whitespace/whitespace-0.4.ebuild
@@ -1,12 +1,12 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=5
+EAPI=7
-# ebuild generated by hackport 0.3.5.9999
+# ebuild generated by hackport 0.6.7.9999
-CABAL_FEATURES="bin"
-inherit eutils haskell-cabal
+CABAL_FEATURES=""
+inherit haskell-cabal
DESCRIPTION="Whitespace, an esoteric programming language"
HOMEPAGE="https://github.com/haroldl/whitespace-nd"
@@ -17,13 +17,11 @@ SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
-RDEPEND=""
+RDEPEND="dev-haskell/random:=
+ >=dev-lang/ghc-7.4.1:=
+"
DEPEND="${RDEPEND}
- >=dev-haskell/cabal-1.6.0.3
- dev-haskell/random
- >=dev-lang/ghc-6.10.4
+ >=dev-haskell/cabal-1.2
"
-src_prepare() {
- epatch "${FILESDIR}"/${P}-ghc-7.10.patch
-}
+PATCHES=("${FILESDIR}"/${P}-ghc-7.10.patch)
diff --git a/dev-lang/yap/yap-6.3.4.ebuild b/dev-lang/yap/yap-6.3.4.ebuild
index 3f2ae45ef1eb..b74133a444f1 100644
--- a/dev-lang/yap/yap-6.3.4.ebuild
+++ b/dev-lang/yap/yap-6.3.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -18,7 +18,7 @@ SRC_URI="https://github.com/vscosta/yap-6.3/archive/YAP-${PV}.tar.gz
LICENSE="Artistic LGPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
IUSE="R debug doc examples gmp java mpi mysql odbc postgres python raptor readline sqlite ssl static threads xml"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
@@ -65,7 +65,7 @@ src_prepare() {
}
src_configure() {
- append-flags -fno-strict-aliasing
+ append-flags -fno-strict-aliasing -fcommon -fno-inline-small-functions
local mycmakeargs=(
-DWITH_YAP_STATIC=$(usex static)
diff --git a/dev-lang/yasm/yasm-1.3.0-r1.ebuild b/dev-lang/yasm/yasm-1.3.0-r1.ebuild
index 5d0209b792f0..1b5a01d49a79 100644
--- a/dev-lang/yasm/yasm-1.3.0-r1.ebuild
+++ b/dev-lang/yasm/yasm-1.3.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -10,7 +10,7 @@ if [[ ${PV} == 9999* ]] ; then
inherit autotools git-r3
else
SRC_URI="https://www.tortall.net/projects/yasm/releases/${P}.tar.gz"
- KEYWORDS="amd64 ~arm64 ~ppc64 x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
+ KEYWORDS="amd64 ~arm64 ~ppc64 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris ~x86-solaris"
fi
DESCRIPTION="An assembler for x86 and x86_64 instruction sets"
diff --git a/dev-lang/zig/metadata.xml b/dev-lang/zig/metadata.xml
index cb8d5ad966ce..5df48b9bd2b9 100644
--- a/dev-lang/zig/metadata.xml
+++ b/dev-lang/zig/metadata.xml
@@ -1,14 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>n@nirf.de</email>
- <name>Nick Erdmann</name>
- </maintainer>
- <maintainer type="project">
- <email>proxy-maint@gentoo.org</email>
- <name>Proxy Maintainers</name>
- </maintainer>
+ <!-- maintainer-needed -->
<use>
<flag name="experimental">Enable builds that do not support all of LLVM's target architectures</flag>
</use>