diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2021-06-15 14:57:03 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2021-06-15 14:57:03 +0100 |
commit | d18bf1e01b65ee4bf0c804e2843b282d3d4e5d7c (patch) | |
tree | 4a95cbc6ffdf13bad6ecbc7f8d5af99631984123 /dev-lang | |
parent | e748ba9741f6540f4675c23e3e37b73e822c13a4 (diff) |
gentoo resync : 15.06.2021
Diffstat (limited to 'dev-lang')
71 files changed, 5761 insertions, 261 deletions
diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz Binary files differindex 86a0b82dea52..87c139cce777 100644 --- a/dev-lang/Manifest.gz +++ b/dev-lang/Manifest.gz diff --git a/dev-lang/R/Manifest b/dev-lang/R/Manifest index 01b900e5e0ea..2ee1450b6a22 100644 --- a/dev-lang/R/Manifest +++ b/dev-lang/R/Manifest @@ -6,5 +6,5 @@ DIST R-4.0.4.tar.gz 33687611 BLAKE2B 40cdfd98fe6c9193deb729d151631c2b0f935accf5e DIST R-4.0.5.tar.gz 32466444 BLAKE2B 5dbbd289f4fd6347b4109eecaf65b50b5793a83edddd2cb391c20473607f136d91a8e9f4ab9e453f6927d2ca9145762920424e3a1dcea89309afde56efd5d32c SHA512 6ff5b0f9cb6b17f66cde1f5585d1b33659dbae8919d34c2e593f68a0bff4d0425aa9704d99284d103702a9cd42f613311f3a87af6b939b1af65dcec80bf2ca8c DIST R-78d6830e28ea90a046da79a9b4f70c39594bb6d6.bash_completion 13596 BLAKE2B 53338e4a1c4f68beb69247216e553dbcac47f660fbf032bfebf7a660e32d2cff5b11ed35411c52de7e1fd6e00bbf5b5ea19369a325fa0a38bd93d63dc3288cbd SHA512 9ccd19bb1b0c18a2f13035ccd6809447429e197e298fb4d1df808ef345d723b42f75a1b91c349f6dbb46e4a82e59ef33e11300c495d79b63d670d0c0f2b16a06 EBUILD R-4.0.4.ebuild 7311 BLAKE2B 63fc04096321ca5d5e3c947816ad02bf1b1fee47ea9e4500006ebc356dbf4aa70aca631497988ac33fb5a1e8ab2999a23f6b1d4519206a73993cefb79d2f9884 SHA512 6bcae68392035fcb25cf55e5e0dda41ad746ab5dcd1868477da801d8d7af82b0e3d0b52fa2d82009b43ea892bd9cf2c5b57c62aca4a7ee36a431e6f55b4cdf44 -EBUILD R-4.0.5.ebuild 7315 BLAKE2B 77445afa767b02617d92ad61c3c8af84e9a4eb3715579228129c254341382e08b474dae18b819bfe1b559f0e3a48e09a8bde653a16106047a10237c43ed1bb95 SHA512 3c8bbd24aca4985049f7bb6c13dddf22e0eb454658bbc7bd973920a802a35a7f180ba91792a5ca42f72887181d878647a60556d0d64611bd29eef241a3fab225 +EBUILD R-4.0.5-r1.ebuild 7317 BLAKE2B 315e2839c034b781875038a95915c20b2a7119d67f574031567a193387cd2b00064be5040da1c2f4e702652acc2a58d9e810d5a0c8b6ee43b5d6b3727754c4a1 SHA512 822f867dd53fe9a81208d9371c590191abf08c048601ec5bdc77ff9047d624f83918809d3a61ea3281de69c79165f18782915ae7c13b65384bdeeee7e647b37c MISC metadata.xml 1140 BLAKE2B 774221eb531b4e80f0650b627b9ce53d9a2daf6342b1f19579d2d046e1c83aa497cc764870406b7ea3cf6cbae899cb6d460af92991d62bc6aea8da026a441822 SHA512 297c7e17998f92fb836b0599ce5221aee1ba1e7b1504edb348a602b695faf381d51f32f6118f5ef4bb353f02e92ffc5b3520b8d317d3e30a68a3cce0254fa6b1 diff --git a/dev-lang/R/R-4.0.5.ebuild b/dev-lang/R/R-4.0.5-r1.ebuild index 560e83d01f72..0250344292a2 100644 --- a/dev-lang/R/R-4.0.5.ebuild +++ b/dev-lang/R/R-4.0.5-r1.ebuild @@ -59,7 +59,7 @@ DEPEND=" RDEPEND="${DEPEND} sys-libs/zlib:0[minizip] - java? ( >=virtual/jre-1.5 )" + java? ( >=virtual/jre-1.8:* )" RESTRICT="minimal? ( test ) !test? ( test )" diff --git a/dev-lang/elixir/Manifest b/dev-lang/elixir/Manifest index 1d9f4393b788..e617f9f19f50 100644 --- a/dev-lang/elixir/Manifest +++ b/dev-lang/elixir/Manifest @@ -3,9 +3,7 @@ AUX elixir-1.10.3-no-Q.patch 355 BLAKE2B 903e5a7149f6e7f7030a533ae437b0e40b97c82 AUX elixir-1.11.2-mksh.patch 2058 BLAKE2B 45e14921fc59f5707ee9bc2aaebea5f090a5995d07e1aa773d3751690230ded1abade17179f643e787ae3b53661c8ad7bafdf295fd1eb21d534c0b38a0083a1b SHA512 a888b73638873a5b7a6c5f2576c81d58e8df854e2ab3ecfbcf547da5aeea4eee0f43798a1c1308bc7f3515af2d28e78740c4016fde0f5e0eea2114dac7d98de6 AUX elixir-1.9.1-disable-network-tests.patch 569 BLAKE2B fda6b9b99f80e81883723280de31933c1740167d41ef4783dc663bad277cf58b8782326abc4a72e0d989c513afb9cdf4494e7d79754b18d62baf75255a74aa45 SHA512 465831a389891680412d51d9209497d5b750ff0a5ff72d45807a7dba6ec7757156ee96048bbc81f46c9c24a5b13cdd5161539fdeb4ffcea655c407e29f6675fc DIST elixir-1.11.4.tar.gz 2396885 BLAKE2B f63e835991420bce8cacd38a920637aa5656c0372bd09e8c0a357a24bcca9a06350973f1453f482d3854a48712471c55389c3bd530df46a19c20a359376b779d SHA512 5dc940a31a31ae1c1537f874c15e58311cc0b0452f61e923bdfde0a5cfef3d8003eb3e85be320eb0acfb7bc0c0c0dc8ac965dec6727257c244048268fbf38ceb -DIST elixir-1.12.0.tar.gz 2457567 BLAKE2B 9adc3d54e2200cddaab0323a8e1c8affae6ad0fbee2c48da87249db0f29d31158ef0a74edf95128302183ba3ee714f502df6d30048c49b42c190d1a43e4e8308 SHA512 6ae99c0307d2adaa51cc8b569329592509b1e19bf9f78d4230507c11229da674476c0be65bc9ce5e3b0d78082182755a76abc8beff59af1f84672dd73e5b912f DIST elixir-1.12.1.tar.gz 2458060 BLAKE2B 512f016cb7f064f2b90a4d2dae4ffaf957422f049322b5fbed1eef155687b1111de89df838c254cf123b904e64f746fc19175372166526c739d8a1d66f9abb0c SHA512 ecea8a95d05e85431c324c7e15fdd08639a52fa6031fb8ec671825debecd892d2258b3914fdd8417728be1a18202d211eeb19869797ad0fd022c6ec91cd05880 EBUILD elixir-1.11.4.ebuild 922 BLAKE2B 718117a8aee4294e70930d45d6b39d6522026c48165b9af54eae4b612458509e456586e8c6a256175ed4e66a6e36293d22d65d69b1fb40ec28efb6ee1b511fbf SHA512 e77cad093155fbcbab5247c18c4c45db407df167c296d9587c19826d303c0e38f431bb4c3ea61537dbfd0c211d4917ce08a38c6f6a2c7fb1c6040c0e279c9b8a -EBUILD elixir-1.12.0.ebuild 886 BLAKE2B 946c6fb8fc5b2500ff4a58bda868b3ed5beacd1065e49ca410a0fb38c3411482843dce90a4eab87ae8ac96567cd167ffcafcbf960dd059d8411744e3fd125597 SHA512 8256f2f7d0d3e064b99059f5d9b2defb4275bbaf81529e44bd761b28e035e11dfcba21c8f446b9368198d9047980fc955c3c6faa9bd03a9c818ccd2e26dd0c49 EBUILD elixir-1.12.1.ebuild 886 BLAKE2B 946c6fb8fc5b2500ff4a58bda868b3ed5beacd1065e49ca410a0fb38c3411482843dce90a4eab87ae8ac96567cd167ffcafcbf960dd059d8411744e3fd125597 SHA512 8256f2f7d0d3e064b99059f5d9b2defb4275bbaf81529e44bd761b28e035e11dfcba21c8f446b9368198d9047980fc955c3c6faa9bd03a9c818ccd2e26dd0c49 MISC metadata.xml 820 BLAKE2B 7fd55cc9f7450d46060069909506fb74e93234ccd319b5f5b428580fd4f55c59c2ada78770ae744d784838574d87522d3e94f101eba06b5a64ebcb513db4eef3 SHA512 11300d8d6d6cbb73b55d4dfb44d04fc087867bab1fc3fcb0564473d911844d3be148170c03a9247c6a407d8de88442ca6017c00177d93be46b37166d3ba42593 diff --git a/dev-lang/elixir/elixir-1.12.0.ebuild b/dev-lang/elixir/elixir-1.12.0.ebuild deleted file mode 100644 index e35418c14594..000000000000 --- a/dev-lang/elixir/elixir-1.12.0.ebuild +++ /dev/null @@ -1,37 +0,0 @@ -# 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-22: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 -) - -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 df0762240088..89aa353b616c 100644 --- a/dev-lang/erlang/Manifest +++ b/dev-lang/erlang/Manifest @@ -9,13 +9,15 @@ AUX erlang-22.0-dont-ignore-LDFLAGS.patch 1174 BLAKE2B 64900c6b934ecbd11238e604f DIST erlang-23.3.1.tar.gz 56654422 BLAKE2B b1ccd870d4a47f12d1a65b424d6c6b0f59a4654c0779c595fb28fdc2d3e179bb9b12d2473770b239b65665b2f6a3281d239f9fb3d6b86548df3ee69fce8fe5ed SHA512 03d4be9b25a14359e9f8db52d8e7d8edff1e8c53686a189caae15373c7e15d03f05e1138c549b8b41b8e6b7c55ab154cea47356f6fe79f7b72d5fb4ce759c4b0 DIST erlang-23.3.4.tar.gz 56664814 BLAKE2B ef8aa8d5a6fd1efc02a35459d1cb15eecf5f948127266bf782544e1da9a59765aca15070ea92df5558a4de017cc810e3542e2393e9470243fc6d9be13e9f37b6 SHA512 c8c5a9676163058276c703a0db0373508fad0ed9dff0aa9806ce59115ca766ff1d343c5a3917a920b249655fe188b974482ff378e9173c9fe00ea3907e618da5 DIST erlang-24.0.1.tar.gz 58860070 BLAKE2B a52f6f18173f7dcc79cc3f47155fb08854eaef29e52b78e5b78f5239c2f2617c20be3878ba01511d942f0fd0351b44c982fd5ad29ed1da6d8939d05364342238 SHA512 8e6588e69e58395c92a6cd9e63ff4da688e8fe8b1cc6dea3e3bb5b102940854a73a1a6363e8f94c697117a7be0f8b07712cb584af1d9ef9947eb87b09c8559e6 +DIST erlang-24.0.2.tar.gz 58878378 BLAKE2B c2ea65cac39b654d9037ea9fcb47eb6eea96dec2483378f414bc33475e850121c1adaa30ea880070624496be9779539f98c864b0dd6eb92d3c4badaa121353d1 SHA512 d85e3e6a4177ac8c696dd666183f624065a89d35aa7f031cd6a7b105e0d1f9007de8d413880df47daf8f695485d952a81a14a01313b52f66534c1e5bd050093b DIST erlang-24.0.tar.gz 58258571 BLAKE2B ee71c1f19a1d990977d3764bf4122593a216e4bbbef7e5a8a5c7e22142171ef869b4a5ac01aa1f4495eaf79808cbb677d4163a52917879e2a615f08e20480c7e SHA512 bd3e4dbe640e80dc2173bc9c92178acbd6aee7a486a1eebb7fe8ec70963b8c94bb456af7ac592f434700cd8b1d98ef8351bfc7a76113bbbd0c9a0e20fd68629b DIST erlang_doc_html_23.3.tar.gz 36224657 BLAKE2B 7e2a3e16f4cfa0f15c01074740e02af7a45b480b4a94e764463717658ab7e5d0281f928c3ec585582b10168645e3e06cfe72cf6a0ba1b88f539b80f2b7ad99be SHA512 8be4aae46839239604b875b39339e7b6b6c677c099b3d749d5f1041c4508c1c3b4aa8136a93df12b1e5cb6333ef907276f5965c9726ed2b9e77a6043c8ef53b1 DIST erlang_doc_html_24.0.tar.gz 39731398 BLAKE2B 8a9fe3acb4cc13691e16c477cf89e8298df1a99bbe6a6c9e59e3c34248ecdc21077835951087b5a5bbb23ddb28f3bd7ab8b058fe64ce56c342b825a6c0ef8948 SHA512 453f8a9cf779a4f43966615433afc3be3aae7a571acf45974947bd720a331ca05949bc310de5f3b33b72d274971103ede56875bbfe757ba17f903510f690d97e DIST erlang_doc_man_23.3.tar.gz 1456501 BLAKE2B 414bedee0e316d97b26d9d6418b799a9434a22e9980e7d3a83e2478d184d63d1633c0e10d0e180d929a3cacd82b4d703be86cbc8e99996037f6b37ea122f7a8c SHA512 6c661c210ffec4752afe624fa46700a0f62cc6589b74b859ab1dfde77d289e992988ac8744f7b4126d7512cd6d0aab3321f710a6324552b259bd7acd5b54a05e DIST erlang_doc_man_24.0.tar.gz 1666152 BLAKE2B aaef8165322f39f7410840eafe562ec5038d9c89b4fa99b3b1d5748ba70fe755ba732de403dd916328e1fdcec895e2a347db4fb8c8837b5e41155439c9c54ef6 SHA512 7251f6eeb0534cc8538236a2c4be9d732bf0a05ba6832f9b3859116f9148e469d004331924c7187b07204798afb66067bfd321c8905000c355775927e5841918 EBUILD erlang-23.3.1.ebuild 4499 BLAKE2B 06891eb432ae12d43e860ce0773eb01768ea75ec4f16c365fbe16c22093039e5b18aaa4d3ca558f7a64cada0fc405ac0ba898065b80c778ad9253197302c5145 SHA512 09397c1f46fcf92ef160dee067b9dbf9e0a9125e112f28748180166ddd0394ad34f03e0ddcf32dccff101485927f41c1b1a4376a66bbfd52c8fb2f74bfac27d5 -EBUILD erlang-23.3.4.ebuild 4504 BLAKE2B 16b09bf6af1c223776b5cb2c55c32dbd5eb540cb9ae12496485f64bc1820c4118575a155440764144e10c6d50609db02ae5eb2c691a0bf82b63c0ec1454a4f41 SHA512 f4bf67b5b4bba5734893e67c50e46c7387c192455befea44eabf1ca5aa1f76dd05eeab1dd9eb7c34c230553ce0864493e81e3185fd5d6554a8cc239ecb49f441 +EBUILD erlang-23.3.4.ebuild 4499 BLAKE2B 06891eb432ae12d43e860ce0773eb01768ea75ec4f16c365fbe16c22093039e5b18aaa4d3ca558f7a64cada0fc405ac0ba898065b80c778ad9253197302c5145 SHA512 09397c1f46fcf92ef160dee067b9dbf9e0a9125e112f28748180166ddd0394ad34f03e0ddcf32dccff101485927f41c1b1a4376a66bbfd52c8fb2f74bfac27d5 EBUILD erlang-24.0.1.ebuild 4523 BLAKE2B d17d8fbb7bf14688c4ca9bb041d451cb5cbf37be845ec0e7be165c3a9bc7fe81efd8a0fc7084cd6b5fed930eaad4258be20a56a98e1d19dff6ce9f27ff9d8425 SHA512 d8739eda6d6706da9db5c9bc31048e366c1fc5a4d62d70f732b74b6a26babcd86254678b6ab0572a0b02b1d38fa1bf2205f10d71c670f932d8212b849c567197 +EBUILD erlang-24.0.2.ebuild 4523 BLAKE2B d17d8fbb7bf14688c4ca9bb041d451cb5cbf37be845ec0e7be165c3a9bc7fe81efd8a0fc7084cd6b5fed930eaad4258be20a56a98e1d19dff6ce9f27ff9d8425 SHA512 d8739eda6d6706da9db5c9bc31048e366c1fc5a4d62d70f732b74b6a26babcd86254678b6ab0572a0b02b1d38fa1bf2205f10d71c670f932d8212b849c567197 EBUILD erlang-24.0.ebuild 4523 BLAKE2B d17d8fbb7bf14688c4ca9bb041d451cb5cbf37be845ec0e7be165c3a9bc7fe81efd8a0fc7084cd6b5fed930eaad4258be20a56a98e1d19dff6ce9f27ff9d8425 SHA512 d8739eda6d6706da9db5c9bc31048e366c1fc5a4d62d70f732b74b6a26babcd86254678b6ab0572a0b02b1d38fa1bf2205f10d71c670f932d8212b849c567197 MISC metadata.xml 864 BLAKE2B fb20217a05650be9d9f454a7ffe45aeb7e41ad4f9b1616efa94f5609db4d8de1b5848268e6224c256c2ff86b0d3bad578d6e4f0e43c4e8bf433e7a7e9210ae98 SHA512 c4aae8e974789ce095eeaf7d7517da16351b1ebb60cc98abdeebc41147be4bce084081d4f7a03727f9070434a9e1347c0ebf809a99931bc7177525726cb9c161 diff --git a/dev-lang/erlang/erlang-23.3.4.ebuild b/dev-lang/erlang/erlang-23.3.4.ebuild index 257dbb6d4a2c..fd509078eb66 100644 --- a/dev-lang/erlang/erlang-23.3.4.ebuild +++ b/dev-lang/erlang/erlang-23.3.4.ebuild @@ -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 ~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 odbc sctp ssl systemd tk wxwidgets" RDEPEND=" diff --git a/dev-lang/erlang/erlang-24.0.2.ebuild b/dev-lang/erlang/erlang-24.0.2.ebuild new file mode 100644 index 000000000000..01313ebc6b11 --- /dev/null +++ b/dev-lang/erlang/erlang-24.0.2.ebuild @@ -0,0 +1,158 @@ +# 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 toolchain-funcs 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 java +kpoll 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? ( >=dev-libs/openssl-0.9.7d: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}"/${PN}-22.0-dont-ignore-LDFLAGS.patch +) + +SITEFILE=50"${PN}"-gentoo.el + +src_prepare() { + default + + tc-export AR CPP CXX LD + ./otp_build autoconf || die +} + +src_configure() { + use wxwidgets && setup-wxwidgets + + local myconf=( + --disable-builtin-zlib + + # don't search for static zlib + --with-ssl-zlib=no + + $(use_enable kpoll kernel-poll) + $(use_with java javac) + $(use_enable sctp) + $(use_with ssl ssl) + $(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/ghc/Manifest b/dev-lang/ghc/Manifest index ec022d9c9260..8e5a0eaa2617 100644 --- a/dev-lang/ghc/Manifest +++ b/dev-lang/ghc/Manifest @@ -3,6 +3,7 @@ AUX ghc-7.8.3-prim-lm.patch 444 BLAKE2B a930bb9657441a48941debf79711e06223c5680d AUX ghc-8.0.2-no-relax-everywhere.patch 766 BLAKE2B 76ca925d56a9d2961cd342971ef8fb0165158d707f0089f3726560511e57ee5c08adeaf996595378d1cef3ec7b59ddf1df06d0255bf20da51c5b26e817f4057b SHA512 b729ddc27bbf089324f0b4d7229925226b59c0047cec0c0230e022fb8554389373e309e93a108f0aaa155fd9ff6957a7d41cdd35a90c6ca59b216381ff21483b AUX ghc-8.10.1-allow-cross-bootstrap.patch 541 BLAKE2B b77b3c9ebb7a33af6f82ec1b9927664e9bfce04450560a8e436ffa87feca50d606824192b7333e3b98d5552622592b6d39d0b184037ce646d6f7ebd205deb348 SHA512 d87a99ac96846e161d8c939079f8314d380be8e1dc62f956e3afcce1339a76447a14002b30bac1c86c807fd8eba23a0648912a3d074248f3513f9aadacd27489 AUX ghc-8.10.3-C99-typo-ac270.patch 348 BLAKE2B 8d23baffa0ae781db4610ee78fea812ebc25450c94e942d8008c591cca78c6072c24b042e7a9dab08ae5213ed4ba931ff932ad4685fc029fc004039494a70c7f SHA512 9e224c6863b5f0f0deb032d4554dd41f2396a8cbc373b860294ba76feaf1abe7594711ac02e9a06356c024df8d6fc6a7a064ca428eaa1e4e6209b3a29d4317fb +AUX ghc-8.10.4-sphinx-quote.patch 872 BLAKE2B 2459d9b2d7d7d30eb0fdda999ca0da86264bbe324786eecfd4a2eab0eee04cd50e378972901a0f84c31d857321218b455aab452e87386c5b3659d4d619efa196 SHA512 05637a55c6e27fe4a128c1978b86c72b6d848cee609c8fb035f32b2d48a8d6536add73717d1dbb232a2a84d7834c80455e6e67000f58813447f7e555b6868d39 AUX ghc-8.2.1-darwin.patch 910 BLAKE2B 2f1a44dd7ead59301b5dd59c8cab932710655416640f2c8d5273cf07da4a45bf702d840768e2d32822e89f1b07cc9ed3a6110e1847e11468fca5c515e9e26f70 SHA512 0177fda8717d9158a99d96853feb1bf40ff13df8f5c5669c7c48f33accf69d6ddb05876776cda66705e85ee56c5ecff8f81722d8e748b6c2ed6b9bf611e42a2c AUX ghc-8.2.1_rc1-hp2ps-cross.patch 3865 BLAKE2B d68b1e15c091047d086be780dc0bb5ce2a1b713244ee240ae045052ccac947baf6a5bdea8cad50d0fac2984700069af7dcd320b96ca09af8c7b81021329da41c SHA512 d2ed48701216f5c03567e61c207e32d6218009380941275c690edd8eb0197728e7e3c0edb00d512792dc2041a958de82ceef393e96d3324b690157162e28d29a AUX ghc-8.2.1_rc1-win32-cross-2-hack.patch 6231 BLAKE2B 8ad4428ebe9a373e08e94e5373ad9578cafdf95b866ced2a4000434d9e5d4298b129e832e13e8e175e8977b9dda9351d01a896e2c320a1a40551d5892b0efc33 SHA512 8617c1346ba7aa2b41ee01feaa47f2ca477353f9b825be48c5d3505a134e0a80b613efc6cb92e7fbd3fe062e77450e197c826151a42c0c77177fc6ef8e65287f @@ -12,17 +13,22 @@ AUX ghc-8.8.1-revert-CPP.patch 2236 BLAKE2B f793a9e9516f9f484234311372715116dfdd AUX ghc-bash-completion 6496 BLAKE2B dc94a1979e886026a2fbe04bf7b45718ffa3e025a0e8945262e21a1243bfce6517fa1794f2ba6cd54cc853e93ad5d80472b9019b95762f10b5be83634a479955 SHA512 ede79ccf23555f60f48297d29bd98e3ccfd67d2cf27462153e00beb930398cb497e34ba8316e91df44c577ed11fdbe5606f7c6a2777e35d5e783590e49ccfeb5 DIST ghc-8.10.4-src.tar.xz 19818108 BLAKE2B 069dd8436c373ccf73c20d8b577243792ffdd3a031e869edd612fe1e273126e60803326542695012dbe62e57654ada18af9342bbe1a741b2bebb41cdb0d86035 SHA512 9bb078cb72535a352243b83b671c871392564efd09e478549f27ae58fc6f46e337a0782f5500d26d5704ad96eace22e77bb36031a1fe9b7e175f265b0b9c028b DIST ghc-8.10.4-testsuite.tar.xz 2236932 BLAKE2B 17d0520ad5c6daa0cc60530279ae7e617e4d79328b9f436abbe75e72f0803d9a997fb9e1ae61425326b070f45794a488d8507957fec9a6ed49eea86d30a1e579 SHA512 1bf129c8d872e3ceff7c19929605adc5d68daab9ded9aa2e5109b0de162089631472c66f04993adf8481291f8128bf804fe64a9d344c81e257f1b962ba5e382c +DIST ghc-8.10.5-src.tar.xz 19920148 BLAKE2B bd3b702fdac4d1c94366bb233a665c2f5677b795d9041c61cc13d813aa43738d5270c3604731f964393035cef90768d4c6e0e401aa35fec6dab61465782f41dc SHA512 b5f39be0accd5c1cecf1cc326ba3142f561d2ac93e9abf366fe46307d7c0712aac244836e659e1a4d9d0fb98299ea96edc8e8a06f3a81b528b14914b94057ffe +DIST ghc-8.10.5-testsuite.tar.xz 2270504 BLAKE2B 076afc4565c7ba52814547b09313c44bfc3875fc0b05d1af1d3fa702cec9b6b219d86fd56d26a3df07aaa00b37eeb87c58b509162a231bf4e03a07bcc57e9550 SHA512 adae7ff8005c73fc5ded42035c51b1ad6c476beed54de7ba336437a67e81a75d7af8c1be3817516e877b1b2ff0e771fe667d07b93d3a73de8df26a06ed42f334 DIST ghc-8.8.4-src.tar.xz 19395252 BLAKE2B 6fa898b9552398a724f0452f5cc88ba073264a5645288c73507258959efec40ce5a56a0eaafdabe58f15c5a9210b2c9da5954411dff5c81c52e061569d6a350a SHA512 efd23bd819f7429486696a3a929a040471db7ea8a2d1f1d832e4cf0825b9e1e0c5e6ecad0ab8376f58b74e9c28c1d2f773bd126596d6d853c9e57d57e5ceb090 DIST ghc-8.8.4-testsuite.tar.xz 1965820 BLAKE2B 3b715700561788b8abdc986961d533b91399461d57a1686ededb4ccc36881503cdc3fc126b9a7b204a728c24b9a9ca97320142348644367aca9b47c87a5b3b51 SHA512 79d8fb0ba8de0fb48c938bd54c8c3278f1895d8ce5c700ce8cf6b3fc550073bb757208e85d4f9818400ebecca96f51d9248b8bbdac9eb2995671756164d08c16 DIST ghc-9.0.1-src.tar.xz 20782336 BLAKE2B 53eaf903081d705d641459fbc1e6fa7387a6039f9cd466b4708bda86e81252a84d80878d6eb956ec2e1e5b721a313e68eeb796f8345244ca62f536a7a3f0c6df SHA512 bee7950a5118be8d8cefe0db5070139a5a93ca21c5bc6f8bf453429831f0c44f5e0fb5ee569865d6b8b92749044ee4123be06920928ac7a1ec9cffa9404a3e53 DIST ghc-9.0.1-testsuite.tar.xz 2322432 BLAKE2B 350df763c607dd89ba58ad6e856d815556159a9f088dc0b069de48ae87c1e874a45fad51159e65a3c9a9beed68602eeb2a2728dbce86277bd287455f46f6c53a SHA512 13fbe0f0ab5e2426820d0fb37f0a75e1198ef2a660398508806e8ef094fd23647ca3d386815a2118168d12253d8df3273043678dbb37cf3924c689dd0fd1932e DIST ghc-bin-8.10.4-i686-pc-linux-gnu.tbz2 123831294 BLAKE2B 1ca4c1b5c34c948011049a73d409c741db89658d10e311cffbe464c631c3733278fc7dede6ad27474832295ded2c26fd4d6419c760505255e29f7cb232a670a4 SHA512 1f87cf63651f7c0e5f7f55d1f4d7d7c48b0a911cc6673a899d4b92190d765b359f9c7d73c329969c1b76f1af102b7e2c18a80382c81d5dade9ac7dd57de4ef65 DIST ghc-bin-8.10.4-x86_64-pc-linux-gnu.tbz2 122558873 BLAKE2B 9f07c7bdc3beccfa629d28b2524ccd2f4688a5c0036a45408f5ace2d530a2a0e42f95b3cda5037ebb365317999e1ae776c6f9d21692867abfe85e33f2892b1be SHA512 68bd70f94961547746a696aa2839e156c95858fda0c7ec5b2ecf802070724ab7102b0aa86bcbf93432170d521cce4af10f46b851b470e5dc49dfa5b07380f46d +DIST ghc-bin-8.10.5-i686-pc-linux-gnu.tbz2 124356781 BLAKE2B 53c5d259a19f11db83d69f7a2f39090d623b07caf1859eb8bf0385183586f538d8eb3eadb06f56f4b7160fa82043eb0f7b8df1632d55af562b8b1cb21c08b4c3 SHA512 58676b4eaeef9e05f69b7c821e115f3a678487b0de696e702ff6378f7d8f23fafda997b0c19d52a730c22bf8012a99c01783d16d00e356fe12532156d5965fc6 +DIST ghc-bin-8.10.5-x86_64-pc-linux-gnu.tbz2 123186918 BLAKE2B 5049514a7c2c58e7f5c929cfb9e818cdc20280f4fc002350cf0cc19f410eb4d4be4d0b46db88205633fde73151e322f3cabd050a9c07e05ccae168c7e6be8be9 SHA512 3a8ef5f0c259ad86adc6a7a5718db419fb0e38a5d1e0bdcc8676e44d1a0130a4b25658ab23572e4e860307b024409da021e08b038fac64a773437c23519b1d0a DIST ghc-bin-8.8.4-i686-pc-linux-gnu.tbz2 120336081 BLAKE2B 55dfbb90d5e55c2af5e93c69249828a85cd9171c164b80dfdaf86512972b2c6854c8e4f07426af4ab52a5fb1a85d96a58c2cf003fb02372c55428001cfaea491 SHA512 ad3b83344349976d3253934195b2dc6299648391572b13735943c5ea2239c031c19b0cafd86c16cfb0c061e73bc72e9248f9c1731494a9a15fbe188f02913c12 DIST ghc-bin-8.8.4-x86_64-pc-linux-gnu.tbz2 118897883 BLAKE2B a180b2dd1a3bc222044ece809ad700aee29d0c3e75b57ee9af3ca33c9c0f59dbf36f68202f746d99f80915cb717a9c41fc12db507f1cb469981732703a06b9cc SHA512 9d4be02dbd9704c93ef18feb92ea30bd5d590df31f288bf1b364818424c5019ca9ada26eec88418199f90ae8f4459d0a9352104e3f3186bbdc241891eb1b66c4 DIST ghc-bin-9.0.1-i686-pc-linux-gnu.tbz2 122955511 BLAKE2B b870f46cc78fcc1d715aafe7108951582cfd12495b4e9d804d4b66562c66a6a2b2d9513031aedc8f3630a0cdbb3257943304b05732301a084f89487452f2f2d9 SHA512 aafd4233c40f93b71e6ac1acc8a75e30d49b826e4bce6d9832836966fd5f6c4898963bd4c2f34577f4199c1d9a3f537ac1e7d87eab11e9fb5e849573580ed3fb DIST ghc-bin-9.0.1-x86_64-pc-linux-gnu.tbz2 121542968 BLAKE2B 837870e68138f8d97dc8b2aae90090cf02416628602ca4ba4417ac92b49155f10028b05ac465665b8872b32372a5cee075616983f2eacdebb0188bd2ce6a93d2 SHA512 0e8c6d2e6f32fac95588f7323a4e02dddfc9ec2476a82b97bf5a106d3810f7e638fda7124c53b5bbc563fce70f4436553c282d8ea2f1f5fdf4fcccfb15a2b079 -EBUILD ghc-8.10.4.ebuild 26084 BLAKE2B a6d1b21fd9563c1b938b1603e52974c5d48c349952b7f1cac400e67a5f0ec14be9970b8f78133cc305cb48e1b742f02dd21075c52f6672956d99823e289070b2 SHA512 04ea85fc82670629675684fd82720e1677b8611ac5c02d94b9031ff28368c4d47c471eb1d71a4c1a7979718cfb749a986742d02f41bcfd3ca85c47c6a7b4d040 +EBUILD ghc-8.10.4.ebuild 26139 BLAKE2B 89fd04e383dce946a9751d47003216f97eaced39a484aae56cdf319fb73624ee0508525f03feda0c8c03b67f8dde2c46f2b8b1dad207eac0c5c8dd7a82427280 SHA512 60c27bd5d2c398bc6964fc33ed75cf69089a72d55a8fae8d94d097d11c4368160cfdfeb52199debb98ba55821089629aadd6951b521c3a033f179a9129b37991 +EBUILD ghc-8.10.5.ebuild 26072 BLAKE2B 07085a0939c55ca628303a43638f07b3f4fe55c34ab2b91ba6339cc65c11551fd376ee08b870bcce5aded2f25ce10243ca0eaa317ed5fa12f33af587e821ecbc SHA512 8fcdedee03bd5a0467d7afc4cdacd78562368bef75906a56f28ae30533d42eb54f069af642f531bb0e48483f85cccb0d41520978595011cc9a251b4878b89fa9 EBUILD ghc-8.8.4.ebuild 26719 BLAKE2B 548af06ceb26ceff32e7b311108078c7a16077d0ad9e54419177930ef45a31d1d1e9fe1bcd827f626e51187b7676bcbdb84340243605884f56582d3a9535b2ed SHA512 5c61720081a5c8cc7d9810fb5cd7554392ba91a71fa0ba6fa9000ab989fe6894c789e08128ca3cb84bdbafa6fae6b45c8464512560afd12554740438609760c3 EBUILD ghc-9.0.1.ebuild 26042 BLAKE2B bd86239c2be8bc5bd3ae1c1b376f456c9317d182fe3c020ec2b7adf220c3037554d1f7d20f355465bd483c0bc9d65db12f574e3c90840cf5f75ef9643652b935 SHA512 3fa72c4a8b7b86110a2f5e72d07912e152147d1f3612a8dc726062e554b3591ab2cc888c1fc781f190db7a83e98a5d8bd2843870f06d051d8be11c8762ac29e5 MISC metadata.xml 877 BLAKE2B 763db2ffce8c241ef55110ca08aa9f7383f14bbe7f96a443b438f027214e04f56f8216b0cd0d871e516a13f07a8a5a52835b0f75ddd3eb9ebd7faccd3a6b03d9 SHA512 516ad3cdb3b26b242668ae2bbf48628c8fb95fdc84ab3dc00afc940c68c2b78a7aa85634c228e9b3427963f0b86263d24ba043d0fd9ae57752e5075392a0322c diff --git a/dev-lang/ghc/files/ghc-8.10.4-sphinx-quote.patch b/dev-lang/ghc/files/ghc-8.10.4-sphinx-quote.patch new file mode 100644 index 000000000000..e9517dbea06e --- /dev/null +++ b/dev-lang/ghc/files/ghc-8.10.4-sphinx-quote.patch @@ -0,0 +1,27 @@ +https://bugs.gentoo.org/792558 + +From 83407ffc7acc00cc025b9f6ed063add9ab9f9bcc Mon Sep 17 00:00:00 2001 +From: Krzysztof Gogolewski <krzysztof.gogolewski@tweag.io> +Date: Fri, 25 Sep 2020 02:52:19 +0200 +Subject: [PATCH] Various documentation fixes + +* Use r'' in conf.py. This fixes a Sphinx warning: + WARNING: Support for evaluating Python 2 syntax is deprecated and will be removed in Sphinx 4.0. Convert docs/users_guide/conf.py to Python 3 syntax. +--- a/docs/users_guide/conf.py ++++ b/docs/users_guide/conf.py +@@ -100,13 +100,13 @@ htmlhelp_basename = 'GHCUsersGuide' + latex_elements = { + 'inputenc': '', + 'utf8extra': '', +- 'preamble': ''' ++ 'preamble': r''' + \usepackage{fontspec} + \usepackage{makeidx} + \setsansfont{DejaVu Sans} + \setromanfont{DejaVu Serif} + \setmonofont{DejaVu Sans Mono} +-\setlength{\\tymin}{45pt} ++\setlength{\tymin}{45pt} + ''', + } + diff --git a/dev-lang/ghc/ghc-8.10.4.ebuild b/dev-lang/ghc/ghc-8.10.4.ebuild index 3e4cfb0d0db8..af942b11cd06 100644 --- a/dev-lang/ghc/ghc-8.10.4.ebuild +++ b/dev-lang/ghc/ghc-8.10.4.ebuild @@ -502,6 +502,7 @@ src_prepare() { eapply "${FILESDIR}"/${PN}-8.8.1-revert-CPP.patch eapply "${FILESDIR}"/${PN}-8.10.1-allow-cross-bootstrap.patch eapply "${FILESDIR}"/${PN}-8.10.3-C99-typo-ac270.patch + eapply "${FILESDIR}"/${PN}-8.10.4-sphinx-quote.patch # a bunch of crosscompiler patches # needs newer version: diff --git a/dev-lang/ghc/ghc-8.10.5.ebuild b/dev-lang/ghc/ghc-8.10.5.ebuild new file mode 100644 index 000000000000..5c7215a7e76c --- /dev/null +++ b/dev-lang/ghc/ghc-8.10.5.ebuild @@ -0,0 +1,814 @@ +# 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 + +PYTHON_COMPAT=( python3_{7..9} ) +inherit python-any-r1 +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}" +BDEPEND=" + virtual/pkgconfig + 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} ) + test? ( ${PYTHON_DEPS} ) +" + +needs_python() { + # test driver is written in python + use test && return 0 + return 1 +} + +# 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 + + if needs_python; then + python-any-r1_pkg_setup + fi +} + +src_unpack() { + # Create the ${S} dir if we're using the binary version + use binary && mkdir "${S}" + + # the Solaris and Darwin binaries from ghc (maeder) need to be + # unpacked separately, so prevent them from being unpacked + local ONLYA=${A} + case ${CHOST} in + *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;; + esac + unpack ${ONLYA} +} + +src_prepare() { + ghc_setup_cflags + + if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then + # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS. + # See bug #313635. + sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \ + "${WORKDIR}/usr/bin/ghc-${BIN_PV}" + + # allow hardened users use vanilla binary to bootstrap ghc + # ghci uses mmap with rwx protection at it implements dynamic + # linking on it's own (bug #299709) + pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${PN}-${BIN_PV}/bin/ghc" + fi + + if use binary; then + if use prefix; then + relocate_ghc "${EPREFIX}" + fi + + # Move unpacked files to the expected place + mv "${WORKDIR}/usr" "${S}" + eapply_user + else + if ! use ghcbootstrap; then + case ${CHOST} in + *-darwin* | *-solaris*) + # UPDATE ME for ghc-7 + mkdir "${WORKDIR}"/ghc-bin-installer || die + pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die + use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2 + use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2 + use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2 + use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2 + popd > /dev/null + + pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die + # fix the binaries so they run, on Solaris we need an + # LD_LIBRARY_PATH which has our prefix libdirs, on + # Darwin we need to replace the frameworks with our libs + # from the prefix fix before installation, because some + # of the tools are actually used during configure/make + if [[ ${CHOST} == *-solaris* ]] ; then + export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}" + elif [[ ${CHOST} == *-darwin* ]] ; then + local readline_framework=GNUreadline.framework/GNUreadline + local gmp_framework=/opt/local/lib/libgmp.10.dylib + local ncurses_file=/opt/local/lib/libncurses.5.dylib + for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do + install_name_tool -change \ + ${readline_framework} \ + "${EPREFIX}"/lib/libreadline.dylib \ + ${binary} || die + install_name_tool -change \ + ${gmp_framework} \ + "${EPREFIX}"/usr/lib/libgmp.dylib \ + ${binary} || die + install_name_tool -change \ + ${ncurses_file} \ + "${EPREFIX}"/usr/lib/libncurses.dylib \ + ${binary} || die + done + # we don't do frameworks! + sed -i \ + -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \ + -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \ + rts/package.conf.in || die + fi + + # it is autoconf, but we really don't want to give it too + # many arguments, in fact we do the make in-place anyway + ./configure --prefix="${WORKDIR}"/usr || die + make install || die + popd > /dev/null + ;; + *) + relocate_ghc "${WORKDIR}" + ;; + esac + fi + + sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \ + "${S}/ghc/ghc.wrapper" + + cd "${S}" # otherwise eapply will break + + eapply "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch + eapply "${FILESDIR}"/${PN}-8.2.1-darwin.patch + eapply "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch + eapply "${FILESDIR}"/${PN}-8.8.1-revert-CPP.patch + eapply "${FILESDIR}"/${PN}-8.10.1-allow-cross-bootstrap.patch + eapply "${FILESDIR}"/${PN}-8.10.4-sphinx-quote.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/go/Manifest b/dev-lang/go/Manifest index 2a21618f9699..32ff37a07acb 100644 --- a/dev-lang/go/Manifest +++ b/dev-lang/go/Manifest @@ -1,7 +1,11 @@ AUX go-sets.conf 313 BLAKE2B 03e94776e317d34b72bfb8385b8b0dfa6a599a6086e4d0c9214e7b49293768947c21d9afb323ffcc7fd85ba0af72d9cb243dbb571eee9eb81de9400fd5f5e79c SHA512 7d01b98bc8d1b609183682dd942bd4c9fa757a98243c7de3cf6c497c7bc20b8cdbe59dd669ce4bb11f914a0e9b6d100e65cea2dffd99f38be50b18e0ecf66315 DIST go1.15.12.src.tar.gz 23035406 BLAKE2B b5c79bb243b0052e7a3d58538ae734bbb38839654ffc0e1cf266d360c4f35ac1a8b02c999306a0c1bc598d6ec0c9b3326fea278163b49cd7becc820c7a129bd4 SHA512 9fdb0e74c0b4e8e5d8d45cbdb6f1d4be4d40549ef10629350856c3e045a82567a0418e949dfc229df7eea091ababec6b3e4e12b1bd424e14d7b10ef989e5c232 +DIST go1.15.13.src.tar.gz 23039791 BLAKE2B 45a6cd985a27afa8b063dff1e4e4903abf76f03621bb6e4b64b03ef5ba2a9acd3d8b19e131464e6ef57d69bcb513ae81516e4b2a8b020b50503ca162385ed222 SHA512 3f77716c9721afacb27daa175e236bb25cfc93602f1531df18938fad94bf4f59e81b81f53fa977c2ebc9a912942275a1106043133fec166965e72766b1638ba1 DIST go1.16.4.src.tar.gz 20917203 BLAKE2B 4602a20ced74dba86938283a736d5235fe5dfb34ae742c44cdcd7ae2453d4654ea5757d0be76b6687d1d34c1b8c32681c41398d1a04ae72d491ee1d8b296d16d SHA512 e1b64610e22e657d9c65094e679cec50f59ff338c0ef102e54debcced1bc032390122456451fffb2d26d45c6db2f55bb9ef7f56ce479f6f1c2c2e6cc49442d86 +DIST go1.16.5.src.tar.gz 20921372 BLAKE2B a6565deb34b6cb167c41fc3af2e3bbdc8e22333adc9109de67c9e1f4bffb3d2c6e7d289e310f777d69092b3ee7a4dd706e13b0fe9ae5b0a16f270569953039df SHA512 ba90ce1f3faa39519eb5437009c4b710b493e42764a14b0821292a8a17b714fe5985ef20e6e3c340f71cb521ff63d45a23570d38fd752526a1262448c641d544 EBUILD go-1.15.12.ebuild 4574 BLAKE2B 12cc502e407d5ccfc0a4ff3c63c724602e29b3806f8add96e1113f2a76f8444d971e7d1394d4a97b01f9755d743dee2cda4053a89d20d348c454a311277836d5 SHA512 6e4c888f2da630120c644fbc3f330af1c92c0847fb0f5bfb0fd42c888af8b7834c8508263801b34c946ed54e6414e7461411e2713f92f802c293af3624f0ad47 +EBUILD go-1.15.13.ebuild 4574 BLAKE2B 12cc502e407d5ccfc0a4ff3c63c724602e29b3806f8add96e1113f2a76f8444d971e7d1394d4a97b01f9755d743dee2cda4053a89d20d348c454a311277836d5 SHA512 6e4c888f2da630120c644fbc3f330af1c92c0847fb0f5bfb0fd42c888af8b7834c8508263801b34c946ed54e6414e7461411e2713f92f802c293af3624f0ad47 EBUILD go-1.16.4.ebuild 4574 BLAKE2B 12cc502e407d5ccfc0a4ff3c63c724602e29b3806f8add96e1113f2a76f8444d971e7d1394d4a97b01f9755d743dee2cda4053a89d20d348c454a311277836d5 SHA512 6e4c888f2da630120c644fbc3f330af1c92c0847fb0f5bfb0fd42c888af8b7834c8508263801b34c946ed54e6414e7461411e2713f92f802c293af3624f0ad47 +EBUILD go-1.16.5.ebuild 4642 BLAKE2B 2a3ebc1f8b2797ef0ca78e81fd9201ddeb25d3d422170b6f383b853579a633bbd2c5040ec4e3d0bd904ec75aa9be0a43d0d4f243514ae58ff3d9f17f7ee53a57 SHA512 6cc0b8e18db98fbe1faef5185d87e369298b8019d4c7119c6ffb2225b89a2c51c9dd550f77b5e17ef2111dea89091b64ddd78b12e20c49c2c7bcb92fd9a1a36d EBUILD go-9999.ebuild 4579 BLAKE2B c74b2bdd8db85b106cc7fced8388d1d50a67ccd1cc003ccf984c04a3213191e662a7285cacca758edbaa56149007ca84ae5d869b06a5a3f9cb72239e7ad621e8 SHA512 8cb0132fa8cdbc8a45346013f15c66b0075f3df678c3d623a1d16ed03d6b0a04b6372c14d8fdddde00dfa2eee39661ea17104fd787b6609bb5e8407ee773fcbc MISC metadata.xml 462 BLAKE2B d9d4280e921286791a55619a7e5557c7041b0de157aa0f8bf6f17cf5041f802df4037270eeb3e8d37263f9fc17939c619a0dd3bce449c5f247279884da10bf67 SHA512 26fa7bfe26f00e8e1766cc0a1052fb8b5352799a33c9eb8f0c4f4523601d3eb5d1da8adc4b731f0d778039788734a9ad483f22e58e4bf1551ec8e9dccbcb87ba diff --git a/dev-lang/go/go-1.15.13.ebuild b/dev-lang/go/go-1.15.13.ebuild new file mode 100644 index 000000000000..0d4ac09e8905 --- /dev/null +++ b/dev-lang/go/go-1.15.13.ebuild @@ -0,0 +1,189 @@ +# Copyright 1999-2021 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() { + # 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. + # The use of cp is deliberate in order to retain permissions + # [1] https://golang.org/issue/2775 + dodir /usr/lib/go + cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go + einstalldocs + + # testdata directories are not needed on the installed system + rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print) + + local bin_path + if go_cross_compile; then + bin_path="bin/$(go_tuple)" + else + bin_path=bin + fi + local f x + for x in ${bin_path}/*; do + f=${x##*/} + dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} + done + + # install the @golang-rebuild set for Portage + insinto /usr/share/portage/config/sets + newins "${FILESDIR}"/go-sets.conf go.conf +} + +pkg_postinst() { + [[ -z ${REPLACING_VERSIONS} ]] && 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.16.5.ebuild b/dev-lang/go/go-1.16.5.ebuild new file mode 100644 index 000000000000..ec9ee79ef9d4 --- /dev/null +++ b/dev-lang/go/go-1.16.5.ebuild @@ -0,0 +1,189 @@ +# Copyright 1999-2021 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}" +IUSE="cpu_flags_x86_sse2" + +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) + use arm && export GOARM=$(go_arm) + use x86 && export GO386=$(usex cpu_flags_x86_sse2 '' 'softfloat') + + 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() { + # 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. + # The use of cp is deliberate in order to retain permissions + # [1] https://golang.org/issue/2775 + dodir /usr/lib/go + cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go + einstalldocs + + # testdata directories are not needed on the installed system + rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print) + + local bin_path + if go_cross_compile; then + bin_path="bin/$(go_tuple)" + else + bin_path=bin + fi + local f x + for x in ${bin_path}/*; do + f=${x##*/} + dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} + done + + # install the @golang-rebuild set for Portage + insinto /usr/share/portage/config/sets + newins "${FILESDIR}"/go-sets.conf go.conf +} + +pkg_postinst() { + [[ -z ${REPLACING_VERSIONS} ]] && 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/hy/Manifest b/dev-lang/hy/Manifest index 616d839a0753..0d64d9a1fc24 100644 --- a/dev-lang/hy/Manifest +++ b/dev-lang/hy/Manifest @@ -1,6 +1,5 @@ AUX hy-0.15.0-do-not-install-get_version.py.patch 569 BLAKE2B 548cec5bc35f65721b4c8109256e79f2cbf8d2ba6620b66f88618678f73c6117c354622ffdce4936ccbd3574d3f3ce3517eb7f763bf5d770ac652992c81a1cea SHA512 c9ea2ae683ec8391192918cf0173e598732f1d5c1e4cd0814c63b20055c781b8a194694f6ed2585cb4acd43756650a8d9e6d3918956521c24b7c798ee8bdcec1 -DIST hy-0.17.0.tar.gz 438729 BLAKE2B f699198a3181592dc0a1c12ecb85defce5ee592eb3c949635f37af36f39f452b081b18b46a122d515a7246d448c1710eedd8015a14f18dc074c61f0cfccecf8f SHA512 18601bf47df2120f8833a1ae211c416dc90825f31cd50b259adfe0585089a623d0fea13512b2935b093e14d8595c93bc1610939d5f1d664f6acf7ddf7e341542 +AUX hy-xfail-macro-test.patch 713 BLAKE2B 37642d403c2c901af4a24785c44c55c0d2174f09d958450ab5ee650b5e83a29a41126e0af6d6fc35b28f0b67f58b4f277238b04f03ab233d4200a707719540d8 SHA512 f86677eb023d1c40b18152d931f8850fb73ca7f530b7e5193941fe898216ebe9e98e641096c13af0b7a04729acbf2736ffb8486df7ec5d304f47db9bff8e70dd DIST hy-0.20.0.tar.gz 448041 BLAKE2B b728d5894403bc40e899979153ec7a0a0479a82ab5dd85699d87df150cf9169d199c06897a9573f9087623ae43a594536e56779bb6db463fd6490d944e6743c4 SHA512 ccad5f3704c48136ce77278c0bc470bf0dfbd56d8f81cfab22d90517d915cf22a6e1a976aecbb17fc9a7260fde23f3feff4572b8af80d10ceed767aef301af86 -EBUILD hy-0.17.0.ebuild 1087 BLAKE2B 771c533c1284077352b6c4e1874bdfc896b671098d942a594252d46c703983f8ae0b2d99eddac8ec6d2f8aa814ede26f7b4fe7a8445dcadf3dcdb3b6f65a2d21 SHA512 cb5c017b932c34cd25badd8916e1c0ef2e59c831ec58515a2fd4749004e79d8d93d07f4bc3ba83d6bfe1bfaf5136fe12b75e52c016a9af2f52536135deec507d -EBUILD hy-0.20.0.ebuild 1107 BLAKE2B 46ab31fa2b2f59c4ea3f6288c54c05c56bfb5568eaeef76a344033a181265656aef3d1d3e6115b03b5a83e0fbad9a16d0f83d599edd85223b43869d51e670faa SHA512 fe6debeb5e19dfc79202fbaa6ecec9861f3ce6a355d8bf2d801847b25c1219885432a9fb598efc98f59cfcfb77cf460c1e846b4bd299b7c8cfabc1d189b65283 +EBUILD hy-0.20.0.ebuild 924 BLAKE2B 7f5733376538f3446462e13519b46f1ea9f636345e3bcb98b784828a3f64c4bea5f563455f4fa8c36e587f8404ca4420102cd84ab55c3ccbf078c462531e8c6f SHA512 ef11902ba8a12e1acccc272163809bded985788439209feb408ba31633a93125df903a7d0fe71b340fd2fd6d7cf98226fd663bc21aaba5da3f0e03481f641ba1 MISC metadata.xml 331 BLAKE2B 1377771edc92d3cd1ea685b43816a4ffd6c84d06245f00414df594d9d1aee498ca2a5ede2d92c2f0607fd26127730a8f7e1e6eadf6fd916325967b282e32f092 SHA512 97afa7992933d5088e939afd4005e188fd2979ccf7fc21561561b14e1eecfee61e867288c21b4a396fc5ca4926fd3d62c9d8c5be217b9392a5208371fa3aa719 diff --git a/dev-lang/hy/files/hy-xfail-macro-test.patch b/dev-lang/hy/files/hy-xfail-macro-test.patch new file mode 100644 index 000000000000..f9ec09c4abb3 --- /dev/null +++ b/dev-lang/hy/files/hy-xfail-macro-test.patch @@ -0,0 +1,16 @@ +diff --git a/tests/native_tests/native_macros.hy b/tests/native_tests/native_macros.hy +index 28f14a5a..209084f6 100644 +--- a/tests/native_tests/native_macros.hy ++++ b/tests/native_tests/native_macros.hy +@@ -471,6 +471,11 @@ in expansions." + ;; to trust that the .pyc loading convention was followed. + (test-requires-and-macros)) + ++;; FIXME: this tests fail while being run by portage with FEATURES=test. ++;; Maybe it's because PYTHONDONTWRITEBYTECODE preserves somehow or something else ++;; related to bytecoede, idk for now. ++(setv test-macro-from-module (pytest.mark.xfail test-macro-from-module)) ++ + + (defn test-recursive-require-star [] + "(require [foo [*]]) should pull in macros required by `foo`." diff --git a/dev-lang/hy/hy-0.17.0.ebuild b/dev-lang/hy/hy-0.17.0.ebuild deleted file mode 100644 index f5cd25b9c0a6..000000000000 --- a/dev-lang/hy/hy-0.17.0.ebuild +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 1999-2021 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_7) - -inherit distutils-r1 -DESCRIPTION="A LISP dialect running in python" -HOMEPAGE="http://hylang.org/" -SRC_URI="https://github.com/hylang/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" -LICENSE="MIT" -SLOT="0" - -KEYWORDS="~amd64 ~x86" -IUSE="test doc" - -RDEPEND=">=dev-python/astor-0.7.1[${PYTHON_USEDEP}] - >=dev-python/clint-0.4[${PYTHON_USEDEP}] - dev-python/flake8[${PYTHON_USEDEP}] - >=dev-python/funcparserlib-0.3.6[${PYTHON_USEDEP}] - >=dev-python/rply-0.7.6[${PYTHON_USEDEP}] - " -DEPEND="${RDEPEND} - doc? ( dev-python/sphinx[${PYTHON_USEDEP}] ) - test? ( - dev-python/nose[${PYTHON_USEDEP}] - dev-python/sphinx[${PYTHON_USEDEP}] - )" - -PATCHES=( "${FILESDIR}"/${PN}-0.15.0-do-not-install-get_version.py.patch ) - -src_prepare() { - default - use doc && HTML_DOCS=( docs/_build/html/. ) -} - -python_compile_all() { - use doc && emake docs -} - -python_test() { - nosetests -vv || die "Tests failed under ${EPYTHON}" -} diff --git a/dev-lang/hy/hy-0.20.0.ebuild b/dev-lang/hy/hy-0.20.0.ebuild index d89f01291305..c26c538c2154 100644 --- a/dev-lang/hy/hy-0.20.0.ebuild +++ b/dev-lang/hy/hy-0.20.0.ebuild @@ -3,33 +3,30 @@ EAPI=7 -RESTRICT="test" # needs some pointy sticks. Seriously. -PYTHON_COMPAT=(python3_7 python3_8 python3_9) +PYTHON_COMPAT=( python3_{7..9} ) inherit distutils-r1 + DESCRIPTION="A LISP dialect running in python" HOMEPAGE="http://hylang.org/" SRC_URI="https://github.com/hylang/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + LICENSE="MIT" SLOT="0" - KEYWORDS="~amd64 ~x86" IUSE="test doc" RDEPEND=">=dev-python/astor-0.7.1[${PYTHON_USEDEP}] - >=dev-python/clint-0.4[${PYTHON_USEDEP}] - dev-python/flake8[${PYTHON_USEDEP}] + >=dev-python/colorama-0.4.3[${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}] - )" + >=dev-python/rply-0.7.6[${PYTHON_USEDEP}]" +BDEPEND="${RDEPEND} + doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )" -PATCHES=( "${FILESDIR}"/${PN}-0.15.0-do-not-install-get_version.py.patch ) +PATCHES=( + "${FILESDIR}"/${PN}-0.15.0-do-not-install-get_version.py.patch + "${FILESDIR}"/${PN}-xfail-macro-test.patch +) src_prepare() { default @@ -40,6 +37,4 @@ python_compile_all() { use doc && emake docs } -python_test() { - nosetests -vv || die "Tests failed under ${EPYTHON}" -} +distutils_enable_tests pytest diff --git a/dev-lang/ispc/Manifest b/dev-lang/ispc/Manifest index 922283801261..70358f4f2270 100644 --- a/dev-lang/ispc/Manifest +++ b/dev-lang/ispc/Manifest @@ -2,8 +2,7 @@ AUX ispc-1.13.0-cmake-gentoo-release.patch 507 BLAKE2B e67be17f40dce55895ce307bd AUX ispc-1.13.0-werror.patch 737 BLAKE2B 13ac7eb6f9db4a7379d5acd1f0fa8f44ddca7290329c1231c1b515b374438f5119d9e129c8b5326cfd084956a4ba005549bd30b67a9f64034e0ade8218b8f50c SHA512 254e0e21db59f2b8768d0953c9b0950bb7d860ea9eab7c4d450b3b006382959ab60eb650df9c1ddd4fda7628d5040f7b4779369cf67a99012d5fc2c4b9ef2f7b AUX ispc-1.14.0-llvm-10.patch 4695 BLAKE2B 91488c154a2034487c61df07467414ab83f0a15073332dc8261d619a5dab9ad9c0a6708918bce6491d2a88ca83a5ec8b9edf3c90634b8b91233175e1f41f5163 SHA512 0ee052711aacb01dafd182b3bf95f6d88e2124a7d5beb38bb2173acdcb23eb3f04fc0514c0edf6e286091bc2f855ccc192e38c2f1c4e38fb631bb5fd6a9b223f AUX ispc-9999-llvm.patch 1410 BLAKE2B 77027da9032fa230c72d8608c2a6cd63c33601e17acab0260101c64dbb50a0aa3cc30702c4480ae5d63e95ec3e962e28bdbbd90cd72f4e91d30dc364b82367b6 SHA512 116078d5ab99c849584cc4ece8dc3ebc817221a2377e26083071e206b5e83c4f3ed594f84b86c9659ef86a497bd3cd058ee32138238e12e6aa9dac0f11cf1440 -AUX ispc-9999-werror.patch 913 BLAKE2B cc24257a03c6b1a69c7b4ccddf6df61ca864f6fea614fe5fc479c368a94ae800bee0d621d3fe33b70aca680a85ae0f5140bd789d5c2b83143730b305d6da3296 SHA512 5397abccaeb22aa435c66b192195f991d7a94ab3109ae191ca0e1b2a011485488cfa892aa980a329b17b6f5f432f7613b9057e53e0aa0d0afb4a086bbe7af527 DIST ispc-1.14.1.tar.gz 19454189 BLAKE2B 615698e64ffbd2c82808d6ddd0b5b90f7c52bb8c202a04364d63af26f0e062631f4a8ad01895c1a4f1a8f11e7f91aec381354ddd873d0a4f2908431dcaabe383 SHA512 468e8a44408047ba7b43dc4baf05c2659093b986e131ebe973954ff3b9cf707a4ed22c705b6e01a9abc9a3911669ab31cd191449442c4ac73112a1297da32c5e EBUILD ispc-1.14.1.ebuild 1753 BLAKE2B 98161585a17a4ce4e13c9eb29b668077a4f23df5505b8d55f509b7df0f73bbde3fc11a897f57574d1b0a80b335604e431897d5a76fd8f064351ad548bdfe8905 SHA512 1184f4ae6e085842ae198a9c4ef6a5965412565622bc9f3cf41ea32dbcee1f6fadde26bacf9fd545ece43deea0086eceb669eb6cb008af0e5b2196cf908f7fbd -EBUILD ispc-9999.ebuild 1785 BLAKE2B 0c75f33746be19cbdaaa637133664b0dd0093666757645121e62b5844709e6d8c263cf137fdd9d320be5397af32935c765de11271e593569c1863ffb14139633 SHA512 98cd7f154b4ed376c74041a02fd59d66385754fa3f0588c3c5a0ff2ab11dcb5d0dd458a1ec2104b5c99f13da8de8c3417111ff359c7ed4f2e1041ae28c93e0a8 +EBUILD ispc-9999.ebuild 1746 BLAKE2B 94cc483c9760aebcfe4c917d84f1fd13106c69f5202137f8936074dd97a7413feaca7cab980fe0162da86dd71806cc6582fe00580019bf99c59332b5ce62650d SHA512 8233d10a97692e2b46779c8e549537f81725c8a35e3840a8e3a57cc49effb05c5a561b2b55d613a72192b684eab5d0c7d40f8288830fb24c10df7668ccbc36c2 MISC metadata.xml 241 BLAKE2B 26c98e9f68d20d2275e5a9aef2d4c1cf74bd65e331e2e4869297a0a4d2b4dccab2e7709ad9ff844b973a97da0ee6eaae4fe17c6446ca06ed63f46804c8af5a82 SHA512 b9bb777e446879d214fab1adfa4b9dca1d3bd11c4084dfa449fb16d1896da27b85e11b869ed76b7b492814a1899b5fb00dbbeded579a0ed00666d4b204ddee14 diff --git a/dev-lang/ispc/files/ispc-9999-werror.patch b/dev-lang/ispc/files/ispc-9999-werror.patch deleted file mode 100644 index 0e860a95de26..000000000000 --- a/dev-lang/ispc/files/ispc-9999-werror.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 13e66268..27ff8364 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -352,7 +352,7 @@ target_include_directories(${PROJECT_NAME} PRIVATE - set_source_files_properties(${FLEX_OUTPUT} PROPERTIES COMPILE_FLAGS "/wd4005 /wd4003") - set_source_files_properties(${BISON_OUTPUT} PROPERTIES COMPILE_FLAGS "/wd4005 /wd4065") - else() -- target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wno-sign-compare -Wno-unused-function -Werror ${LLVM_CPP_FLAGS}) -+ target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wno-sign-compare -Wno-unused-function ${LLVM_CPP_FLAGS}) - # The change implementing -Wno-unused-but-set-variable in clang was reverted, so commenting out for now. - #if (${LLVM_VERSION_NUMBER} VERSION_GREATER_EQUAL "13.0.0") - # set_source_files_properties(${BISON_CPP_OUTPUT} PROPERTIES COMPILE_FLAGS "-Wno-unused-but-set-variable") diff --git a/dev-lang/ispc/ispc-9999.ebuild b/dev-lang/ispc/ispc-9999.ebuild index 23b20156fd2b..8cc95c5d7497 100644 --- a/dev-lang/ispc/ispc-9999.ebuild +++ b/dev-lang/ispc/ispc-9999.ebuild @@ -37,7 +37,6 @@ BDEPEND=" PATCHES=( "${FILESDIR}/${PN}-1.13.0-cmake-gentoo-release.patch" "${FILESDIR}/${PN}-9999-llvm.patch" - "${FILESDIR}/${PN}-9999-werror.patch" ) CMAKE_BUILD_TYPE="RelWithDebInfo" diff --git a/dev-lang/jerryscript/Manifest b/dev-lang/jerryscript/Manifest index e3571d39b121..e4c477bba7d8 100644 --- a/dev-lang/jerryscript/Manifest +++ b/dev-lang/jerryscript/Manifest @@ -1,4 +1,4 @@ -AUX jerryscript-2.4.0-python3.patch 5261 BLAKE2B 151fec7f496d2b2b4df90d7e922f9713cfe58a54770ec8c329d189ecf82f11c2061fd755edb5c518d1939ee2f63c476d8fa97149a3e67fdf8bda3e8f897ddd29 SHA512 b3b95a8aa1c238df8494e39c00596a3a63cf64bdef7c0a531ca8f76d7ebaba5884a7aceae293541830b37d2810f22e9c44940aa8beea141ad52c995c1de0a245 +AUX jerryscript-2.4.0-python3.patch 5463 BLAKE2B ad2fdaf83a2be714194c3ee6e6703211792a8a1dbe4bbb13914f37e50c9ade6cbad915236fae3a74eb2bfed22a640c1daf0958570c2e792450dd5d59a2e5eacc SHA512 445dabde9b8c5c48b6ceb3663b234a0a7f26c2f310a4a0673bdb7301409cd6e76dbedc590bbd1a27814021e8917a7ec55487070b39c2508d061c156e408063a7 DIST jerryscript-2.4.0.tar.gz 2802799 BLAKE2B 18a3f71e7d3e2fc43772cb94aa3b0d4d28d72c6cd174eb0195f09283c5da5140ef85e86c6ed7a82e672724563549294c26d870b55c8bd9d0a92251b1002c612a SHA512 e96e6c6a2207ff869474801a1f8bbd3ce453d4076e558736ebf6962ccab08540f57cf932ec43bcd40429e21f1c6453d77874dd0a467d91a15d8357257533c1ea -EBUILD jerryscript-2.4.0-r2.ebuild 1722 BLAKE2B 2d85fcaf531ce3cd0fcaa0939c67dc7b138c404a4129ac5ac5d6f6e389780b9e0706b12285c02699383c78cdef3103fb5f7186b0e18c27f730871fc5b602c7cc SHA512 38bdc6fd1e00f59c9a7b6f6a7043c42279f467720560a12a3067b449f929cdaec026b7620505795595ab74b74458204c3d1dc0661c206876315367db3cff6d03 +EBUILD jerryscript-2.4.0-r3.ebuild 1740 BLAKE2B 519e56171297f4044fb34a40cc0a17580ff1dcb83cc9bb34e3e50aece4b2457a78daa01dfb84ff839f860257fc02325c981ed7db605195f0405c654ec5b3fa35 SHA512 f19ad96f5260bfa2eb4b69644efcd47b21438d5fcead63ae18b2f96e46de7ec5b963fed5f057024baf4e7e791be2b185d5458bd0f7cadc47666c0ad1329bdbc4 MISC metadata.xml 488 BLAKE2B b302c1a73d8924475d95afb03c0e8547b65c0f90ac058f939ae419844e6120b066f604920c8c5d2cdebc237d51f9dafa71d979766af4e3a911e7a1e2e427f328 SHA512 c925c76d17d1436f5ac177510252961f6f22b6058a7d9692bc1c42dede0bf47fe5647c58faa6aa63d91722276e5b54565c17e17d5d5f5a34a9e6f92d8987bfd3 diff --git a/dev-lang/jerryscript/files/jerryscript-2.4.0-python3.patch b/dev-lang/jerryscript/files/jerryscript-2.4.0-python3.patch index 7da285c5d3cf..a7046b4b6453 100644 --- a/dev-lang/jerryscript/files/jerryscript-2.4.0-python3.patch +++ b/dev-lang/jerryscript/files/jerryscript-2.4.0-python3.patch @@ -16,12 +16,13 @@ JerryScript-DCO-1.0-Signed-off-by: Zac Medico <zmedico@gmail.com> 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/jerry-debugger/jerry_client_main.py b/jerry-debugger/jerry_client_main.py -index e65d0e14..e3176c86 100644 +index e65d0e14..b465955f 100644 --- a/jerry-debugger/jerry_client_main.py +++ b/jerry-debugger/jerry_client_main.py -@@ -151,2 +151,12 @@ def arguments_parse(): +@@ -151,2 +151,13 @@ def arguments_parse(): +if sys.version_info.major >= 3: ++ # pylint: disable=invalid-name + _ord_orig = ord + def _ord_compat(c): + if isinstance(c, int): @@ -32,16 +33,16 @@ index e65d0e14..e3176c86 100644 + + class JerryBreakpoint(object): -@@ -563,2 +573,3 @@ class JerryDebugger(object): +@@ -563,2 +574,3 @@ class JerryDebugger(object): def _send_string(self, args, message_type, index=0): + args = args.encode("utf8") -@@ -810,3 +821,3 @@ class JerryDebugger(object): +@@ -810,3 +822,3 @@ class JerryDebugger(object): elif buffer_type in [JERRY_DEBUGGER_SCOPE_VARIABLES, JERRY_DEBUGGER_SCOPE_VARIABLES_END]: - self.scope_vars += "".join(data[1:]) + self.scope_vars += "".join(data[1:].decode("utf8")) -@@ -866,5 +877,5 @@ class JerryDebugger(object): +@@ -866,5 +878,5 @@ class JerryDebugger(object): def _parse_source(self, data): - source_code = "" - source_code_name = "" @@ -50,7 +51,7 @@ index e65d0e14..e3176c86 100644 + source_code_name = b"" + function_name = b"" stack = [{"line": 1, -@@ -905,7 +916,7 @@ class JerryDebugger(object): +@@ -905,7 +917,7 @@ class JerryDebugger(object): - stack.append({"source": source_code, - "source_name": source_code_name, @@ -61,24 +62,28 @@ index e65d0e14..e3176c86 100644 - "name": function_name, + "name": function_name.decode("utf8"), "lines": [], -@@ -939,4 +950,4 @@ class JerryDebugger(object): +@@ -939,4 +951,4 @@ class JerryDebugger(object): if not stack: - func_desc["source"] = source_code - func_desc["source_name"] = source_code_name + func_desc["source"] = source_code.decode("utf8") + func_desc["source_name"] = source_code_name.decode("utf8") -@@ -1153,3 +1164,3 @@ class JerryDebugger(object): +@@ -1153,4 +1165,4 @@ class JerryDebugger(object): message = self.current_out + message - lines = message.split("\n") +- self.current_out = lines.pop() + lines = message.decode("utf8").split("\n") - self.current_out = lines.pop() -@@ -1162,3 +1173,3 @@ class JerryDebugger(object): ++ self.current_out = lines.pop().encode("utf8") + +@@ -1162,4 +1174,4 @@ class JerryDebugger(object): message = self.current_log + message - lines = message.split("\n") +- self.current_log = lines.pop() + lines = message.decode("utf8").split("\n") - self.current_log = lines.pop() -@@ -1171,7 +1182,7 @@ class JerryDebugger(object): ++ self.current_log = lines.pop().encode("utf8") + +@@ -1171,7 +1183,7 @@ class JerryDebugger(object): if subtype == JERRY_DEBUGGER_OUTPUT_WARNING: - return "%swarning: %s%s" % (self.yellow, self.nocolor, message) + return "%swarning: %s%s" % (self.yellow, self.nocolor, message.decode("utf8")) @@ -89,22 +94,23 @@ index e65d0e14..e3176c86 100644 - return "%strace: %s%s" % (self.blue, self.nocolor, message) + return "%strace: %s%s" % (self.blue, self.nocolor, message.decode("utf8")) -@@ -1180,2 +1191,3 @@ class JerryDebugger(object): +@@ -1180,2 +1192,3 @@ class JerryDebugger(object): + message = message.decode("utf8") if not message.endswith("\n"): diff --git a/jerry-debugger/jerry_client_websocket.py b/jerry-debugger/jerry_client_websocket.py -index fe2c761a..07c75e53 100644 +index fe2c761a..9c755966 100644 --- a/jerry-debugger/jerry_client_websocket.py +++ b/jerry-debugger/jerry_client_websocket.py @@ -17,2 +17,3 @@ import struct +import sys -@@ -22,2 +23,13 @@ WEBSOCKET_FIN_BIT = 0x80 +@@ -22,2 +23,14 @@ WEBSOCKET_FIN_BIT = 0x80 + +if sys.version_info.major >= 3: ++ # pylint: disable=invalid-name + _ord_orig = ord + def _ord_compat(c): + if isinstance(c, int): @@ -115,7 +121,7 @@ index fe2c761a..07c75e53 100644 + + class WebSocket(object): -@@ -94,3 +106,3 @@ class WebSocket(object): +@@ -94,3 +107,3 @@ class WebSocket(object): WEBSOCKET_BINARY_FRAME | WEBSOCKET_FIN_BIT, - WEBSOCKET_FIN_BIT + struct.unpack(byte_order + "B", packed_data[0])[0], + WEBSOCKET_FIN_BIT + struct.unpack(byte_order + "B", packed_data[0:1])[0], diff --git a/dev-lang/jerryscript/jerryscript-2.4.0-r2.ebuild b/dev-lang/jerryscript/jerryscript-2.4.0-r3.ebuild index 369fd92e37ca..f7f6592c87ba 100644 --- a/dev-lang/jerryscript/jerryscript-2.4.0-r2.ebuild +++ b/dev-lang/jerryscript/jerryscript-2.4.0-r3.ebuild @@ -16,6 +16,7 @@ KEYWORDS="~amd64" IUSE="debugger" RDEPEND="debugger? ( ${PYTHON_DEPS} )" BDEPEND="${RDEPEND}" +RESTRICT+=" test" PATCHES=( "${FILESDIR}/jerryscript-2.4.0-python3.patch" diff --git a/dev-lang/lfe/Manifest b/dev-lang/lfe/Manifest index e920e2e7821c..66452200ac4e 100644 --- a/dev-lang/lfe/Manifest +++ b/dev-lang/lfe/Manifest @@ -1,6 +1,8 @@ AUX 70lfe-gentoo.el 166 BLAKE2B 023b504e013f24662bded660def58f013ca9b34bc9ee73a137df54e48825e71f3a7322652e7cb8fd60e19b2a508180e1933c6f03be163d4a614fecfb6b41d96a SHA512 a15c3db1640229eaa2c1faa44f7765a53fdde29af78f8a9130c3b8893098cbc41a3cb322402ac5b9b0ca8373739b03723acdc3685d83724fafa6afaee0c25891 DIST lfe-1.1.1.zip 386864 BLAKE2B d966e483c0490d7c6e48ae53819a0f1f30ea0edd7dcc6c7c3fe82c79ed0e4013d66dde4e74d4369e72fc46076723612f00ccb8d33d912d46dfdbf8e38940f72b SHA512 8660716a73126615bd0cde161a780cc49ba57718afd820dbe891da5e1d9ec2f52cc1864159dcedba1c674ccfef42b9662ec8e0bbfe82c10798527ae0979b8f8e DIST lfe-1.3.0_p20210112.zip 447903 BLAKE2B bc63fd7f988abba77e7f4baef906c2fd4370e1aeb2bc04b019d429586cbcb91792ac0f65a3d29a904997d2488a2540411c38e904c0208e2183a8f0f8362f7c36 SHA512 ee178436ca8aea1f1001e5f679a366414229f584cc0e0a38d9749b7cb49d7378a3f8681dcb8c1d5c61e4f498aa31c575a791fe21337b3079a11b623ada363de9 +DIST lfe-2.0.tar.gz 351324 BLAKE2B 811bd310cf917f3e1dc456c9e7c5cd09f5099a2ab20d2bde60e2057eb94ee9125298866b01ef9b483fdaef8572cb487c0a760407c79774e915fdd2c7c129d796 SHA512 b615f28947febe034b1bd155e6c357211ebbdb63aef67645a9681a4a30b799c2019a79ab8f33cd5d3003ad5da83e10af6b3e5c1abe810def92c88812d58c0d04 EBUILD lfe-1.1.1.ebuild 754 BLAKE2B da0fd9924571e0cc62f2ee927eb26373eaec47ae1f5305930f2ba073287c19931de5839845bdba3e07ea7ab22030451425882a2bbc40aac7cfc97d4065d562d4 SHA512 77a131455692ceefb6310ace009525eeac0469f8105b16885e1a7a6bb8af2386104391774d44ce23d2d6ee9aa6635a882a1fe9ceaecc00da4ee312e3061e3741 EBUILD lfe-1.3.0_p20210112.ebuild 1478 BLAKE2B 703a9fcac2af8303587052a4adc18ec9757f3b0cb08ccf744b0d8ae43d94e46dd1ba24eea0c51c3abf1c55c72288ec44e1153daf9aae5883fecbe09733ae7f57 SHA512 4fc4fe399ca2974216c4c79eb248c670e7c29f3a51170c46907ad35d99dc28a3ee5627890ce4eb15d05898e9f07fae7015558ab6be57f4921e314603a7895142 +EBUILD lfe-2.0.ebuild 1395 BLAKE2B a5aaa1651bb6ed497878c72d1defa3d8038007a3094912c8a9225fdea6348d44d8a30939d01625daaab741f530e6fca20465d5b8d5b9973ef909297ff38d35f0 SHA512 7ea89b2be62b645276692ce3762a18c2154a8805d784324b1a151879cacb5734e847c8489fb2141885a9a6e2a50f60d1674494b00623818d959776757448a70b MISC metadata.xml 588 BLAKE2B 532a17a48cf13dabc83a4ac1fae599cd24b7f661f20673cb1a1f336a0d2c0ab13491948788202adcec54c32a64b8245577501a462f261a1d785c9aeed536ec16 SHA512 c31ace8b52cbe4927e24fd42facf9e67b21b07f1eda7db7df1b8bd5ad0cee1748b72311c0f5b2592a80bb0f069a5943e827f146ba9929d224ec8c04072529153 diff --git a/dev-lang/lfe/lfe-2.0.ebuild b/dev-lang/lfe/lfe-2.0.ebuild new file mode 100644 index 000000000000..a9f7eefb698e --- /dev/null +++ b/dev-lang/lfe/lfe-2.0.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit elisp-common toolchain-funcs + +DESCRIPTION="Lisp-flavoured Erlang" +HOMEPAGE="http://lfe.github.io/" +SRC_URI="https://github.com/rvirding/lfe/archive/v${PV}.zip -> ${P}.zip" + +if [[ "${PV}" == *9999* ]]; then + inherit git-r3 + EGIT_BRANCH="develop" + EGIT_REPO_URI="https://github.com/rvirding/${PN}.git" +else + SRC_URI="https://github.com/rvirding/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi + +RESTRICT="mirror test" +LICENSE="Apache-2.0" +SLOT="0" +IUSE="doc emacs" + +BDEPEND="app-arch/unzip" +RDEPEND=" + dev-lang/erlang +" +DEPEND=" + ${RDEPEND} + doc? ( app-text/pandoc ) +" + +SITEFILE="70${PN}-gentoo.el" + +src_prepare() { + default + + sed -i "s|cc |$(tc-getCC) ${CFLAGS} |g" ./Makefile \ + || die "Failed to fix the makefile" +} + +src_compile() { + emake compile + + use doc && emake docs + use emacs && emake emacs +} + +src_install() { + dodir "/usr/$(get_libdir)/erlang/lib/lfe/ebin/" + cp -R ./ebin "${D}/usr/$(get_libdir)/erlang/lib/lfe/" + dobin ./bin/* + + if use doc; then + dodoc ./doc/*.txt + doman ./doc/man/* + fi + + if use emacs; then + elisp-install lfe emacs/* \ + || die "elisp-install failed" + elisp-site-file-install "${FILESDIR}/${SITEFILE}" + fi +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-lang/maude/Manifest b/dev-lang/maude/Manifest index ffdad1733058..afafdba2b81f 100644 --- a/dev-lang/maude/Manifest +++ b/dev-lang/maude/Manifest @@ -2,7 +2,8 @@ AUX maude-2.5.0-prll.patch 627 BLAKE2B 7a6b32561207a3f8fb13ad955f386970cfba84e9f AUX maude-2.6-search-datadir.patch 1124 BLAKE2B 620382dd567eb4bf2c944af83a209cc01b6b571024da0435995ab76c10ee0c1527a68d21ed171696d659092bb2a3cfb0593ceaded7d96351da2c0e067f4d4fcb SHA512 3bdaa49e6312d965c753450c5fec39c1175e6a5a57c570bce56f10d6bf3a56027fc8eb17c3d899aa752d4094eae4bbc7d1eec0022adc656894beef759c151cc5 AUX maude-2.7-AR.patch 206 BLAKE2B a43c072a46543f877afd4d7c809e1a9760fa3011a12eff16dfd68f254f007c3294a187af293643fba866ea105bb8b27fbe65553618571b24735beae0203c2465 SHA512 4cd4931b3dbfca8b3972a130fd710c7b3535e1f2ceb80fd610b7c9afb2ece3dbaec3dec4c6a7c806f6a411b748d7c911b00cc572bd3343bbf953b80028987173 AUX maude-2.7-bison-parse-param.patch 1027 BLAKE2B b8144c07c219987cd09d3555f05868d91c0727d905efd63ffe6cbdd0d9265c91a470db424b9f9719f7b0edb9f186656b6bab61e44cb40166c9d7802bd98ce368 SHA512 553c1e96fd72687025b71d04c476d853e0e2c8bab48f91f98ce1cb515562d27b7bbcb4e20ffb56c2dc3c7ee9cdbfe7c2da1d6d609b4bba34823c0637375f012c +AUX maude-2.7-fix-build-with-gcc11.patch 2017 BLAKE2B 392125bbe74805b75cdf3b7465525cc73654028b5ced5064436d9107f5bc5e58bdc8a450a4fa97f1142a21d9bb242c8c914e7f7567cfadd38fd2901011c8e5cc SHA512 08b76d9dec638bb129c166695ffc0095bbe3001a337ce19e11a53a87e5ffcf45e750d075a5c91fc10c0a754c8153d1cc9e559066178b88b0e2f63ae40758b2a7 DIST Maude-2.7.tar.gz 1663708 BLAKE2B 5fd87cbd7ef2f86f4a7095334fd996109c72caaed44a894138803b76220325400920654924cb8645ed846b4d997dd2cf827d489ef7c4eef73ee22cb4e6e5a5dc SHA512 eb5225a7ec75df5f79d1e9c0d78c33427c0cf07bea83dae9e559d6d4cfc85fb03985596daf0c9c8794b34859510482f93b855254c1a3c650ee7520a3530a2070 DIST maude-2.6-extras.tar.xz 3157004 BLAKE2B d735366071194eb7fd22c11628672aba38cc8c7f4460e4ec8806e27c2e1416e1a2a5fa93efd01c305bf36e0ce799578688c5ac87b5459e979323df6f60305902 SHA512 0533f0f226057d2668052f360245f296d36129ec242ff0bfa91fada9db5bc347d276d3468c86fbac92f019f3a2f152c7cb4e58a7f1265c1fb5a8b1b496fac5cd -EBUILD maude-2.7.ebuild 1348 BLAKE2B 6214e6e6788f6fc32338ffc4db885bcd34f82f15a281ab63e075b869e62b1445fa23be192773792adedff8744aa72e223773383408b45e43b49218631e3257b6 SHA512 c35d5b791d2ae2d7407f2cdccf7ea5ef6a02de9d3352a79790ba7fd43322536a9417d3419fe4067612866fa5da216777466af8468d5528d2858fa262afa8b07f +EBUILD maude-2.7.ebuild 1400 BLAKE2B d77aeef190b5bc69ae81a5f6ff5f086b7cbccbab4e7e08995cdb56a11842c7bf30a8f1a2f610bc60308a8adc280f0c02a0c8620d2623d653a4a608e2f4466ba2 SHA512 c80d9fb1debdce70a7bb56d4a16926f57f7ee7f57ebcb94dea4e64d073c8875cd197052a2c2aa5d283224688b19d3d6ede98e5ee777861a737b0a25a1a355d2a MISC metadata.xml 708 BLAKE2B 45ec7072bcd0509e34ef2b5d3abd3a67abe84cf91f6dbc9e45fdc3d07bf4bebe520c40440b977e2eabdd06ec1d9fede487c74cc69df57819975cd75f8ca75016 SHA512 da572363e08716b890656c160e415a4e01bd0a0effaaa3a535108295fdbbc67210315b9c0f81e4fd4c9dc8a8b8a3cc454f5d2225be0d666dbc630752ea0e2cc2 diff --git a/dev-lang/maude/files/maude-2.7-fix-build-with-gcc11.patch b/dev-lang/maude/files/maude-2.7-fix-build-with-gcc11.patch new file mode 100644 index 000000000000..b903d50e22bc --- /dev/null +++ b/dev-lang/maude/files/maude-2.7-fix-build-with-gcc11.patch @@ -0,0 +1,60 @@ +https://bugs.gentoo.org/787851 + +From 6d448928a88f586195dadd9fae9cb1b19e589d94 Mon Sep 17 00:00:00 2001 +From: Sam James <sam@gentoo.org> +Date: Tue, 15 Jun 2021 03:05:34 +0000 +Subject: [PATCH] Fix build with GCC 11 +diff --git a/src/ObjectSystem/configSymbol.hh b/src/ObjectSystem/configSymbol.hh +index 90b00d9..d037dab 100644 +--- a/src/ObjectSystem/configSymbol.hh ++++ b/src/ObjectSystem/configSymbol.hh +@@ -50,7 +50,7 @@ public: + private: + struct symbolLt + { +- bool operator()(const Symbol* d1, const Symbol* d2) ++ bool operator()(const Symbol* d1, const Symbol* d2) const + { + return d1->compare(d2) < 0; + } +diff --git a/src/ObjectSystem/objectMap.cc b/src/ObjectSystem/objectMap.cc +index 0dbcaf0..722aa29 100644 +--- a/src/ObjectSystem/objectMap.cc ++++ b/src/ObjectSystem/objectMap.cc +@@ -50,7 +50,7 @@ ConfigSymbol::MessageQueue::markReachableNodes() const + + struct ConfigSymbol::dagNodeLt + { +- bool operator()(const DagNode* d1, const DagNode* d2) ++ bool operator()(const DagNode* d1, const DagNode* d2) const + { + return d1->compare(d2) < 0; + } +diff --git a/src/ObjectSystem/objectSystemRewritingContext.hh b/src/ObjectSystem/objectSystemRewritingContext.hh +index 33785ec..32f4d94 100644 +--- a/src/ObjectSystem/objectSystemRewritingContext.hh ++++ b/src/ObjectSystem/objectSystemRewritingContext.hh +@@ -62,7 +62,7 @@ protected: + private: + struct dagNodeLt + { +- bool operator()(const DagNode* d1, const DagNode* d2) ++ bool operator()(const DagNode* d1, const DagNode* d2) const + { + return d1->compare(d2) < 0; + } +diff --git a/src/Mixfix/entity.hh b/src/Mixfix/entity.hh +index eb8ad58..a221de4 100644 +--- a/src/Mixfix/entity.hh ++++ b/src/Mixfix/entity.hh +@@ -53,7 +53,7 @@ public: + private: + struct UserLt + { +- bool operator()(const User* user1, const User* user2) ++ bool operator()(const User* user1, const User* user2) const + { + // + // Direct < comparison of unrelated pointers is undefined. But since the casting +-- +2.32.0 diff --git a/dev-lang/maude/maude-2.7.ebuild b/dev-lang/maude/maude-2.7.ebuild index 01957fb2a5e5..72d88da7e51b 100644 --- a/dev-lang/maude/maude-2.7.ebuild +++ b/dev-lang/maude/maude-2.7.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 @@ -32,6 +32,7 @@ PATCHES=( "${FILESDIR}/${PN}-2.6-search-datadir.patch" "${FILESDIR}/${PN}-2.7-bison-parse-param.patch" "${FILESDIR}/${PN}-2.7-AR.patch" + "${FILESDIR}/${PN}-2.7-fix-build-with-gcc11.patch" ) src_prepare() { diff --git a/dev-lang/mujs/Manifest b/dev-lang/mujs/Manifest index 602037ba8394..344c09e844f0 100644 --- a/dev-lang/mujs/Manifest +++ b/dev-lang/mujs/Manifest @@ -2,6 +2,8 @@ AUX mujs-1.1.0-flags.patch 376 BLAKE2B 6bcfc39f97b35ae2230aa33ca99d4338915224a9b AUX mujs-1.1.1-flags.patch 313 BLAKE2B c0dfb2aa7721fe865b4c04141924da299db48d900a6fab883dc76bf274cd60ca8749febd80e6b106e60cc36c4fcefa76d5414e29ef1ef7c774a7e912088895c0 SHA512 8d189613398203693e35c4313d3b7688c73ec38b426eea93a9cf96a21df11bb651afe0191168ca3c23a69f9d77390ed2829c2bc2204f04cb7621fb9f286a7266 DIST mujs-1.1.0.tar.gz 123450 BLAKE2B e7bc05d35566ff26346e713645e0f417a9acd1a73b5fb5c7f0c35bf940765fba1ab04199f4ed1dd6ce0e3bb2bf1547703335a1c125353da24de72f2b1adfb243 SHA512 10b61453f8483e3e67c95a742aa7868e255816b2ce25c84d8e24c5c737bad1f23ade67531c5c5bb914804be446da33c0cbe8e95a6d5889250dd8520ce56f23a0 DIST mujs-1.1.2.tar.xz 98340 BLAKE2B bbb290786c26fd604082eb123adc78a3b7d9387dafabf70df23bae97d016a3ad16a434fb1ab3a33da85c575cf813491d0a09d956ff351bd7c8d38cac675ec114 SHA512 66641855e6fe732541fb80a99fda4418545183965c6a6ffb4a05101084fd1cc073aca1e51115f37fffb56bc5518cec21a1586d0745c55aec08deb47736e33392 +DIST mujs-1.1.3.tar.xz 98332 BLAKE2B 4dc2c0e657d7dcbbd7f82765556e75e7992cdcaf15c7986bb76c0fb6c244057ba0771a2a59c246eaf7bb9ff080e8af6ade8ef9a95606dc8ebde99f7d73c245c1 SHA512 6a8d0650f1924b5889039ddd8529438226677c63f9317b980492fac4e8380385d5c33fe8a315f26ebd0f7ae94c6c3bc90fdb75a8e4a0df367e6e4e355692e890 EBUILD mujs-1.1.0.ebuild 1365 BLAKE2B 4f940033e75d77ae741f68a915efef418cabc9f15ae3ecf4c388a0d2020cc7fbe8c003327653b3fdee4b8b7f591be929d19c77bf017f03811c037087130c4fb2 SHA512 cb79454936f47f9442ecaae261eeb1ad62635430ce416845cac82e14d24be7e7b86d07c2cccae0a83166f29e2e805d0458ef0ba98bb1d0da7f96bdc8027edfb1 EBUILD mujs-1.1.2.ebuild 1901 BLAKE2B a0ae1459797b184ee970f8ea43a0609bf92e0c20c233a1272f3d44a03ba772e2cfd590430d1e8594243dc8003274060cc24b5230ee629c176bbec0f13f7a4a46 SHA512 d4ed6e3383b2b6cdd0556589c1c5ba7f8db60b42c30f9ba89db107bc8bf5afd119354eabe5e354c37a3f6b1bda53a04d391633323665adda0b0fbd599e5a5048 +EBUILD mujs-1.1.3.ebuild 1908 BLAKE2B a82ab3a14c96be2dc6bab9717a58355ca8668eebb7dcc237d05ab1b599a5a5768028d04ff0eb1bfb45430723ffbba1a1ed434d1441c3816b7420114541860814 SHA512 7dd96efaa1300d34516da9edbf3fd89a885c5f8bd507f711647767283c0ee51300afdd20ada2281ad4a10cc2d52dd9404dc3175dec375e985df199624e6f1471 MISC metadata.xml 547 BLAKE2B fcf818d9a103347b5b47f7b7c77654e84db6aa2a8dd12f169d58522cb47a455f02f0bf66fc85057a2a10916c4a24dcdca87a5f2e12c54d184ea8d5af1db65810 SHA512 e6bac32e74df77c2ded4e9a9e6200ab76e06217b9a236d6bf5f0df23a031eab2519f26e3d402ff106f9506a4dbe3baf66cae5f961f6d016e7c42fe83fc532799 diff --git a/dev-lang/mujs/mujs-1.1.3.ebuild b/dev-lang/mujs/mujs-1.1.3.ebuild new file mode 100644 index 000000000000..bc0c2a8caca1 --- /dev/null +++ b/dev-lang/mujs/mujs-1.1.3.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit flag-o-matic multilib 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" +#SRC_URI=" https://github.com/ccxvii/mujs/archive/${PV}.tar.xz -> ${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" + +RDEPEND="sys-libs/readline:0=" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}"/${PN}-1.1.1-flags.patch +) + +src_prepare() { + default + + tc-export AR CC + + append-cflags -fPIC + + # library's ABI (and API) changes in ~each release: + # diff 'usr/includemujs.h' across releases to validate + if [[ ${CHOST} == *-darwin* ]] ; then + append-cflags -Wl,-install_name,"${EPREFIX}"/usr/$(get_libdir)/lib${PN}.${PV}.dylib + else + append-cflags -Wl,-soname=lib${PN}.so.${PV} + fi +} + +src_compile() { + # We need to use ${PV} for the pkgconfig file + # #784461 + emake \ + VERSION=${PV} \ + XCFLAGS="${CFLAGS}" \ + XCPPFLAGS="${CPPFLAGS}" \ + prefix=/usr \ + shell shared +} + +src_install() { + local myemakeargs=( + DESTDIR="${ED}" + VERSION=${PV} + libdir="/usr/$(get_libdir)" + prefix=/usr + ) + + emake "${myemakeargs[@]}" install-shared + + # TODO: Tidy up this logic, improve readability + if [[ ${CHOST} == *-darwin* ]] ; then + mv -v "${ED}"/usr/$(get_libdir)/lib${PN}.so "${ED}"/usr/$(get_libdir)/lib${PN}.${PV}.dylib || die + dosym lib${PN}.${PV}.dylib /usr/$(get_libdir)/lib${PN}.dylib + dosym lib${PN}.${PV}.dylib /usr/$(get_libdir)/lib${PN}.${PV:0:1}.dylib + else + 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} + fi +} diff --git a/dev-lang/nim/Manifest b/dev-lang/nim/Manifest index ac03a4444141..8dd02ae74def 100644 --- a/dev-lang/nim/Manifest +++ b/dev-lang/nim/Manifest @@ -1,6 +1,4 @@ AUX nim-0.20.0-paths.patch 934 BLAKE2B 6a4e44c5656cde6d5127bf6a6b8db92cdf8aada0892c27d536d0c1030ed7da8dc97138a8941030101918021f2a301fa683169c8a656fefc6fb7d0fcdb24029d4 SHA512 bf8dbc3e3861ec3ea2718092b981e495194ead5b547e69d01d5d842d128dc4b96b0ba3e95c78afd8fd822d594199315a01de370851ed8f594c091231b9a10ee9 -DIST nim-1.4.6.tar.xz 4793544 BLAKE2B 5d015193564c63f16bd812eed19ace6cdeb2c944aa3aad3a41f4f811e8d56bdde02c5b405e7939ab09ad8b29d84ef9212c2df7c9f9148e0c26288157d20f4846 SHA512 6b1971a920c3572f9a1997648a297afc1696b09ac20ca031a4b23eba3b66b9ff93606bff2eeacaa651ed8cf6af2df7d38ec6253a4e66955a3e04c6d88991e013 DIST nim-1.4.8.tar.xz 4786360 BLAKE2B 961b38275c4f9de87ac522c5b47368ce7f5543811a2dfd7b4f3fd79a104bcd0458caaaaab1705f99eb42c64735ca5f71d5018f8a8275a430d883233b28b1d412 SHA512 e6b245271495880f0eea271c46b4f5ce9168a421716a9a22367b6be3c2a9822937aad1f48eb61c151b040ac961728a89c8a6d143c8300057c0d8c1f2d66f3dd3 -EBUILD nim-1.4.6.ebuild 1908 BLAKE2B c7e267e92cda81ae16e1dba7a82baaec77c12b7b7a3a4dccec994d868bef4cf7558562fe3d6f80ec5542f8195dacf0d291fce5d3ac3cabf1172bc887870ccae1 SHA512 70b3b578fc1ca1450fd02d31e865a1d7a2805d9c26c31ceba26076d9eb21100df1357645eee62f68b25f0a434f3bbd07479cbd661ec19b78af6cf253b7dc2438 EBUILD nim-1.4.8.ebuild 1908 BLAKE2B c7e267e92cda81ae16e1dba7a82baaec77c12b7b7a3a4dccec994d868bef4cf7558562fe3d6f80ec5542f8195dacf0d291fce5d3ac3cabf1172bc887870ccae1 SHA512 70b3b578fc1ca1450fd02d31e865a1d7a2805d9c26c31ceba26076d9eb21100df1357645eee62f68b25f0a434f3bbd07479cbd661ec19b78af6cf253b7dc2438 MISC metadata.xml 328 BLAKE2B 9205920d8c9b12118456bd186f2e882b3e6f75b7cc3f766def1e79e2e4f7ac695370409ff1555e379516606568f181f4ba3625322f70e41bfffd21d319b0035f SHA512 bf02bc0a8c25d6e157b7ab1ef87c2eac3241d42bc4cf0632a159dcb5d429051018848be81d0cbce228124660ced8694f5de48d64fe10bc7ff5b536b7e7579e49 diff --git a/dev-lang/nim/nim-1.4.6.ebuild b/dev-lang/nim/nim-1.4.6.ebuild deleted file mode 100644 index 3c52ea807c23..000000000000 --- a/dev-lang/nim/nim-1.4.6.ebuild +++ /dev/null @@ -1,80 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit bash-completion-r1 multiprocessing toolchain-funcs - -DESCRIPTION="compiled, garbage-collected systems programming language" -HOMEPAGE="https://nim-lang.org/" -SRC_URI="https://nim-lang.org/download/${P}.tar.xz" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64 ~arm ~x86" -IUSE="+readline test" - -RESTRICT=test # need to sort out depends and numerous failures - -RDEPEND=" - readline? ( sys-libs/readline:0= ) -" -DEPEND=" - ${DEPEND} - test? ( net-libs/nodejs ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-0.20.0-paths.patch -) - -_run() { - echo "$@" - "$@" || die "'$*' failed" -} - -nim_use_enable() { - [[ -z $2 ]] && die "usage: nim_use_enable <USE flag> <compiler flag>" - use $1 && echo "-d:$2" -} - -src_configure() { - export XDG_CACHE_HOME=${T}/cache #667182 - tc-export CC LD - - # Override default CC=gcc. - echo "gcc.exe = \"$(tc-getCC)\"" >> config/nim.cfg || die - echo "gcc.linkerexe = \"$(tc-getCC)\"" >> config/nim.cfg || die - echo "gcc.cpp.exe = \"$(tc-getCXX)\"" >> config/nim.cfg || die - echo "gcc.cpp.linkerexe = \"$(tc-getCXX)\"" >> config/nim.cfg || die -} - -src_compile() { - - _run ./build.sh - - _run ./bin/nim --parallelBuild:$(makeopts_jobs) c koch - _run ./koch boot --parallelBuild:$(makeopts_jobs) -d:release $(nim_use_enable readline useGnuReadline) - PATH="./bin:$PATH" _run ./koch tools --parallelBuild:$(makeopts_jobs) -} - -src_test() { - PATH="./bin:$PATH" _run ./koch test --parallelBuild:$(makeopts_jobs) -} - -src_install() { - PATH="./bin:$PATH" _run ./koch install "${ED}" - rm -r "${ED}/usr/share/nim/doc" || die "failed to remove 'doc'" - - exeinto /usr/bin - - local bin_exe - for bin_exe in bin/*; do - # './koch install' installs only 'nim' binary - # but not the rest - [[ ${bin_exe} == bin/nim ]] && continue - doexe "${bin_exe}" - done - - newbashcomp tools/nim.bash-completion ${PN} -} diff --git a/dev-lang/ocaml/Manifest b/dev-lang/ocaml/Manifest index 62e83d6f0579..1c05a579b356 100644 --- a/dev-lang/ocaml/Manifest +++ b/dev-lang/ocaml/Manifest @@ -1,4 +1,5 @@ AUX ocaml-4.04.2-tinfo.patch 506 BLAKE2B 889c964385442247a70b7205abc497a8d83ac9e3fcedebdb184c9ded8ae81d171656fbe0ade7e431990545c01287f3618e45c3d25e0f77a4e7682e9a21c3f76a SHA512 5bf7e13de2e4a513b5411c3dcaa204aeaff6975b978d68455e059177049c2a1d862b4d1a96f0a986112ea0d347306190c81da6ec4b1150f56a3addc8f3d9b777 +AUX ocaml-4.05.0-CVE-2018-9838.patch 2888 BLAKE2B 75fe491c1b12d9882c7b558efb3384a133c56bea0c85e97a6b46ec5b5f4050da4752228c795d937875645260b98ac9d203b9cdbf583ed36934a29faf4d47ecc3 SHA512 3da218dcea2c08ed97da805a2c1a1bc134a48b4425b4912283e353dde606ae99c95b86b59c6575b42961c9eb6903e09d60968c5a8db72a58510c4e3dcd13a5ef AUX ocaml-4.05.0-gcc10.patch 1976 BLAKE2B cf1240a815d731e99862740ddf90f6a0ea1d078c9e4e1cef126eff4a7d80afbde73f45d360a26eaa14863cc35d2086d98d130251490959df4c361a51ced0557e SHA512 e55cb651431798294b21ee0ea8818d6c42f88c329b7a1985af9d460f2a5b3057f2ee229e72699f9660168202a0c78dcf89b8bfce2154ca3e141fe8fb5f861773 AUX ocaml-4.09.0-gcc-10.patch 571 BLAKE2B 990107a1d199d350a821596e7655566bb8eb71ee828eb0247bd25111760dd4dd6952a0bea6c29f69f6fa4ef8d02bd47166b5f2c4ced30ed830078b1555ca86eb SHA512 430774f62cea3f4ed06c9a1cbc73c68e3eab0d6fbebb5e62ea12a012cc2b25bb1a776ff08a7d532140bc2e12eae3e1a43605bf5708e1333b23a135b9801de084 AUX ocaml-rebuild.sh 1120 BLAKE2B 6f88a9f2b99fae7f89b884bb08d2c6ad6a0e14d4a8fd06d498037f78c5f6ef040428f9de224b5fe5df4ef64eaed419cda6d8715ea0c0a4c4dad60c5cf75a4147 SHA512 05a3e81e95533135d9895091c21621c73ae82851abd4889d64f035979eb25f8d90b60f469d7ef5e789fd1a4adffd6bbe255e6708c14c24a04f8a423507d19a40 @@ -7,9 +8,12 @@ DIST ocaml-4.05.0.tar.gz 4431750 BLAKE2B c2ab003a13e0a581ebd0e1c96eeb8a9baea9bfe DIST ocaml-4.09.0.tar.gz 4838748 BLAKE2B 80f29d535c64bf2371b480217723ed20b2b21cfd93ce31366a7b91e7ddffdf68db4e88d085288b7e21efee567a13f42ecff24c3a0115507b006acf844239cefd SHA512 dc0271e591bf929b751705835790949a9d741e12d085c8b207c3689b5838a02ea8de80da8b2605d2e6744f2f541b0d1694ffafff9509e99ce01f3a391f6ef2ae DIST ocaml-4.10.2.tar.gz 4933135 BLAKE2B ec5e92adb23c28a254247182c79ab555fd82603e02f24799049b8057abf869d18234302408c8ae89b9997a2b210ed6965e45c2c03e4f0cab34262ad3f6ebb528 SHA512 1dd827da07f01e815fd74dd7ee84db0900f24782f8f7fd426e2d71b9fb03c7b8045f22e018120a0446c362315751365d1bd8c1724edef2b182394e76eb0a07b2 DIST ocaml-4.11.2.tar.gz 5075323 BLAKE2B bdc503d9a8d0e39dd11060febcd0287657b460e50ed81e55578a3e778af990ca5d4ef9011753eee4e1a144da33eb76c95b1672dc99b76e65a2e107eee472fe06 SHA512 03d8a9f6e130142c121ff2eb3d54f584f1e7c8475f066a5803bb0edd2fa172ca06a56a3ec548b225f5c8b12112d7a68511b1e16f3ade075b5f02610d4247bbb3 +DIST ocaml-4.12.0.tar.gz 5179734 BLAKE2B 318be7e306157102d7ad22802db381dfa9c675e43325395695c3564e5ffee87d9b55d1152ea1603edb5ef715a28cbde85d835dbf1b5aface2dc415c67192c208 SHA512 951e44cdda613f9c6c5f988434c84249a2d63ba14e21938a9e74c174ebaf9d81a3160d1e5021d57fcd4882732ae6aefc05239ac38116f39ca83d53879d5d4eaf DIST ocaml-patches-9.tar.bz2 1700 BLAKE2B 4e46b8fb490db28f815414e285f54e251394ea53e1d25c529bbea9f03e426fd19132b1e2c7c2be7d14983fceb4cad073d191b001f6da522fee4226371d4a2eca SHA512 cc19f9104fac69aecc5effa8cb772342e1fb61cdcd38ba0176efe04cf3d710b1c56d5178748f3bd29099af91fa684da432a8ef8d42de76dbd1b6954a255ea6c0 -EBUILD ocaml-4.05.0-r3.ebuild 4032 BLAKE2B e661b119edf65d14fd040274a9cf4d04600eedaf25990a9045898ff95d036510e15e966539ddd6f3a0c7336fe6a24d4c14ae7ca419dec5a1c9536b8b2dcd10c4 SHA512 07285302718df64b0a00678d931c222837b38d92850409e260591f24df1c031714c02d29e7854ae6ce374f843cf10061ec89705bd2a0f772eb04ca88dc7d71e1 -EBUILD ocaml-4.09.0.ebuild 2459 BLAKE2B 41e75a2bcde313c4205e9b5e1dcc704c1aed3fc02bac569b1ae764f6644bb0da02281fb96f4c8e3ad7ebacb5aea94ac328c444e8f228d90cfa1caa50b70b2d4d SHA512 04b7dd810ef40c89c41810725af3cc3702e8645e0b267357d747d9c5de053bbbc553c71e3ce7d1eb758566d9ff61e4eb4d09447e12302fce3fb9dccc01ba17f2 -EBUILD ocaml-4.10.2.ebuild 2417 BLAKE2B d10cc95f1518619bef972b5eb219f45de8d1143c97ff9cd01a9acf74190636ac3316835f7f26523d9388e5be0954c04c4aaea34f2ccf02b4e926fa6abccce842 SHA512 fa701247c912886020d2ff57f03bb94661954ae0f58f95b69f527c2f4efab10bb26fa51d402f7fd236f0932a986424cb72925586e82c41daabbc3cb628cd3541 -EBUILD ocaml-4.11.2.ebuild 2290 BLAKE2B 73ecfc03f0e61821174790f5d360b1cf392517c7c961f0625159c04febb1ffc43c3c6fa4e5705f2d1dbb1cf7e40d84c50782b63411ca2462348c151ae2734df9 SHA512 bcd82adcb04843f597e08efd7d5e904336f47f412d2360c89dd4c1e1802375c60de0fcd77f9edafbe9bdf61be2e65863e84f0cad74d424c52787694e64b21288 +EBUILD ocaml-4.05.0-r5.ebuild 4041 BLAKE2B 25bf09ea13c2775f6ae4524cdefd993d174afdabc32cdced62ce088bc081142679087efdaba6172237276bc4ca22b08ca364e7a0cf2990c6cfa3d56529b74f21 SHA512 3e83e03c64263c5eaac48e8a1e9fc95304e0c1b36726676d0b6a026eddaeab89532898dc54a587c961253f3ee9620e422af2441a659755494a4a23c3728a08b6 +EBUILD ocaml-4.05.0-r6.ebuild 4081 BLAKE2B c02f7a7ab92551db6740dedb3e971da64e1db65cb8fba285edad7c9f9370773592f70a6b1eda403ca8f170953f5e161a35f63d53e95cb21c1271432ff4d7a0f0 SHA512 ad670214e57abd7b8011fc5fb4642932903df4dcc51e39f932396d52dec73a57fb5e7d40088053190e5f2af3e806137208727dd065eb88685ba0d11488b4e101 +EBUILD ocaml-4.09.0-r1.ebuild 2468 BLAKE2B 5fb634c6306f0fd0117af7559f88cb23b969ae7197389280cc7796e1715aca270802ebff28c140b4b887ace8336494ff2656048bcb2e5911ceee58a5e3c9d048 SHA512 77cda9e58a54260e9f2f7736acf21ce32c09cb9d421c3c786c5b63aff8ac71903f90a2b1a0969800e485fcd4f610ace2ecabfee17f9805f60d6076688afe2f8b +EBUILD ocaml-4.10.2-r1.ebuild 2426 BLAKE2B 05ce3cd3582c4a481b978da45595f20c1da6bda77fcdd28d10578d87e058692d24079f9ae22fa9f546ebf963193860d398986fd4f8c5829acabfcf5f15a2cc31 SHA512 f0db8d2e7c13fb67fa65342c290e6e84c2112ed0a0a12f58ec3fc0e4b94260089dc13e35fc24dd28ed5806389a96d33438668383d1481edae8c32a4b9a405a04 +EBUILD ocaml-4.11.2-r1.ebuild 2299 BLAKE2B 3871154a5ca7aacf906e54c153ba10dfad01f9b3d82525594ee1f63097c3096c56a9a8c46ab0ede781960fb0f5c1d8bb21fc8f2a59d4729447e4a105fd278fc1 SHA512 e0c621b850cbabe115968b369ff371daf3c38e1a9735cfaa7c85debd2f41f1cce0d0ab66acaadb72988f1749f362f2ba5edd91dbc3b4c1ad19204e9ba1015fc4 +EBUILD ocaml-4.12.0-r1.ebuild 2311 BLAKE2B 9d5515be76bf907b8f4014c870afc9cf77c44f06f8d89bd308327b407a37d56d7d04b27ddc6e8387b122f4968b357218633078c42770321b95c17acc9a3f9873 SHA512 9b704e8d1ae4444c3a5920cecaee9c6629055e691ecb26fe780872757dacb3d71b9d8a1386e96ae71fce9fc212d9d2256212d03634ad458222e1747cc8829283 MISC metadata.xml 775 BLAKE2B dfddcb1e262074326ede7fb648bb524404e86a302270b6bc9e502124689077cd54ebafbfca277d516d2763cd18580a09f749f45ca215c34c26c7ae1c56c2e841 SHA512 3551489dac19dddcf6490c74df4c8e2aa370565b207bcdee28a8160caab7394d8d770ed4408ce8db3d3c224b61439f29c4eae84180adf01a468e0ef515980818 diff --git a/dev-lang/ocaml/files/ocaml-4.05.0-CVE-2018-9838.patch b/dev-lang/ocaml/files/ocaml-4.05.0-CVE-2018-9838.patch new file mode 100644 index 000000000000..cfe3ff636c25 --- /dev/null +++ b/dev-lang/ocaml/files/ocaml-4.05.0-CVE-2018-9838.patch @@ -0,0 +1,70 @@ +https://bugs.gentoo.org/755257 + +Needed for both fixing the CVE + compatibility with Debian for e.g. +Unison. + +From c6ca3afc78b75d7748e4e09e56c6b020418be06e Mon Sep 17 00:00:00 2001 +From: Stephane Glondu <steph@glondu.net> +Date: Fri, 25 Jan 2019 14:34:23 +0100 +Subject: [PATCH] Fix integer overflows when unmarshaling a bigarray + +Malicious or corrupted marshaled data can result in a bigarray +with impossibly large dimensions that cause overflow when computing +the in-memory size of the bigarray. Disaster ensues when the data +is read in a too small memory area. This commit checks for overflows +when computing the in-memory size of the bigarray. + +This patch is based on one by Xavier Leroy and has been modified to +use caml_ba_multov instead of caml_umul_overflow which is unavailable +in OCaml 4.05.0. + +The original commit hash is 85162eee9d4072fa9c2f498f03cd94e357033eec. + +Origin: https://github.com/ocaml/ocaml/pull/1718 +Bug: https://github.com/ocaml/ocaml/issues/7765 +Bug-Debian: https://bugs.debian.org/895472 +Bug-CVE: CVE-2018-9838 +--- a/otherlibs/bigarray/bigarray_stubs.c ++++ b/otherlibs/bigarray/bigarray_stubs.c +@@ -966,22 +966,34 @@ static void caml_ba_deserialize_longarray(void * dest, intnat num_elts) + uintnat caml_ba_deserialize(void * dst) + { + struct caml_ba_array * b = dst; +- int i, elt_size; +- uintnat num_elts; ++ int i; ++ uintnat num_elts, size; ++ int overflow; + + /* Read back header information */ + b->num_dims = caml_deserialize_uint_4(); ++ if (b->num_dims < 0 || b->num_dims > CAML_BA_MAX_NUM_DIMS) ++ caml_deserialize_error("input_value: wrong number of bigarray dimensions"); + b->flags = caml_deserialize_uint_4() | CAML_BA_MANAGED; + b->proxy = NULL; + for (i = 0; i < b->num_dims; i++) b->dim[i] = caml_deserialize_uint_4(); +- /* Compute total number of elements */ +- num_elts = caml_ba_num_elts(b); +- /* Determine element size in bytes */ ++ /* Compute total number of elements. Watch out for overflows (MPR#7765). */ ++ num_elts = 1; ++ for (i = 0; i < b->num_dims; i++) { ++ overflow = 0; ++ num_elts = caml_ba_multov(num_elts, b->dim[i], &overflow); ++ if (overflow) ++ caml_deserialize_error("input_value: size overflow for bigarray"); ++ } ++ /* Determine array size in bytes. Watch out for overflows (MPR#7765). */ + if ((b->flags & CAML_BA_KIND_MASK) > CAML_BA_CHAR) + caml_deserialize_error("input_value: bad bigarray kind"); +- elt_size = caml_ba_element_size[b->flags & CAML_BA_KIND_MASK]; ++ overflow = 0; ++ size = caml_ba_multov(num_elts, caml_ba_element_size[b->flags & CAML_BA_KIND_MASK], &overflow); ++ if (overflow) ++ caml_deserialize_error("input_value: size overflow for bigarray"); + /* Allocate room for data */ +- b->data = malloc(elt_size * num_elts); ++ b->data = malloc(size); + if (b->data == NULL) + caml_deserialize_error("input_value: out of memory for bigarray"); + /* Read data */ diff --git a/dev-lang/ocaml/ocaml-4.05.0-r3.ebuild b/dev-lang/ocaml/ocaml-4.05.0-r5.ebuild index 69094b6cb10a..36adb282101c 100644 --- a/dev-lang/ocaml/ocaml-4.05.0-r3.ebuild +++ b/dev-lang/ocaml/ocaml-4.05.0-r5.ebuild @@ -15,7 +15,7 @@ SRC_URI="https://github.com/ocaml/ocaml/archive/${PV/_/+}.tar.gz -> ${MY_P}.tar. 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}" +SLOT="0/$(ver_cut 1-2)" 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" diff --git a/dev-lang/ocaml/ocaml-4.05.0-r6.ebuild b/dev-lang/ocaml/ocaml-4.05.0-r6.ebuild new file mode 100644 index 000000000000..ae3120cad728 --- /dev/null +++ b/dev-lang/ocaml/ocaml-4.05.0-r6.ebuild @@ -0,0 +1,143 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit flag-o-matic multilib toolchain-funcs + +PATCHLEVEL="9" +MY_P="${P/_/-}" +DESCRIPTION="Type-inferring functional programming language descended from the ML family" +HOMEPAGE="https://ocaml.org" +SRC_URI="https://github.com/ocaml/ocaml/archive/${PV/_/+}.tar.gz -> ${MY_P}.tar.gz + mirror://gentoo/${PN}-patches-${PATCHLEVEL}.tar.bz2" + +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/$(ver_cut 1-2)" +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=" + sys-libs/binutils-libs:= + ncurses? ( sys-libs/ncurses:0= ) + spacetime? ( sys-libs/libunwind:= ) + X? ( x11-libs/libX11 ) + !dev-ml/num" +BDEPEND="${RDEPEND} + virtual/pkgconfig" +PDEPEND="emacs? ( app-emacs/ocaml-mode ) + xemacs? ( app-xemacs/ocaml )" + +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}"/${PN}-4.04.2-tinfo.patch #459512 + "${FILESDIR}"/${P}-gcc10.patch + "${FILESDIR}"/${P}-CVE-2018-9838.patch +) + +pkg_setup() { + # dev-lang/ocaml creates its own objects but calls gcc for linking, which will + # results in relocations if gcc wants to create a PIE executable + if gcc-specs-pie ; then + append-ldflags -nopie + ewarn "Ocaml generates its own native asm, you're using a PIE compiler" + ewarn "We have appended -nopie to ocaml build options" + ewarn "because linking an executable with pie while the objects are not pic will not work" + fi +} + +src_prepare() { + EPATCH_SUFFIX="patch" eapply "${WORKDIR}/patches" + default +} + +src_configure() { + export LC_ALL=C + local myconf="" + + # Causes build failures because it builds some programs with -pg, + # bug #270920 + filter-flags -fomit-frame-pointer + # Bug #285993 + filter-mfpmath sse + + # -ggdb3 & co makes it behave weirdly, breaks sexplib + replace-flags -ggdb* -ggdb + + # OCaml generates textrels on 32-bit arches + # We can't do anything about it, but disabling it means that tests + # for OCaml-based packages won't fail on unexpected output + # bug #773226 + if use arm || use ppc || use x86 ; then + append-ldflags "-Wl,-z,notext" + fi + + # It doesn't compile on alpha without this LDFLAGS + use alpha && append-ldflags "-Wl,--no-relax" + + use ncurses || myconf="${myconf} -no-curses" + use X || myconf="${myconf} -no-graph" + use flambda && myconf="${myconf} -flambda" + use spacetime && myconf="${myconf} -spacetime" + + # ocaml uses a home-brewn configure script, preventing it to use econf. + RAW_LDFLAGS="$(raw-ldflags)" ./configure \ + --prefix "${EPREFIX}"/usr \ + --bindir "${EPREFIX}"/usr/bin \ + --target-bindir "${EPREFIX}"/usr/bin \ + --libdir "${EPREFIX}"/usr/$(get_libdir)/ocaml \ + --mandir "${EPREFIX}"/usr/share/man \ + -target "${CHOST}" \ + -host "${CBUILD}" \ + -cc "$(tc-getCC)" \ + -as "$(tc-getAS)" \ + -aspp "$(tc-getCC) -c" \ + -partialld "$(tc-getLD) -r" \ + --with-pthread ${myconf} || die "configure failed!" + + # http://caml.inria.fr/mantis/view.php?id=4698 + export CCLINKFLAGS="${LDFLAGS}" +} + +src_compile() { + emake world + + # Native code generation can be disabled now + if use ocamlopt ; then + # bug #279968 + emake opt + emake -j1 opt.opt + fi +} + +src_test() { + if use ocamlopt ; then + emake -j1 tests + else + ewarn "${PN} was built without 'ocamlopt' USE flag; skipping tests." + fi +} + +src_install() { + emake BINDIR="${ED}"/usr/bin \ + LIBDIR="${ED}"/usr/$(get_libdir)/ocaml \ + MANDIR="${ED}"/usr/share/man \ + install + + # Symlink the headers to the right place + 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.09.0.ebuild b/dev-lang/ocaml/ocaml-4.09.0-r1.ebuild index f74988668b87..14dc7a908b0e 100644 --- a/dev-lang/ocaml/ocaml-4.09.0.ebuild +++ b/dev-lang/ocaml/ocaml-4.09.0-r1.ebuild @@ -10,7 +10,7 @@ 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}" +SLOT="0/$(ver_cut 1-2)" 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" diff --git a/dev-lang/ocaml/ocaml-4.10.2.ebuild b/dev-lang/ocaml/ocaml-4.10.2-r1.ebuild index 208d8612d6a9..e1ca18aa9617 100644 --- a/dev-lang/ocaml/ocaml-4.10.2.ebuild +++ b/dev-lang/ocaml/ocaml-4.10.2-r1.ebuild @@ -10,7 +10,7 @@ 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}" +SLOT="0/$(ver_cut 1-2)" 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" diff --git a/dev-lang/ocaml/ocaml-4.11.2.ebuild b/dev-lang/ocaml/ocaml-4.11.2-r1.ebuild index e3298bdfc899..f1ad43dbf997 100644 --- a/dev-lang/ocaml/ocaml-4.11.2.ebuild +++ b/dev-lang/ocaml/ocaml-4.11.2-r1.ebuild @@ -10,7 +10,7 @@ SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz" DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles" LICENSE="QPL-1.0 LGPL-2" -SLOT="0/${PV}" +SLOT="0/$(ver_cut 1-2)" 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" diff --git a/dev-lang/ocaml/ocaml-4.12.0-r1.ebuild b/dev-lang/ocaml/ocaml-4.12.0-r1.ebuild new file mode 100644 index 000000000000..137a6160e458 --- /dev/null +++ b/dev-lang/ocaml/ocaml-4.12.0-r1.ebuild @@ -0,0 +1,93 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit flag-o-matic + +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="QPL-1.0 LGPL-2" +SLOT="0/$(ver_cut 1-2)" +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 xemacs" + +RDEPEND="sys-libs/binutils-libs:=" +BDEPEND="${RDEPEND} + virtual/pkgconfig" +PDEPEND="emacs? ( app-emacs/ocaml-mode ) + xemacs? ( app-xemacs/ocaml )" + +src_prepare() { + default + + # OCaml generates textrels on 32-bit arches + # We can't do anything about it, but disabling it means that tests + # for OCaml-based packages won't fail on unexpected output + # bug #773226 + #if use arm || use ppc || use x86 ; then + append-ldflags "-Wl,-z,notext" + #fi + + # 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" +} + +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) + ) + + econf "${opt[@]}" +} + +src_compile() { + env -u P emake world + + if use ocamlopt ; then + env -u P emake opt + env -u P emake opt.opt + fi +} + +src_test() { + emake -j + + # OCaml tests only work when run sequentially + if use ocamlopt ; then + emake -j1 ocamltest.opt + else + emake -j1 ocamltest + #ewarn "${PN} was built without 'ocamlopt' USE flag; skipping tests." + fi + + emake -j1 tests +} + +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" || die + doenvd "${T}/99ocamldoc" + fi + + # Install ocaml-rebuild portage set + insinto /usr/share/portage/config/sets + doins "${FILESDIR}/ocaml.conf" +} diff --git a/dev-lang/orc/Manifest b/dev-lang/orc/Manifest index bb9a30e86a2e..7f9a4c435bf0 100644 --- a/dev-lang/orc/Manifest +++ b/dev-lang/orc/Manifest @@ -1,3 +1,3 @@ DIST orc-0.4.31.tar.xz 177768 BLAKE2B f06fd6be70063ebc82b45c1801a53aab66b5fc8a85c33991602488ec8ed29f2271df20c3780655953cabe33e865530b1218aafa0592261bcc5dccc4a4b3945e7 SHA512 4e97597e70982dbfc239d1ef9a8913b0155e5aaac15d91162d7f73a1095bd944e27fbe6d6194b9f74af07b985a44b1d9dddbe917425e1ad9e8da17ce86495696 -EBUILD orc-0.4.31.ebuild 1301 BLAKE2B 6efe99d869103769d769a8f42e10c7c599f35ce6e0b96575114b37c6abf6449f5ae5377c9c990de6be6ba77b7a3729ac283ebe297df56490a51c4d3fee0a00ac SHA512 e90eede09108e602d42741be742aec31750dfcc0c22ea5c72884952125b054408d261cde40374752f6dd7af6442f611acd52b3347c8315bb15c083160b9c5f07 +EBUILD orc-0.4.31.ebuild 1169 BLAKE2B 9a23a63e0c9d62cd527d512800ff1d2803ca73ed848a6a6513fe916a68e582a0989819cf9a30a467241583729961909efcc59e9ad7b4609110ffa09003eb6bda SHA512 15922e2c975d7b44e0c4058e085825505bae7f5fdda456858d18eb43fb43453055ea7435b50ddc6204b21985364c72758cb77573164d13b2a6f3509aedc8a006 MISC metadata.xml 264 BLAKE2B 43fa83d6a1e0013e0919fe70c75a427860055ab973a521c1c1a8332698aa849f416840fce65b591ac182aff64d6c9f8e8de5a876ddfa7c6f6df9d79fe1c9510c SHA512 734d8601a88b31769f8ae13d8b607bfe07c7478b51e19eec29d1b37558c3cd859703443ba189998bf6fc2e6cb7fd618523d3225806c35bfc0ac1d400017b18bd diff --git a/dev-lang/orc/orc-0.4.31.ebuild b/dev-lang/orc/orc-0.4.31.ebuild index f6afe427d1ae..3546de6e720c 100644 --- a/dev-lang/orc/orc-0.4.31.ebuild +++ b/dev-lang/orc/orc-0.4.31.ebuild @@ -3,7 +3,7 @@ EAPI=7 -inherit meson multilib-minimal +inherit meson-multilib DESCRIPTION="The Oil Runtime Compiler, a just-in-time compiler for array operations" HOMEPAGE="https://gstreamer.freedesktop.org/" @@ -32,21 +32,9 @@ multilib_src_configure() { -Dorc-test=enabled # FIXME: always installs static library, bug 645232 -Dbenchmarks=disabled -Dexamples=disabled - $(meson_feature gtk-doc gtk_doc) + $(meson_native_use_feature gtk-doc gtk_doc) $(meson_feature test tests) -Dtools=enabled # requires orc-test ) meson_src_configure } - -multilib_src_compile() { - meson_src_compile -} - -multilib_src_test() { - meson_src_test -} - -multilib_src_install() { - meson_src_install -} diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest index 304e4aef3cde..38bfc7860f76 100644 --- a/dev-lang/php/Manifest +++ b/dev-lang/php/Manifest @@ -6,8 +6,12 @@ AUX php-iodbc-header-location.patch 481 BLAKE2B 9ea6a5d529dc7a8c78eeee800900372b AUX php80-firebird-warnings.patch 1949 BLAKE2B ab1b693afe26b6529aab8628f9a614478c388ed23603ad1dd4d17b63154d535a3e4c2db04fe27fb22a3d7e1335e368ffd383ed24647ac53ac05170ec3e1beb75 SHA512 d37815ea529167d4959aef056a3a0be6902ee4cda809a48c24299b05ff6477ee82e8ed8dcf49051b8e74ba5c31e3985454591ea751d4550df3d2e3639ec0d616 DIST php-7.3.28.tar.xz 12139380 BLAKE2B 696c573878866e97fcae5fe3e33e83e75bf706d0eec2a66b2532ec54ce730e3f4b3fa6f0659ebf14193b6b2a6292d624bf478706790aab60b13b5cea0a1299fb SHA512 91f4f23fea6e2c5ea1fa5774075e1b1f7cfcc46064ab0d2f03e4f1b9b6c3dd7fd5a59854ed3fe3a8e2962283045f6a1c3273438b4bc0c68b11f41b9338f44274 DIST php-7.4.19.tar.xz 10341424 BLAKE2B b5f549603a2d108d2d4c16dfb15c2088612e040e9e4756cc7c1403c67e152ad3461d84915e4f542b1e558469ae3143721c6d7ec25ef03c3b4a6142fe972bd775 SHA512 2ac51b9920069ebe8ac68a94f8e9aac2b3d44d69668f340aba95f8303632fe1bfc4c3f2ce398cc7e2c2ea48583d8e04dedfc66f7147c1f4470a55417554d0071 +DIST php-7.4.20.tar.xz 10345912 BLAKE2B 4efb53a30caee049aec11269aa64a4f60d3fc9f7abc3c1ee861cfad94b5533833c4d4d1c8aa740db4161d58e58071e9b077488fd970d4e1e53e17367ed751971 SHA512 40261c5a85341fa7c495db86ef3526d1ae2751c6abb05251819c2b7080050715eb44a19c3f8655d101f4308209487ce16dcf94067b71b084c912470796b217f7 DIST php-8.0.6.tar.xz 10764932 BLAKE2B 9ab23dfcefe2c94a88184fbb3e18267c38fdcabeca0e9ba12a616528895f85790b1238fdb6e0578db2183b6eee26f26d9d7b744b7344495ea20a6e58668136d1 SHA512 4915b9b5024ce1fb7bc3ba7c1a00831841bc970ebb68b6b1e6a00cbec4d8dcbbca3ca043882ffd9c4719a988d08275f77f9cee07ff3d45a71402dfc51bd31e04 +DIST php-8.0.7.tar.xz 10769208 BLAKE2B 6c20cf6c49c56112199bfe4a3154269b1bade7035e07341ec9031ac2a7d0202ecdcaa465baf1f08c76ce09e966f3ca6bf8ce32c111fb710b0e971ca366dfbab8 SHA512 54d0355977a69c3c466054e9e277147874eaab192bc384a199eb98582f9fcccebc685b370dabeb65d2de3bad4d2e4b2490c0164d2ce406af76b0e972ea67bbd0 EBUILD php-7.3.28.ebuild 22673 BLAKE2B 6c64c471608b337f4ebd5d07a9cec58a38afdf3ca5b64d094e4e1a37040dc4f95331c1fb7bf8f3a8c5d3cf2b0f6b215b4b342fecb162c69bc29214cb250553bb SHA512 49b0d559c6999719ca732d9a40c9154806092083b7da2e5a11ab33718b638cb774de3a6af81949c408e99ba18a3720c4145022221921f3a7bd84572ac28c98c0 EBUILD php-7.4.19.ebuild 21382 BLAKE2B 27074fae8c5d1b0727acb1ca1672b0300edb30483ec7fcc4b0102982e8ea6a31f4c5f55013243c2de3e3192864ca466cbe1ac589689204ba976eb85cfae7db87 SHA512 afccdc44f0ddd1c5417c8be6655a947508b82c8cabe57a24174fd03eeb951b730136379c2a0f978b10993fa4b0a7ef6eeb95b398298ed4433db86b4e2d2ba872 +EBUILD php-7.4.20.ebuild 21389 BLAKE2B 8f7211b827110a1d3bda530a52eb31611dcf740d5410c50b895dde38b145a79e5e6092ab9534e9aec602d55695217da7dbb24393e374efb9f47cb452d69d971b SHA512 d1503dc8e0eb357f07a645e1a6704507c29b182dd1f2ff615cb8b53cb98f5f70bbaac230047d33dbbb5f85c8f12a4f69b32ff027b0bebe3c2b2c3c96fbbb24d8 EBUILD php-8.0.6.ebuild 21328 BLAKE2B aa18a9946ac756b200a4b1610ec3cfe8eca05a454458dacb00d8d7138d3933ab73c6c7db9c72bc29b28b470df5eef2d7400354d38b5404281ca33a0f96b36461 SHA512 703e031df5c14982d8278ff824cb1d9f79cb4e33ec9c70de2475232f65dc92c0b4d0400bc60f90902a6a8ad1c769d29a690fa08a3eeac1a99b321ae5bd9e9a0c +EBUILD php-8.0.7.ebuild 21328 BLAKE2B aa18a9946ac756b200a4b1610ec3cfe8eca05a454458dacb00d8d7138d3933ab73c6c7db9c72bc29b28b470df5eef2d7400354d38b5404281ca33a0f96b36461 SHA512 703e031df5c14982d8278ff824cb1d9f79cb4e33ec9c70de2475232f65dc92c0b4d0400bc60f90902a6a8ad1c769d29a690fa08a3eeac1a99b321ae5bd9e9a0c MISC metadata.xml 3268 BLAKE2B 4abc96d858186ab5bc6f0797fb3f1cf7f5aaa0b07a4652dcc16aa65e197bd73803f6bac717084c0c9a194e7da5b6632523105205011a0d39221aabc16ade8e2e SHA512 1413edb5293cb93ad8f94376f11b9952ca6369b667ae23baed56d9cbaa68cb9cfa5a80da7dd7184ba84f08d5a4054068da1c10daca81d1730e7b6edebba8b29f diff --git a/dev-lang/php/php-7.4.20.ebuild b/dev-lang/php/php-7.4.20.ebuild new file mode 100644 index 000000000000..7b09eb440f4f --- /dev/null +++ b/dev-lang/php/php-7.4.20.ebuild @@ -0,0 +1,750 @@ +# Copyright 1999-2021 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" + +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 +jit +json kerberos ldap ldap-sasl libedit 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. +# The Oracle instant client provides its own incompatible ldap library. +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 ) + oci8-instant-client? ( !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[jit?,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[sdk] ) + 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? ( >=dev-libs/openssl-1.0.1: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 + our_conf+=( + --with-external-pcre + $(use_with jit 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.7.ebuild b/dev-lang/php/php-8.0.7.ebuild new file mode 100644 index 000000000000..bf9240b404a9 --- /dev/null +++ b/dev-lang/php/php-8.0.7.ebuild @@ -0,0 +1,748 @@ +# Copyright 1999-2021 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" + +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 +jit kerberos ldap ldap-sasl libedit 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 xpm xslt zip zlib" + +# Without USE=readline or libedit, the interactive "php -a" CLI will hang. +# The Oracle instant client provides its own incompatible ldap library. +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 ) + xmlreader? ( xml ) + xmlwriter? ( xml ) + xslt? ( xml ) + ldap-sasl? ( ldap ) + oci8-instant-client? ( !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.7[apache2?,fpm?] + >=dev-libs/libpcre2-10.30[jit?,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.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= ) + 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[sdk] ) + odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) ) + postgres? ( >=dev-db/postgresql-9.1:* ) + 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? ( >=dev-libs/openssl-1.0.1: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.9.0 ) + 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" + "${FILESDIR}/php80-firebird-warnings.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 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_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 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 + our_conf+=( + --with-external-pcre + $(use_with jit 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$(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$(get_libname)" + ;; + phpdbg) + source="sapi/phpdbg/phpdbg" + ;; + *) + die "unhandled sapi in src_install" + ;; + esac + + if [[ "${source}" == *"$(get_libname)" ]]; then + dolib.so "${source}" + else + dobin "${source}" + local name="$(basename ${source})" + dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}" + fi + fi + + php_install_ini "${sapi}" + + # construct correct SAPI string for php-config + # thanks to ferringb for the bash voodoo + if [[ "${sapi}" == "apache2" ]]; then + sapi_list="${sapi_list:+${sapi_list} }apache2handler" + else + sapi_list="${sapi_list:+${sapi_list} }${sapi}" + fi + fi + done + + # Installing opcache module + if use opcache ; then + into "${PHP_DESTDIR#${EPREFIX}}" + dolib.so "modules/opcache$(get_libname)" + fi + + # Install env.d files + newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}" + sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + + # set php-config variable correctly (bug #278439) + sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \ + "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die + + if use fpm ; then + if use systemd; then + systemd_newunit "${FILESDIR}/php-fpm_at.service" \ + "php-fpm@${SLOT}.service" + else + systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \ + "php-fpm@${SLOT}.service" + fi + fi +} + +src_test() { + echo ">>> Test phase [test]: ${CATEGORY}/${PF}" + PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php" + if [[ ! -x "${PHP_BIN}" ]] ; then + ewarn "Test phase requires USE=cli, skipping" + return + else + export TEST_PHP_EXECUTABLE="${PHP_BIN}" + fi + + if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then + export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" + fi + + if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then + export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" + fi + + REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \ + "session.save_path=${T}" \ + "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \ + "session.save_path=${T}" + + for name in ${EXPECTED_TEST_FAILURES}; do + mv "${name}.out" "${name}.out.orig" 2>/dev/null || die + done + + local failed="$(find -name '*.out')" + if [[ ${failed} != "" ]] ; then + ewarn "The following test cases failed unexpectedly:" + for name in ${failed}; do + ewarn " ${name/.out/}" + done + else + einfo "No unexpected test failures, all fine" + fi + + if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then + local passed="" + for name in ${EXPECTED_TEST_FAILURES}; do + [[ -f "${name}.diff" ]] && continue + passed="${passed} ${name}" + done + if [[ ${passed} != "" ]] ; then + einfo "The following test cases passed unexpectedly:" + for name in ${passed}; do + ewarn " ${passed}" + done + else + einfo "None of the known-to-fail tests passed, all fine" + fi + fi +} + +pkg_postinst() { + # Output some general info to the user + if use apache2 ; then + elog + elog "To enable PHP in apache, you will need to add \"-D PHP\" to" + elog "your apache2 command. OpenRC users can append that string to" + elog "APACHE2_OPTS in /etc/conf.d/apache2." + elog + elog "The apache module configuration file 70_mod_php.conf is" + elog "provided (and maintained) by eselect-php." + elog + fi + + # Create the symlinks for php + local m + for m in ${SAPIS}; do + [[ ${m} == 'embed' ]] && continue; + if use $m ; then + local ci=$(eselect php show $m) + if [[ -z $ci ]]; then + eselect php set $m php${SLOT} || die + einfo "Switched ${m} to use php:${SLOT}" + einfo + elif [[ $ci != "php${SLOT}" ]] ; then + elog "To switch $m to use php:${SLOT}, run" + elog " eselect php set $m php${SLOT}" + elog + fi + fi + done + + # Remove dead symlinks for SAPIs that were just disabled. For + # example, if the user has the cgi SAPI enabled, then he has an + # eselect-php symlink for it. If he later reinstalls PHP with + # USE="-cgi", that symlink will break. This call to eselect is + # supposed to remove that dead link per bug 572436. + eselect php cleanup || die + + if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then + elog "To build extensions for this version of PHP, you will need to" + elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable." + elog + fi + + # Warn about the removal of PHP_INI_VERSION if the user has it set. + if [[ -n "${PHP_INI_VERSION}" ]]; then + ewarn 'The PHP_INI_VERSION variable has been phased out. You may' + ewarn 'remove it from your configuration at your convenience. See' + ewarn + ewarn ' https://bugs.gentoo.org/611214' + ewarn + ewarn 'for more information.' + fi + + elog "For details on how version slotting works, please see" + elog "the wiki:" + elog + elog " https://wiki.gentoo.org/wiki/PHP" + elog +} + +pkg_postrm() { + # This serves two purposes. First, if we have just removed the last + # installed version of PHP, then this will remove any dead symlinks + # belonging to eselect-php. Second, if a user upgrades slots from + # (say) 5.6 to 7.0 and depcleans the old slot, then this will update + # his existing symlinks to point to the new 7.0 installation. The + # latter is bug 432962. + # + # Note: the eselect-php package may not be installed at this point, + # so we can't die() if this command fails. + eselect php cleanup +} diff --git a/dev-lang/python-exec/Manifest b/dev-lang/python-exec/Manifest index b8182e999771..530a2aa6b86d 100644 --- a/dev-lang/python-exec/Manifest +++ b/dev-lang/python-exec/Manifest @@ -1,3 +1,7 @@ DIST python-exec-2.4.6.tar.bz2 87634 BLAKE2B 7b6de8ad0e0603fafd3284e6e3c5247ad83f145ab4db6728914318ae8e6f5aaa3c0247f4e01238fca11519ef72fb1b11436aea7e2b8c988b8717b3f6a2a43c37 SHA512 e05eaf01b83de196a10933636ab6b1a5489a421592df49b8b58eabd0e732de970f902744cd3a06b5ab530a6d69fe6dfa8f270fbb09b9fe3df4ae04d516828050 +DIST python-exec-2.4.7.tar.bz2 88204 BLAKE2B c370d5f33063bf0dd02d1b5ddad27b320652664ed3bc89cf2d70b94292f3dcd8c4e3bb6bb43ce8d2514a8e0a5a3e95295ff8d0f95371bda136cd51312da747e8 SHA512 6e061fc1ae84e21effb24d35195a7c61430e0e50dc0b0bfbab65f741dde45a92688fd9ac7a0868f7b08ba603a609fb3f03181238f63fdd383b4d604af8406d14 +DIST python-exec-2.4.8.tar.bz2 82671 BLAKE2B ac85f3dd6da3d1c535ad56a25edbbcb1d0e75b91e3567b80f27fd01d32a199a713909a8552dffaacbe96c43bca491f31c3f0c7f1a618fb9144814365686715cf SHA512 d6dabab217dc2f1817e2f4d159102a9467f51b26b91f4ae7fb7e4930d30334f74bd8a5f37cc60d58c6e1e61e89a3b4d2e1bd17413493ba86f38fa71250cf5ac1 EBUILD python-exec-2.4.6-r4.ebuild 1706 BLAKE2B 5a41250c5ea33394a21cf523b48526cc7507441284007e5add7c818246af8637f186878d37bbc826fba987cd07ae1f12701badb478556ebde11d452d28cb88b1 SHA512 3f5935a169181f10b2667b91e35fc42258f9f555ac7e73b5ff08714678f403097901ccfe31a2f1df4f9d37eebf17a3dd3d9961c7a6baf5a0b4739063d21676b0 +EBUILD python-exec-2.4.7.ebuild 1714 BLAKE2B 271d84d7e17f608e30503261c2cb2daad2381a14136ac8465d127f750936d8c33f2e364c2649f47926ebd59230a987c316b2edf1415c15bc6ddbd64703d6942d SHA512 fe43e2d7ba2757c3e1a5e5a7815ba461cd0ea0fd3ee97cc44cb94c54fb80f263245c0545b28647850c26139861f4c00c06e2638171f9a368efcd3d2e6cecdc9a +EBUILD python-exec-2.4.8.ebuild 2002 BLAKE2B 6f7ddc6314e51d24667b4a8a5926cdb96bb864a98cb55324ca64ace84593aef945beb497a6127a16acb2de52e35a5b80db6146c0ed520460b1f2c168a9af86ee SHA512 9694d4eab6a5a12c7be23cac48c925d453d5f2c13bcc4573adf86b8bdb8a667a984be12182081ca8f0a12fa774fff5bc0f146b2c5bd6ffb7171ae23c81005999 MISC metadata.xml 791 BLAKE2B 5be47111a2bd77ad817b6c4fe9822b3ab0e859ccc13bbccf7439549e0b2f2ff4734896942aa4324f5c35fe2097b8454828df0b7a1e2c855824fcebe60925431d SHA512 a6782b79df1d7b130cb93cd77fa3292bcbc23fd0b35158ce8231904d1593c9e5659a55d00d158c88bb1326b5c375e7aa8591d9b74e9e12f5e1192a42c037a9ad diff --git a/dev-lang/python-exec/python-exec-2.4.7.ebuild b/dev-lang/python-exec/python-exec-2.4.7.ebuild new file mode 100644 index 000000000000..414d52b94501 --- /dev/null +++ b/dev-lang/python-exec/python-exec-2.4.7.ebuild @@ -0,0 +1,58 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit python-utils-r1 + +DESCRIPTION="Python script wrapper" +HOMEPAGE="https://github.com/mgorny/python-exec/" +SRC_URI="https://github.com/mgorny/python-exec/releases/download/v${PV}/${P}.tar.bz2" + +LICENSE="BSD-2" +SLOT="2" +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" + +RDEPEND=" + dev-lang/python-exec-conf + !<=dev-lang/python-2.7.18-r3:2.7" + +src_configure() { + local pyimpls=() i EPYTHON + for i in "${_PYTHON_ALL_IMPLS[@]}"; do + if use "python_targets_${i}"; then + _python_export "${i}" EPYTHON + pyimpls+=( "${EPYTHON}" ) + fi + done + + local myconf=( + --with-fallback-path="${EPREFIX}/usr/local/sbin:${EPREFIX}/usr/local/bin:${EPREFIX}/usr/sbin:${EPREFIX}/usr/bin:${EPREFIX}/sbin:${EPREFIX}/bin" + --with-python-impls="${pyimpls[*]}" + ) + + econf "${myconf[@]}" +} + +src_install() { + default + + if use native-symlinks; then + local programs=( python python3 ) + local scripts=( python-config python3-config 2to3 idle pydoc pyvenv ) + + local f + for f in "${programs[@]}"; do + # symlink the C wrapper for python to avoid shebang recursion + # bug #568974 + dosym python-exec2c /usr/bin/"${f}" + done + for f in "${scripts[@]}"; do + # those are python scripts (except for new python-configs) + # so symlink them via the python wrapper + dosym ../lib/python-exec/python-exec2 /usr/bin/"${f}" + done + fi +} diff --git a/dev-lang/python-exec/python-exec-2.4.8.ebuild b/dev-lang/python-exec/python-exec-2.4.8.ebuild new file mode 100644 index 000000000000..ba9bc52a3a43 --- /dev/null +++ b/dev-lang/python-exec/python-exec-2.4.8.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8..10} pypy3 ) +inherit python-any-r1 + +DESCRIPTION="Python script wrapper" +HOMEPAGE="https://github.com/mgorny/python-exec/" +SRC_URI="https://github.com/mgorny/python-exec/releases/download/v${PV}/${P}.tar.bz2" + +LICENSE="BSD-2" +SLOT="2" +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 test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-lang/python-exec-conf + !<=dev-lang/python-2.7.18-r3:2.7" +BDEPEND=" + test? ( + $(python_gen_any_dep 'dev-python/pytest[${PYTHON_USEDEP}]') + )" + +python_check_deps() { + has_version -b "dev-python/pytest[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +src_configure() { + local pyimpls=() i EPYTHON + for i in "${_PYTHON_ALL_IMPLS[@]}"; do + if use "python_targets_${i}"; then + _python_export "${i}" EPYTHON + pyimpls+=( "${EPYTHON}" ) + fi + done + + local myconf=( + --with-fallback-path="${EPREFIX}/usr/local/sbin:${EPREFIX}/usr/local/bin:${EPREFIX}/usr/sbin:${EPREFIX}/usr/bin:${EPREFIX}/sbin:${EPREFIX}/bin" + --with-python-impls="${pyimpls[*]}" + ) + + econf "${myconf[@]}" +} + +src_install() { + default + + if use native-symlinks; then + local programs=( python python3 ) + local scripts=( python-config python3-config 2to3 idle pydoc pyvenv ) + + local f + for f in "${programs[@]}"; do + # symlink the C wrapper for python to avoid shebang recursion + # bug #568974 + dosym python-exec2c /usr/bin/"${f}" + done + for f in "${scripts[@]}"; do + # those are python scripts (except for new python-configs) + # so symlink them via the python wrapper + dosym ../lib/python-exec/python-exec2 /usr/bin/"${f}" + done + fi +} diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest index 0b2053085b1e..1d6891696b1f 100644 --- a/dev-lang/python/Manifest +++ b/dev-lang/python/Manifest @@ -24,26 +24,34 @@ DIST python-gentoo-patches-3.10.0b1.tar.xz 8116 BLAKE2B aba4856d2463e57187680780 DIST python-gentoo-patches-3.10.0b2.tar.xz 8124 BLAKE2B 6b707ef911c0573e6e87792b4ba1d37e5620723c7b22759c78ac20d88414390a7317546c41d867cd9decb6247c004a9df8eb25ab0999db9c7b431b03b64609e9 SHA512 9a95a1f8a6e4461107e9580e6017956ade47be90fbcd94cbb2eb83a871702308058a402c1eafc8e0d54c2a1910b9030edd9f71b051e846b1219e9f7bd11274b6 DIST python-gentoo-patches-3.6.13_p3.tar.xz 17640 BLAKE2B 255e96f61ad8adb7fdf1cc9f11ca99c8368601dfe9bab4c96adf1e77472dfdf365a6ce197ecc72b574849e2a6235063d63558711049e9e7407862871dc0f2f20 SHA512 7b9a39cd65129c495c513e1b8c259a88194b8877b891cedaa5289bedcc44dbcb5e63e3b9922ef085321e7f4db73b5a5090d30725b456491a98d7ef40b85601eb DIST python-gentoo-patches-3.6.13_p4.tar.xz 17896 BLAKE2B 768ed3860766b212d21718d2f83fe2852dd297aaeaa2d76d93357012513b2aa66e8ff8fc8edf7375ae10ecf0864560e7b4df168f916cba06c67e329612d404f8 SHA512 7ec640280244c7fe8e5c5b3e8c7fd396ec37b920fe1a77d99e85bef20bc335cfc0bf818c58b8f203c15ce343f50d4b8c7ab7591ecfd21380c9cb15d87ed81ca4 +DIST python-gentoo-patches-3.6.13_p5.tar.xz 21940 BLAKE2B f6753f2c4383fbf0de0433040dae812f35bf550c60ac4a042c62afcff158619ebdc47d013dfa62d9b3dd446e8401ad50aaaeb212fb048a884a1c436b73b7afe2 SHA512 260d6abb2c24726fcddbe3ae828e96e315f90b6d486c11868066a25635968214a8c25a89737a9737c32ca110892a28f6b12badbeceb5e4d8d4a2a996b3ce7352 DIST python-gentoo-patches-3.7.10_p3.tar.xz 16804 BLAKE2B 1db238e4b928332d459b5f3c36ecb7f3bc3d3b754fd82e4434c91843ef7574306aef044df9a2644749a17b14ce9fefcd3c3dd44cafaa4ace0b7dc62fb66e73c8 SHA512 61a262a05d1f8e9b08875285db989160362eec66123a15345dd16b8c1f1161aeed31b20df8f69d27ae71902ae2e678328b82e511881d9a5560932619234bbe7d DIST python-gentoo-patches-3.7.10_p4.tar.xz 17076 BLAKE2B 628d82f5fc24ee68b4d529ab6d2fcaf7361d55a99dccd699a2fd027e86a731e641ff1573c7639d3d513b2030f8e8629adab84c13a9dd1ba5e2a84bdb16e92c44 SHA512 856ff2e3a73d56888bc1a3b2a28e2ca284a2a40ac3df4d060616fee47e95052b535e697d1d77c58ed850da105c7accfe3093a41492e63f6642349f7a6c80a3ea +DIST python-gentoo-patches-3.7.10_p6.tar.xz 23868 BLAKE2B 3b3786030a461d06a96dbe0987d05c35215bb5e7b0b95e1337a05a311ad6f3c6db68cc7082128c56eea3eff4b98f74d213dde1f48517e07791815b73dcdcd5b8 SHA512 b817a9bc1469675c14555ce50bb004e8c1426465997a72a94859ab10df7c2a036b33b332c9e6b9f49df1addd899a37afd28fe60bf6ce90b4b21f4a28a27aca25 DIST python-gentoo-patches-3.8.10.tar.xz 15180 BLAKE2B 1f8c57c6ed8d49c5ff42ecaaf19f470567db7fc68ed95eb44a89e9e85a542c085708207f02a1e50ebd7e6fc5e876e232ccd47f49e7653d338ec0520b7dac1a3d SHA512 65e3ec0a0fd49c0c6e96eb07c98b93ce5168e430bbfcd1e62185f6df6bd42fb1a5b5752cbe8bde93101510c0cfd37e604dde40549703b1d1c0e37d24cc327472 DIST python-gentoo-patches-3.8.10_p1.tar.xz 15504 BLAKE2B 63bd3e4928853a80a57ff922c42c434990b38a5c1dc639a277b8dcd01dabf1e0ff745750859b2ee47d30f84afd2bece81e4ba72b89a9ec690300de42e2a5f590 SHA512 955f7647bb05572a1f77cc8a8c35b7690ae914b9b22d30da553502ccc018b4134a7b647dd088b8b75c46a6971bf64dd750e47ceb1b3b219dd58260bf7b67860f +DIST python-gentoo-patches-3.8.10_p2.tar.xz 20288 BLAKE2B 4d9db5c8d5c27673d5a026149e5678c2b4072d6d0326ae015bf4fd5b5065beeff0cd6ee0a061f79ab3258d3d156d555a38cbdca2e5e05b4405038847dcc97c8e SHA512 165a4e3b537538e792a98141a8e4af6b5cde369e6322155731ecb1b55d0e609f06208d88d68dbb1fbe59a5127ae7ac49d76d8fb6505ccf835931b2a802cd85de DIST python-gentoo-patches-3.8.9_p2.tar.xz 16600 BLAKE2B 895eebdfabfe9cc4a30d87255112033b506511a8def7cecb03e37b0bde350f1c4b53f06a7e8ead53218c29e2cf4866f2ddfc9d30a07e9f5c67e4c7c271c18cba SHA512 5751c4bcdd1f637f9678d3fa3455c701b2dec051e12d5a1fa6468d7745c1387fb0485672e53dc619b4244435897f21702699c64b63ad9a0422ed91edd7fb2491 DIST python-gentoo-patches-3.9.4_p1.tar.xz 14472 BLAKE2B c8bd49c2eb77eb00377e6c6e63a2f6b1108a2c8d4eb45cc943ad2d0a2b4457e00002f90d2597032716af5268f33d24902d4634cf8e98778c1d15bf8dda5d7215 SHA512 9a12c1935be31b1663e4ab6c1f7aca51ba62ef4033600885678ce436ecab688e2df82742125b4885b1cb8da9c68140c5ca4ee1684360ac87d82c6491bce5d0a0 DIST python-gentoo-patches-3.9.5.tar.xz 8820 BLAKE2B 177234776f00c3efa6b76fefc1ef0001225ded1dd8ba916e3dc8498a7e845467bf387ba8a4f82da713a51bff627420a084f6627218863f70e1273cce58ca7252 SHA512 37b7e25a1703184556f12202da9cba1a8e2fb1c059d75195ef2997f55948229f164642a580e33c59f5877fe36d4c62f1735f95df318b36d92c528eb98f42e55f DIST python-gentoo-patches-3.9.5_p1.tar.xz 9124 BLAKE2B ab2f51c2d10c679022b563efa8b2494499d8d69b7617ec5229c3af546b1a9589e8aa064e9c025e19f658a316fba4134086ac8f357de97042288ee7b8f34ba9c7 SHA512 16da4a4736acd0ceb263766d14781a034a374372c7ab603a966fa364350b28e8c168f2e38c276d8e03cbdc2f3f9dde691fe959ca3db20533b036cc664a3cefe1 -EBUILD python-2.7.18_p10.ebuild 10287 BLAKE2B a39e37ae85598772b3d132e5e63688e2001fb5493ff33a029124b3fee24e2cc09758829d7217820cb629af08e79046357ed0aa893bbb61beda25cca03cb2f3b0 SHA512 9aeb144460c2b25b496ffe6f92807be6063b8c8dd60d4f7d27487abd356f9ea2e1469e38690ef760486db8082505ce3ae469ac2645a0a53c2bf6f02141426272 -EBUILD python-2.7.18_p9.ebuild 10279 BLAKE2B a9cd26c7882ee1be288b98c99cb11b6e34d742449bbefefa0e05f2a6b2d3dff8cf60130272373dccdf894734a77eafdb035c2bfe0cabfff7693d198741cd3967 SHA512 cc67da5aa6f73ff333b3ddd881295f984203eb28d100b1a0817cc2ba1e629983f5e7fd64aa200b34eafa23002e9716b96f4a5456f626add2b01de1db873139fa +DIST python-gentoo-patches-3.9.5_p2.tar.xz 14728 BLAKE2B b6b0a0c316d99e8282bdbb5e62a90f84880ff89b0b1e236a5bce37fbdd3c3b187f7964873882dbcbc8c9765af107377240e8aac544987452830f0069aff471c0 SHA512 42e4dd48f4b93bd45a70093b447b4862ab286c1b5adc32d22a3e3d08e67db13bfa829bdbcf989fac9b7c8634a4735cfb4a7b16bfc40bdff0c11bc5a768bbeaf8 +EBUILD python-2.7.18_p10.ebuild 10279 BLAKE2B 2c07e531b7b37e7a1a6e9c94150a41cf53f18139b10dd35667bfdc1d5c0db2ddc63ebff894c918dc5440f855379c4642518e3a153a7ab90a17a7e3b3541b7c6a SHA512 b6433d3aa3070ac606be6f5c6997142d6bcf5f2e22d8451be257d0f1658ac9ee61ba389aea564bfaca65c245cda0108f53de6b7d09665e735e13efc122b0f4e2 +EBUILD python-2.7.18_p9.ebuild 10278 BLAKE2B 1831412a47fd78750e3fc1d6bc91c403f70ae1e51500adbc197f671d5057230bee9aac2437ff1fda45923021a3ead7c91cc5fb27967426bc7d45c8dd4162a0d8 SHA512 59eb7b80b2e39da2b2ed47a33b3ddf13975c40ce565f6552c66d7e3bc2bdcd8534065b8f0782d49b5dbb52afd7135af5f0858e963a0bd182723e76445d5495e7 EBUILD python-3.10.0_beta1.ebuild 10045 BLAKE2B 085fb4c2d64576159313076da40f6c7096d6815151d2a3e082a5bae5164d40442996d579e887dc5a39fa52dfb1220b67fc26f840b2f0b1997346fccfdee56009 SHA512 e66d80207f5897b6bcd72f1506ee5418c13eb1cc51a1b3681e653d49d7473f5755edc8096c7d3becb613275f1e40a13b399b9c61dfc85da9b9e209791ea2d230 EBUILD python-3.10.0_beta2.ebuild 10045 BLAKE2B 085fb4c2d64576159313076da40f6c7096d6815151d2a3e082a5bae5164d40442996d579e887dc5a39fa52dfb1220b67fc26f840b2f0b1997346fccfdee56009 SHA512 e66d80207f5897b6bcd72f1506ee5418c13eb1cc51a1b3681e653d49d7473f5755edc8096c7d3becb613275f1e40a13b399b9c61dfc85da9b9e209791ea2d230 EBUILD python-3.6.13_p3.ebuild 9827 BLAKE2B 1b4e38ac6584840625040b89cb888db177a46cd6faec6c236c32f56b890fc6487c826dd9820f05ba9493a792df8f2bab252c7e1c3c86a49fc0e3e1ae00828b43 SHA512 185ca27fa6ba4ed17b89d0e6f21efa5fd44aa40637f3844401e7d6140f82d6d2a815d61210aad50c322de029bae7a46654c90e4ec448bbee6caab25d3a82d711 EBUILD python-3.6.13_p4.ebuild 9835 BLAKE2B fe07cb4e400f4c7b28c33684d2ccd241c083b9a0f9b1d064dbf78bafa9f08bd01e1c1126b0aa3b2c798e5663e74260ab27a167d4e7743b8d1f13f946094b2892 SHA512 817d0ae1677d08c2068debd873148992c652ff58a4718378c43a6ead9fc09964745de6daace955cec603cab46e9b9520bf92738794e581290306f03ab5344b26 +EBUILD python-3.6.13_p5.ebuild 9828 BLAKE2B c63a3f205b4776e4461981a1d1f80b0405bc6c54c13c68da21a22449c9c9164bab7f009b518a57546841b311e3aa39733cbc8f81f2305639f3883b978687ba7d SHA512 8c7f008d773be6dae809ad252230ce85d5cc0c7d77bc2e1c83cecb3cfe6a0942bf3f13435de9ce83c386dbebce85788ab3ded8fdb139ac107444ce81374babe7 EBUILD python-3.7.10_p3.ebuild 9632 BLAKE2B 85597824af2426a591a909d7170410ae405bc06381c63ed1603571230efc9b0b2aa8d06443845efb38535d4844a632771ea483845d0034506b69f65ffb509531 SHA512 a0287b8ffc461e9556770cacdba761448a0f2ecbcac6a383c586fe0577bd3fc7603c06b23a186d2f3c15d156b9635a508660cef8812dd18b34834ca0fca9a8f8 EBUILD python-3.7.10_p4.ebuild 9640 BLAKE2B a38f2c17009ceddd8d5e98da45edaafd8bdf82e1100fb4cff5a45c853f263b592b7e4f51f0b22f62be49b74a1ad4bef001af3a4225a7f39753eeaf1dfca1b6b2 SHA512 077bfe00609cef8943d76306842c2474e12b3dd45c088c67d2ea734cf6bb83e334777a372383c51d5afe9f7ff36f606abba1a9c3eb30e5063891671d67b7d218 +EBUILD python-3.7.10_p6.ebuild 9633 BLAKE2B 28fdff5db136d879422706a9e2f434df315fb8f7db7db0233383ea47ca61e098589f0319f6e264932f1287aad739bc3edf7f112141dc903a18b959a9a9d0f8de SHA512 045a51fcf20768818bdbe41fefcdbe0ddbfd23272734fb0c07aa189c00fd7f7f3fe25d8fc21849f6c892c1e71992a74225066d4b791c9351b3d292a3699e647e EBUILD python-3.8.10.ebuild 9794 BLAKE2B adea166e768e09b86cfe01fb8629822750261871c1b300e94815967c201ac5b406f1419401e6d0e7872bb7a34e5ca8cfbd0b4dc4ab66855693e74ec540728e4f SHA512 8b2190820a441b4f24ad44cf43c96dc3ac92abc6f02d6bc77dd914d06a95e6ca65c189af73965f9ad9a17c2d37c700fb0cc88b2cc23d6b86806a8661f669406a EBUILD python-3.8.10_p1.ebuild 9794 BLAKE2B adea166e768e09b86cfe01fb8629822750261871c1b300e94815967c201ac5b406f1419401e6d0e7872bb7a34e5ca8cfbd0b4dc4ab66855693e74ec540728e4f SHA512 8b2190820a441b4f24ad44cf43c96dc3ac92abc6f02d6bc77dd914d06a95e6ca65c189af73965f9ad9a17c2d37c700fb0cc88b2cc23d6b86806a8661f669406a +EBUILD python-3.8.10_p2.ebuild 9787 BLAKE2B 272af912e45e9ebe62485aacfa1dc1b000d6e5a3619aec28e9fd4b5e89e1b5bf599a68cf0c69085c9040d53582ffc86a982a798153f2b71d5a285a7cf8e8b9e0 SHA512 1f682a342bcd17dd6c059618124ee8373eea7856e23cc87d51e33a543863d38dcf2acbc15ecb85f082d227d7c893d8137901a3ece12fa82cd8d5ed54c3b2e906 EBUILD python-3.8.9_p2.ebuild 9786 BLAKE2B cdb4cc561d0dceced2e987bd268b4aba5491cbdd2b4a232f59822ff6c913acdc688930c24b25dc771ed0cb63c104ca744dd6c0c3c79ddac175206fbe3dcb9493 SHA512 72757c70b3d179fdc91be409fe8eba79e9868f7672ed8686074027c9a76edbdd0ff9ae54b10ae2b51e116904d36d69a4e9a107f2613bfeecedba32da3c8261d7 EBUILD python-3.9.4_p1.ebuild 9925 BLAKE2B 8dfccf4bbb7fe7ee7f81cb7902c3f5db8add7694af475f4d9f80b9e4c87d2032bba1758cf62ccdb62eb56c79fa9bc238f850205d5dc159a172f9f4f4757bd351 SHA512 0402ea45911ba01183a65213b0050c9f976c218f1e938f716ac66178e122379c24714758463d1010fbd78828eb36123f16b4540aec0f75216706bc7dfc3e7014 EBUILD python-3.9.5.ebuild 9933 BLAKE2B 1d492eae570d852efde804615a52f80b650aefa2fe12b64d7cccfe5d950085629d5d8a5251a2452f477233a84b8a9ae0bd5640d59978ee36c1a47048ca6c1b4b SHA512 84c0965e128bc9337373fdf280faf0824b2be0874e2ae1ac75986c0a2eb24bad57c15779487b951708cd56fe0467eec90cda787a3ef788592565fdd1d664f6d8 EBUILD python-3.9.5_p1.ebuild 9933 BLAKE2B 1d492eae570d852efde804615a52f80b650aefa2fe12b64d7cccfe5d950085629d5d8a5251a2452f477233a84b8a9ae0bd5640d59978ee36c1a47048ca6c1b4b SHA512 84c0965e128bc9337373fdf280faf0824b2be0874e2ae1ac75986c0a2eb24bad57c15779487b951708cd56fe0467eec90cda787a3ef788592565fdd1d664f6d8 +EBUILD python-3.9.5_p2.ebuild 9926 BLAKE2B a51cd5bc459984fe1e2b23596a2ed9e062028efad06c51b66fc6799af1508cbd6726433ca35783af6183da5014a9100f1c59e0092a6c64d050842d50fd28a942 SHA512 4e16b65d264fe629f4f884601de3be61e58e9d93da892331c9c952e157de2b78d918a73a35e56a1c7540e46535496a428b3bf2ed2a812c8c879858540a1281fd MISC metadata.xml 819 BLAKE2B 120c7c65d77488e726c5a0f4aa19469867ea6900e747169fae2f9cf8f14ec2936089d5edfe1935ce610bec26387273e261b1cc4b023680c8c4b229f2141a7223 SHA512 08f45707e5490067a21951b9d37c8ae67064ab67cccc5b8d8c204eab8d4a004fb910627b62989c67b849b89d301618f8f8f7996e99e1ef5bab38a239c49c124d diff --git a/dev-lang/python/python-2.7.18_p10.ebuild b/dev-lang/python/python-2.7.18_p10.ebuild index 01e2a9bfd33c..f83dc8a04282 100644 --- a/dev-lang/python/python-2.7.18_p10.ebuild +++ b/dev-lang/python/python-2.7.18_p10.ebuild @@ -22,8 +22,8 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" -IUSE="-berkdb bluetooth build elibc_uclibc examples gdbm hardened ipv6 +ncurses +readline +sqlite +ssl +threads tk +wide-unicode wininst +xml" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ~ppc64 ~s390 sparc x86" +IUSE="berkdb bluetooth build elibc_uclibc examples gdbm hardened ipv6 +ncurses +readline +sqlite +ssl +threads tk +wide-unicode wininst +xml" # Do not add a dependency on dev-lang/python to this ebuild. # If you need to apply a patch which requires python for bootstrapping, please diff --git a/dev-lang/python/python-2.7.18_p9.ebuild b/dev-lang/python/python-2.7.18_p9.ebuild index 59aed167c78c..7a8c21f525e7 100644 --- a/dev-lang/python/python-2.7.18_p9.ebuild +++ b/dev-lang/python/python-2.7.18_p9.ebuild @@ -23,7 +23,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86" -IUSE="-berkdb bluetooth build elibc_uclibc examples gdbm hardened ipv6 +ncurses +readline +sqlite +ssl +threads tk +wide-unicode wininst +xml" +IUSE="berkdb bluetooth build elibc_uclibc examples gdbm hardened ipv6 +ncurses +readline +sqlite +ssl +threads tk +wide-unicode wininst +xml" # Do not add a dependency on dev-lang/python to this ebuild. # If you need to apply a patch which requires python for bootstrapping, please diff --git a/dev-lang/python/python-3.6.13_p5.ebuild b/dev-lang/python/python-3.6.13_p5.ebuild new file mode 100644 index 000000000000..8fd7d59de944 --- /dev/null +++ b/dev-lang/python/python-3.6.13_p5.ebuild @@ -0,0 +1,338 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" +WANT_LIBTOOL="none" + +inherit autotools flag-o-matic multiprocessing pax-utils \ + python-utils-r1 toolchain-funcs verify-sig + +MY_P="Python-${PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE="https://www.python.org/" +SRC_URI="https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz.asc + )" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}/${PYVER}m" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ~ppc64 ~s390 sparc x86" +IUSE="bluetooth build examples gdbm hardened ipv6 +ncurses +readline +sqlite +ssl test +threads tk wininst +xml" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND="app-arch/bzip2:= + app-arch/xz-utils:= + dev-libs/libffi:= + >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + gdbm? ( sys-libs/gdbm:=[berkdb] ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( >=sys-libs/readline-4.1:= ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( dev-libs/openssl:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) + xml? ( >=dev-libs/expat-2.1:= )" +# bluetooth requires headers from bluez +DEPEND="${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( app-arch/xz-utils[extra-filters(+)] )" +BDEPEND=" + virtual/pkgconfig + verify-sig? ( app-crypt/openpgp-keys-python ) + !sys-devel/gcc[libffi(-)]" +PDEPEND="app-eselect/eselect-python" +RDEPEND+=" !build? ( app-misc/mime-types )" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat, libffi and zlib are not used. + rm -fr Modules/expat || die + rm -fr Modules/_ctypes/libffi* || die + rm -fr Modules/zlib || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \ + Lib/distutils/command/install.py \ + Lib/distutils/sysconfig.py \ + Lib/site.py \ + Lib/sysconfig.py \ + Lib/test/test_site.py \ + Makefile.pre.in \ + Modules/Setup.dist \ + Modules/getpath.c \ + configure.ac \ + setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@" + + # force correct number of jobs + # https://bugs.gentoo.org/737660 + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die + + eautoreconf +} + +src_configure() { + local disable + # disable automagic bluetooth headers detection + use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat. + export PYTHON_DISABLE_MODULES="${disable}" + + if ! use xml; then + ewarn "You have configured Python without XML support." + ewarn "This is NOT a recommended configuration as you" + ewarn "may face problems parsing any XML documents." + fi + + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi + + if [[ "$(gcc-major-version)" -ge 4 ]]; then + append-flags -fwrapv + fi + + filter-flags -malign-double + + # https://bugs.gentoo.org/show_bug.cgi?id=50309 + if is-flagq -O3; then + is-flagq -fstack-protector-all && replace-flags -O3 -O2 + use hardened && replace-flags -O3 -O2 + fi + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + tc-export CXX + + local dbmliborder + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --with-fpectl + --enable-shared + $(use_enable ipv6) + $(use_with threads) + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --with-system-expat + --with-system-ffi + ) + + OPT="" econf "${myeconfargs[@]}" + + if use threads && grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax_kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # Skip failing tests. + local skipped_tests="gdb faulthandler" + + for test in ${skipped_tests}; do + mv "${S}"/Lib/test/test_${test}.py "${T}" + done + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + + emake test EXTRATESTOPTS="-u-network -j${jobs}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local result=$? + + for test in ${skipped_tests}; do + mv "${T}/test_${test}.py" "${S}"/Lib/test + done + + elog "The following tests have been skipped:" + for test in ${skipped_tests}; do + elog "test_${test}.py" + done + + elog "If you would like to run them, you may:" + elog "cd '${EPREFIX}/usr/$(get_libdir)/python${PYVER}/test'" + elog "and run the tests separately." + + if [[ ${result} -ne 0 ]]; then + die "emake test failed" + fi +} + +src_install() { + local libdir=${ED}/usr/$(get_libdir)/python${PYVER} + + emake DESTDIR="${D}" altinstall + + # Remove static library + rm "${ED}"/usr/$(get_libdir)/libpython*.a || die + + sed \ + -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \ + -e "s/\(PY_LDFLAGS=\).*/\1/" \ + -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed" + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax_kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die + use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die + + use threads || rm -r "${libdir}/multiprocessing" || die + use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \ + emake --no-print-directory -s -f - 2>/dev/null) + newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + local -x EPYTHON=python${PYVER} + # if not using a cross-compiler, use the fresh binary + if ! tc-is-cross-compiler; then + local -x PYTHON=./python + local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD} + else + local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON} + fi + + echo "EPYTHON='${EPYTHON}'" > epython.py || die + python_domodule epython.py + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" \ + "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" \ + "${scriptdir}/python-config" || die + # 2to3, pydoc, pyvenv + ln -s "../../../bin/2to3-${PYVER}" \ + "${scriptdir}/2to3" || die + ln -s "../../../bin/pydoc${PYVER}" \ + "${scriptdir}/pydoc" || die + ln -s "../../../bin/pyvenv-${PYVER}" \ + "${scriptdir}/pyvenv" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" \ + "${scriptdir}/idle" || die + fi +} diff --git a/dev-lang/python/python-3.7.10_p6.ebuild b/dev-lang/python/python-3.7.10_p6.ebuild new file mode 100644 index 000000000000..01463254cf62 --- /dev/null +++ b/dev-lang/python/python-3.7.10_p6.ebuild @@ -0,0 +1,330 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" +WANT_LIBTOOL="none" + +inherit autotools flag-o-matic multiprocessing pax-utils \ + python-utils-r1 toolchain-funcs verify-sig + +MY_P="Python-${PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE="https://www.python.org/" +SRC_URI="https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz.asc + )" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}/${PYVER}m" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ~ppc64 ~riscv ~s390 sparc x86" +IUSE="bluetooth build examples gdbm hardened ipv6 +ncurses +readline +sqlite +ssl test tk wininst +xml" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND="app-arch/bzip2:= + app-arch/xz-utils:= + dev-libs/libffi:= + sys-apps/util-linux:= + >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + gdbm? ( sys-libs/gdbm:=[berkdb] ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( >=sys-libs/readline-4.1:= ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( dev-libs/openssl:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) + xml? ( >=dev-libs/expat-2.1:= )" +# bluetooth requires headers from bluez +DEPEND="${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( app-arch/xz-utils[extra-filters(+)] )" +BDEPEND=" + virtual/pkgconfig + verify-sig? ( app-crypt/openpgp-keys-python ) + !sys-devel/gcc[libffi(-)]" +PDEPEND="app-eselect/eselect-python" +RDEPEND+=" !build? ( app-misc/mime-types )" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat, libffi and zlib are not used. + rm -fr Modules/expat || die + rm -fr Modules/_ctypes/libffi* || die + rm -fr Modules/zlib || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \ + setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@" + + # force correct number of jobs + # https://bugs.gentoo.org/737660 + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die + + eautoreconf +} + +src_configure() { + local disable + # disable automagic bluetooth headers detection + use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat. + export PYTHON_DISABLE_MODULES="${disable}" + + if ! use xml; then + ewarn "You have configured Python without XML support." + ewarn "This is NOT a recommended configuration as you" + ewarn "may face problems parsing any XML documents." + fi + + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi + + if [[ "$(gcc-major-version)" -ge 4 ]]; then + append-flags -fwrapv + fi + + filter-flags -malign-double + + # https://bugs.gentoo.org/show_bug.cgi?id=50309 + if is-flagq -O3; then + is-flagq -fstack-protector-all && replace-flags -O3 -O2 + use hardened && replace-flags -O3 -O2 + fi + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + tc-export CXX + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + + local dbmliborder + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + $(use_enable ipv6) + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --with-system-expat + --with-system-ffi + ) + + OPT="" econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax_kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # Skip failing tests. + local skipped_tests="gdb" + + for test in ${skipped_tests}; do + mv "${S}"/Lib/test/test_${test}.py "${T}" + done + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + + emake test EXTRATESTOPTS="-u-network -j${jobs}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local result=$? + + for test in ${skipped_tests}; do + mv "${T}/test_${test}.py" "${S}"/Lib/test + done + + elog "The following tests have been skipped:" + for test in ${skipped_tests}; do + elog "test_${test}.py" + done + + elog "If you would like to run them, you may:" + elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'" + elog "and run the tests separately." + + if [[ ${result} -ne 0 ]]; then + die "emake test failed" + fi +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + emake DESTDIR="${D}" altinstall + + # Remove static library + rm "${ED}"/usr/$(get_libdir)/libpython*.a || die + + sed \ + -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \ + -e "s/\(PY_LDFLAGS=\).*/\1/" \ + -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed" + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax_kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die + use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die + + use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \ + emake --no-print-directory -s -f - 2>/dev/null) + newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + local -x EPYTHON=python${PYVER} + # if not using a cross-compiler, use the fresh binary + if ! tc-is-cross-compiler; then + local -x PYTHON=./python + local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD} + else + local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON} + fi + + echo "EPYTHON='${EPYTHON}'" > epython.py || die + python_domodule epython.py + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" \ + "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" \ + "${scriptdir}/python-config" || die + # 2to3, pydoc, pyvenv + ln -s "../../../bin/2to3-${PYVER}" \ + "${scriptdir}/2to3" || die + ln -s "../../../bin/pydoc${PYVER}" \ + "${scriptdir}/pydoc" || die + ln -s "../../../bin/pyvenv-${PYVER}" \ + "${scriptdir}/pyvenv" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" \ + "${scriptdir}/idle" || die + fi +} diff --git a/dev-lang/python/python-3.8.10_p2.ebuild b/dev-lang/python/python-3.8.10_p2.ebuild new file mode 100644 index 000000000000..587450371469 --- /dev/null +++ b/dev-lang/python/python-3.8.10_p2.ebuild @@ -0,0 +1,336 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" +WANT_LIBTOOL="none" + +inherit autotools flag-o-matic multiprocessing pax-utils \ + python-utils-r1 toolchain-funcs verify-sig + +MY_PV=${PV/_rc/rc} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE="https://www.python.org/" +SRC_URI="https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz.asc + )" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ~ppc64 ~riscv ~s390 sparc x86" +IUSE="bluetooth build examples gdbm hardened ipv6 +ncurses +readline +sqlite +ssl test tk wininst +xml" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND="app-arch/bzip2:= + app-arch/xz-utils:= + dev-libs/libffi:= + sys-apps/util-linux:= + >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + gdbm? ( sys-libs/gdbm:=[berkdb] ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( >=sys-libs/readline-4.1:= ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( dev-libs/openssl:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) + xml? ( >=dev-libs/expat-2.1:= )" +# bluetooth requires headers from bluez +DEPEND="${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( app-arch/xz-utils[extra-filters(+)] )" +BDEPEND=" + virtual/pkgconfig + sys-devel/autoconf-archive + verify-sig? ( app-crypt/openpgp-keys-python ) + !sys-devel/gcc[libffi(-)]" +PDEPEND="app-eselect/eselect-python" +RDEPEND+=" !build? ( app-misc/mime-types )" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat, libffi and zlib are not used. + rm -fr Modules/expat || die + rm -fr Modules/_ctypes/libffi* || die + rm -fr Modules/zlib || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \ + setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@" + + # force correct number of jobs + # https://bugs.gentoo.org/737660 + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die + + eautoreconf +} + +src_configure() { + local disable + # disable automagic bluetooth headers detection + use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat. + export PYTHON_DISABLE_MODULES="${disable}" + + if ! use xml; then + ewarn "You have configured Python without XML support." + ewarn "This is NOT a recommended configuration as you" + ewarn "may face problems parsing any XML documents." + fi + + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi + + if [[ "$(gcc-major-version)" -ge 4 ]]; then + append-flags -fwrapv + fi + + filter-flags -malign-double + + # https://bugs.gentoo.org/show_bug.cgi?id=50309 + if is-flagq -O3; then + is-flagq -fstack-protector-all && replace-flags -O3 -O2 + use hardened && replace-flags -O3 -O2 + fi + + # https://bugs.gentoo.org/700012 + if is-flagq -flto || is-flagq '-flto=*'; then + append-cflags $(test-flags-CC -ffat-lto-objects) + fi + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + tc-export CXX + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + + local dbmliborder + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + $(use_enable ipv6) + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --with-system-expat + --with-system-ffi + ) + + OPT="" econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax_kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # Skip failing tests. + local skipped_tests="gdb" + + for test in ${skipped_tests}; do + mv "${S}"/Lib/test/test_${test}.py "${T}" + done + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + + emake test EXTRATESTOPTS="-u-network -j${jobs}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local result=$? + + for test in ${skipped_tests}; do + mv "${T}/test_${test}.py" "${S}"/Lib/test + done + + elog "The following tests have been skipped:" + for test in ${skipped_tests}; do + elog "test_${test}.py" + done + + elog "If you would like to run them, you may:" + elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'" + elog "and run the tests separately." + + if [[ ${result} -ne 0 ]]; then + die "emake test failed" + fi +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + emake DESTDIR="${D}" altinstall + + # Remove static library + rm "${ED}"/usr/$(get_libdir)/libpython*.a || die + + sed \ + -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \ + -e "s/\(PY_LDFLAGS=\).*/\1/" \ + -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed" + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax_kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die + use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die + + use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \ + emake --no-print-directory -s -f - 2>/dev/null) + newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + local -x EPYTHON=python${PYVER} + # if not using a cross-compiler, use the fresh binary + if ! tc-is-cross-compiler; then + local -x PYTHON=./python + local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD} + else + local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON} + fi + + echo "EPYTHON='${EPYTHON}'" > epython.py || die + python_domodule epython.py + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" \ + "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" \ + "${scriptdir}/python-config" || die + # 2to3, pydoc + ln -s "../../../bin/2to3-${PYVER}" \ + "${scriptdir}/2to3" || die + ln -s "../../../bin/pydoc${PYVER}" \ + "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" \ + "${scriptdir}/idle" || die + fi +} diff --git a/dev-lang/python/python-3.9.5_p2.ebuild b/dev-lang/python/python-3.9.5_p2.ebuild new file mode 100644 index 000000000000..00c9f1be882a --- /dev/null +++ b/dev-lang/python/python-3.9.5_p2.ebuild @@ -0,0 +1,345 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic multiprocessing pax-utils \ + python-utils-r1 toolchain-funcs verify-sig + +MY_PV=${PV/_rc/rc} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE="https://www.python.org/" +SRC_URI="https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz.asc + )" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ~ppc64 ~riscv ~s390 sparc x86" +IUSE="bluetooth build examples gdbm hardened ipv6 +ncurses +readline +sqlite +ssl test tk wininst +xml" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND="app-arch/bzip2:= + app-arch/xz-utils:= + dev-libs/libffi:= + sys-apps/util-linux:= + >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + gdbm? ( sys-libs/gdbm:=[berkdb] ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( >=sys-libs/readline-4.1:= ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( dev-libs/openssl:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) + xml? ( >=dev-libs/expat-2.1:= )" +# bluetooth requires headers from bluez +DEPEND="${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( app-arch/xz-utils[extra-filters(+)] )" +BDEPEND=" + virtual/pkgconfig + sys-devel/autoconf-archive + verify-sig? ( app-crypt/openpgp-keys-python ) + !sys-devel/gcc[libffi(-)]" +RDEPEND+=" !build? ( app-misc/mime-types )" +PDEPEND="app-eselect/eselect-python" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +pkg_pretend() { + use test && check-reqs_pkg_pretend +} + +pkg_setup() { + use test && check-reqs_pkg_setup +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat, libffi and zlib are not used. + rm -fr Modules/expat || die + rm -fr Modules/_ctypes/libffi* || die + rm -fr Modules/zlib || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \ + setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@" + + # force correct number of jobs + # https://bugs.gentoo.org/737660 + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die + + eautoreconf +} + +src_configure() { + local disable + # disable automagic bluetooth headers detection + use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat. + export PYTHON_DISABLE_MODULES="${disable}" + + if ! use xml; then + ewarn "You have configured Python without XML support." + ewarn "This is NOT a recommended configuration as you" + ewarn "may face problems parsing any XML documents." + fi + + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi + + if [[ "$(gcc-major-version)" -ge 4 ]]; then + append-flags -fwrapv + fi + + filter-flags -malign-double + + # https://bugs.gentoo.org/show_bug.cgi?id=50309 + if is-flagq -O3; then + is-flagq -fstack-protector-all && replace-flags -O3 -O2 + use hardened && replace-flags -O3 -O2 + fi + + # https://bugs.gentoo.org/700012 + if is-flagq -flto || is-flagq '-flto=*'; then + append-cflags $(test-flags-CC -ffat-lto-objects) + fi + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + tc-export CXX + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + + local dbmliborder + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + $(use_enable ipv6) + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --with-system-expat + --with-system-ffi + ) + + OPT="" econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax_kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # Skip failing tests. + local skipped_tests="gdb" + + for test in ${skipped_tests}; do + mv "${S}"/Lib/test/test_${test}.py "${T}" + done + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + + emake test EXTRATESTOPTS="-u-network -j${jobs}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local result=$? + + for test in ${skipped_tests}; do + mv "${T}/test_${test}.py" "${S}"/Lib/test + done + + elog "The following tests have been skipped:" + for test in ${skipped_tests}; do + elog "test_${test}.py" + done + + elog "If you would like to run them, you may:" + elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'" + elog "and run the tests separately." + + if [[ ${result} -ne 0 ]]; then + die "emake test failed" + fi +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + emake DESTDIR="${D}" altinstall + + # Remove static library + rm "${ED}"/usr/$(get_libdir)/libpython*.a || die + + sed \ + -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \ + -e "s/\(PY_LDFLAGS=\).*/\1/" \ + -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed" + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax_kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die + use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \ + emake --no-print-directory -s -f - 2>/dev/null) + newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + local -x EPYTHON=python${PYVER} + # if not using a cross-compiler, use the fresh binary + if ! tc-is-cross-compiler; then + local -x PYTHON=./python + local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD} + else + local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON} + fi + + echo "EPYTHON='${EPYTHON}'" > epython.py || die + python_domodule epython.py + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" \ + "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" \ + "${scriptdir}/python-config" || die + # 2to3, pydoc + ln -s "../../../bin/2to3-${PYVER}" \ + "${scriptdir}/2to3" || die + ln -s "../../../bin/pydoc${PYVER}" \ + "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" \ + "${scriptdir}/idle" || die + fi +} diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest index 18d7b2665f4b..400bdca244f5 100644 --- a/dev-lang/rust/Manifest +++ b/dev-lang/rust/Manifest @@ -76,5 +76,5 @@ DIST rustc-1.51.0-src.tar.xz.asc 801 BLAKE2B dc06d0bc40bcc5ec5ae247495b6975584a8 DIST rustc-1.52.1-src.tar.xz 115109508 BLAKE2B c5d73f5884037d287d88ba9fdaf63a36678b692e1b510920045797ab29f1660f05cda901e19411ff83ec3084c4130034c269976b1056220f3e629cff116d07f0 SHA512 55f5053ce40d4eba4663052817aef6a6275139ca229c89cd1ec44711458b412720203301d8c7975aac5720a91fcaf21847f8184f641cbb0004f722520283c73c DIST rustc-1.52.1-src.tar.xz.asc 801 BLAKE2B ea2f89289b4d9cf90a0d10148bf3494805c00e7822cc98addf0b602c35e4635bb1963d79168b395a5f7c7bd024070284fccd19757982daa0d554dcac166fd4d7 SHA512 0d692a085c017b03b8a135a28f7e6f1d7e05642d2e99f0f1fbc397e766bb8fed4b4c6b4c9157b79d9bb0c4229607dbc35711cd463c62a9966a4efb6f197de7d3 EBUILD rust-1.51.0-r2.ebuild 19950 BLAKE2B bbbd8161f81bf3b38d2e85b14c31fca6035f74b865f973ba3ec0c2d0df104159794d32cbfcd468fb6f43a6aa9f04de9154641673a8ed1c5d8bdd05fb5348f893 SHA512 edaf33029a462e15475560588ea49fc5f79581b5df1330228eaccd947d6f6848faaf6abf09d5738a7c49685e5213bada3ad2b551547c73d5908e4b122387607c -EBUILD rust-1.52.1.ebuild 19929 BLAKE2B d3c3ca62f238651220beab8931479b0a96c54f25bcf59a3f9504bdb99e6e2fd72d948104fe2ea0aa62b83ee75d3b06227675a812466f160701bfde060d71f1a6 SHA512 7d4f507dd88108fc40a3d88fffe7d0f663df1285613a854e55bcd6e1b32ece06087505b2ae45747f7e7d13084834d798e5ccf1b52891a88fb5a467c498f7aa39 +EBUILD rust-1.52.1.ebuild 20197 BLAKE2B eeaf7551bcf52ae875e17db91cddec42fb8603e47a89bbb72e4b94a5839e1904aeda8aa606caba6998ac173a0c254b996a5716edcd3ce30c9f0ce5a290d39f43 SHA512 3f2cb52bf94fbf63eee34b02855630d088fbacb997b44d6551bc9a43a3f4c9b931553638abd6319835c128113587215a9dce85bb240832719922cd49ddcdf34a MISC metadata.xml 1083 BLAKE2B 7a7b093c22dcaef58bd67f9c2fd84a000696b234d2bc27315999bf6751cfd2a79441fd22efc284a542ecc84ce1a12ff9ca3495d249eaffa5bc1722b385c6109e SHA512 bfe8c140753e93db67244c92e9a7d193691ceb67de796c30a851966a1262bc5c897ead6e13d728775fa524215b6851609dcbee582022d9d75bb8d1e6fabc4ef4 diff --git a/dev-lang/rust/rust-1.52.1.ebuild b/dev-lang/rust/rust-1.52.1.ebuild index d8b7334db884..efa716a08b92 100644 --- a/dev-lang/rust/rust-1.52.1.ebuild +++ b/dev-lang/rust/rust-1.52.1.ebuild @@ -91,7 +91,7 @@ BDEPEND="${PYTHON_DEPS} ) system-bootstrap? ( ${BOOTSTRAP_DEPEND} ) !system-llvm? ( - dev-util/cmake + >=dev-util/cmake-3.13.4 dev-util/ninja ) test? ( sys-devel/gdb ) @@ -279,10 +279,14 @@ src_configure() { local rust_stage0_root if use system-bootstrap; then - rust_stage0_root="$(rustc --print sysroot)" + local printsysroot + printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")" + rust_stage0_root="${printsysroot}" else rust_stage0_root="${WORKDIR}"/rust-stage0 fi + # in case of prefix it will be already prefixed, as --print sysroot returns full path + [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" rust_target="$(rust_abi)" diff --git a/dev-lang/scala-bin/Manifest b/dev-lang/scala-bin/Manifest index 9578eeb1d178..3d6ca266f475 100644 --- a/dev-lang/scala-bin/Manifest +++ b/dev-lang/scala-bin/Manifest @@ -1,3 +1,5 @@ DIST scala-2.13.1.tgz 19685743 BLAKE2B aaff6db71023f539d08da521ab1ff505a626605d9c298472d0c2e98a9a13d6b8440e89cf5ff4a53b7b9bcc48cbc1e3b55cc253563f54f18c369e13fc8c00a6c2 SHA512 028aa237c471cada1501cd5764b3c384c3f50e9fc327cddd3fa7c79e9cc909d86bf84d5fc28103054600f879a60c546fc45a837cdca54964eb57ec77f9c1613e -EBUILD scala-bin-2.13.1.ebuild 1307 BLAKE2B 8ebeb4038e8844f3c94e81ba2a72e1b08f9729e3fe8465cdd3e40d0cbf271868fc6b1e83fbbaf1871f3d13ba1483fa4ab0e8bbc3f596e83037c88b3c8303780e SHA512 f5b548e403e2d67e8f7fef0865e1c2a62f790d76e7d6eaa8aad31fecc3f322cdd89e33ebea835bdba1704734175e0066d5b2bf4d4c778f5f570533319ad40297 +DIST scala-2.13.6.tgz 23407489 BLAKE2B b65db49968dcbce2f5586aafaa4cd437156050050f209cce4a7d5edc18dfca3ebb60d2a726b4a26902723f993b78a673909c1139eb67e8eea4f35a4842b33c70 SHA512 445267cd7c1ddb8ef94d2edeb36567318c66429c88fcb183840998dc204a10253df09c33eb4de2f87b68b1a8cd4f557910fa3f061d4316314653eb64e91c0188 +EBUILD scala-bin-2.13.1-r1.ebuild 1314 BLAKE2B faed8c9c4a4d0d480bb91f2568e80518c7f6cb0a99694a1375be3acd96803bc31b72a33acd78751a07754816de621d3f7733ad00462117a8ac09d2b9e6d8e7cb SHA512 a592eb08248a9c1bebf37ec835da2f6259031e81a3d059cfb3cc846be84d8ac1f8dd26b5419e58e5709379840d96d81d44751dfaa0d0c828b855249b0b525989 +EBUILD scala-bin-2.13.6.ebuild 1316 BLAKE2B 35622328871ead249feafb4bfc2064f102e889198b5fbcb9cbb9f8de1327db674e89c394ecfc76ddce4b11adb1e28909996d8d072dd7ef7514d5f7f661fcfaee SHA512 c0a7b0709835be1532f2bb547ec6481cd5d06104cad6383a92c4aa7404cdb83703a40b79d834282e7041e617cf22acdffdb9f90bfc888d07da9aa31ee8ae2b5a MISC metadata.xml 317 BLAKE2B 47b0d918ff9d4f2287fc0c43a022b978a816aa0d96362cf449210cd6b13810ed1352dbe69c5bea8281cdd3f3d03f4dcf714589e414b27abd5cd8c648e3d64994 SHA512 506fab7ebaa9e1caf96f239d6d85978171b98282ebe22a4948f61df62ce05a4c22772d81159cec9a99dd9a127b602e7593615204142e295d88835f9385a64bc8 diff --git a/dev-lang/scala-bin/scala-bin-2.13.1.ebuild b/dev-lang/scala-bin/scala-bin-2.13.1-r1.ebuild index 622baa6cd436..9469077928d2 100644 --- a/dev-lang/scala-bin/scala-bin-2.13.1.ebuild +++ b/dev-lang/scala-bin/scala-bin-2.13.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 @@ -14,7 +14,7 @@ DESCRIPTION="The Scala Programming Language" HOMEPAGE="http://scala.epfl.ch/" SRC_URI="http://downloads.lightbend.com/${MY_PN}/${PV}/${MY_P}.tgz" -LICENSE="BSD" +LICENSE="Apache-2.0" SLOT="0" KEYWORDS="amd64 x86" IUSE="doc" diff --git a/dev-lang/scala-bin/scala-bin-2.13.6.ebuild b/dev-lang/scala-bin/scala-bin-2.13.6.ebuild new file mode 100644 index 000000000000..cdb8e4a5f113 --- /dev/null +++ b/dev-lang/scala-bin/scala-bin-2.13.6.ebuild @@ -0,0 +1,77 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +JAVA_PKG_IUSE="doc" + +inherit java-pkg-2 + +MY_PN="${PN%-*}" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="The Scala Programming Language" +HOMEPAGE="http://scala.epfl.ch/" +SRC_URI="http://downloads.lightbend.com/${MY_PN}/${PV}/${MY_P}.tgz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="doc" + +RDEPEND=" + >=virtual/jre-1.8 + !dev-lang/scala" + +S="${WORKDIR}/${MY_P}" + +src_prepare() { + default + ebegin 'Cleaning .bat files' + rm -f bin/*.bat || die + eend $? + + ebegin 'Patching SCALA_HOME variable in bin/ directory' + local f + for f in bin/*; do + sed -i -e 's#\(SCALA_HOME\)=.*#\1=/usr/share/scala-bin#' "$f" || die + done + eend $? +} + +src_compile() { + :; +} + +src_install() { + ebegin 'Installing bin scripts' + dobin bin/* + eend $? + + ebegin 'Installing jar files' + + cd lib/ || die + + # Unversion those libs. + java-pkg_newjar jline-*.jar jline.jar + java-pkg_newjar scalap-*.jar scalap.jar + + # Install these the usual way. + java-pkg_dojar scala-compiler.jar + java-pkg_dojar scala-library.jar + java-pkg_dojar scala-reflect.jar + + eend $? + + cd ../ || die + + ebegin 'Installing man pages' + doman man/man1/*.1 + eend $? + + if use doc; then + ebegin 'Installing documentation' + java-pkg_dohtml -r doc/tools + eend $? + fi +} diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest index 24c3c941875d..18c27885830c 100644 --- a/dev-lang/spidermonkey/Manifest +++ b/dev-lang/spidermonkey/Manifest @@ -8,7 +8,9 @@ AUX spidermonkey-perl-defined-array-check.patch 341 BLAKE2B e11a74cc2afbea5e39ec 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.10.1esr.source.tar.xz 334444960 BLAKE2B 76f9bae7f9fddbf3ab14293d1ec9e51b173961d0d5e0e1ef98b65328294f520369b89fb300a91d9f502b93215a15c228925a469b7b14ec576c9a9be874a6561a SHA512 a22773d9b3f0dca253805257f358a906769d23f15115e3a8851024f701e27dee45f056f7d34ebf1fcde0a3f91ec299639c2a12556e938a232cdea9e59835fde1 +DIST firefox-78.11.0esr.source.tar.xz 333002576 BLAKE2B a8268886f86afb41b86d227f8a8f642674ea9c0a85365acb517c6997099dbddad9779efa772cce645da6443a78d6e94c89a750152386f8dff7bbbf31bf5df129 SHA512 d02fc2eda587155b1c54ca12a6c5cde220a29f41f154f1c9b71ae8f966d8cc9439201a5b241e03fc0795b74e2479f7aa5d6b69f70b7639432e5382f321f7a6f4 DIST firefox-78esr-patches-13.tar.xz 83664 BLAKE2B 92250d5bc3821ee1ff032236bd00e01a53e0af4f9e39696a634edb39f0a182bf5ff74b7fc0f107c9c53136c64485c398391e3a857c8b2b904115fd13d17e2a4f SHA512 96739811bea833a6a9cb09075dfe49c6fa7f613e8bd41e1d830d6ae6851ce8e2f5d27c87d0035b6f3a099340dfd7eebe6ecb930ff25079e76cea92a7610293ca +DIST firefox-78esr-patches-14.tar.xz 82976 BLAKE2B 08cc3618c8069f4169b7647e7eb699153d558bb89f8a4f1ed74d5ccd339f77119cd8f253df011f0c2f255ad889b65e843171d7559f469788463ca7e9aa2e96aa SHA512 1611c6f9d2c7d586e7b53810c1cfdb2682f5d289b1b019b71694b1ab2d8bbdfe827a73cfaf59f7e4808c0b90409ca4fa57e27655d8cdf0c578ffdbad33659f26 DIST js185-1.0.0.tar.gz 6164605 BLAKE2B 76a37f0ceae05d3475853875bd0ce4be6e525e4114816f8f281ea6fc6b60a71060975a0fa1cb843f57ad1e2f842dfb26b24244fa0fd6c20f6ae2ebbe430f70be SHA512 2af7122a7c7007fd7b6668776fe1222515a810b3e43bbf0f76b8f94e1ef406ffd3fb5ccec393021b00274c05b38a77235bc8d6886994c56762fcaf0aa7cf6718 DIST mozjs-52.9.1pre1.tar.bz2 30178574 BLAKE2B 0920432b5140e78297a9bcbccb54268d75a223d5e75e4ff90b3b01aab4f7736b4a4e05c47b3a925ff0a74607a0abad3b6583c75d070ef5142009b20ebaf6e4bf SHA512 187b231b246a5ae09e55c0fef77866b316d75f38f4c2e066d5d4325d8da63433027020c929439cab46af3253ac63ab2f780223a8fd2c6ff535b3409bb6c4aa0f DIST mozjs-60.5.2.tar.bz2 32816585 BLAKE2B 45ac4c9646e1275faf60eeedbf486f802cd106583eb7f640fe2243adc7cbb811dced5cefa94426cceca63468b0112be84078ffcef24cb2b8c1a7b6c8173c0d45 SHA512 5fb73330e7803bdd524fbe7cfdf4e6b72e85d4b22b0c827400317b5d052d1088d36e558ceac376393089e9d03e658b24e69262851fc04a66bbcda47135423dc0 @@ -22,4 +24,5 @@ EBUILD spidermonkey-52.9.1_pre1-r2.ebuild 4593 BLAKE2B 6244bf06572393bd4f821f36c EBUILD spidermonkey-60.5.2_p0-r4.ebuild 4240 BLAKE2B fc4a9fe400c05aee5d7226d8fa17897dd4ee86b1fcbd1b8286620f626e7235c069e8c576faf9db00415e3beba7935e2fa4e0cde7e6f4a91eeaa6478f032e0709 SHA512 d4f2fdcc4f043f4cf966d7b396e6c4cd922e1b511f75aa3d22cb8cb235917ed66f22d25a82db61fdcc8de55d970c01945738cdef8af4413118c9f33133b1653b EBUILD spidermonkey-68.12.0.ebuild 7310 BLAKE2B 78473b652614a2cd4001c40ff981555358043d9cce58bedde8670e76b1c03d3aaa11da156fc17d20200a2e1e08075d88c6cfca57e5f41f5aed758e6d4a0199b1 SHA512 7a792dd7c6976a56f685eadfc4929ea26045ba4c464aac61b9dcb4e9545306e14e0a8abb3aecdea516611ab2bfbf9c7b0a0b273c89bf58b3d0a24f0ffcee43a6 EBUILD spidermonkey-78.10.1.ebuild 13020 BLAKE2B 1df644878ca6ced6f09412392dcf44a09226e8d7d436c5ead8e94d332d931aa3dd734565ca2e4c670871cf04c755b3b271640db34bbbcfdeb334187adb0d9e6f SHA512 c95d1e675d3c7822b5df2373c45e5535ea6ab7b0141a855c9a3d593edd9544de4faf975dbdc9bab276b5cdef8d96a736781aa24ac84574414eb08f66d9fab059 +EBUILD spidermonkey-78.11.0.ebuild 13025 BLAKE2B 32cfa314c9095eb6b052fc636dc5d853a6e7a24e1aeeeb60f33432467777173185e305f2e413b77c117069fda280de328dd5f0b55a9c3af4158c46bca743a169 SHA512 1d35220d170538a2baa44018a2215b41604c3f1c298e4627d7c70097d6f13dd7e49ebd3d91bcb1d2380d041e8493e6624877ce500d875a585b12dd5650a30dae MISC metadata.xml 868 BLAKE2B ee529f60bc83af6c54188ab4db2a1e05cbc3fcebf7732580cb5e507afada8560cb8812d4f155ae94c2ec87724bdfafe7312de86b47a95f599655695836c9b806 SHA512 caf3c383cd8109391cbf81baf5e942630bfd84ca6bc2a78430e58e5b0a40428e08b8a3d7c9fadccebaf94fe1aa673df837246fc32d5932b7f60dd43431ee1575 diff --git a/dev-lang/spidermonkey/spidermonkey-78.11.0.ebuild b/dev-lang/spidermonkey/spidermonkey-78.11.0.ebuild new file mode 100644 index 000000000000..e29ec205e856 --- /dev/null +++ b/dev-lang/spidermonkey/spidermonkey-78.11.0.ebuild @@ -0,0 +1,454 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +# Patch version +FIREFOX_PATCHSET="firefox-78esr-patches-14.tar.xz" +SPIDERMONKEY_PATCHSET="spidermonkey-78-patches-04.tar.xz" + +LLVM_MAX_SLOT=12 + +PYTHON_COMPAT=( python3_{7..9} ) + +WANT_AUTOCONF="2.1" + +inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix 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 ~riscv ~s390 ~x86" + +SLOT="78" +LICENSE="MPL-2.0" +IUSE="clang cpu_flags_arm_neon debug +jit lto test" + +RESTRICT="!test? ( test )" + +BDEPEND="${PYTHON_DEPS} + >=virtual/rust-1.41.0 + virtual/pkgconfig + || ( + ( + sys-devel/llvm:12 + clang? ( + sys-devel/clang:12 + lto? ( =sys-devel/lld-12* ) + ) + ) + ( + sys-devel/llvm:11 + clang? ( + sys-devel/clang:11 + lto? ( =sys-devel/lld-11* ) + ) + ) + ( + sys-devel/llvm:10 + clang? ( + sys-devel/clang:10 + lto? ( =sys-devel/lld-10* ) + ) + ) + ) + lto? ( + !clang? ( sys-devel/binutils[gold] ) + )" + +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" + +llvm_check_deps() { + if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then + ewarn "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + 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 +} + +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 [[ ${MERGE_TYPE} != binary ]] ; then + if use test ; then + CHECKREQS_DISK_BUILD="7600M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + + llvm_pkg_setup + + if use clang && use lto ; then + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" + + # temp fix for https://bugs.gentoo.org/768543 + # we can assume that rust 1.{49,50}.0 always uses llvm 11 + local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }') + [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}") + [[ -z ${version_rust} ]] && die "Failed to read version from rustc!" + + if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then + local version_llvm_rust="11" + else + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + fi + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + 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 + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + 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" + + # use prefix shell in wrapper linker scripts, bug #789660 + hprefixify "${S}"/../../build/cargo-{,host-}linker + + 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() { + # Show flags set at the beginning + einfo "Current CFLAGS: ${CFLAGS}" + einfo "Current CXXFLAGS: ${CXXFLAGS}" + einfo "Current LDFLAGS: ${LDFLAGS}" + einfo "Current RUSTFLAGS: ${RUSTFLAGS}" + + local have_switched_compiler= + if use clang && ! tc-is-clang ; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + have_switched_compiler=yes + AR=llvm-ar + CC=${CHOST}-clang + CXX=${CHOST}-clang++ + NM=llvm-nm + RANLIB=llvm-ranlib + elif ! use clang && ! tc-is-gcc ; then + # Force gcc + have_switched_compiler=yes + einfo "Enforcing the use of gcc due to USE=-clang ..." + AR=gcc-ar + CC=${CHOST}-gcc + CXX=${CHOST}-g++ + NM=gcc-nm + RANLIB=gcc-ranlib + fi + + if [[ -n "${have_switched_compiler}" ]] ; then + # Because we switched active compiler we have to ensure + # that no unsupported flags are set + strip-unsupported-flags + fi + + # Ensure we use correct toolchain + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG + + 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 ) + + if use clang ; then + myeconfargs+=( --enable-linker=lld ) + else + myeconfargs+=( --enable-linker=gold ) + fi + fi + + # 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}" + + # 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/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 + 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/swi-prolog/Manifest b/dev-lang/swi-prolog/Manifest index 75579c5c0b55..78607a73ec2c 100644 --- a/dev-lang/swi-prolog/Manifest +++ b/dev-lang/swi-prolog/Manifest @@ -3,8 +3,10 @@ DIST swipl-8.2.3.tar.gz 10999577 BLAKE2B 57cfa9f6fb97f0136a35da1850c7ae8da123d1c DIST swipl-8.2.4.tar.gz 10998859 BLAKE2B b18f26102a685ff5c66aeaf0c14a08c532f9327f9f995cd46657a71b6779d021eb4f5651b2be77883197c7c5ee31c23259f46ed559aeeb0bb53ad10aea0081ed SHA512 cdbd23d4a0e9699ecc32bdcad9979e4042fb0f24de84010f6f097bc7148af38150b0e61e393c057b0dbae932d0fc1c02a41808bcbafd2c23e24fd73070bed470 DIST swipl-8.3.23.tar.gz 11162363 BLAKE2B 3808da5bfda1059332dde6a134c2c014c6ee190791ac0c1ace6ea6713719470c1f63df9cf25bdfa69ab73a63090d9d4e37a3afee3b0c107786568a7786c5cbea SHA512 ca592bfa815496d3668a3251f3249c578df46185d856df7bddb88786923fd247542eecd8505181c5f6d4cbb9ddde0d54177d053ab7bd8d024910ccb3f00f7430 DIST swipl-8.3.24.tar.gz 11202181 BLAKE2B c5ac25b3cb73deeef51b8469977e9554ffc9da275dfb4541e7f653fb3e3f411abb971fc66ebf77d662ecdbd2d57070b18b76200f7d26d649a491a6789b807ef4 SHA512 36c436088e7eb78147d2e61fb6377e1703b5a1a6290e98a73810d18e07bda2b598aeb7aaff22b2a4caef90c3873c7a06c7ae84e71bb5f52cc2c6b315e4680f28 +DIST swipl-8.3.25.tar.gz 11186018 BLAKE2B a06befea48e065d516eeeb4ce2fa87342647d02ec509eaec208be143520af7d4de3217ac726720a36cdd15e1e263963cfc71bb2d7249ff55f9673e7e1bea5620 SHA512 4a06cd36ffbf22d8e582776c6181c8e848abe9bfca32e5e0e43d58e801c8b7c8e1d8556279716461df020530d0ea44cdcfe9390e8387b2a8e8936adf8c3f9774 EBUILD swi-prolog-8.2.3.ebuild 2637 BLAKE2B c160e9ed130006f0696118245abaa1d635c63ff9d6fc3fe4fd6a60fdf62bf7250944a5537314be87b316017729d5c351cb30ecc5778f3839b701b5126969ed11 SHA512 21075e6b11271548c377870daae5d82a09a91aa13e86bbdbab49aef53a8621523a65e9a19f02a1bbb559d16533b5244f2e8e500c02e6a6f7f0e681b8c75825cd EBUILD swi-prolog-8.2.4.ebuild 2830 BLAKE2B fc2d901e420fc8c9d842aa5ebfe9494c907f0529a3a6bbae1d96fe05a5b4840c953f1d3022b3d8c83d151df47073615e6120445ae7dd65e11237228c9fcfd2ce SHA512 b2dd922607b75e31e02ed48da294a2d06e3e707d2b479cc5b55569cd80b4250c01f84c4d8d232b94f46c51f637294347a2be8fca461f2d76cbe537897d13627a EBUILD swi-prolog-8.3.23.ebuild 2829 BLAKE2B e378ac669bfd0a1bbf3fe9b9b93daf3887050f3c826963f74fa4ec95e036cbc402b83f47f2ff79eeae5ca58fcb2f1598a0208b2159c633270d0b5915bf63fced SHA512 778ae54cceaf0140da6b2c09fe3ed3f39bf77b1e7a4e22235bbad956e4e1f6d9c90544bfd313f71d882218acb32998dc87a50628f2bccad47cbc13d870584166 EBUILD swi-prolog-8.3.24.ebuild 2829 BLAKE2B e378ac669bfd0a1bbf3fe9b9b93daf3887050f3c826963f74fa4ec95e036cbc402b83f47f2ff79eeae5ca58fcb2f1598a0208b2159c633270d0b5915bf63fced SHA512 778ae54cceaf0140da6b2c09fe3ed3f39bf77b1e7a4e22235bbad956e4e1f6d9c90544bfd313f71d882218acb32998dc87a50628f2bccad47cbc13d870584166 +EBUILD swi-prolog-8.3.25.ebuild 2829 BLAKE2B e378ac669bfd0a1bbf3fe9b9b93daf3887050f3c826963f74fa4ec95e036cbc402b83f47f2ff79eeae5ca58fcb2f1598a0208b2159c633270d0b5915bf63fced SHA512 778ae54cceaf0140da6b2c09fe3ed3f39bf77b1e7a4e22235bbad956e4e1f6d9c90544bfd313f71d882218acb32998dc87a50628f2bccad47cbc13d870584166 MISC metadata.xml 419 BLAKE2B 6d92e0713ed8da803ff8b6c778e616882af2fdb1426a62ea7bb6a265bbfff9a5c7debb8bf6a25c4ab60ed54a865b79fa3da4a09bc8a9123acf63dcb32107f54e SHA512 f805393c909e4108fe72b94f131d37d45279af1a4b501f9c3ae12d21590ef9c19227ca2a4b2966239ddb84847ce979cfbfcf3f3a2d24b60cb23977c522ff59c3 diff --git a/dev-lang/swi-prolog/swi-prolog-8.3.25.ebuild b/dev-lang/swi-prolog/swi-prolog-8.3.25.ebuild new file mode 100644 index 000000000000..2a8883edddfd --- /dev/null +++ b/dev-lang/swi-prolog/swi-prolog-8.3.25.ebuild @@ -0,0 +1,122 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit cmake desktop xdg-utils flag-o-matic + +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/devel/src/swipl-${PV}.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 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? ( dev-libs/openssl:0 ) + java? ( >=virtual/jdk-1.8:* ) + 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}" + +src_prepare() { + if [[ -d "${WORKDIR}"/${PV} ]] ; then + eapply "${WORKDIR}"/${PV} + fi + + sed -e "s|\(SWIPL_INSTALL_PREFIX\) lib/.*)|\1 $(get_libdir)/swipl)|" \ + -e "s|\(SWIPL_INSTALL_CMAKE_CONFIG_DIR\) lib/|\1 $(get_libdir)/|" \ + -i CMakeLists.txt || die + + cmake_src_prepare +} + +src_configure() { + append-flags -fno-strict-aliasing + use debug && append-flags -DO_DEBUG + + local 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_src_configure +} + +src_compile() { + XDG_CONFIG_DIRS="${HOME}" \ + XDG_DATA_DIRS="${HOME}" \ + cmake_src_compile +} + +src_test() { + USE_PUBLIC_NETWORK_TESTS=false \ + USE_ODBC_TESTS=false \ + cmake_src_test -V +} + +src_install() { + cmake_src_install + + if use qt5; then + doicon "${S}"/snap/gui/swipl.png + make_desktop_entry swipl-win "SWI-Prolog" swipl "Development" + fi +} + +pkg_postinst() { + if use qt5; then + xdg_icon_cache_update + xdg_desktop_database_update + fi +} + +pkg_postrm() { + if use qt5; then + xdg_icon_cache_update + xdg_desktop_database_update + fi +} diff --git a/dev-lang/typescript/Manifest b/dev-lang/typescript/Manifest new file mode 100644 index 000000000000..52b0b7e35c0c --- /dev/null +++ b/dev-lang/typescript/Manifest @@ -0,0 +1,3 @@ +DIST typescript-4.3.2.tgz 10624314 BLAKE2B b980fbabc60e143470d437a93247b874823353b7e7e9691b2a35abdfc2c5323fc7184f9ca8adca5211cebc329eac467900a7a54af8435e8955c8d76903a3f14a SHA512 cd9e214a19e69e8567007a551d6a5373176fedd58feb44b616cc9d40b57c5793db4b71627e3585151887496a4325a865cbcf0f472579b5e4d22e8ab8786ee62b +EBUILD typescript-4.3.2.ebuild 766 BLAKE2B eaa420ad739ed7a4afee41b0d9f4fd7d3283a0a1ca75f5514383470bd4276538147f28ef777954605359a249df6a913e91f04ee75dd3ad55537803f10b1f1259 SHA512 3a65ae24834c4bb449361653daabd973c3bfa2b0d141cdfc90cac3dbcb913f9f161212c3a2b36d155adb9d13bc72051b23f056e6fa55f61e39a57fc0930107c5 +MISC metadata.xml 336 BLAKE2B 0c93fb15aeb261efb010ec4c16400ab2f2c55d881bfa636fca02ac4986f827fa604312f7dbe013592515145b9443cdd3d155493db667c3c0dd9e9ef74e971755 SHA512 d7c39b7326c09964dcd97a2a78970a9613b44e547bfc9c694038a899c8858938e97fc39e31a9c9dbf1aa3225668cfeb6e7ddb3b59927f08e8188282df0215b44 diff --git a/dev-lang/typescript/metadata.xml b/dev-lang/typescript/metadata.xml new file mode 100644 index 000000000000..4690a60f1fb7 --- /dev/null +++ b/dev-lang/typescript/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>gyakovlev@gentoo.org</email> + <name>Georgy Yakovlev</name> + </maintainer> + <upstream> + <remote-id type="github">microsoft/TypeScript</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lang/typescript/typescript-4.3.2.ebuild b/dev-lang/typescript/typescript-4.3.2.ebuild new file mode 100644 index 000000000000..dcbc71b38d89 --- /dev/null +++ b/dev-lang/typescript/typescript-4.3.2.ebuild @@ -0,0 +1,39 @@ +# Copyright 2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION="Superset of JavaScript with optional static typing, classes and interfaces" +HOMEPAGE="https://www.typescriptlang.org" +SRC_URI="https://registry.npmjs.org/${PN}/-/${P}.tgz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc64" + +DEPEND="" +RDEPEND="net-libs/nodejs" +BDEPEND=">=net-libs/nodejs-16[npm]" + +S="${WORKDIR}/package" + +src_compile() { + # nothing to compile here + : +} + +src_install() { + npm \ + --audit false \ + --color false \ + --foreground-scripts \ + --global \ + --offline \ + --omit dev \ + --prefix "${ED}"/usr \ + --progress false \ + --verbose \ + install "${DISTDIR}/${P}".tgz || die "npm install failed" + + einstalldocs +} diff --git a/dev-lang/vala/Manifest b/dev-lang/vala/Manifest index 65f02308be4e..baf8c0c0b59c 100644 --- a/dev-lang/vala/Manifest +++ b/dev-lang/vala/Manifest @@ -4,9 +4,11 @@ DIST vala-0.46.13.tar.xz 3434196 BLAKE2B 49b7e0b776e185653c1b8c00747a150ceb42cf8 DIST vala-0.48.12.tar.xz 3492200 BLAKE2B 0a401ac4349dc1c628fa608b5a89504583d6d2bb05ca74eb507e766cca418121e14adfe6e8cfeb8f42212c717280b9b91426309df415d869896654be626c46c5 SHA512 da7becf8b92985a07b139651c14bd41ec86aed3e2b610029d2b376f70335c98607f39de4a1fa4efe9d51e6088edd4c13d22431cada389679d55f684ad548f4d1 DIST vala-0.50.7.tar.xz 3540048 BLAKE2B 4f3abdfe7f0448846f22a4d822b803484afd1a2371604d63cd7092e2854dbfdb15169ac74226404ca572bc8ac29d5262c6e39346271704003138b9881bd99b30 SHA512 50c4c257e0be020f45270b07fef3646712dc1556dd43ae9d54f164b97056b26779b3559deab9fe96afa11e2e97a13aa2cce348a34cf5d72ea6a3be4a8d7efc94 DIST vala-0.52.3.tar.xz 3575936 BLAKE2B bef10fdca6af1db5d8ff7b01b624fee5879d82ceb35ccc84d847f9ce26445194d4fc7ec8c3f8177534c0144e9027633ed1b00793e4e2edbe3df51f55f29129cb SHA512 5b757c6a9d1a2e9615fddb014c64a92f6a7c231ba964e449a43e9ad19293d415b66642625aad98d18e436ab438a4530d00bb670c7c7eaae56f43b407f4035bd9 +DIST vala-0.52.4.tar.xz 3577796 BLAKE2B 20f541f5429ef52cdcb4b0c5559dc312f62276ac6d91b3ca97f5bce4b954f7d0407637131e16db5a9f059f5ee3e7d44a414cc06311d49c294f22789db821ec79 SHA512 3c7daae4d26e6940b0735cee84f1a25f2aab12c93d2a8a9e9edec45c0c9dc9184cc790acbae19aba0fb31dfd7115afddcf8b9f09b0423b5b6950900641f4c527 EBUILD vala-0.44.11.ebuild 1112 BLAKE2B 481c622dead6198dfbc11fb7562b71e6504ab65e3ea354b4a575d138f4a881a8f1f1ae79a0071c7c965bd18c58afde0f79e37d9ba7947858236b408d72e38e18 SHA512 61983430919c70f1524f399cb2d45370f3efb2bd7f6ca347a4bb637062fa71b64cd8507fad5e10b1d6e9a9b2f70808e4cea3c93a2364421a888cbbd719f4110a EBUILD vala-0.46.13.ebuild 1305 BLAKE2B 4855220ceb0594546be128b16092270a4d21459d6243c3510e36e556e5e075ab1caffbf579b2a661bbe6470eb24480879928714529a5f82b9d83b0dcbdfd8df7 SHA512 af281ba4479a81ce7e825df237d55e7db552a2f341fe27e0d41de4a0796d0e3e153f9eb01f7ed0ae2b070b5a2ccee6bc7ab32d890ba0ab99d6cadbc3ee14b33e EBUILD vala-0.48.12.ebuild 1312 BLAKE2B 5acc6c67a78ff5aff422e44980db6072ea7f1311f46b107eba95ff2963b78518c2a60136c06fcf6da996cdb9bb222c7c9bda56c84c85166d7a69ca885b4683ff SHA512 78e461a215adbdfc7d7ae7ccccc9f97e1b408a133b0e33005841a74169c57adfc624e12ec0fdab9434ea6720649c3356e90cf9af79e698c2998fa93daac1290e EBUILD vala-0.50.7.ebuild 1312 BLAKE2B 36746ae0645349498963828caec58e5e82cd9585b8381c268c6affbb884d223dcdeb2f629678de71d288b8b152820fcdf981d622659cafd249ece2d91b0dd656 SHA512 f013ca54bd4f72ba4e632fa5cd7817545bc778cd261c5167e9e566aca0cfa4b34ca7f02a7af2115701f2fae6830b7dab7ddcfbf312907210d064b96fdeeb9964 EBUILD vala-0.52.3.ebuild 1325 BLAKE2B 3f22f959527acc36013a9c07978b90b087b2075bc8b8208cfc190eac508d8192c6a2d5fa17bcebd259a6e18faf25e8e804b82e8463c05f9dca66484f555b4e45 SHA512 635fd952a9f4ab98718e22e5cf4806da041bda0ab2b09bc3cc18351de85a1350e912590aded7ba827d7d9460d5091c86900fa4216aea57fefd596357fa0212be +EBUILD vala-0.52.4.ebuild 1332 BLAKE2B 07ebd950465ef0d16801dadd56096d7fa90c218c4e6dd08a6fd9fa487207701c02511c418d210967be351c12c757c342f268cba6f14ca97bd66087cef7ca6ab7 SHA512 e48dd90cd3daa8c2c6eabb13a1f00fcb636efa72c2d7cc581044692a2e78fc39b8cadc47b9ba46fead9f5f258204f25c16358ca81b3f4fa33d210fa6da28e2b4 MISC metadata.xml 345 BLAKE2B de3110ae281a87f8cb8f6c10d93705f56f0cfed972cd893a063e66c2629150d491498a29b35b4efe19fa5b6baa740f1d989bad440924befc60ef56423096f108 SHA512 163aa55430a075974d504a5bbb71ad9a249cb215de12a82b3141de18bb05f1e0c2078c02c617cf7d98a97c7f8dd407077183754d8c82c77e80dd0d7b2ec38283 diff --git a/dev-lang/vala/vala-0.52.4.ebuild b/dev-lang/vala/vala-0.52.4.ebuild new file mode 100644 index 000000000000..fa44e86dd988 --- /dev/null +++ b/dev-lang/vala/vala-0.52.4.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit gnome2 + +DESCRIPTION="Compiler for the GObject type system" +HOMEPAGE="https://wiki.gnome.org/Projects/Vala" + +LICENSE="LGPL-2.1+" +SLOT="0.52" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~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} + test? ( + dev-libs/dbus-glib + >=dev-libs/glib-2.26:2 + dev-libs/gobject-introspection + ) +" +BDEPEND=" + dev-libs/libxslt + sys-devel/flex + virtual/pkgconfig + virtual/yacc +" + +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 +} |