From 95461df035e3867364495f065e5e805bf629b2d7 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 26 Oct 2021 00:10:07 +0100 Subject: gentoo resync : 25.10.2021 --- dev-lang/Manifest.gz | Bin 17510 -> 17528 bytes dev-lang/R/Manifest | 2 - dev-lang/R/R-4.0.4.ebuild | 243 ------ dev-lang/ammonite-repl-bin/Manifest | 3 + .../ammonite-repl-bin-2.4.0.ebuild | 23 + dev-lang/ammonite-repl-bin/metadata.xml | 8 + dev-lang/bashforth/Manifest | 3 - dev-lang/bashforth/bashforth-0.58a.ebuild | 25 - dev-lang/bashforth/metadata.xml | 8 - dev-lang/clojure/Manifest | 8 +- dev-lang/clojure/clojure-1.10.0.ebuild | 50 -- dev-lang/clojure/clojure-1.10.3.ebuild | 2 +- dev-lang/clojure/clojure-1.8.0.ebuild | 32 - dev-lang/clojure/clojure-1.9.0-r1.ebuild | 50 -- dev-lang/fpc/Manifest | 8 +- dev-lang/fpc/fpc-3.0.4.ebuild | 165 ----- dev-lang/fpc/metadata.xml | 3 - dev-lang/lfe/Manifest | 2 - dev-lang/lfe/lfe-1.1.1.ebuild | 36 - dev-lang/micropython/Manifest | 4 + ...icropython-1.17-exclude-float-parse-tests.patch | 11 + .../files/micropython-1.17-prevent-stripping.patch | 12 + dev-lang/micropython/micropython-1.17.ebuild | 65 ++ dev-lang/nasm/Manifest | 2 +- dev-lang/nasm/nasm-2.15.05.ebuild | 2 +- dev-lang/perl/Manifest | 2 +- dev-lang/perl/perl-5.34.0-r2.ebuild | 823 --------------------- dev-lang/perl/perl-5.34.0-r5.ebuild | 807 ++++++++++++++++++++ dev-lang/php/Manifest | 6 + dev-lang/php/files/php73-CVE2021-21703.patch | 397 ++++++++++ dev-lang/php/php-7.3.31-r1.ebuild | 754 +++++++++++++++++++ dev-lang/php/php-7.4.25.ebuild | 745 +++++++++++++++++++ dev-lang/php/php-8.0.12.ebuild | 744 +++++++++++++++++++ dev-lang/python/Manifest | 16 +- dev-lang/python/python-3.10.0_rc2.ebuild | 346 --------- dev-lang/python/python-3.6.15.ebuild | 2 +- dev-lang/python/python-3.7.11_p1.ebuild | 329 -------- dev-lang/python/python-3.8.12.ebuild | 335 --------- dev-lang/python/python-3.9.6_p2.ebuild | 344 --------- dev-lang/ruby/Manifest | 2 + dev-lang/ruby/ruby-2.7.4-r1.ebuild | 267 +++++++ dev-lang/ruby/ruby-3.0.2-r1.ebuild | 267 +++++++ dev-lang/rust-bin/Manifest | 33 + dev-lang/rust-bin/rust-bin-1.56.0.ebuild | 187 +++++ dev-lang/rust/Manifest | 35 + dev-lang/rust/rust-1.56.0-r1.ebuild | 683 +++++++++++++++++ dev-lang/spidermonkey/Manifest | 6 +- dev-lang/spidermonkey/spidermonkey-68.12.0.ebuild | 1 + dev-lang/spidermonkey/spidermonkey-78.15.0.ebuild | 14 +- dev-lang/tcc/Manifest | 4 +- dev-lang/tcc/tcc-0.9.27_p20211022.ebuild | 86 +++ dev-lang/tcc/tcc-9999.ebuild | 53 +- 52 files changed, 5198 insertions(+), 2857 deletions(-) delete mode 100644 dev-lang/R/R-4.0.4.ebuild create mode 100644 dev-lang/ammonite-repl-bin/Manifest create mode 100644 dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.4.0.ebuild create mode 100644 dev-lang/ammonite-repl-bin/metadata.xml delete mode 100644 dev-lang/bashforth/Manifest delete mode 100644 dev-lang/bashforth/bashforth-0.58a.ebuild delete mode 100644 dev-lang/bashforth/metadata.xml delete mode 100644 dev-lang/clojure/clojure-1.10.0.ebuild delete mode 100644 dev-lang/clojure/clojure-1.8.0.ebuild delete mode 100644 dev-lang/clojure/clojure-1.9.0-r1.ebuild delete mode 100644 dev-lang/fpc/fpc-3.0.4.ebuild delete mode 100644 dev-lang/lfe/lfe-1.1.1.ebuild create mode 100644 dev-lang/micropython/files/micropython-1.17-exclude-float-parse-tests.patch create mode 100644 dev-lang/micropython/files/micropython-1.17-prevent-stripping.patch create mode 100644 dev-lang/micropython/micropython-1.17.ebuild delete mode 100644 dev-lang/perl/perl-5.34.0-r2.ebuild create mode 100644 dev-lang/perl/perl-5.34.0-r5.ebuild create mode 100644 dev-lang/php/files/php73-CVE2021-21703.patch create mode 100644 dev-lang/php/php-7.3.31-r1.ebuild create mode 100644 dev-lang/php/php-7.4.25.ebuild create mode 100644 dev-lang/php/php-8.0.12.ebuild delete mode 100644 dev-lang/python/python-3.10.0_rc2.ebuild delete mode 100644 dev-lang/python/python-3.7.11_p1.ebuild delete mode 100644 dev-lang/python/python-3.8.12.ebuild delete mode 100644 dev-lang/python/python-3.9.6_p2.ebuild create mode 100644 dev-lang/ruby/ruby-2.7.4-r1.ebuild create mode 100644 dev-lang/ruby/ruby-3.0.2-r1.ebuild create mode 100644 dev-lang/rust-bin/rust-bin-1.56.0.ebuild create mode 100644 dev-lang/rust/rust-1.56.0-r1.ebuild create mode 100644 dev-lang/tcc/tcc-0.9.27_p20211022.ebuild (limited to 'dev-lang') diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz index 24032b65fcbc..82b947183406 100644 Binary files a/dev-lang/Manifest.gz and b/dev-lang/Manifest.gz differ diff --git a/dev-lang/R/Manifest b/dev-lang/R/Manifest index 15927b59d368..0f1e44f1dff9 100644 --- a/dev-lang/R/Manifest +++ b/dev-lang/R/Manifest @@ -2,11 +2,9 @@ AUX R-3.4.1-parallel.patch 487 BLAKE2B bb596d66fab359511c6364ac06cbbe311decd3201 AUX R-3.4.1-rmath-shared.patch 899 BLAKE2B 0aba9c1c5417531647bed3829d53909e6f3983dea3f3de149c0ef270a8bc4eddc46dab4cbdc7cce78c0c163446a4d3a014afc9bc571f0d4a61cfa6827e40f16b SHA512 20c62b774149ae1959d28217a1be6f30968562de3ad5e4a8d7bfc7c579ca5c35fcd1304d68e222be0a37cb6db9b946fbe82d21a26fecccbecea1401b8c0b25d4 AUX R-3.6.2-no-LDFLAGS-in-libR-pkg-config.patch 469 BLAKE2B ee716b068316bbac0c07fe44bef739a491af5f4e90ba268cf7db428350763d498ab0b1bc9efa02ac885d0ac64aa5d076deaac094725766e340cbcd9d7e839b22 SHA512 cb7bc73fd0f1aa4159b25bc76318074662afddafdef8acc8caf20afb98da6c065c3bd0895c4a7a7f18a174d21d59c0f054a46aa513db1b5b622a110e7c54e171 AUX R-3.6.2-no-gzip-doc.patch 443 BLAKE2B 1154e9f67f08e1d8b286152bd093789a0b94b3a2422bdb54d1d1d03729bd892811e68121309c41ef4323ed31efcea82f3e265b37445e9870bbd88c5413311345 SHA512 99678dbf809761a2991cd5cbe6ff5ba8d1c3e9388f69d94b30726caae4eee29ae50ee74aa24e3851d41559f804381ec18a2cd818b97b5417bf7ae660c93ad2a6 -DIST R-4.0.4.tar.gz 33687611 BLAKE2B 40cdfd98fe6c9193deb729d151631c2b0f935accf5ea6251704b633d2688278af1a5a67317152be023fb4a10315c64e473f58276bb0c3fadb1141c35391ad22e SHA512 811c4407a083eb776f92c3cbacb1dc7eada8890a8c27678c6c82bef9db52b1afaefeb408fbe11e46922740adee498f32e7ddf7451b3ab89cf60773737e47f8be DIST R-4.0.5.tar.gz 32466444 BLAKE2B 5dbbd289f4fd6347b4109eecaf65b50b5793a83edddd2cb391c20473607f136d91a8e9f4ab9e453f6927d2ca9145762920424e3a1dcea89309afde56efd5d32c SHA512 6ff5b0f9cb6b17f66cde1f5585d1b33659dbae8919d34c2e593f68a0bff4d0425aa9704d99284d103702a9cd42f613311f3a87af6b939b1af65dcec80bf2ca8c DIST R-4.1.0.tar.gz 33714683 BLAKE2B 22ba966b5a29f153f3ce6cbc467e815c397e7c6aade0db62c7d2ae044056d9227da4dcb8fbf33e661548f4f434c328415e297c6b07b3932ef3f47358c2543f42 SHA512 41519bf06a1ebc2bb582e9a7c35d0e82e213312dec8147861a7f9b28ee750cd40dfbf02737602d05698641fcea6182b0da8131e83edacc358e98eca0a393b729 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-r1.ebuild 7313 BLAKE2B fd84cc2304d72deaf1f723bffed2906cbd810b913d4c636a37c12f4dab6ffa866ee769636bb700e2447a8a771dbed5cad9df3f289d510d9593f08f9c167f0a3f SHA512 50a086dade0562b6494623eb56f7fb2b98982a8d1b3d9f5ec27c35399ccf2de13c3c5a0ac51dc7d46abaac74d9838869aeeb274a7ac5120bfdc87c3a05354747 EBUILD R-4.1.0-r2.ebuild 7080 BLAKE2B 312412a327e25891d3b4236f648d4958b0d7ffcada36add367baeced3f325af645cb21c5126190643bfd92eba34d169c14a68e2cdfdc3b9c98de7e7254171e3b SHA512 978cf3808415dbcea5fcbf81a3e9877e236317bb89a821b2f812f0673631fee2e4be63a66c9b26ced3f85ef429ddca4482624e7e8d87b9c9172e87707d7325c8 MISC metadata.xml 1261 BLAKE2B 468178b60e894bd8dff85ecbf74d10dce61bdb21fc8b61f43d7778dbc345234fc6b5e28c7608534d558c95fa6583b5acd2e55cef7096c4cff88e84776e93e03a SHA512 0d42cb1e3b951e3b1cbf09e6e48d47cf7635c8b16708b5b1edb6c5d1b422cad2f16ce5c6f7c603efb365eb9d5b794d2d2653b408147aa9e921cd57feb3840013 diff --git a/dev-lang/R/R-4.0.4.ebuild b/dev-lang/R/R-4.0.4.ebuild deleted file mode 100644 index e85bf329f623..000000000000 --- a/dev-lang/R/R-4.0.4.ebuild +++ /dev/null @@ -1,243 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit bash-completion-r1 autotools flag-o-matic fortran-2 toolchain-funcs - -# latest git commit for R bash completion: https://github.com/deepayan/rcompletion -BCPV=78d6830e28ea90a046da79a9b4f70c39594bb6d6 - -DESCRIPTION="Language and environment for statistical computing and graphics" -HOMEPAGE="http://www.r-project.org/" -SRC_URI=" - mirror://cran/src/base/R-4/${P}.tar.gz - https://raw.githubusercontent.com/deepayan/rcompletion/${BCPV}/bash_completion/R -> ${PN}-${BCPV}.bash_completion" - -LICENSE="|| ( GPL-2 GPL-3 ) LGPL-2.1" -SLOT="0" -KEYWORDS="amd64 arm64 ~hppa ~ia64 sparc x86 ~amd64-linux ~x86-linux" -IUSE="cairo doc icu java jpeg lapack minimal nls openmp perl png prefix profile readline static-libs test tiff tk X" - -# One test required profiling in v4.0.2, check the upstream bug: -# -# https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17836 -# -REQUIRED_USE="png? ( || ( cairo X ) ) - jpeg? ( || ( cairo X ) ) - tiff? ( || ( cairo X ) ) - test? ( profile ) -" - -# At least one package installation in the test suite requires TeX, -# and will fail without it (bug #718056). -BDEPEND="virtual/pkgconfig - doc? ( - virtual/latex-base - dev-texlive/texlive-fontsrecommended - ) - test? ( virtual/latex-base )" -DEPEND=" - app-arch/bzip2:0= - app-arch/xz-utils:0= - app-text/ghostscript-gpl - dev-libs/libpcre2:= - net-libs/libtirpc - net-misc/curl - virtual/blas:0 - || ( sys-apps/coreutils app-misc/realpath ) - cairo? ( x11-libs/cairo:0=[X=] x11-libs/pango:0= ) - icu? ( dev-libs/icu:= ) - jpeg? ( virtual/jpeg:0 ) - lapack? ( virtual/lapack:0 ) - perl? ( dev-lang/perl ) - png? ( media-libs/libpng:0= ) - readline? ( sys-libs/readline:0= ) - tiff? ( media-libs/tiff:0= ) - tk? ( dev-lang/tk:0= ) - X? ( x11-libs/libXmu:0= x11-misc/xdg-utils )" - -RDEPEND="${DEPEND} - sys-libs/zlib:0[minizip] - java? ( >=virtual/jre-1.5 )" - -RESTRICT="minimal? ( test ) - !test? ( test )" - -PATCHES=( - "${FILESDIR}"/${PN}-3.4.1-parallel.patch - "${FILESDIR}"/${PN}-3.4.1-rmath-shared.patch - "${FILESDIR}"/${PN}-3.6.2-no-LDFLAGS-in-libR-pkg-config.patch - "${FILESDIR}"/${PN}-3.6.2-no-gzip-doc.patch -) - -pkg_pretend() { - [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] && use openmp; then - FORTRAN_NEED_OPENMP=1 - fi - fortran-2_pkg_setup - filter-ldflags -Wl,-Bdirect -Bdirect - # avoid using existing R installation - unset R_HOME - # Temporary fix for bug #419761 - if [[ ($(tc-getCC) == *gcc) && ($(gcc-version) == 4.7) ]]; then - append-flags -fno-ipa-cp-clone - fi -} - -src_prepare() { - default - - # fix packages.html for doc (gentoo bug #205103) - sed -e "s:../../../library:../../../../$(get_libdir)/R/library:g" \ - -i src/library/tools/R/Rd.R || die - - # fix Rscript path when installed (gentoo bug #221061) - sed -e "s:-DR_HOME='\"\$(rhome)\"':-DR_HOME='\"${EROOT}/usr/$(get_libdir)/${PN}\"':" \ - -i src/unix/Makefile.in || die "sed unix Makefile failed" - - # fix HTML links to manual (gentoo bug #273957) - sed -e 's:\.\./manual/:manual/:g' \ - -i $(grep -Flr ../manual/ doc) || die "sed for HTML links failed" - - use lapack && \ - export LAPACK_LIBS="$($(tc-getPKG_CONFIG) --libs lapack)" - - if use X; then - export R_BROWSER="$(type -p xdg-open)" - export R_PDFVIEWER="$(type -p xdg-open)" - fi - use perl && \ - export PERL5LIB="${S}/share/perl:${PERL5LIB:+:}${PERL5LIB}" - - # don't search /usr/local - sed -i -e '/FLAGS=.*\/local\//c\: # removed by ebuild' configure.ac || die - # Fix for Darwin (OS X) - if use prefix; then - if [[ ${CHOST} == *-darwin* ]] ; then - sed -e 's:-install_name libR.dylib:-install_name ${libdir}/R/lib/libR.dylib:' \ - -e 's:-install_name libRlapack.dylib:-install_name ${libdir}/R/lib/libRlapack.dylib:' \ - -e 's:-install_name libRblas.dylib:-install_name ${libdir}/R/lib/libRblas.dylib:' \ - -e "/SHLIB_EXT/s/\.so/.dylib/" \ - -i configure.ac || die - # sort of "undo" 2.14.1-rmath-shared.patch - sed -e "s:-Wl,-soname=libRmath.so:-install_name ${EROOT}/usr/$(get_libdir)/libRmath.dylib:" \ - -i src/nmath/standalone/Makefile.in || die - else - append-ldflags -Wl,-rpath="${EROOT}/usr/$(get_libdir)/R/lib" - fi - fi - AT_M4DIR=m4 - eautoreconf -} - -src_configure() { - # --with-system-tre \ - # tre is patched from upstream - econf \ - --enable-byte-compiled-packages \ - --enable-R-shlib \ - --disable-R-framework \ - --with-blas="$($(tc-getPKG_CONFIG) --libs blas)" \ - rdocdir="${EPREFIX}/usr/share/doc/${PF}" \ - $(use_enable java) \ - $(use_enable nls) \ - $(use_enable openmp) \ - $(use_enable profile R-profiling) \ - $(use_enable profile memory-profiling) \ - $(use_enable static-libs static) \ - $(use_enable static-libs R-static-lib) \ - $(use_with cairo) \ - $(use_with icu ICU) \ - $(use_with jpeg jpeglib) \ - $(use_with lapack) \ - $(use_with !minimal recommended-packages) \ - $(use_with png libpng) \ - $(use_with readline) \ - $(use_with tiff libtiff) \ - $(use_with tk tcltk) \ - $(use_with tk tk-config "${EPREFIX}"/usr/$(get_libdir)/tkConfig.sh) \ - $(use_with tk tcl-config "${EPREFIX}"/usr/$(get_libdir)/tclConfig.sh) \ - $(use_with X x) -} - -src_compile() { - export VARTEXFONTS="${T}/fonts" - emake AR="$(tc-getAR)" - emake -C src/nmath/standalone \ - shared $(use static-libs && echo static) AR="$(tc-getAR)" - use doc && emake info pdf -} - -src_install() { - default - emake -j1 -C src/nmath/standalone DESTDIR="${D}" install - - if use doc; then - emake DESTDIR="${D}" install-info install-pdf - dosym ../manual /usr/share/doc/${PF}/html/manual - fi - - cat > 99R <<-EOF - LDPATH=${EROOT}/usr/$(get_libdir)/${PN}/lib - R_HOME=${EROOT}/usr/$(get_libdir)/${PN} - EOF - doenvd 99R - newbashcomp "${DISTDIR}"/${PN}-${BCPV}.bash_completion ${PN} - # The buildsystem has a different understanding of install_names than - # we require. Since it builds modules like shared objects (wrong), many - # objects (all modules) get an incorrect install_name. Fixing the build - # system here is not really trivial. - if [[ ${CHOST} == *-darwin* ]] ; then - local mod - pushd "${ED}"/usr/$(get_libdir)/R > /dev/null - for mod in $(find . -name "*.dylib") ; do - mod=${mod#./} - install_name_tool -id "${EPREFIX}/usr/$(get_libdir)/R/${mod}" \ - "${mod}" - done - popd > /dev/null - fi - - # Users are encouraged to access some of the the R documentation - # interactively, through functions like "contributors()" that - # tries to open the "AUTHORS" file. Other files can be accessed - # by name with RShowDoc(), and the documentation for e.g. license() - # and RShowDoc() suggests a few of these names. Here we try to - # collect as many names as possible that a user might actually - # try to view through R, because if we don't decompress them, - # then R doesn't know what to do with 'em. Bug #556706. - INTERACTIVE_DOCS=( - AUTHORS - COPYING - FAQ - NEWS - THANKS - ) - - # Other data sources that are shipped as "documentation," but which - # need to be accessible via their original unmolested filenames. - INTERACTIVE_DATA=( - BioC_mirrors.csv - CRAN_mirrors.csv - KEYWORDS.db - NEWS.rds - ) - - NOCOMPRESS_DOCS=( "${INTERACTIVE_DOCS[@]}" "${INTERACTIVE_DATA[@]}" ) - - for f in "${NOCOMPRESS_DOCS[@]}"; do - docompress -x "/usr/share/doc/${PF}/${f}" - done -} - -pkg_postinst() { - if use java; then - einfo "Re-initializing java paths for ${P}" - R CMD javareconf - fi -} diff --git a/dev-lang/ammonite-repl-bin/Manifest b/dev-lang/ammonite-repl-bin/Manifest new file mode 100644 index 000000000000..2bb855bfadd7 --- /dev/null +++ b/dev-lang/ammonite-repl-bin/Manifest @@ -0,0 +1,3 @@ +DIST ammonite-2.4.0 48166243 BLAKE2B b01193af61c4e1035b975c465e593da0261086aeab494bc534502814e87534d43beee82e048c6bbfb3ae49e3916dfb1e7fca3ebd10e866c0aad2b10027d32298 SHA512 6318c689335537e9bb2b0f7713aa593ac36253dc06c0fe13f44e96ab68fad2426c6c845dae6eead30b560987f0ea4fd72f177991de5f6f8da5c96bca4f63889e +EBUILD ammonite-repl-bin-2.4.0.ebuild 493 BLAKE2B 45bd4648cba7f0472417b9eda0a4f680376548d8150b740f86231953ee592388d0f7c080cae5fe64aec86f7db7f721a79856efed331ae9e3ccef6c2a8488d483 SHA512 c706045d1f048d56df0ed51a8311f71e26c5c1307ca6a11df0d7f127873291cac566808df115565acef627699daf3d40bacb83c7e750a82ed93b9d30b7fb7bc7 +MISC metadata.xml 246 BLAKE2B efcbb4db7ac6eb97dc4625930f11c2d780be8fb04e89f2a6d7ef4a853f07b59b3058542d61769f3185b626f35bbe09bd6ee9e34323cef4239f1241dc3ff160ca SHA512 92d34b6d6b6116064cbdd8c79bba97e2f60f56a078c70efbbe87c9cd90cb96bf4522fcf437075bf30417e2ef20f696e6cd4e586203e85a00269aca13f1fb23be diff --git a/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.4.0.ebuild b/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.4.0.ebuild new file mode 100644 index 000000000000..f0e3f45e98bc --- /dev/null +++ b/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.4.0.ebuild @@ -0,0 +1,23 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +SCALA_VERSION="2.13" + +DESCRIPTION="Scala language-based scripting and REPL" +HOMEPAGE="https://ammonite.io/" +SRC_URI="https://github.com/lihaoyi/Ammonite/releases/download/${PV}/${SCALA_VERSION}-${PV} -> ammonite-${PV}" + +KEYWORDS="~amd64 ~x86" +LICENSE="MIT" +SLOT="0" +IUSE="" + +S="${WORKDIR}" + +RDEPEND=">=virtual/jre-1.8:*" + +src_install() { + newbin "${DISTDIR}/ammonite-${PV}" amm +} diff --git a/dev-lang/ammonite-repl-bin/metadata.xml b/dev-lang/ammonite-repl-bin/metadata.xml new file mode 100644 index 000000000000..7a926064dca8 --- /dev/null +++ b/dev-lang/ammonite-repl-bin/metadata.xml @@ -0,0 +1,8 @@ + + + + + flow@gentoo.org + Florian Schmaus + + diff --git a/dev-lang/bashforth/Manifest b/dev-lang/bashforth/Manifest deleted file mode 100644 index 6434e7d75ee3..000000000000 --- a/dev-lang/bashforth/Manifest +++ /dev/null @@ -1,3 +0,0 @@ -DIST bashforth-0.58a 78391 BLAKE2B 284f75af36d6bb2ac372554d2fd118190d1f830963ac74bd8db590327c85144fb9fdd7a026007c1af0af5f0a76021cb2fa6d302694e6421947674b27fbce49ec SHA512 55a158fc80d6108a9151537d9d222f23dbeab9b3c9c821068c15ace283b050c0630da8e1cc0a30d997d76acbcd5f7cc38662c997df0d87b7ce68bb3de446d296 -EBUILD bashforth-0.58a.ebuild 487 BLAKE2B 29ef365fbe60e8ce83b1d8e15bb2945724d735d2ae4180d53200a7fd084848127c33927ab2d55ed16fc60fd978604ce9c65abc279de4630228dd42e6ff54a47d SHA512 ba32179469cd0dc8bc355ae32cd57a26d0dcb0152f6aa8354d7fb991a946eb515b05ba216660576fcf2fa74c4643716c16fd5eb6598a49ef42dc10c030cb4ff0 -MISC metadata.xml 253 BLAKE2B abd5250029676d23201d38d764a87f155a72fdb12c27eb98faea12eb441fd986c1cf2f230265e7e7d257e5dcc81b6710ec90ebf8dbc3a6597a04c4fff95eb771 SHA512 96c2922337805fd36723b0f847b2b15365e7207a21d57f6c6ab7e3cf8ca089b781635eaaf3ef01cbe61c34ee8b3f4c1c6234242db390ccc3c3bf0b1ab660b467 diff --git a/dev-lang/bashforth/bashforth-0.58a.ebuild b/dev-lang/bashforth/bashforth-0.58a.ebuild deleted file mode 100644 index 76464d63e6a0..000000000000 --- a/dev-lang/bashforth/bashforth-0.58a.ebuild +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="String-threaded Forth interpreter in Bash" -HOMEPAGE="https://github.com/ForthHub/ForthFreak" -SRC_URI="http://forthfreak.net/${PN}.versions/${P}" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~arm ~mips ~ppc ~ppc64 ~x86" -IUSE="" - -DEPEND=">app-shells/bash-3.0" - -S="${WORKDIR}" - -src_unpack() { - cp "${DISTDIR}/${P}" "${S}" -} - -src_install() { - newbin "${P}" "${PN}" -} diff --git a/dev-lang/bashforth/metadata.xml b/dev-lang/bashforth/metadata.xml deleted file mode 100644 index 489e730c1c90..000000000000 --- a/dev-lang/bashforth/metadata.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - blueness@gentoo.org - Anthony G. Basile - - diff --git a/dev-lang/clojure/Manifest b/dev-lang/clojure/Manifest index d4b1af9eaa00..a8a170d5f9b1 100644 --- a/dev-lang/clojure/Manifest +++ b/dev-lang/clojure/Manifest @@ -1,8 +1,5 @@ AUX add-compile-spec-ant-build-target.patch 1813 BLAKE2B 5a24f1457e298429bee3fe31deca54df3801665ed57a91c9ee760003418a34a3d5f59cfe432eedfb8a247e8b9c12dce701253dd9fc747b3bf1c84f10d8bc9ec5 SHA512 da5e5a61faa8c17244073dcfa0de40c9aec1ce698df60aa1b8ba89d5aa187e9974edd400fee711120c0181b152e461db8669a85f5b83ff037023c3f05a81f21b -DIST clojure-1.10.0.tar.gz 678715 BLAKE2B 8f69a327e94e173864b3d8b81e92ab716c70be9fa59bbd836889cb75a8d44518a3aa2a8fbec50a04f2e7d1afdb07ffef2f7069077e22ef91f321c5fb122d2bb9 SHA512 d53d2322662974d2eed97d7870f0f91822de8acb91e30b50b0dca4186ee667c46b2b5863e080d89e3bfe63d090c6ac2e25617f74d1434bae2ca1e73ae9a36012 DIST clojure-1.10.3.tar.gz 683020 BLAKE2B ea57231375589d5c45b7e8a1fe87ea3f371e631733d5ae27d547e84a575cd7a54394fa401c920a7ec5e7218719f2ecd728a77e1d3e05c803f0620fcfeabd4199 SHA512 540c4c730a9f504f4e8a33e957fb150a70c3f1afa8e10205d23bb3c0528a46ca615b3a95dbedf367d4d0965d8eabc69b2d7f3bc144be9b4cb64fba085bfc6d9d -DIST clojure-1.8.0.tar.gz 627688 BLAKE2B 7dc3029e38e574cd32c74cce1f3ae03890869023d5fb2e8138f2fdc4461b3f9e119c4b6042e2b7caee9561b664b49cbaf79378ef1fdd0fd78c4d712c3b9d95de SHA512 fa5714397e679f77260db054bdc0891a311e7bd14bfceb2dd0494480fb9cf21fc74dd295e75070105ff0cdd50842390a748d8782397c549f51d85d18d54a1231 -DIST clojure-1.9.0.tar.gz 641645 BLAKE2B 767241c7f252a2977511adf257b1805f81a96594cff2b1b9837c782cfaabd49ae8e6eef30398e7e277952124e843967ac635985da97e2e7c5cc98ec177f3d79c SHA512 8877c654f6aa8ad990593e69b611388659973e5d1d46cf8f6cfae59c4033424a3c7eebd477539784cbd7974f7ff30580f76d8a4117414491f38e18ac3b4efb27 DIST core.specs.alpha-0.2.56.tar.gz 11780 BLAKE2B 088d0b32dea7ec49ddaf0f461703762a5a877ff4028b775eb35998e6a5a3436ad57b35d7d9431b6911ca2304403e95043d375bac80080ecaf6144a77b3ebcf4c SHA512 afbfc04b9708a21ae6c6b29b8653fc62b23efcb271b973534c4b8421a7d73df3ad24bd28d7115a2fe926954dc45571de86971637736f3a494799f6f1ba1765c8 DIST data.generators-1.0.0.tar.gz 9940 BLAKE2B 981ac8f91ae05aecc7a9e7c85cbd59c5a50785bdc969309465374393234fd0a72d9803931acebbbbf369e812de33f0ac0c2ddc3009f8bb4237debd9e665301f3 SHA512 a8d5881c401b409e7e4192243e62288855b435d5979fd7950fcd3ee5291d16ce4aad913ea1dadf26db8a1297a21cab19e1e1e5d31e26db57a6fa4ed17bcefe0b DIST java.classpath-1.0.0.tar.gz 8955 BLAKE2B 1ab2d077d9f852ee72a1576b71d6aa8764f2fdb04eeed3f7710a7deb65942df8c0b1caff5847e329c191316c7218877b8b136b9dcefdb8f450f383beed5805ba SHA512 552f31f1f27fd80f262bbec4777626951bccef6689f4586fc327c3490669d25591c1a87907b15709dcb8d69f47ce33341d219694877b44481859b79fb38737fa @@ -11,8 +8,5 @@ DIST test.check-1.1.0.tar.gz 85177 BLAKE2B bb7690f276d6503a98befd4542899891d6388 DIST test.generative-1.0.0.tar.gz 140414 BLAKE2B 8895fd2e86fe3ac54c826af10f914e43e3dcb0233e799102c6ec2024fb77fe8a47dfed1753a432ef4353ebbe0f790334f30a0b6d42195e869ecadb21d545578a SHA512 28aeed3dde40b1e02ee41219b698083e5ec7c63df0c779d1db75e07e5000faf0cd1415fe7418e241ebbea6979606db72696fb0090c4204d22ec1aea689b2ac34 DIST tools.namespace-1.1.0.tar.gz 36182 BLAKE2B e93ef1151f3c1d4bdbda881712c008c50a4e40e2787c9de2708d918009bcbeaf2db143770fbe8d6d251688b1b1bb50d75a8fca1a684badae1634aa8f23b08c3c SHA512 9cdac4dc90192b621cfadb901bb9b2befb9684a6431e87938b6993b879bac2d9c946cdc0ec29226503b7c2406ef2db9be7d49a2398bcf27520d422b0dbfd0185 DIST tools.reader-1.3.4.tar.gz 62300 BLAKE2B f8257166e62963f468987b6c926edfce852cfddc7b641e3af25aeee919f8b03f9e82c91bcd65f6b3110d3b042bb8b2d063468b7707db5965eb044546619ef711 SHA512 329e4afb9aa77231fe2d583ed6ac11089c2f7a9600db02109ad205bfdacb747a8af3af28202e545a4ffd71a77b4a04aab2a35a0e3a12f88085ef705060a15a74 -EBUILD clojure-1.10.0.ebuild 1074 BLAKE2B df5abfbf48e516389c03fd3e214516bc3708b31d2fbfce55e1dc14f5e933009dbb7d947ea51244194c9e05a358b738c6e2a995427d5a673692280bfb6a2034b3 SHA512 ee9b624170f4a69221826158a5458cd5a11d329501965b4ba3f6bb4e3c897470e85693f582e2b17af070a276ccf157b8432a3bb9fda77504ce8509b95b95c7c7 -EBUILD clojure-1.10.3.ebuild 3369 BLAKE2B 6eac9a6b8149a4c4e5f7a2afcd9bbb8b8cb6ce269bf2d1e0e5774e6d258d0bca700c96156a261fffc03522e228fa6afa2c057ca9439a0af23fb4cf181ffcc2bc SHA512 2faa1d17cd3017759f4703cf9eaa63f7fd7886bb6821a36e7e51be7681860fd8f45143b17aa69ec42c5c4bd4b50be50e3afdbe80d7a5a07fca2cc292135ee6c1 -EBUILD clojure-1.8.0.ebuild 779 BLAKE2B d415833f59ac76342dda84f41eab55785639c30f18ac16bf023f535563d6d6ea3b103909624fe907d718d73de94f2b199568faa85140c6239873572ba716c1e6 SHA512 2f7c5c20f310e935de6e00961f14a1cf4ab15b8645cd92fc596595aa343abe24f5979eabe3e2572f5aa0a3834c953d834f76662846686f671200904bce3e9154 -EBUILD clojure-1.9.0-r1.ebuild 1073 BLAKE2B b1a614dbe91ef60efe29e0953ee7c0ac759e8fcf1b7ff155afe57283a0537a6376f13d201b354c2760e3a8291768131a09cd7e7158b3d1a4060af327b7e202e5 SHA512 449b5f10455e76631d0c99970e78c989e4cfe039b72acd86d7a0b51fe83065c8e8bf1cabe98f4efcab0d4e100d2cd297dabaf271ce57c42b44eb73c03bae89e4 +EBUILD clojure-1.10.3.ebuild 3367 BLAKE2B 870d7f0f0cb740a7aca355e1de28cdbf240268152e46895ce29a820ffcea5f394145cfdbd443c64f2a398df9ec06d1dc8d4379270b6c00ded0cffc147bf4feef SHA512 4dd7f9d30502e08c52d67da1238289211dbf3acb133cd00ec9e671f7bae422432856af942ece49ebeb7691d943ad30165be23ec72cbc70edf263eee47462ddb4 MISC metadata.xml 253 BLAKE2B 1126e8f26ba92163f0b2e6178f0b5182bf63ce8a59e9295451b53fb7bec30f6fbd2c76f5c43784135f9473ef90ebf14e2cb1a0eb7bf3be7bf6c7504afe37a7f1 SHA512 1e543566fe29a09f6d2d889c60087b2cfb9f2eb2c9dfa3e171bda88ec8be5c1ae9d65d4a0b26c5fb79c41718dda032a10cddd5b58e5f0cc9cc6a495edb01ef19 diff --git a/dev-lang/clojure/clojure-1.10.0.ebuild b/dev-lang/clojure/clojure-1.10.0.ebuild deleted file mode 100644 index 60aef391a050..000000000000 --- a/dev-lang/clojure/clojure-1.10.0.ebuild +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -JAVA_PKG_IUSE="test" - -inherit java-pkg-2 java-ant-2 - -EGIT_REF="76b87a6" - -DESCRIPTION="General-purpose programming language with an emphasis on functional programming" -HOMEPAGE="https://clojure.org/" -SRC_URI="https://github.com/clojure/${PN}/archive/${P}.tar.gz" - -LICENSE="EPL-1.0 Apache-2.0 BSD" -SLOT="1.10" -KEYWORDS="~amd64 ~x86 ~x86-linux" -RESTRICT="!test? ( test )" # broken due to file not found issue and more - -CDEPEND=" - dev-java/spec-alpha:0.2 - dev-java/core-specs-alpha:0.2 - dev-java/ant-core:0" - -RDEPEND=" - ${CDEPEND} - >=virtual/jre-1.8" - -DEPEND=" - ${CDEPEND} - >=virtual/jdk-1.8" - -S="${WORKDIR}/clojure-${PN}-${EGIT_REF}" - -DOCS=( changes.md CONTRIBUTING.md readme.txt ) - -src_compile() { - eant -Dmaven.compile.classpath=$(java-pkg_getjars core-specs-alpha-0.2,spec-alpha-0.2) -f build.xml jar -} - -src_test() { - eant -f build.xml test -} - -src_install() { - java-pkg_newjar "${PN}.jar" - java-pkg_dolauncher ${PN}-${SLOT} --main clojure.main - einstalldocs -} diff --git a/dev-lang/clojure/clojure-1.10.3.ebuild b/dev-lang/clojure/clojure-1.10.3.ebuild index 49ac956f05cc..68a77c1ba6a4 100644 --- a/dev-lang/clojure/clojure-1.10.3.ebuild +++ b/dev-lang/clojure/clojure-1.10.3.ebuild @@ -36,7 +36,7 @@ SRC_URI=" LICENSE="EPL-1.0 Apache-2.0 BSD" SLOT="$(ver_cut 1-2)" -KEYWORDS="~amd64 ~x86 ~x86-linux" +KEYWORDS="amd64 x86 ~x86-linux" PATCHES=( "${FILESDIR}/add-compile-spec-ant-build-target.patch" diff --git a/dev-lang/clojure/clojure-1.8.0.ebuild b/dev-lang/clojure/clojure-1.8.0.ebuild deleted file mode 100644 index f712f2fa139b..000000000000 --- a/dev-lang/clojure/clojure-1.8.0.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 -JAVA_PKG_IUSE="source test" - -inherit java-pkg-2 java-ant-2 - -DESCRIPTION="A dynamic programming language that targets the Java Virtual Machine" -HOMEPAGE="https://clojure.org/" -SRC_URI="https://github.com/clojure/clojure/tarball/${P} -> ${P}.tar.gz" - -LICENSE="EPL-1.0 Apache-2.0 BSD" -SLOT="1.8" -KEYWORDS="amd64 x86 ~x86-linux" -IUSE="" -RESTRICT="test" # patches welcome to fix the test - -RDEPEND=">=virtual/jre-1.6" -DEPEND=">=virtual/jdk-1.6" - -S=${WORKDIR}/clojure-clojure-49e5003 - -src_test() { - java-pkg-2_src_test -} - -src_install() { - java-pkg_newjar ${P/_/-}.jar - java-pkg_dolauncher ${PN}-${SLOT} --main clojure.main - dodoc changes.md CONTRIBUTING.md readme.txt -} diff --git a/dev-lang/clojure/clojure-1.9.0-r1.ebuild b/dev-lang/clojure/clojure-1.9.0-r1.ebuild deleted file mode 100644 index 25c5659590a7..000000000000 --- a/dev-lang/clojure/clojure-1.9.0-r1.ebuild +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -JAVA_PKG_IUSE="test" - -inherit java-pkg-2 java-ant-2 - -EGIT_REF="e5a8cfa" - -DESCRIPTION="General-purpose programming language with an emphasis on functional programming" -HOMEPAGE="https://clojure.org/" -SRC_URI="https://github.com/clojure/${PN}/archive/${P}.tar.gz" - -LICENSE="EPL-1.0 Apache-2.0 BSD" -SLOT="1.9" -KEYWORDS="~amd64 ~x86 ~x86-linux" -RESTRICT="!test? ( test )" # broken due to file not found issue and more - -CDEPEND=" - dev-java/spec-alpha:0.1 - dev-java/core-specs-alpha:0.1 - dev-java/ant-core:0" - -RDEPEND=" - ${CDEPEND} - >=virtual/jre-1.8" - -DEPEND=" - ${CDEPEND} - >=virtual/jdk-1.8" - -S="${WORKDIR}/clojure-${PN}-${EGIT_REF}" - -DOCS=( changes.md CONTRIBUTING.md readme.txt ) - -src_compile() { - eant -Dmaven.compile.classpath=$(java-pkg_getjars core-specs-alpha-0.1,spec-alpha-0.1) -f build.xml jar -} - -src_test() { - eant -f build.xml test -} - -src_install() { - java-pkg_newjar "${PN}.jar" - java-pkg_dolauncher ${PN}-${SLOT} --main clojure.main - einstalldocs -} diff --git a/dev-lang/fpc/Manifest b/dev-lang/fpc/Manifest index 1f98b44a093f..e9a45587bd7f 100644 --- a/dev-lang/fpc/Manifest +++ b/dev-lang/fpc/Manifest @@ -1,14 +1,8 @@ -DIST fpc-3.0.4-doc-html.tar.gz 5658315 BLAKE2B 49f9e6f3848ad1aaad8b1621ffd5d2026590b3eed515b9bebe09c489cdf2d7170fcf7413794daebf3465190f5588317325b81d9723d824ab49c81db796f2f48f SHA512 1ebc8c5c5f213568dd24d50667c7939e00c33796c131db174ee93a4dc36122383e7d803cd280896c603eccfadc5bc3474b1831fa7f3e457a58fb3a045b8c33b1 -DIST fpc-3.0.4.i386-linux.tar 54691840 BLAKE2B c0951c85a3916c29e8e7391408da09abd86898a42159bfd7e637410ecf3e3a3f266a33edb5eb5ad458be92cf1fc7741eb249a512fe817a73a13207e216e0c0d2 SHA512 eee7528a69d5c745981efc90f571542047a5e6b4f1b391ad5341460035da5feffdfc4c38229134d23513239ccb33dcbc95354559e45746f1f6665541c60d0ca7 -DIST fpc-3.0.4.source.tar.gz 40347617 BLAKE2B 0764c92cc379d6e70a3f33368d96244ea0203b3395a5dbcadebe6ef51b508cbc7c112f9bc7bce69ae6dae1fde03bc9e45a1a8ad70ca154cc4dd51bc93cab82f9 SHA512 fc64fd94c39f220bd7531126d6281fa2141aed61c218595a7906a025660b46629a305ff7eb023f5e1359eafdec2dba69aa5405f1bbc3c1182414968689cbb52e -DIST fpc-3.0.4.x86_64-linux.tar 56842240 BLAKE2B fda488466f409d4f50501ad17edcce2740f0a7e60ac86bbfec235ccc27c619d62d2aab01aa7878ba3e174c35fd46aab98e43eda4528e98fdf3e098330eea9b26 SHA512 085110d0fade11c4e6e79c002522080eb070cebb8ebbed48ca35e3a2dc025df678516e36c7cba5f951e20c0da57dd261d673dda6839ecdf5d88aa8dfe15a56e5 DIST fpc-3.2.2-doc-html.tar.gz 5810672 BLAKE2B 5d2c0ce35024f58d35e59034d4c071ec58214874f31ef44b8f4ea8cb68636080b61dea9a5d0ccc8062814c0b2fe3bc5269e6584ae30fedb29dbb0709ce1b3103 SHA512 0bdefd25b9f46bb6684bb4dd8f60de796cbbf81049a7e8bac4cc4bc87dd6100a42ea05601cf1bb0254e8b73ddaf5d1bf186dbf1909f1ed7db7bdf97f50df7cdc DIST fpc-3.2.2.aarch64-linux.tar 137943040 BLAKE2B 1f2b3ff35d33419bd60a65bee8e20264a7970e515e0d8239dc51bd415b9a4fc580b7d3bd7fcd2a6964f78669e9dda13d1349281116004d582236a4f314dc6935 SHA512 8a52c53cd167af39222296db7c91aadf0b5d845272833a961c5db0c7d2d4cb5e61f41f71e0989c193dc2923770440b19d7d3d71de65291d0a3e0a15edc793316 DIST fpc-3.2.2.i386-linux.tar 85043200 BLAKE2B 9e2fae2d272c79cc7fcf4d062589bd888c342ccfb01e3f14e412bc58ff6b04928c6a7a0a4b3392b30f0864f16029d063632bd72bd9cac55e0a40a00fb726ef93 SHA512 b4f1a94d1a05901f4ffc2e07519e9b03666850211e571cbce33f0ba16d8a1d88de256c8e111579f46d56f157630dfc722a8ae9ce2b200fc784c588ea4e6bd5df DIST fpc-3.2.2.source.tar.gz 52240052 BLAKE2B e30cf1b10c4cafd0ae2a25673678213669c29dec0549f4d7b357011e84a0a2c8ecf343cb6443798e6c36c02ae97a0c7cae7ca24829510c552968d4a58426576f SHA512 6d320b4e0805d63c40d3037f9d2078068c2c9fcdeb6ac073a6fcc19249bd6325dc542fcc7fc6dbb7e69507dcd84cf9e720e7d73925afe955e2a24e8c7d92606a DIST fpc-3.2.2.x86_64-linux.tar 86978560 BLAKE2B 29cac8c0da4ba65cee6a0e0cd3c111202c8943ca61a02c5dfeaeb174c353db6fc07e291794ef7433f9fdf88ed694260e734bc715567c6a12292b0c8524d17f4e SHA512 534df830a951824525044479ded23ef1e61b104c0dd65c837ad0d8d9ced9eb7349925a3f759756aa95ae17e567d8b1cd5c7e2092d3c665eaac578845b48aa467 -DIST fpcbuild-3.0.4.tar.gz 68908523 BLAKE2B b5c3936cf0b803aa2cc71f9c25ded470f207c540a1691cf3c2a9876c9e4eefd5c04f45b9f1f3ca17917b14ba4a90e0f16cc890b27024ff225d9d6bb25649862b SHA512 eedfeb4d25b3f4cb30ae9c8f30e0fec2405ef806fa565933cef7904d512f781730e3f023aea2f908c21250e3ced4f74fa780abad77b560728a88cedf591505b6 DIST fpcbuild-3.2.2.tar.gz 84195619 BLAKE2B 88848308c93f949b59197649cc344498082b6520e43eb1d4413bf68eb251fcab75c863794a188a2298d9e8aba47346253a596ac630b30049ac8bd6f6934aa5a2 SHA512 75889bb54adc70a6e2cbd291476b9b12d61c8f943a05b7d16d2024de3215c935465ff43b1400c412e128e260c7f49a9c66e35c21f86cb866e671b5b60a282d82 -EBUILD fpc-3.0.4.ebuild 4462 BLAKE2B be022df7469922721d72f3e859b87ef9f265e5523105f7534bc590670b9ac416cf3e3d4f425f2804bc914bfa31f11911728fd74dce36afc76c1de0f0fa865f80 SHA512 0a1636056da7eb640123aa11a9f77f26a438f302c6dc6de18d5c9156c737dc2d8ab035b4e17636078ac5b122eac1850f8d7ab42e556cadd0af6f41e4eadd2adc EBUILD fpc-3.2.2.ebuild 4666 BLAKE2B 06aaf8875f7abd3d017245cd25f2e36e58b95d19afe0cfb8c64be5df4d1aea1df73b438b508be4bd7991739fcca06e0b772ed664dacfc94ed18b4082a9ed8b05 SHA512 f58deae3e635c8f2ddf7a8ed5449f6445a34e87769d6b613c858e3e3f9955ea89d3a7a1df651989390ee601e20b273272385d25777b492a83abc5c1b18f112e7 -MISC metadata.xml 386 BLAKE2B dbaae2622365b59e14a6e0daace220a41d2038d93d861045245f3b688edf0467044cfb4672be9e286466044647efb3edbf0cbfa79270b0cd35bd8a6575b642a5 SHA512 cec11361b6248b0a3c5a26fb8de7ba99517a193e6add2c4d6cda0213421f8f9d4f63465f65f1fefba293b0f49a8e452e8de3ca06be8a99b5a203f48e01b742bf +MISC metadata.xml 298 BLAKE2B e94ba4996896978884c27b92ccfc962c1ed291d2f2e6bfc2744b43438b22097835a21a95beaa6c3e56220522e371710c0d10e6b679b99856bc412f15eb511f30 SHA512 1aa916665f37b7c3ced22d218cab65bf3fbf3c29caa2d51c9350eeb5b06f16ccf226b4b76b3177cff2dbe47c8e575f4bdfc9fb6164eb89aaf466193a636fd7d4 diff --git a/dev-lang/fpc/fpc-3.0.4.ebuild b/dev-lang/fpc/fpc-3.0.4.ebuild deleted file mode 100644 index eec18b966ca8..000000000000 --- a/dev-lang/fpc/fpc-3.0.4.ebuild +++ /dev/null @@ -1,165 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 - -inherit prefix toolchain-funcs - -HOMEPAGE="https://www.freepascal.org/" -DESCRIPTION="Free Pascal Compiler" -SRC_URI="mirror://sourceforge/freepascal/fpcbuild-${PV}.tar.gz - mirror://sourceforge/freepascal/fpc-${PV}.source.tar.gz - amd64? ( mirror://sourceforge/freepascal/${P}.x86_64-linux.tar ) - x86? ( mirror://sourceforge/freepascal/${P}.i386-linux.tar ) - doc? ( mirror://sourceforge/freepascal/Documentation/${PV}/doc-html.tar.gz -> ${P}-doc-html.tar.gz )" - -SLOT="0" -LICENSE="GPL-2 LGPL-2.1-with-linking-exception" -KEYWORDS="-* amd64 x86" -IUSE="doc ide source" - -RDEPEND="ide? ( !dev-lang/fpc-ide )" - -RESTRICT="strip" #269221 - -S=${WORKDIR}/fpcbuild-${PV}/fpcsrc - -pkg_pretend() { - if [[ ${MERGE_TYPE} != binary ]]; then - # Bug 475210 - if $(tc-getLD) --version | grep -q "GNU gold"; then - eerror "fpc does not function correctly when built with the gold linker." - eerror "Please select the bfd linker with binutils-config." - die "GNU gold detected" - fi - fi -} - -src_unpack() { - case ${ARCH} in - amd64) FPC_ARCH="x86_64" PV_BIN=${PV} ;; - x86) FPC_ARCH="i386" PV_BIN=${PV} ;; - *) die "This ebuild doesn't support ${ARCH}." ;; - esac - - unpack ${A} - - tar -xf ${PN}-${PV_BIN}.${FPC_ARCH}-linux/binary.${FPC_ARCH}-linux.tar || die "Unpacking binary.${FPC_ARCH}-linux.tar failed!" - tar -xzf base.${FPC_ARCH}-linux.tar.gz || die "Unpacking base.${FPC_ARCH}-linux.tar.gz failed!" -} - -src_prepare() { - find "${WORKDIR}" -name Makefile -exec sed -i -e 's/ -Xs / /g' {} + || die - - # let the pkg manager compress man files - sed -i '/find man.* gzip /d' "${WORKDIR}"/fpcbuild-${PV}/install/man/Makefile || die - - # make the compiled binary check for fpc.cfg under the prefixed /etc/ path - hprefixify "${WORKDIR}"/fpcbuild-${PV}/fpcsrc/compiler/options.pas -} - -set_pp() { - case ${ARCH} in - amd64) FPC_ARCH="x64" FPC_PARCH="x86_64" ;; - x86) FPC_ARCH="386" FPC_PARCH="i386" ;; - *) die "This ebuild doesn't support ${ARCH}." ;; - esac - - case ${1} in - bootstrap) pp="${WORKDIR}"/lib/fpc/${PV_BIN}/ppc${FPC_ARCH} ;; - new) pp="${S}"/compiler/ppc${FPC_ARCH} ;; - *) die "set_pp: unknown argument: ${1}" ;; - esac -} - -src_compile() { - local pp - - # Using the bootstrap compiler. - set_pp bootstrap - - emake -j1 PP="${pp}" compiler_cycle AS="$(tc-getAS)" - - # Save new compiler from cleaning... - cp "${S}"/compiler/ppc${FPC_ARCH} "${S}"/ppc${FPC_ARCH}.new || die - - # ...rebuild with current version... - emake -j1 PP="${S}"/ppc${FPC_ARCH}.new AS="$(tc-getAS)" compiler_cycle - - # ..and clean up afterwards - rm "${S}"/ppc${FPC_ARCH}.new || die - - # Using the new compiler. - set_pp new - - emake -j1 PP="${pp}" AS="$(tc-getAS)" rtl_clean - - emake -j1 PP="${pp}" AS="$(tc-getAS)" rtl packages_all utils - - if use ide ; then - cd "${S}"/ide || die - emake -j1 PP="${pp}" AS="$(tc-getAS)" - fi -} - -src_install() { - local pp - set_pp new - - #fpcbuild-3.0.0/utils/fpcm/fpcmake - #${WORKDIR}/${PN}build-${PV}/utils/fpcm/fpcmake" - #fpcbuild-3.0.0/fpcsrc/utils/fpcm/bin/x86_64-linux/fpcmake - set -- PP="${pp}" FPCMAKE="${S}/utils/fpcm/bin/${FPC_PARCH}-linux/fpcmake" \ - INSTALL_PREFIX="${ED}"/usr \ - INSTALL_DOCDIR="${ED}"/usr/share/doc/${PF} \ - INSTALL_MANDIR="${ED}"/usr/share/man \ - INSTALL_SOURCEDIR="${ED}"/usr/lib/fpc/${PV}/source - - emake -j1 "$@" compiler_install rtl_install packages_install utils_install - - dosym ../lib/fpc/${PV}/ppc${FPC_ARCH} /usr/bin/ppc${FPC_ARCH} - - cd "${S}"/../install/doc || die - emake -j1 "$@" installdoc - - cd "${S}"/../install/man || die - emake -j1 "$@" installman - - if use doc ; then - cd "${S}"/../../doc || die - dodoc -r * - fi - - if use ide ; then - cd "${S}"/ide || die - emake -j1 "$@" install - fi - - if use source ; then - cd "${S}" || die - shift - emake -j1 PP="${ED}"/usr/bin/ppc${FPC_ARCH} "$@" sourceinstall - find "${ED}"/usr/lib/fpc/${PV}/source -name '*.o' -exec rm {} \; - fi - - "${ED}"/usr/lib/fpc/${PV}/samplecfg "${ED}"/usr/lib/fpc/${PV} "${ED}"/etc || die - - # set correct (prefixed) path for e.g. unit files - sed -i "s:${ED}:${EPREFIX}:g" "${ED}"/etc/fpc.cfg || die - - if use ide ; then - sed -e "s:${ED}::g" \ - -i "${ED}"/etc/fppkg.cfg \ - -i "${ED}"/etc/fppkg/* \ - -i "${ED}"/usr/lib/fpc/${PV}/ide/text/fp*.cfg \ - || die - fi - - rm -r "${ED}"/usr/lib/fpc/lexyacc || die -} - -pkg_postinst() { - if [[ -z ${REPLACING_VERSIONS} ]] && use ide; then - einfo "To read the documentation in the fpc IDE, enable the doc USE flag" - fi -} diff --git a/dev-lang/fpc/metadata.xml b/dev-lang/fpc/metadata.xml index 7a066e2ba0e7..99d9bf754fda 100644 --- a/dev-lang/fpc/metadata.xml +++ b/dev-lang/fpc/metadata.xml @@ -4,9 +4,6 @@ amynka@gentoo.org - - Build and install the Free Pascal Compiler IDE - freepascal diff --git a/dev-lang/lfe/Manifest b/dev-lang/lfe/Manifest index 95859a5c2130..727acb93f7d9 100644 --- a/dev-lang/lfe/Manifest +++ b/dev-lang/lfe/Manifest @@ -1,8 +1,6 @@ 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 589 BLAKE2B 94dca142b926d73c55b24cf6976002b20a938f93ee49cf143d57284b936248c757daf32a80b4ef431a1a54287b618c83c48500db9a7ff330ec794a0d79b90498 SHA512 d34f128e89a8032b69060bba0630dc206604cd694b9d47e50763128f1dbb16fea9f7e9a8902d8f19f55ca26569c6aa89bd560a78a4b861b6cbe1366460cc8c0b diff --git a/dev-lang/lfe/lfe-1.1.1.ebuild b/dev-lang/lfe/lfe-1.1.1.ebuild deleted file mode 100644 index bfb8337090ea..000000000000 --- a/dev-lang/lfe/lfe-1.1.1.ebuild +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 - -inherit multilib - -DESCRIPTION="Lisp-flavoured Erlang" -HOMEPAGE="http://lfe.github.io/" -SRC_URI="https://github.com/rvirding/lfe/archive/v${PV}.zip -> ${P}.zip" - -LICENSE="BSD-2" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="" - -RDEPEND="dev-lang/erlang" -DEPEND="${RDEPEND}" - -src_prepare() { - export PATH="${S}/bin:$PATH" -} - -src_compile() { - emake compile -j1 -} - -src_install() { - dobin bin/lfe - dobin bin/lfec - dobin bin/lfescript - dodir /usr/$(get_libdir)/erlang/lib/lfe/ebin/ - dodir /usr/$(get_libdir)/erlang/lib/lfe/emacs/ - cp -R "${S}/ebin" "${D}/usr/$(get_libdir)/erlang/lib/lfe/" - cp -R "${S}/emacs" "${D}/usr/$(get_libdir)/erlang/lib/lfe/" -} diff --git a/dev-lang/micropython/Manifest b/dev-lang/micropython/Manifest index 841da25ad582..11dac64a4769 100644 --- a/dev-lang/micropython/Manifest +++ b/dev-lang/micropython/Manifest @@ -1,5 +1,9 @@ AUX micropython-1.11-exclude-float-parse-tests.patch 571 BLAKE2B e231ab697dcefdcc05a0e44063def130b6f79536a8d416ddd3a400e4effe0f499343ca0cb45388fbfe3426e0e8ea79fad3acd7a10e07199d32d78af04d1defe6 SHA512 2721316002052534537def580b1f7b0c42fc2fdbd36fd82c2f9c5cd6f504ad17a6e0a9e9aca4f7f0270b6f4f60cfdf70b8fb69c62ac291d1eb24d1ebfedbe539 AUX micropython-1.11-prevent-stripping.patch 827 BLAKE2B e4da5582029c800dd166104a36834e23c20826af3f9988a85f1b29c1ac8c82fe762ddfde9a83a0a8b45ab07ab7cfed89ebab9a7a35c7276d292b51f003665c9e SHA512 366abdba975f9f7a54c1e0882414744b0b216fb6d9a4ce4c2022c7bedd3c31349a3652b751c4b3157584de9e0490e5435c17c20f9d453b1aa4eecd62f716ab07 +AUX micropython-1.17-exclude-float-parse-tests.patch 525 BLAKE2B f9a3b7c8f625edcac31be6df9dd7936e9f9099995875e55882206241a24c252148b64ec726643d1700ad59d615cabdaa69377d2d303e4572dc2f600255c76930 SHA512 e5c67b461fd132b71ca87325cb4a4fe5608b18d6b1e058746d87d39832c92bcc9673366755292d6cb51fd2770a2ddea0688bcdd7f2052a2c2ee2f180e9b63c69 +AUX micropython-1.17-prevent-stripping.patch 461 BLAKE2B 9daee505d5c446a3a6756336cfc5fb016053f36f5f567cf35aa6ab9a1b794a28fd92b81a27ffc2ce077a75c422c9b2a957c417b561edcf85ffa5653e1eddec41 SHA512 0cd5a8c499552b0728242af531406e0d26d91f560d7d4b38ea6fd0bc0b43639e77af9e56b6b89cba5d5661131357fa1a714c3fe734e3ab59f60fc63258d00c4c DIST micropython-1.11.tar.gz 23010708 BLAKE2B 8deb29f2a27b8299f62c8c3d332654889e610ddc6854dc38c6cf7504c89f2f9cbbacccdc2d8e471d96b8bb28bbb920fe7ec1b8fd49b14209924262f54687c3c1 SHA512 255860e56bf51c4f35a00cf66fff3ee37fbef1e0d674af6ed580367d8b3d2d60fb88609a675e8f322fd466a23006e38078b67edd6f306e639d6be12abb2972d2 +DIST micropython-1.17.tar.xz 56606868 BLAKE2B a6338d173de646764c1573ebabdb9818746a479fd2dd618f9be9955881e3829c4d89da4602934e71655734ec1c6f2150a6ac2c54a5fed9bee998905a00d5c6ea SHA512 8074214040e35ae1ca99721ec442f4cef70fa03380b7662016c55cb3acff9178fc54140c0d818c9581389b4daaade142ecf75b65a2919c666a50255423a39a54 EBUILD micropython-1.11-r1.ebuild 1380 BLAKE2B ea3bfb173760d1f01a39a369449d0171974f28383f46419d497f587628a157998e3f5cc16e43c298b46109d7842f01804a38964b8bb8b57680d84051eefea079 SHA512 2f71d0a083e6910b7ce9c9adb7b366b067ac2adeeb7ee47d334b8d197ac672492ca457f0cfd6aaf63cde958721f0be65ae68465c944e09e98f129873f48285f6 +EBUILD micropython-1.17.ebuild 1380 BLAKE2B 6f607e4102bd86502271282d68cc1f4632914cbd69a44b24eb862908cf0f932a15b8fe939ca09768ea256f4cb612c4d96b8351c94003a913054fb9da94fe6e32 SHA512 b9f7706a297e9513643a48f3fe73d6edc500bf7067b59b24b151c2d5e60c97951827f8cce5b4aac5cf094fff7356aee476dee33b0b462554b9ac995d87e0954b MISC metadata.xml 1247 BLAKE2B f08da5a443696e12372f245081e7938c59069e9f57195b3c1c17758c2809dc4a4cfab8133dda55c74d1e014848a78ea01fdf4c8c5a863da15856d183537d7686 SHA512 74c8946a2c321e9c03b11985fa5b23f5055be6a4b268b933cb5337751bdf31516fde8c83cdf4d8c39b161072a05cc3e781f64a5ad5a7323c735b85d7af5051ad diff --git a/dev-lang/micropython/files/micropython-1.17-exclude-float-parse-tests.patch b/dev-lang/micropython/files/micropython-1.17-exclude-float-parse-tests.patch new file mode 100644 index 000000000000..8f44d31fd96f --- /dev/null +++ b/dev-lang/micropython/files/micropython-1.17-exclude-float-parse-tests.patch @@ -0,0 +1,11 @@ +--- a/tests/run-tests.py 2021-10-25 12:25:48.422212212 -0000 ++++ b/tests/run-tests.py 2021-10-25 12:26:01.382135667 -0000 +@@ -521,6 +521,8 @@ + "micropython/opt_level_lineno.py" + ) # native doesn't have proper traceback info + skip_tests.add("micropython/schedule.py") # native code doesn't check pending events ++ skip_tests.add("float/float_parse_doubleprec.py") ++ skip_tests.add("float/float_parse.py") + + def run_one_test(test_file): + test_file = test_file.replace("\\", "/") diff --git a/dev-lang/micropython/files/micropython-1.17-prevent-stripping.patch b/dev-lang/micropython/files/micropython-1.17-prevent-stripping.patch new file mode 100644 index 000000000000..1c5380ed883b --- /dev/null +++ b/dev-lang/micropython/files/micropython-1.17-prevent-stripping.patch @@ -0,0 +1,12 @@ +--- a/py/mkrules.mk 2021-10-25 12:30:13.723695503 -0000 ++++ b/py/mkrules.mk 2021-10-25 12:30:18.460327366 -0000 +@@ -198,9 +198,6 @@ + # Do not pass COPT here - it's *C* compiler optimizations. For example, + # we may want to compile using Thumb, but link with non-Thumb libc. + $(Q)$(CC) -o $@ $^ $(LIB) $(LDFLAGS) +-ifndef DEBUG +- $(Q)$(STRIP) $(STRIPFLAGS_EXTRA) $@ +-endif + $(Q)$(SIZE) $$(find $(BUILD) -path "$(BUILD)/build/frozen*.o") $@ + + clean: clean-prog diff --git a/dev-lang/micropython/micropython-1.17.ebuild b/dev-lang/micropython/micropython-1.17.ebuild new file mode 100644 index 000000000000..ce87e6721415 --- /dev/null +++ b/dev-lang/micropython/micropython-1.17.ebuild @@ -0,0 +1,65 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit toolchain-funcs + +DESCRIPTION="Python implementation for microcontrollers" +HOMEPAGE="https://github.com/micropython/micropython" +SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz" + +KEYWORDS="~amd64 ~x86" +LICENSE="MIT" +SLOT="0" +IUSE="test" +RESTRICT="!test? ( test )" + +DEPEND=" + dev-libs/libffi:= + virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}/${P}-prevent-stripping.patch" + "${FILESDIR}/${P}-exclude-float-parse-tests.patch" +) + +src_prepare() { + default + + cd ports/unix || die + + # 1) don't die on compiler warning + # 2) remove /usr/local prefix references in favour of /usr + # 3) enforce our CFLAGS + # 4) enforce our LDFLAGS + sed -e 's#-Werror##g;' \ + -e 's#\/usr\/local#\/usr#g;' \ + -e "s#^CFLAGS = \(.*\)#CFLAGS = \1 ${CFLAGS}#g" \ + -e "s#^LDFLAGS = \(.*\)#LDFLAGS = \1 ${LDFLAGS}#g" \ + -i Makefile || die "can't patch Makefile" +} + +src_compile() { + cd ports/unix || die + + emake CC="$(tc-getCC)" axtls + emake CC="$(tc-getCC)" +} + +src_test() { + cd ports/unix || die + emake CC="$(tc-getCC)" test +} + +src_install() { + pushd ports/unix > /dev/null || die + emake CC="$(tc-getCC)" DESTDIR="${D}" install + popd > /dev/null || die + + # remove .git files + find tools -type f -name '.git*' -exec rm {} \; || die + + dodoc -r tools + einstalldocs +} diff --git a/dev-lang/nasm/Manifest b/dev-lang/nasm/Manifest index ff3a5bca947f..fa70411f99fe 100644 --- a/dev-lang/nasm/Manifest +++ b/dev-lang/nasm/Manifest @@ -1,4 +1,4 @@ AUX nasm-2.15-bsd-cp-doc.patch 278 BLAKE2B eb2d6fffb03da68a43df8db6cbadeb72753f0474f91011038b6ec0b3a449fbd0e3cde59abfb1b22fa0c991629960f456815b1c86ec55292f54a879d8a0a079f1 SHA512 ba691e4f0fd3b676280de5b79e6872f7efe034da28fc66e247c3f757761e2191c54f585ca724747812fa55afb4b9d76366f50659702561c7eb69483de265b3e5 DIST nasm-2.15.05.tar.xz 995732 BLAKE2B a41434965c2125577b762d907a0a3c251c75d9f9beac230fba4099182c7f7beb08c6d2c05c2432b0dc8ba829f24077f44c3096faea9bd0a533250e6dbbfaef35 SHA512 512f90a2584f1c5811429274b97c64a2cedf37b9fdeffb1bcd0ea64afd9ecc19a2d7877ca8f1e05393aa324153fc9f39ea51dacbf8d25a7d5a2d7728c925dba7 -EBUILD nasm-2.15.05.ebuild 936 BLAKE2B e454e11fbc32240c5284b5c389e43e3d0f27afc8be49697b2fd5458a930fb5cbc69a3f575cf1ad3f53d3ebf8be7be321abae424b8518ca7e39f64cf9ec688bc1 SHA512 1570a7698d06684716131ae7bfbdae5f21e4259bd0c7201343e053ea56d362bf917efbdec7bb12b5e56d065db7af4d6cd94a0d2f09abe0b7007880a124b03211 +EBUILD nasm-2.15.05.ebuild 943 BLAKE2B cd138fb530af0a806943868b4affeedeb0ef6670b744e09a7560ba3e12f60052ae50a2e6dfffc96cdf0a80f6efef1c87e873841c68cfb5c34c5a6b18056bbeb9 SHA512 fe33ae366d9309f797af1996cf8b8ae75c0e7027ab093fd10889cf17394d80b0d62b5871e247f768cefe00809377383c56f41fb58e0798490eed68bcc038ca0e MISC metadata.xml 1028 BLAKE2B f34ad57e76e94d4044c2c6d3a7c7d88fc975fd464d5ddcb73a62d797bda1027618fd579a2634af0eede33c3c0e059cb426a9e744c1436221b2b101b8c22b4ee2 SHA512 a35c5df2a607570745e8797a9c7c45bc9a04b02f3bfd8848b900b61638bd7db70643ce7e6add04738e0486b97b2f127fba07ef1994d10b154b2ab4f8b39d182e diff --git a/dev-lang/nasm/nasm-2.15.05.ebuild b/dev-lang/nasm/nasm-2.15.05.ebuild index 399a50a8a0f2..0e5a4eeeb377 100644 --- a/dev-lang/nasm/nasm-2.15.05.ebuild +++ b/dev-lang/nasm/nasm-2.15.05.ebuild @@ -10,7 +10,7 @@ S="${WORKDIR}"/${P/_} LICENSE="BSD-2" SLOT="0" -KEYWORDS="amd64 ~arm64 ~ia64 ~ppc64 x86 ~amd64-linux ~x86-linux" +KEYWORDS="amd64 ~arm64 ~ia64 ~ppc64 ~riscv x86 ~amd64-linux ~x86-linux" IUSE="doc" # [fonts note] doc/psfonts.ph defines ordered list of font preference. diff --git a/dev-lang/perl/Manifest b/dev-lang/perl/Manifest index 8f62de3d0bd9..ec934b25bf7b 100644 --- a/dev-lang/perl/Manifest +++ b/dev-lang/perl/Manifest @@ -3,6 +3,6 @@ AUX perl-5.34.0-gdbm-1.20.patch 1627 BLAKE2B 9cbe976f43134022aab2aca203ee6590af5 DIST perl-5.34.0-patches-1.tar.xz 20360 BLAKE2B e60074c49f357d4841708f58b5165a44201783238ff33ee81580bb83ba07d3d2dda447edd30a71ce8c9bafe5e5e0235b68e31a79081c3482bdd589231f0e898e SHA512 909e1fb22cda4ca769b51645b51a64df81b92210cfee388ac57834406bc13e404f0a1e6bad0888fafc73fc34b7fb224801fd02e87fb4c2f9145482ad74374e7b DIST perl-5.34.0.tar.xz 12881416 BLAKE2B 4139e77fbb38b2b72671c0b130233cf5ed35112bbba3301b8ed724739c7ff96b041752aa505b938e257ef6ebf98a9b6dad1858e00f756c841a0520688d974e9a SHA512 691b4b31eacec357191fba777612b4e3eae59e946a22998a50766697c0d61db1d42a9b3bc1e41abf0d1ca1893e4a7c06d7bf3290480cf03d7f79befd7a8a3267 DIST perl-cross-1.3.6.tar.gz 110210 BLAKE2B 39074d6f4a526f59de2b1c40432936552e625a5a4e44fbb7ce3c1c3828b12c5298d1ab49b7d34ea92e2a4c8c88f8bbef8cc0c582a3fbbed975cf46d331e89c08 SHA512 d394fbd75d890442aa599eae8893a26540c8b7af966583ad1c3213c3fe0e074415cfed8814de8f397830833fd78267bdc55adc5267168198f269634c2ef3b982 -EBUILD perl-5.34.0-r2.ebuild 25961 BLAKE2B 52db67be3b652189eb95a96b9949cffcccaf3d518850e2874daf51407c3904076ff69f57508888c4cb82d2a6bb412717b81878bf5a89e1ab5e9e6ab327620547 SHA512 7f694dc10ae960869dab2b74464b0804f4b5ca197c59a914ed674a185fcfc434a363ff48bb9bea67a4b02bcd4ed134d39cf0e8700a17515d63d049d6ab9fd089 EBUILD perl-5.34.0-r3.ebuild 26141 BLAKE2B 9eb33f6777b266b9a617a06d14b89ec29ca7e3a0a3596d5955f1b5f9e10a05db45eb2883b782329317065f2e92fee4378e75faebcbf49ad83d13f7714d036dcd SHA512 f0a140c3536192d0198e54b7d2f7b2316eae2b065627fe96df8949d97e0e61c37406e0cac7c827a58002251235c2b21f75d5b32f4cdf874596e6ec0fcbbe7295 +EBUILD perl-5.34.0-r5.ebuild 25106 BLAKE2B 73339ffa2881382ce7f451d91fc100e7a6911976875cf794ce439240ed2078203eac584115dde60ec4cd491591c6528a5f027607945693cb224ee52d61dd9921 SHA512 de18aaefb19ce785b5fbd42ff96eb3d6c6892cbfcef04d76a241abbe1f68f7d9d36bdadacc18443ce924fa22d9b2d57c0551dfdc9d3efa3ce72f53753eeabbeb MISC metadata.xml 431 BLAKE2B 89471506c7b258c1806338a5850ee9337f48b8e7497a3cad8b1e8bf18811152071d416732e0267e7d0c13386097990d1ca12bb0051deb7cb70403ab2e9bdb367 SHA512 87d2a0c6a10f71b243b1e9a79306ed0d440a7f447d84fe37f2bd3c40c60e8749fd9d7e97ad482e286153587b57d7db5d6a8df7cef94f332de7175f053dc843e1 diff --git a/dev-lang/perl/perl-5.34.0-r2.ebuild b/dev-lang/perl/perl-5.34.0-r2.ebuild deleted file mode 100644 index 4c2d1bce1edd..000000000000 --- a/dev-lang/perl/perl-5.34.0-r2.ebuild +++ /dev/null @@ -1,823 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing - -PATCH_VER=1 -CROSS_VER=1.3.6 -PATCH_BASE="perl-5.34.0-patches-${PATCH_VER}" -PATCH_DEV=dilfridge - -DIST_AUTHOR=XSAWYERX - -# Greatest first, don't include yourself -# Devel point-releases are not ABI-intercompatible, but stable point releases are -# BIN_OLDVERSEN is contains only C-ABI-intercompatible versions -PERL_BIN_OLDVERSEN="" - -# Yes we can. -PERL_SINGLE_SLOT=y - -if [[ "${PV##*.}" == "9999" ]]; then - DIST_VERSION=5.30.0 -else - DIST_VERSION="${PV/_rc/-RC}" -fi -SHORT_PV="${DIST_VERSION%.*}" -# Even numbered major versions are ABI intercompatible -# Odd numbered major versions are not -if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then - SUBSLOT="${DIST_VERSION%-RC*}" -else - SUBSLOT="${DIST_VERSION%.*}" -fi -# Used only in tar paths -MY_P="perl-${DIST_VERSION}" -# Used in library paths -MY_PV="${DIST_VERSION%-RC*}" - -DESCRIPTION="Larry Wall's Practical Extraction and Report Language" - -SRC_URI=" - mirror://cpan/src/5.0/${MY_P}.tar.xz - mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz - https://github.com/gentoo-perl/perl-patchset/releases/download/${PATCH_BASE}/${PATCH_BASE}.tar.xz - https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz - https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz -" -HOMEPAGE="https://www.perl.org/" - -LICENSE="|| ( Artistic GPL-1+ )" -SLOT="0/${SUBSLOT}" - -if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" -fi - -IUSE="berkdb debug doc gdbm ithreads minimal" - -RDEPEND=" - berkdb? ( sys-libs/db:= ) - gdbm? ( >=sys-libs/gdbm-1.8.3:= ) - app-arch/bzip2 - sys-libs/zlib - virtual/libcrypt:= -" -DEPEND="${RDEPEND}" -BDEPEND="${RDEPEND}" - -PDEPEND=" - !minimal? ( - >=app-admin/perl-cleaner-2.5 - >=virtual/perl-Encode-3.120.0 - >=virtual/perl-File-Temp-0.230.400-r2 - >=virtual/perl-Data-Dumper-2.154.0 - virtual/perl-Test-Harness - ) -" -# bug 390719, bug 523624 -# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker - -S="${WORKDIR}/${MY_P}" - -dual_scripts() { - src_remove_dual perl-core/Archive-Tar 2.380.0 ptar ptardiff ptargrep - src_remove_dual perl-core/CPAN 2.280.0 cpan - src_remove_dual perl-core/Digest-SHA 6.20.0 shasum - src_remove_dual perl-core/Encode 3.80.0 enc2xs piconv - src_remove_dual perl-core/ExtUtils-MakeMaker 7.620.0 instmodsh - src_remove_dual perl-core/ExtUtils-ParseXS 3.430.0 xsubpp - src_remove_dual perl-core/IO-Compress 2.102.0 zipdetails - src_remove_dual perl-core/JSON-PP 4.60.0 json_pp - src_remove_dual perl-core/Module-CoreList 5.202.105.200 corelist - src_remove_dual perl-core/Pod-Checker 1.740.0 podchecker - src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc - src_remove_dual perl-core/Pod-Usage 2.10.0 pod2usage - src_remove_dual perl-core/Test-Harness 3.430.0 prove - src_remove_dual perl-core/podlators 4.140.0 pod2man pod2text - src_remove_dual_man perl-core/podlators 4.140.0 /usr/share/man/man1/perlpodstyle.1 -} - -check_rebuild() { - # Fresh install - if [[ -z "${REPLACING_VERSIONS}" ]]; then - return 0; - # Major Upgrade - # doesn't matter if there's multiple copies, it still needs a rebuild - # if the string is anything other than "5.CURRENTMAJOR" - elif [[ "${REPLACING_VERSIONS%.*}" != "${PV%.*}" ]]; then - echo "" - ewarn "UPDATE THE PERL MODULES:" - ewarn "After updating dev-lang/perl the installed Perl modules" - ewarn "have to be re-installed. In most cases, this is done automatically" - ewarn "by the package manager, but subsequent steps are still recommended" - ewarn "to ensure system consistency." - ewarn - ewarn "You should start with a depclean to remove any unused perl dependencies" - ewarn "that may confuse portage in future. Regular depcleans are also encouraged" - ewarn "as part of your regular update cycle, as that will keep perl upgrades working." - ewarn "Recommended: emerge --depclean -va" - ewarn - ewarn "You should then call perl-cleaner to clean up any old files and trigger any" - ewarn "remaining rebuilds portage may have missed." - ewarn "Use: perl-cleaner --all" - return 0; - - # Reinstall w/ USE Change - elif ( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \ - ( ! use ithreads && has_version dev-lang/perl[ithreads] ) || \ - ( use debug && ! has_version dev-lang/perl[debug] ) || \ - ( ! use debug && has_version dev-lang/perl[debug] ) ; then - echo "" - ewarn "TOGGLED USE-FLAGS WARNING:" - ewarn "You changed one of the use-flags ithreads or debug." - ewarn "You must rebuild all perl-modules installed." - ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl" - fi -} - -pkg_setup() { - case ${CHOST} in - *-freebsd*) osname="freebsd" ;; - *-dragonfly*) osname="dragonfly" ;; - *-netbsd*) osname="netbsd" ;; - *-openbsd*) osname="openbsd" ;; - *-darwin*) osname="darwin" ;; - *-solaris*) osname="solaris" ;; - *-cygwin*) osname="cygwin" ;; - *) osname="linux" ;; - esac - - myarch="${CHOST%%-*}-${osname}" - if use debug ; then - myarch+="-debug" - fi - if use ithreads ; then - mythreading="-multi" - myarch+="-thread" - fi - - PRIV_BASE="/usr/$(get_libdir)/perl5" - SITE_BASE="/usr/local/$(get_libdir)/perl5" - VENDOR_BASE="/usr/$(get_libdir)/perl5/vendor_perl" - - LIBPERL="libperl$(get_libname ${MY_PV} )" - - # This ENV var tells perl to build with a directory like "5.30" - # regardless of its patch version. This is for experts only - # at this point. - if [[ -z "${PERL_SINGLE_SLOT}" ]]; then - PRIV_LIB="${PRIV_BASE}/${MY_PV}" - ARCH_LIB="${PRIV_BASE}/${MY_PV}/${myarch}${mythreading}" - SITE_LIB="${SITE_BASE}/${MY_PV}" - SITE_ARCH="${SITE_BASE}/${MY_PV}/${myarch}${mythreading}" - VENDOR_LIB="${VENDOR_BASE}/${MY_PV}" - VENDOR_ARCH="${VENDOR_BASE}/${MY_PV}/${myarch}${mythreading}" - else - PRIV_LIB="${PRIV_BASE}/${SUBSLOT}" - ARCH_LIB="${PRIV_BASE}/${SUBSLOT}/${myarch}${mythreading}" - SITE_LIB="${SITE_BASE}/${SUBSLOT}" - SITE_ARCH="${SITE_BASE}/${SUBSLOT}/${myarch}${mythreading}" - VENDOR_LIB="${VENDOR_BASE}/${SUBSLOT}" - VENDOR_ARCH="${VENDOR_BASE}/${SUBSLOT}/${myarch}${mythreading}" - fi - - dual_scripts -} - -src_remove_dual_file() { - local i pkg ver - pkg="$1" - ver="$2" - shift 2 - case "${EBUILD_PHASE:-none}" in - postinst|postrm) - for i in "$@" ; do - alternatives_auto_makesym "${i}" "${i}-[0-9]*" - done - ;; - setup) - for i in "$@" ; do - if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; then - has_version ${pkg} && ewarn "You must reinstall ${pkg} !" - break - fi - done - ;; - install) - for i in "$@" ; do - if ! [[ -f "${ED}"${i} ]] ; then - ewarn "${i} does not exist!" - continue - fi - mv "${ED}"${i}{,-${ver}-${P}} || die - done - ;; - esac -} - -src_remove_dual_man() { - local i pkg ver ff - pkg="$1" - ver="$2" - shift 2 - case "${EBUILD_PHASE:-none}" in - postinst|postrm) - for i in "$@" ; do - ff=`echo "${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*` - ff=${ff##*${i#${i%.[0-9]}}} - alternatives_auto_makesym "${i}${ff}" "${i%.[0-9]}-[0-9]*" - done - ;; - install) - for i in "$@" ; do - if ! [[ -f "${ED}"${i} ]] ; then - ewarn "${i} does not exist!" - continue - fi - mv "${ED}"${i} "${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die - done - ;; - esac -} - -src_remove_dual() { - local i pkg ver - pkg="$1" - ver="$2" - shift 2 - for i in "$@" ; do - src_remove_dual_file "${pkg}" "${ver}" "/usr/bin/${i}" - src_remove_dual_man "${pkg}" "${ver}" "/usr/share/man/man1/${i}.1" - done -} - -src_prepare_perlcross() { - cp -a ../perl-cross-${CROSS_VER}/* . || die - - # bug 794463, needs further analysis what is exactly wrong here - eapply "${FILESDIR}/perl-5.34.0-crossfit.patch" - - # bug 604072 - MAKEOPTS+=" -j1" - export MAKEOPTS -} -src_prepare_dynamic() { - ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die - ln -s ${LIBPERL} libperl$(get_libname ) || die -} - -# Copy a patch into the patch series -# add_patch SRC_PATH DEST_NAME ['description'] ['bug'] ['bug'] -# - description is optional, but recommended -# - all arguments after descriptions are bug URLs -add_patch() { - local patchdir="${WORKDIR}/patches" - local infodir="${WORKDIR}/patch-info" - local src_name dest_name desc - src_name="$1" - dest_name="$2" - desc="$3" - shift; shift; shift; - einfo "Adding ${dest_name} to patch bundle" - cp "${src_name}" "${patchdir}/${dest_name}" || die "Couldn't copy ${src_name} to ${dest_name}" - if [[ -n "${desc}" ]]; then - printf "%s" "${desc}" > "${infodir}/${dest_name}.desc" || die "Couldn't write ${dest_name}.desc" - fi - if [[ $# -gt 0 ]]; then - # Note: when $@ is more than one element, this emits a - # line for each element - printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs" - fi -} -# Remove a patch using a glob expr -# eg: -# rm_patch *-darin-Use-CC* -# -rm_patch() { - local patchdir="${WORKDIR}/patches" - local expr="$1" - local patch="$( cd "${patchdir}"; echo $expr )" - einfo "Removing $patch ($expr) from patch bundle" - if [[ -e "${patchdir}/${patch}" ]]; then - rm -f "${patchdir}/${patch}" || die "Can't remove ${patch} ( $expr )" - else - ewarn "No ${expr} found in ${patchdir} to remove" - fi -} -# Yes, this is a reasonable amount of code for something seemingly simple -# but this is far easier to debug when things go wrong, and things went wrong -# multiple times while I was getting the exact number of slashes right, which -# requires circumnavigating both bash and sed escape mechanisms. -c_escape_string() { - local slash dquote - slash='\' - dquote='"' - re_slash="${slash}${slash}" - re_dquote="${slash}${dquote}" - - # Convert \ to \\, - # " to \" - echo "$1" |\ - sed "s|${re_slash}|${re_slash}${re_slash}|g" |\ - sed "s|${re_dquote}|${re_slash}${re_dquote}|g" -} -c_escape_file() { - c_escape_string "$(cat "$1")" -} - -apply_patchdir() { - local patchdir="${WORKDIR}/patches" - local infodir="${WORKDIR}/patch-info" - local patchoutput="patchlevel-gentoo.h" - - # Inject Patch-Level info into description for patchlevel.h patch - # to show in -V - local patch_expr="*List-packaged-patches*" - local patch="$( cd "${patchdir}"; echo $patch_expr )"; - einfo "Injecting patch-level info into ${patch}.desc ( $patch_expr )" - - if [[ -e "${patchdir}/${patch}" ]]; then - printf "List packaged patches for %s(%s) in patchlevel.h" "${PF}" "${PATCH_BASE}"\ - >"${infodir}/${patch}.desc" || die "Can't rewrite ${patch}.desc" - else - eerror "No $patch_expr found in ${patchdir}" - fi - - # Compute patch list to apply - # different name other than PATCHES to stop default - # reapplying it - # Single depth is currently only supported, as artifacts can reside - # from the old layout being multiple-directories, as well as it grossly - # simplifying the patchlevel_gentoo.h generation. - local PERL_PATCHES=($( - find "${patchdir}" -maxdepth 1 -mindepth 1 -type f -printf "%f\n" |\ - grep -E '[.](diff|patch)$' |\ - sort -n - )) - - for patch in "${PERL_PATCHES[@]}"; do - eapply "${WORKDIR}"/patches/${patch} - done - - einfo "Generating $patchoutput" - - # This code creates a header file, each iteration - # creates one-or-more-lines for each entry found in PERL_PATCHES - # and STDOUT is redirected to the .h file - for patch in "${PERL_PATCHES[@]}"; do - local desc_f="${infodir}/${patch}.desc" - local bugs_f="${infodir}/${patch}.bugs" - - printf ',"%s"\n' "${patch}" - if [[ ! -e "${desc_f}" ]]; then - ewarn "No description provided for ${patch} (expected: ${desc_f} )" - else - local desc="$(c_escape_file "${desc_f}")" - printf ',"- %s"\n' "${desc}" - fi - if [[ -e "${bugs_f}" ]]; then - while read -d $'\n' -r line; do - local esc_line="$(c_escape_string "${line}")" - printf ',"- Bug: %s"\n' "${esc_line}" - done <"${bugs_f}" - fi - done > "${S}/${patchoutput}" - printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST" - -} -src_prepare() { - local patchdir="${WORKDIR}/patches" - - # Prepare Patch dir with additional patches / remove unwanted patches - # Inject bug/desc entries for perl -V - # Old example: - # add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\ - # "Fix broken miniperl on hppa"\ - # "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162" - - if [[ ${CHOST} == *-solaris* ]] ; then - # do NOT mess with nsl, on Solaris this is always necessary, - # when -lsocket is used e.g. to get h_errno - rm_patch "*-nsl-and-cl*" - fi - - apply_patchdir - - tc-is-cross-compiler && src_prepare_perlcross - - tc-is-static-only || src_prepare_dynamic - - if use gdbm; then - sed -i "s:INC => .*:INC => \"-I${EROOT}/usr/include/gdbm\":g" \ - ext/NDBM_File/Makefile.PL || die - fi - - # Use errno.h from prefix rather than from host system, bug #645804 - if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then - sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die - fi - - if [[ ${CHOST} == *-solaris* ]] ; then - # set a soname, fix linking against just built libperl - sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die - fi - - if [[ ${CHOST} == *-darwin* ]] ; then - # fix install_name (soname) not to reference $D - sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die - fi - - default -} - -myconf() { - # the myconf array is declared in src_configure - myconf=( "${myconf[@]}" "$@" ) -} - -# Outputs a list of versions which have been seen in any of the -# primary perl @INC prefix paths, such as: -# /usr/lib64/perl5/ -# /usr/local/lib64/perl5/ -# /usr/lib64/perl5/vendor_perl/ -# -# All values of NUMBER must be like "5.x.y", unless PERL_SUPPORT_SINGLE_SLOT -# is enabled, where it will also allow numbers like "5.x" -# -# PERL_SUPPORT_SINGLE_SLOT should only be used to transition *away* from PERL_SINGLE_SLOT -# if you used that. -find_candidate_inc_versions() { - local regex='.*/5[.][0-9]+[.][0-9]+$'; - if [[ ! -z "${PERL_SUPPORT_SINGLE_SLOT}" || ! -z "${PERL_SINGLE_SLOT}" ]]; then - regex='.*/5[.][0-9]+\([.][0-9]+\|\)$' - fi - local dirs=( - "${EROOT}${PRIV_BASE}" - "${EROOT}${SITE_BASE}" - "${EROOT}${VENDOR_BASE}" - ) - for dir in "${dirs[@]}"; do - if [[ ! -e "${dir}" ]]; then - continue - fi - # Without access to readdir() on these dirs, find will not be able - # to reveal any @INC directories inside them, and will subsequently prune - # them from the built perl's @INC support, breaking our compatiblity options - # entirely. - if [[ ! -r "${dir}" || ! -x "${dir}" ]]; then - eerror "Bad permissions on ${dir}, this will probably break things" - eerror "Ensure ${dir} is +rx for at least uid=$EUID" - eerror "Recommended permission is +rx for all" - eerror "> chmod o+rx ${dir}" - fi - done - einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}" - find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null -} -# Sort versions passed versiony-ly, remove self-version if present -# dedup. Takes each version as an argument -sanitize_inc_versions() { - local vexclude="${DIST_VERSION%-RC}" - if [[ ! -z "${PERL_SINGLE_SLOT}" ]]; then - vexclude="${SUBSLOT}" - fi - einfo "Normalizing/Sorting candidate list: $*" - einfo " to remove '${vexclude}'" - # Note, general numeric sort has to be used - # for the last component, or unique will convert - # 5.30.0 + 5.30 into just 5.30 - printf "%s\n" "$@" |\ - grep -vxF "${vexclude}" |\ - sort -u -nr -t'.' -k1,1rn -k2,2rn -k3,3rg -} - -versions_to_inclist() { - local oldv="${PERL_BIN_OLDVERSEN}" - if [[ ! -z "${PERL_SINGLE_SLOT}" ]]; then - oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}" - fi - for v; do - has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ "; - echo -n "${v}/ "; - done -} -versions_to_gentoolibdirs() { - local oldv="${PERL_BIN_OLDVERSEN}" - local root - local v - if [[ ! -z "${PERL_SINGLE_SLOT}" ]]; then - oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}" - fi - for v; do - for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do - local fullpath="${EROOT}${root}/${v}" - if [[ -e "${fullpath}" ]]; then - has "${v}" ${oldv} && printf "%s:" "${fullpath}/${myarch}${mythreading}"; - printf "%s:" "${fullpath}" - fi - done - done -} - -src_configure() { - declare -a myconf - - export LC_ALL="C" - [[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091 - - # Perl has problems compiling with -Os in your flags with glibc - use elibc_uclibc || replace-flags "-Os" "-O2" - - # xlocale.h is going away in glibc-2.26, so it's counterproductive - # if we use it and include it in CORE/perl.h ... Perl builds just - # fine with glibc and locale.h only. - # However, the darwin prefix people have no locale.h ... - use elibc_glibc && myconf -Ui_xlocale - - # This flag makes compiling crash in interesting ways - filter-flags "-malign-double" - - # Generic LTO broken since 5.28, triggers EUMM failures - filter-flags "-flto" - - use sparc && myconf -Ud_longdbl - - export BUILD_BZIP2=0 - export BZIP2_INCLUDE=${EROOT}/usr/include - export BZIP2_LIB=${EROOT}/usr/$(get_libdir) - - export BUILD_ZLIB=False - export ZLIB_INCLUDE=${EROOT}/usr/include - export ZLIB_LIB=${EROOT}/usr/$(get_libdir) - - # allow either gdbm to provide ndbm (in ) or db1 - myndbm='U' - mygdbm='U' - mydb='U' - if use gdbm ; then - mygdbm='D' - if use berkdb ; then - myndbm='D' - fi - fi - if use berkdb ; then - mydb='D' - has_version '=sys-libs/db-1*' && myndbm='D' - fi - - myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db" - - if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then - ewarn "Perl will not be built with berkdb support, use gcc if you needed it..." - myconf -Ui_db -Ui_ndbm - fi - - use ithreads && myconf -Dusethreads - - if use debug ; then - append-cflags "-g" - myconf -DDEBUGGING - elif [[ ${CFLAGS} == *-g* ]] ; then - myconf -DDEBUGGING=-g - else - myconf -DDEBUGGING=none - fi - - # modifying 'optimize' prevents cross configure script from appending required flags - if tc-is-cross-compiler; then - append-cflags "-fwrapv -fno-strict-aliasing" - fi - - # Autodiscover all old version directories, some of them will even be newer - # if you downgrade - if [[ -z ${PERL_OLDVERSEN} ]]; then - PERL_OLDVERSEN="$( find_candidate_inc_versions )" - fi - - # Fixup versions, removing self match, fixing order and dupes - PERL_OLDVERSEN="$( sanitize_inc_versions ${PERL_OLDVERSEN} )" - - # Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string - if [[ -n "${PERL_OLDVERSEN// }" ]]; then - local inclist="$( versions_to_inclist ${PERL_OLDVERSEN} )" - einfo "This version of perl may partially support modules previously" - einfo "installed in any of the following paths:" - for incpath in ${inclist}; do - [[ -e "${EROOT}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT}${VENDOR_BASE}/${incpath}" - [[ -e "${EROOT}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROOT}${PRIV_BASE}/${incpath}" - [[ -e "${EROOT}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT}${SITE_BASE}/${incpath}" - done - einfo "This is a temporary measure and you should aim to cleanup these paths" - einfo "via world updates and perl-cleaner" - # myconf -Dinc_version_list="${inclist}" - myconf -Dgentoolibdirs="$( versions_to_gentoolibdirs ${PERL_OLDVERSEN} )" - fi - - [[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a" - - # Make sure we can do the final link #523730, need to set deployment - # target to override hardcoded 10.3 which breaks on modern OSX - [[ ${CHOST} == *-darwin* ]] && \ - myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)" - - # Older macOS with non-Apple GCC chokes on inline in system headers - # using c89 mode as injected by cflags.SH - [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \ - append-cflags -Dinline=__inline__ - - # flock on 32-bit sparc Solaris is broken, fall back to fcntl - [[ ${CHOST} == sparc-*-solaris* ]] && \ - myconf -Ud_flock - - # Prefix: the host system needs not to follow Gentoo multilib stuff, and in - # Prefix itself we don't do multilib either, so make sure perl can find - # something compatible. - if use prefix ; then - # Set a hook to check for each detected library whether it actually works. - export libscheck=" - ( echo 'main(){}' > '${T}'/conftest.c && - $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null - ) || xxx=/dev/null" - - # Use all host paths that might contain useful stuff, the hook above will filter out bad choices. - local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib" - myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}" - elif [[ $(get_libdir) != "lib" ]] ; then - # We need to use " and not ', as the written config.sh use ' ... - myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)" - fi - - # don't try building ODBM, bug #354453 - disabled_extensions="ODBM_File" - - if ! use gdbm ; then - # workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm" - disabled_extensions="${disabled_extensions} GDBM_File NDBM_File" - fi - - myconf -Dnoextensions="${disabled_extensions}" - - [[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly - - [[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF} - # allow fiddling via EXTRA_ECONF, bug 558070 - eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})" - - # setting -Dld= to tc-getLD breaks perl and all perl things - # https://github.com/Perl/perl5/issues/17791#issuecomment-630145202 - myconf \ - -Duseshrplib \ - -Darchname="${myarch}" \ - -Dcc="$(tc-getCC)" \ - -Dar="$(tc-getAR)" \ - -Dnm="$(tc-getNM)" \ - -Dcpp="$(tc-getCPP)" \ - -Dranlib="$(tc-getRANLIB)" \ - -Doptimize="${CFLAGS}" \ - -Dldflags="${LDFLAGS}" \ - -Dprefix="${EPREFIX}"'/usr' \ - -Dsiteprefix="${EPREFIX}"'/usr/local' \ - -Dvendorprefix="${EPREFIX}"'/usr' \ - -Dscriptdir="${EPREFIX}"'/usr/bin' \ - -Dprivlib="${EPREFIX}${PRIV_LIB}" \ - -Darchlib="${EPREFIX}${ARCH_LIB}" \ - -Dsitelib="${EPREFIX}${SITE_LIB}" \ - -Dsitearch="${EPREFIX}${SITE_ARCH}" \ - -Dvendorlib="${EPREFIX}${VENDOR_LIB}" \ - -Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \ - -Dman1dir="${EPREFIX}"/usr/share/man/man1 \ - -Dman3dir="${EPREFIX}"/usr/share/man/man3 \ - -Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \ - -Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \ - -Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \ - -Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \ - -Dman1ext='1' \ - -Dman3ext='3pm' \ - -Dlibperl="${LIBPERL}" \ - -Dlocincpth="${EPREFIX}"'/usr/include ' \ - -Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \ - -Duselargefiles \ - -Dd_semctl_semun \ - -Dcf_by='Gentoo' \ - -Dmyhostname='localhost' \ - -Dperladmin='root@localhost' \ - -Ud_csh \ - -Dsh="${EPREFIX}"/bin/sh \ - -Dtargetsh="${EPREFIX}"/bin/sh \ - -Uusenm \ - "${myconf[@]}" \ - "${EXTRA_ECONF[@]}" - - if tc-is-cross-compiler; then - ./configure \ - --target="${CHOST}" \ - --build="${CBUILD}" \ - -Dinstallprefix='' \ - -Dinstallusrbinperl='undef' \ - -Dusevendorprefix='define' \ - "${myconf[@]}" \ - || die "Unable to configure" - else - sh Configure \ - -des \ - -Dinstallprefix="${EPREFIX}"'/usr' \ - -Dinstallusrbinperl='n' \ - "${myconf[@]}" \ - || die "Unable to configure" - fi -} - -src_test() { - export NO_GENTOO_NETWORK_TESTS=1; - export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}" - export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}" - if [[ ${EUID} == 0 ]] ; then - ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..." - return 0 - fi - use elibc_uclibc && export MAKEOPTS+=" -j1" - TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed" -} - -src_install() { - local i - local coredir="${ARCH_LIB}/CORE" - - emake DESTDIR="${D}" install - - rm -f "${ED}/usr/bin/perl${MY_PV}" - ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die - - if ! tc-is-static-only ; then - dolib.so "${ED}"${coredir}/${LIBPERL} - rm -f "${ED}"${coredir}/${LIBPERL} - ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die - ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die - - ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die - ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die - ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die - fi - - rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages" - - # This removes ${D} from Config.pm - for i in $(find "${D}" -iname "Config.pm" ) ; do - einfo "Removing ${D} from ${i}..." - sed -i -e "s:${D}::" "${i}" || die "Sed failed" - done - - dodoc Changes* README AUTHORS - - if use doc ; then - # HTML Documentation - # We expect errors, warnings, and such with the following. - - dodir /usr/share/doc/${PF}/html - LD_LIBRARY_PATH=. ./perl installhtml \ - --podroot='.' \ - --podpath='lib:ext:pod:vms' \ - --recurse \ - --htmldir="${ED}/usr/share/doc/${PF}/html" - fi - - [[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local - - dual_scripts -} - -pkg_preinst() { - check_rebuild -} - -pkg_postinst() { - dual_scripts - - if [[ "${ROOT}" = "/" ]] ; then - local INC DIR file - INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }') - einfo "Removing old .ph files" - for DIR in ${INC} ; do - if [[ -d "${DIR}" ]] ; then - for file in $(find "${DIR}" -name "*.ph" -type f ) ; do - rm -f "${file}" - einfo "<< ${file}" - done - fi - done - # Silently remove the now empty dirs - for DIR in ${INC} ; do - if [[ -d "${DIR}" ]] ; then - find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null - fi - done - - fi -} - -pkg_postrm() { - dual_scripts -} diff --git a/dev-lang/perl/perl-5.34.0-r5.ebuild b/dev-lang/perl/perl-5.34.0-r5.ebuild new file mode 100644 index 000000000000..5a829ae0642a --- /dev/null +++ b/dev-lang/perl/perl-5.34.0-r5.ebuild @@ -0,0 +1,807 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing + +PATCH_VER=1 +CROSS_VER=1.3.6 +PATCH_BASE="perl-5.34.0-patches-${PATCH_VER}" +PATCH_DEV=dilfridge + +DIST_AUTHOR=XSAWYERX + +# Greatest first, don't include yourself +# Devel point-releases are not ABI-intercompatible, but stable point releases are +# BIN_OLDVERSEN contains only C-ABI-intercompatible versions +PERL_BIN_OLDVERSEN="" + +if [[ "${PV##*.}" == "9999" ]]; then + DIST_VERSION=5.30.0 +else + DIST_VERSION="${PV/_rc/-RC}" +fi +SHORT_PV="${DIST_VERSION%.*}" + +# Even numbered major versions are ABI intercompatible +# Odd numbered major versions are not +if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then + SUBSLOT="${DIST_VERSION%-RC*}" +else + SUBSLOT="${DIST_VERSION%.*}" +fi + +# Used only in tar paths +MY_P="perl-${DIST_VERSION}" +# Used in library paths +MY_PV="${DIST_VERSION%-RC*}" + +DESCRIPTION="Larry Wall's Practical Extraction and Report Language" + +SRC_URI=" + mirror://cpan/src/5.0/${MY_P}.tar.xz + mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz + https://github.com/gentoo-perl/perl-patchset/releases/download/${PATCH_BASE}/${PATCH_BASE}.tar.xz + https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz + https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz +" +HOMEPAGE="https://www.perl.org/" + +LICENSE="|| ( Artistic GPL-1+ )" +SLOT="0/${SUBSLOT}" + +if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then +#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="" +fi + +IUSE="berkdb debug doc gdbm ithreads minimal" + +RDEPEND=" + berkdb? ( sys-libs/db:= ) + gdbm? ( >=sys-libs/gdbm-1.8.3:= ) + app-arch/bzip2 + sys-libs/zlib + virtual/libcrypt:= +" +DEPEND="${RDEPEND}" +BDEPEND="${RDEPEND}" + +PDEPEND=" + !minimal? ( + >=app-admin/perl-cleaner-2.5 + >=virtual/perl-Encode-3.120.0 + >=virtual/perl-File-Temp-0.230.400-r2 + >=virtual/perl-Data-Dumper-2.154.0 + virtual/perl-Test-Harness + ) +" +# bug 390719, bug 523624 +# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker + +S="${WORKDIR}/${MY_P}" + +dual_scripts() { + src_remove_dual perl-core/Archive-Tar 2.380.0 ptar ptardiff ptargrep + src_remove_dual perl-core/CPAN 2.280.0 cpan + src_remove_dual perl-core/Digest-SHA 6.20.0 shasum + src_remove_dual perl-core/Encode 3.80.0 enc2xs piconv + src_remove_dual perl-core/ExtUtils-MakeMaker 7.620.0 instmodsh + src_remove_dual perl-core/ExtUtils-ParseXS 3.430.0 xsubpp + src_remove_dual perl-core/IO-Compress 2.102.0 zipdetails + src_remove_dual perl-core/JSON-PP 4.60.0 json_pp + src_remove_dual perl-core/Module-CoreList 5.202.105.200 corelist + src_remove_dual perl-core/Pod-Checker 1.740.0 podchecker + src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc + src_remove_dual perl-core/Pod-Usage 2.10.0 pod2usage + src_remove_dual perl-core/Test-Harness 3.430.0 prove + src_remove_dual perl-core/podlators 4.140.0 pod2man pod2text + src_remove_dual_man perl-core/podlators 4.140.0 /usr/share/man/man1/perlpodstyle.1 +} + +check_rebuild() { + # Fresh install + if [[ -z "${REPLACING_VERSIONS}" ]]; then + return 0; + # Major Upgrade + # doesn't matter if there's multiple copies, it still needs a rebuild + # if the string is anything other than "5.CURRENTMAJOR" + elif [[ "${REPLACING_VERSIONS%.*}" != "${PV%.*}" ]]; then + echo "" + ewarn "UPDATE THE PERL MODULES:" + ewarn "After updating dev-lang/perl the installed Perl modules" + ewarn "have to be re-installed. In most cases, this is done automatically" + ewarn "by the package manager, but subsequent steps are still recommended" + ewarn "to ensure system consistency." + ewarn + ewarn "You should start with a depclean to remove any unused perl dependencies" + ewarn "that may confuse portage in future. Regular depcleans are also encouraged" + ewarn "as part of your regular update cycle, as that will keep perl upgrades working." + ewarn "Recommended: emerge --depclean -va" + ewarn + ewarn "You should then call perl-cleaner to clean up any old files and trigger any" + ewarn "remaining rebuilds portage may have missed." + ewarn "Use: perl-cleaner --all" + return 0; + + # Reinstall w/ USE Change + elif ( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \ + ( ! use ithreads && has_version dev-lang/perl[ithreads] ) || \ + ( use debug && ! has_version dev-lang/perl[debug] ) || \ + ( ! use debug && has_version dev-lang/perl[debug] ) ; then + echo "" + ewarn "TOGGLED USE-FLAGS WARNING:" + ewarn "You changed one of the use-flags ithreads or debug." + ewarn "You must rebuild all perl-modules installed." + ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl" + fi +} + +pkg_setup() { + case ${CHOST} in + *-freebsd*) osname="freebsd" ;; + *-dragonfly*) osname="dragonfly" ;; + *-netbsd*) osname="netbsd" ;; + *-openbsd*) osname="openbsd" ;; + *-darwin*) osname="darwin" ;; + *-solaris*) osname="solaris" ;; + *-cygwin*) osname="cygwin" ;; + *) osname="linux" ;; + esac + + myarch="${CHOST%%-*}-${osname}" + if use debug ; then + myarch+="-debug" + fi + if use ithreads ; then + mythreading="-multi" + myarch+="-thread" + fi + + PRIV_BASE="/usr/$(get_libdir)/perl5" + SITE_BASE="/usr/local/$(get_libdir)/perl5" + VENDOR_BASE="/usr/$(get_libdir)/perl5/vendor_perl" + + LIBPERL="libperl$(get_libname ${MY_PV} )" + + PRIV_LIB="${PRIV_BASE}/${SUBSLOT}" + ARCH_LIB="${PRIV_BASE}/${SUBSLOT}/${myarch}${mythreading}" + SITE_LIB="${SITE_BASE}/${SUBSLOT}" + SITE_ARCH="${SITE_BASE}/${SUBSLOT}/${myarch}${mythreading}" + VENDOR_LIB="${VENDOR_BASE}/${SUBSLOT}" + VENDOR_ARCH="${VENDOR_BASE}/${SUBSLOT}/${myarch}${mythreading}" + + dual_scripts +} + +src_remove_dual_file() { + local i pkg ver + pkg="$1" + ver="$2" + shift 2 + case "${EBUILD_PHASE:-none}" in + postinst|postrm) + for i in "$@" ; do + alternatives_auto_makesym "${i}" "${i}-[0-9]*" + done + ;; + setup) + for i in "$@" ; do + if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; then + has_version ${pkg} && ewarn "You must reinstall ${pkg} !" + break + fi + done + ;; + install) + for i in "$@" ; do + if ! [[ -f "${ED}"${i} ]] ; then + ewarn "${i} does not exist!" + continue + fi + mv "${ED}"${i}{,-${ver}-${P}} || die + done + ;; + esac +} + +src_remove_dual_man() { + local i pkg ver ff + pkg="$1" + ver="$2" + shift 2 + case "${EBUILD_PHASE:-none}" in + postinst|postrm) + for i in "$@" ; do + ff=`echo "${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*` + ff=${ff##*${i#${i%.[0-9]}}} + alternatives_auto_makesym "${i}${ff}" "${i%.[0-9]}-[0-9]*" + done + ;; + install) + for i in "$@" ; do + if ! [[ -f "${ED}"${i} ]] ; then + ewarn "${i} does not exist!" + continue + fi + mv "${ED}"${i} "${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die + done + ;; + esac +} + +src_remove_dual() { + local i pkg ver + pkg="$1" + ver="$2" + shift 2 + for i in "$@" ; do + src_remove_dual_file "${pkg}" "${ver}" "/usr/bin/${i}" + src_remove_dual_man "${pkg}" "${ver}" "/usr/share/man/man1/${i}.1" + done +} + +src_prepare_perlcross() { + cp -a ../perl-cross-${CROSS_VER}/* . || die + + # bug 794463, needs further analysis what is exactly wrong here + eapply "${FILESDIR}/perl-5.34.0-crossfit.patch" + + # bug 604072 + MAKEOPTS+=" -j1" + export MAKEOPTS +} + +src_prepare_dynamic() { + ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die + ln -s ${LIBPERL} libperl$(get_libname ) || die +} + +# Copy a patch into the patch series +# add_patch SRC_PATH DEST_NAME ['description'] ['bug'] ['bug'] +# - description is optional, but recommended +# - all arguments after descriptions are bug URLs +add_patch() { + local patchdir="${WORKDIR}/patches" + local infodir="${WORKDIR}/patch-info" + local src_name dest_name desc + src_name="$1" + dest_name="$2" + desc="$3" + shift; shift; shift; + einfo "Adding ${dest_name} to patch bundle" + cp "${src_name}" "${patchdir}/${dest_name}" || die "Couldn't copy ${src_name} to ${dest_name}" + if [[ -n "${desc}" ]]; then + printf "%s" "${desc}" > "${infodir}/${dest_name}.desc" || die "Couldn't write ${dest_name}.desc" + fi + if [[ $# -gt 0 ]]; then + # Note: when $@ is more than one element, this emits a + # line for each element + printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs" + fi +} + +# Remove a patch using a glob expr +# eg: +# rm_patch *-darwin-Use-CC* +# +rm_patch() { + local patchdir="${WORKDIR}/patches" + local expr="$1" + local patch="$( cd "${patchdir}"; echo $expr )" + einfo "Removing $patch ($expr) from patch bundle" + if [[ -e "${patchdir}/${patch}" ]]; then + rm -f "${patchdir}/${patch}" || die "Can't remove ${patch} ( $expr )" + else + ewarn "No ${expr} found in ${patchdir} to remove" + fi +} + +# Yes, this is a reasonable amount of code for something seemingly simple +# but this is far easier to debug when things go wrong, and things went wrong +# multiple times while I was getting the exact number of slashes right, which +# requires circumnavigating both bash and sed escape mechanisms. +c_escape_string() { + local slash dquote + slash='\' + dquote='"' + re_slash="${slash}${slash}" + re_dquote="${slash}${dquote}" + + # Convert \ to \\, + # " to \" + echo "$1" |\ + sed "s|${re_slash}|${re_slash}${re_slash}|g" |\ + sed "s|${re_dquote}|${re_slash}${re_dquote}|g" +} +c_escape_file() { + c_escape_string "$(cat "$1")" +} + +apply_patchdir() { + local patchdir="${WORKDIR}/patches" + local infodir="${WORKDIR}/patch-info" + local patchoutput="patchlevel-gentoo.h" + + # Inject Patch-Level info into description for patchlevel.h patch + # to show in -V + local patch_expr="*List-packaged-patches*" + local patch="$( cd "${patchdir}"; echo $patch_expr )"; + einfo "Injecting patch-level info into ${patch}.desc ( $patch_expr )" + + if [[ -e "${patchdir}/${patch}" ]]; then + printf "List packaged patches for %s(%s) in patchlevel.h" "${PF}" "${PATCH_BASE}"\ + >"${infodir}/${patch}.desc" || die "Can't rewrite ${patch}.desc" + else + eerror "No $patch_expr found in ${patchdir}" + fi + + # Compute patch list to apply + # different name other than PATCHES to stop default + # reapplying it + # Single depth is currently only supported, as artifacts can reside + # from the old layout being multiple-directories, as well as it grossly + # simplifying the patchlevel_gentoo.h generation. + local PERL_PATCHES=($( + find "${patchdir}" -maxdepth 1 -mindepth 1 -type f -printf "%f\n" |\ + grep -E '[.](diff|patch)$' |\ + sort -n + )) + + for patch in "${PERL_PATCHES[@]}"; do + eapply "${WORKDIR}"/patches/${patch} + done + + einfo "Generating $patchoutput" + + # This code creates a header file, each iteration + # creates one-or-more-lines for each entry found in PERL_PATCHES + # and STDOUT is redirected to the .h file + for patch in "${PERL_PATCHES[@]}"; do + local desc_f="${infodir}/${patch}.desc" + local bugs_f="${infodir}/${patch}.bugs" + + printf ',"%s"\n' "${patch}" + if [[ ! -e "${desc_f}" ]]; then + ewarn "No description provided for ${patch} (expected: ${desc_f} )" + else + local desc="$(c_escape_file "${desc_f}")" + printf ',"- %s"\n' "${desc}" + fi + if [[ -e "${bugs_f}" ]]; then + while read -d $'\n' -r line; do + local esc_line="$(c_escape_string "${line}")" + printf ',"- Bug: %s"\n' "${esc_line}" + done <"${bugs_f}" + fi + done > "${S}/${patchoutput}" + printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST" + +} + +src_prepare() { + local patchdir="${WORKDIR}/patches" + + # Prepare Patch dir with additional patches / remove unwanted patches + # Inject bug/desc entries for perl -V + # Old example: + # add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\ + # "Fix broken miniperl on hppa"\ + # "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162" + + add_patch "${FILESDIR}/${P}-gdbm-1.20.patch" "0101-Fix-build-with-gdb120.patch"\ + "Fix GDBM_File to compile with version 1.20 and earlier"\ + "https://bugs.gentoo.org/802945" + + if [[ ${CHOST} == *-solaris* ]] ; then + # do NOT mess with nsl, on Solaris this is always necessary, + # when -lsocket is used e.g. to get h_errno + rm_patch "*-nsl-and-cl*" + fi + + apply_patchdir + + tc-is-cross-compiler && src_prepare_perlcross + + tc-is-static-only || src_prepare_dynamic + + if use gdbm; then + sed -i "s:INC => .*:INC => \"-I${EROOT}/usr/include/gdbm\":g" \ + ext/NDBM_File/Makefile.PL || die + fi + + # Use errno.h from prefix rather than from host system, bug #645804 + if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then + sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die + fi + + if [[ ${CHOST} == *-solaris* ]] ; then + # set a soname, fix linking against just built libperl + sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die + fi + + if [[ ${CHOST} == *-darwin* ]] ; then + # fix install_name (soname) not to reference $D + sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die + fi + + default +} + +myconf() { + # the myconf array is declared in src_configure + myconf=( "${myconf[@]}" "$@" ) +} + +# Outputs a list of versions which have been seen in any of the +# primary perl @INC prefix paths, such as: +# /usr/lib64/perl5/ +# /usr/local/lib64/perl5/ +# /usr/lib64/perl5/vendor_perl/ +# +# All values of NUMBER must be like "5.x.y" or like "5.x" +# +find_candidate_inc_versions() { + local regex='.*/5[.][0-9]+\([.][0-9]+\|\)$' + local dirs=( + "${EROOT}${PRIV_BASE}" + "${EROOT}${SITE_BASE}" + "${EROOT}${VENDOR_BASE}" + ) + for dir in "${dirs[@]}"; do + if [[ ! -e "${dir}" ]]; then + continue + fi + # Without access to readdir() on these dirs, find will not be able + # to reveal any @INC directories inside them, and will subsequently prune + # them from the built perl's @INC support, breaking our compatiblity options + # entirely. + if [[ ! -r "${dir}" || ! -x "${dir}" ]]; then + eerror "Bad permissions on ${dir}, this will probably break things" + eerror "Ensure ${dir} is +rx for at least uid=$EUID" + eerror "Recommended permission is +rx for all" + eerror "> chmod o+rx ${dir}" + fi + done + einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}" + find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null +} + +# Sort versions passed versiony-ly, remove self-version if present +# dedup. Takes each version as an argument +sanitize_inc_versions() { + local vexclude="${SUBSLOT}" + einfo "Normalizing/Sorting candidate list: $*" + einfo " to remove '${vexclude}'" + # Note, general numeric sort has to be used + # for the last component, or unique will convert + # 5.30.0 + 5.30 into just 5.30 + printf "%s\n" "$@" |\ + grep -vxF "${vexclude}" |\ + sort -u -nr -t'.' -k1,1rn -k2,2rn -k3,3rg +} + +versions_to_inclist() { + local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}" + + for v; do + has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ "; + echo -n "${v}/ "; + done +} + +versions_to_gentoolibdirs() { + local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}" + local root + local v + for v; do + for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do + local fullpath="${EROOT}${root}/${v}" + if [[ -e "${fullpath}" ]]; then + has "${v}" ${oldv} && printf "%s:" "${fullpath}/${myarch}${mythreading}"; + printf "%s:" "${fullpath}" + fi + done + done +} + +src_configure() { + declare -a myconf + + export LC_ALL="C" + [[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091 + + # Perl has problems compiling with -Os in your flags with glibc + use elibc_uclibc || replace-flags "-Os" "-O2" + + # xlocale.h is going away in glibc-2.26, so it's counterproductive + # if we use it and include it in CORE/perl.h ... Perl builds just + # fine with glibc and locale.h only. + # However, the darwin prefix people have no locale.h ... + use elibc_glibc && myconf -Ui_xlocale + + # This flag makes compiling crash in interesting ways + filter-flags "-malign-double" + + # Generic LTO broken since 5.28, triggers EUMM failures + filter-flags "-flto" + + use sparc && myconf -Ud_longdbl + + export BUILD_BZIP2=0 + export BZIP2_INCLUDE=${EROOT}/usr/include + export BZIP2_LIB=${EROOT}/usr/$(get_libdir) + + export BUILD_ZLIB=False + export ZLIB_INCLUDE=${EROOT}/usr/include + export ZLIB_LIB=${EROOT}/usr/$(get_libdir) + + # allow either gdbm to provide ndbm (in ) or db1 + myndbm='U' + mygdbm='U' + mydb='U' + if use gdbm ; then + mygdbm='D' + if use berkdb ; then + myndbm='D' + fi + fi + if use berkdb ; then + mydb='D' + has_version '=sys-libs/db-1*' && myndbm='D' + fi + + myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db" + + if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then + ewarn "Perl will not be built with berkdb support, use gcc if you needed it..." + myconf -Ui_db -Ui_ndbm + fi + + use ithreads && myconf -Dusethreads + + if use debug ; then + append-cflags "-g" + myconf -DDEBUGGING + elif [[ ${CFLAGS} == *-g* ]] ; then + myconf -DDEBUGGING=-g + else + myconf -DDEBUGGING=none + fi + + # modifying 'optimize' prevents cross configure script from appending required flags + if tc-is-cross-compiler; then + append-cflags "-fwrapv -fno-strict-aliasing" + fi + + # Autodiscover all old version directories, some of them will even be newer + # if you downgrade + if [[ -z ${PERL_OLDVERSEN} ]]; then + PERL_OLDVERSEN="$( find_candidate_inc_versions )" + fi + + # Fixup versions, removing self match, fixing order and dupes + PERL_OLDVERSEN="$( sanitize_inc_versions ${PERL_OLDVERSEN} )" + + # Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string + if [[ -n "${PERL_OLDVERSEN// }" ]]; then + local inclist="$( versions_to_inclist ${PERL_OLDVERSEN} )" + einfo "This version of perl may partially support modules previously" + einfo "installed in any of the following paths:" + for incpath in ${inclist}; do + [[ -e "${EROOT}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT}${VENDOR_BASE}/${incpath}" + [[ -e "${EROOT}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROOT}${PRIV_BASE}/${incpath}" + [[ -e "${EROOT}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT}${SITE_BASE}/${incpath}" + done + einfo "This is a temporary measure and you should aim to cleanup these paths" + einfo "via world updates and perl-cleaner" + # myconf -Dinc_version_list="${inclist}" + myconf -Dgentoolibdirs="$( versions_to_gentoolibdirs ${PERL_OLDVERSEN} )" + fi + + [[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a" + + # Make sure we can do the final link #523730, need to set deployment + # target to override hardcoded 10.3 which breaks on modern OSX + [[ ${CHOST} == *-darwin* ]] && \ + myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)" + + # Older macOS with non-Apple GCC chokes on inline in system headers + # using c89 mode as injected by cflags.SH + [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \ + append-cflags -Dinline=__inline__ + + # flock on 32-bit sparc Solaris is broken, fall back to fcntl + [[ ${CHOST} == sparc-*-solaris* ]] && \ + myconf -Ud_flock + + # Prefix: the host system needs not to follow Gentoo multilib stuff, and in + # Prefix itself we don't do multilib either, so make sure perl can find + # something compatible. + if use prefix ; then + # Set a hook to check for each detected library whether it actually works. + export libscheck=" + ( echo 'main(){}' > '${T}'/conftest.c && + $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null + ) || xxx=/dev/null" + + # Use all host paths that might contain useful stuff, the hook above will filter out bad choices. + local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib" + myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}" + elif [[ $(get_libdir) != "lib" ]] ; then + # We need to use " and not ', as the written config.sh use ' ... + myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)" + fi + + # don't try building ODBM, bug #354453 + disabled_extensions="ODBM_File" + + if ! use gdbm ; then + # workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm" + disabled_extensions="${disabled_extensions} GDBM_File NDBM_File" + fi + + myconf -Dnoextensions="${disabled_extensions}" + + [[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly + + [[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF} + # allow fiddling via EXTRA_ECONF, bug 558070 + eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})" + + # setting -Dld= to tc-getLD breaks perl and all perl things + # https://github.com/Perl/perl5/issues/17791#issuecomment-630145202 + myconf \ + -Duseshrplib \ + -Darchname="${myarch}" \ + -Dcc="$(tc-getCC)" \ + -Dar="$(tc-getAR)" \ + -Dnm="$(tc-getNM)" \ + -Dcpp="$(tc-getCPP)" \ + -Dranlib="$(tc-getRANLIB)" \ + -Dccflags="${CFLAGS}" \ + -Doptimize="${CFLAGS}" \ + -Dldflags="${LDFLAGS}" \ + -Dprefix="${EPREFIX}"'/usr' \ + -Dsiteprefix="${EPREFIX}"'/usr/local' \ + -Dvendorprefix="${EPREFIX}"'/usr' \ + -Dscriptdir="${EPREFIX}"'/usr/bin' \ + -Dprivlib="${EPREFIX}${PRIV_LIB}" \ + -Darchlib="${EPREFIX}${ARCH_LIB}" \ + -Dsitelib="${EPREFIX}${SITE_LIB}" \ + -Dsitearch="${EPREFIX}${SITE_ARCH}" \ + -Dvendorlib="${EPREFIX}${VENDOR_LIB}" \ + -Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \ + -Dman1dir="${EPREFIX}"/usr/share/man/man1 \ + -Dman3dir="${EPREFIX}"/usr/share/man/man3 \ + -Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \ + -Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \ + -Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \ + -Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \ + -Dman1ext='1' \ + -Dman3ext='3pm' \ + -Dlibperl="${LIBPERL}" \ + -Dlocincpth="${EPREFIX}"'/usr/include ' \ + -Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \ + -Duselargefiles \ + -Dd_semctl_semun \ + -Dcf_by='Gentoo' \ + -Dmyhostname='localhost' \ + -Dperladmin='root@localhost' \ + -Ud_csh \ + -Dsh="${EPREFIX}"/bin/sh \ + -Dtargetsh="${EPREFIX}"/bin/sh \ + -Uusenm \ + "${EXTRA_ECONF[@]}" + + if tc-is-cross-compiler; then + ./configure \ + --target="${CHOST}" \ + --build="${CBUILD}" \ + -Dinstallprefix='' \ + -Dinstallusrbinperl='undef' \ + -Dusevendorprefix='define' \ + "${myconf[@]}" \ + || die "Unable to configure" + else + sh Configure \ + -des \ + -Dinstallprefix="${EPREFIX}"'/usr' \ + -Dinstallusrbinperl='n' \ + "${myconf[@]}" \ + || die "Unable to configure" + fi +} + +src_test() { + export NO_GENTOO_NETWORK_TESTS=1; + export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}" + export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}" + if [[ ${EUID} == 0 ]] ; then + ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..." + return 0 + fi + use elibc_uclibc && export MAKEOPTS+=" -j1" + TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed" +} + +src_install() { + local i + local coredir="${ARCH_LIB}/CORE" + + emake DESTDIR="${D}" install + + rm -f "${ED}/usr/bin/perl${MY_PV}" + ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die + + if ! tc-is-static-only ; then + dolib.so "${ED}"${coredir}/${LIBPERL} + rm -f "${ED}"${coredir}/${LIBPERL} + ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die + ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die + + ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die + ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die + ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die + fi + + rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages" + + # This removes ${D} from Config.pm + for i in $(find "${D}" -iname "Config.pm" ) ; do + einfo "Removing ${D} from ${i}..." + sed -i -e "s:${D}::" "${i}" || die "Sed failed" + done + + dodoc Changes* README AUTHORS + + if use doc ; then + # HTML Documentation + # We expect errors, warnings, and such with the following. + + dodir /usr/share/doc/${PF}/html + LD_LIBRARY_PATH=. ./perl installhtml \ + --podroot='.' \ + --podpath='lib:ext:pod:vms' \ + --recurse \ + --htmldir="${ED}/usr/share/doc/${PF}/html" + fi + + [[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local + + dual_scripts +} + +pkg_preinst() { + check_rebuild +} + +pkg_postinst() { + dual_scripts + + if [[ "${ROOT}" = "/" ]] ; then + local INC DIR file + INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }') + einfo "Removing old .ph files" + for DIR in ${INC} ; do + if [[ -d "${DIR}" ]] ; then + for file in $(find "${DIR}" -name "*.ph" -type f ) ; do + rm -f "${file}" + einfo "<< ${file}" + done + fi + done + # Silently remove the now empty dirs + for DIR in ${INC} ; do + if [[ -d "${DIR}" ]] ; then + find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null + fi + done + + fi +} + +pkg_postrm() { + dual_scripts +} diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest index 4bb08cd6166a..fcabe82067bb 100644 --- a/dev-lang/php/Manifest +++ b/dev-lang/php/Manifest @@ -3,13 +3,19 @@ AUX php-fpm_at-simple.service 316 BLAKE2B 0ba10f3e3b004fbf14956e1e4f04f59b8a127e AUX php-fpm_at.service 317 BLAKE2B f13fc38fcc0575a8517ee8d07b120efda37eabd2355061d0fdc303604c6b02ad42d7301180d86c977d5e585f5dd685343c592e37a6e0f44933707be79e0b77e0 SHA512 27982f9e2d958bfa75c89c7d3531e48d17fc388b1cdcbc8e09051b236b1184ee2baabdfcc567c19d9fcd067d4b3b86f171015616d8da42fccdabd89432d865e8 AUX php-freetype-2.9.1.patch 7667 BLAKE2B efc8f829bbad11b3e7b654d0882213ecb9aae766060d51f93446a6293a2f607339faba484c7b0b2f9318a5c5442da3c09e25aeda20dbc5e3258bf1009f8625b4 SHA512 0a06189f6fb3513cd2dcf9ddb590360475e2dd9a7aa8b13ab66c389c1ed40ce2361681f017cd3c6219f5b40a0a9d4978e57ca3ee4bacb7657db3285136fd2875 AUX php-iodbc-header-location.patch 481 BLAKE2B 9ea6a5d529dc7a8c78eeee800900372bc14309a05e352b2838da32e1384b61b507fdb623c9400094aa5b637eb1a87da92c72600eff79b18b8989ef90af56a0fa SHA512 86469f657d8807f005c28fd2149770c881add8f243fdfea087956c7987277597fe400a7af23f624f26da270356604717ed9cd04771154d7cf2ffe7237972372b +AUX php73-CVE2021-21703.patch 14787 BLAKE2B 53fd80146d58739f880a3fae9de8aeee0dda60cf33edf150dce64ae92fca776efd7831544154fc42329833618c52f4ed7df4c1faa181e5f30685cff9a60fd8b6 SHA512 88bb22a1de5a4b5ed466bb5bfd5b4fd25f6580227bf7c2c961b693c8d11c640b52c0d9047d28596c14a3304dfa619b4828ee76912bf16609e8a7b4a0055eff27 AUX php80-firebird-warnings.patch 1949 BLAKE2B ab1b693afe26b6529aab8628f9a614478c388ed23603ad1dd4d17b63154d535a3e4c2db04fe27fb22a3d7e1335e368ffd383ed24647ac53ac05170ec3e1beb75 SHA512 d37815ea529167d4959aef056a3a0be6902ee4cda809a48c24299b05ff6477ee82e8ed8dcf49051b8e74ba5c31e3985454591ea751d4550df3d2e3639ec0d616 DIST php-7.3.31.tar.xz 12142912 BLAKE2B dc68d2e2f38c93653950be4b30dde12fec6e7279e288fe40439a8e3e31110a228a69275e032604a493a53951230f6f42257719617ae18179116be414e49a2af5 SHA512 63a8122233b9892453b6b92429497a7ad9761ad88063e2b95607b5d4d4c0a0e1135073bcae5a0e69a17082d2348911cbbd4807c0d20905d93324d89e5b019a05 DIST php-7.4.24.tar.xz 10372816 BLAKE2B 62e1853c20eb10d8540b9284af93cce4b3976cfae7cdba5c0c2d6d14e732a57d7f1d196f4270687d6af8f376d7a9ccef60b0b606ed20eda7e1b2b7b95074c55c SHA512 30dd0a83d6184791f4cff3edcffeb05470de8f98ddadba3c11544449bf500280ff2048a8ca8588b35d0622dcbbf16f55ea297f51d469ae137048cab2d40da9cd +DIST php-7.4.25.tar.xz 10376304 BLAKE2B 75682840a9e978d2ce350892bb8d743238f1ca86d4e1bb549637ad259541264c911128d3fbb2a89768acaa366eac91e66b26f8411f6b9f6d55475b139f5ae95a SHA512 7fcb236f6d2a92514059b2e107c2b592e6139e3c65046566ae98fb9d2c09eb3e9ca1a41ea6535fc814bc7127d8fd9f8bb5a80bd86eec32120eb150a34b9b5c34 DIST php-8.0.11.tar.xz 10804388 BLAKE2B 8d32f2bb66b2850c7d8d820cbcf94af5161065612b204f6e30289d9b9fffbae7c45cdf5e31c3d1f774932d7eb7218079f6f0d19774b108d53a81a6c88d3c99fb SHA512 2d346959b2691ea0d5334dc9cad225b7a65ec53d6a6493f3b95c4819a0c088bec36aa1bf4ab3c8044a631bcfefb689d85463ff2259d42000e65dac30badcc59d +DIST php-8.0.12.tar.xz 10713980 BLAKE2B ce8ca0d671e8613a81744a55cf94ff43254482a08dec365c05eb4ca22c1b31732e5ef93a51d383d2e8daf0cf332ed7946e79ba3b385386ca0773fc673fe58307 SHA512 927b15c4443f3741a5325ec7bf387987b405cd5e64e40fd81f1945bf073adda30eeede8e1f98185f505cb61f969cf1abe05b8dad57a3c4e87971e8037bb16b23 DIST php-8.1.0RC2.tar.xz 11679352 BLAKE2B 0b4eb5b1f8d3f8fb29421b6c72b3279bc7f3c5f6ba684305afdc7b1f5cc0f45a942d5c0f0a681f152ad87f209fa4e464215aef43732180882d523f2badd4596e SHA512 aecd58eb683467df62032208caa545d243ca2574f6683566a489136c84a19da4383c5aaa122dc09cfb44dc951bfaf85e50b0b9659b49ec1c4ae69f5afea9844b +EBUILD php-7.3.31-r1.ebuild 22643 BLAKE2B 54491f1e6de72056393db307f160ae7c2d95b42cb166cb4f2427e469797931c739e54ca9a94e1c26af7c9fc5976c214fabb1d0c0840778f0b0e91c1a84c84e88 SHA512 99c9bbb693353a681619b4d02a4723868f3ed11da6108bf71ecf0ecba921fd9d12b60691e39fc35722ae1870318b2202fd1f947f39420a0f4f5406c1db76a3f1 EBUILD php-7.3.31.ebuild 22683 BLAKE2B c9a62b09e00619d5e9ddfbd20abcb2f424d1e6d6f702fae36854b4a0bb3e5a1ef49f1584aae2d2b5d225c4df763687ff3e319c720b3946766bd57fe07842a185 SHA512 69a574958c2b644a3c14d39dd8068af550547e4a86c685539fe6c82b9d4b9883fd22b03fae5e04d0a7df4970ba82a82e127afd4609cde177165d734fb1ad116e EBUILD php-7.4.24.ebuild 21401 BLAKE2B ea68621850881309ab746d4df6e2aab8b501646f09ee2bfac8603bb91b5c8a76d63e415705d94566d3c4e3c4a4de7934d369d5c519d81995037eec317a7df415 SHA512 45a6958db40d98dd0c20880b8e7dfbb37809af9b845a839029c28a310a1d15d9b5af6c3efd0584a922e052a5f8bb0c22491aa12e0fe0f5dd32934e5b5b84dfa6 +EBUILD php-7.4.25.ebuild 21320 BLAKE2B 7171867b165a2f39e18d9461f90c0dee19c46b53151452e74c97a8d1f0494ea3e920d675ad39c31f25360a57f039446f906517530504c737141cc59a4f8bb5d8 SHA512 bc02c4b69a77aa0ed89e459af216e773816435f67c725ab8bf320266612971f203388e1167f80b8854b498c79f584e0ed9ef495cd209a74f680eb2fe091a67ab EBUILD php-8.0.11.ebuild 21420 BLAKE2B b55b392157d546ad51d0b66330271586dad104a7fe885ae68fd177cee3956b0ec1a4ec7922bc0315b1f72796adbc6d08bb2c12304a44cb64c62de73b731fcdf1 SHA512 d4ae2c1692ebeb42fed40e4e5239790fbb98f862375f36f40ff00ab58f34803a44c040acaeb66e10a597ac21831cc8b7c084735c7f245efef59b65a84b461bbd +EBUILD php-8.0.12.ebuild 21338 BLAKE2B e6a1527d4a0836dda34e678eb54b5c89face7414f6e5c1284ef65e26580ff53ad0a00eeb02ce51dc873c8647109b35560cd2f9e2a334e0331f5ef80d279661a2 SHA512 2ae595d4ec9bded23509e48b90bb6ad356a7f7a176db7cdf92b2b6cf1376926e59f764c52df4b70baed5a5b8555e0fded6492e5363310402f1efd68b27bf95af EBUILD php-8.1.0_rc2.ebuild 21457 BLAKE2B 1ecc29a6afcba5210f229c7e8a5bca3f145af1efc1581106e7628404234f88e170ae3e65bb2f27f2117a7c78924b1957e670d6028a20c1e7f1237d1f13301d7c SHA512 10762a13466b1a3868b98485d6ffbb0b3375e450bf6f5139564cfe01a84009a2f8a4b16ab841aec0ab357156069966271205d9ebd41b7a4b3c78852d45f9851d MISC metadata.xml 3378 BLAKE2B 4ea64ce2404205f33be7d0be217ad8eeef2b82bc50700664dd89db5bd6c3aabfe2b0ab72497493bdb1214d3c30d9fdabe0e8790938aa68fd3cff8bb25249057b SHA512 21fc30b50fe9d5fdbd63c19e1bc7856bc2e7d96ff8fbd05aff4fc07bddae68cbe8dffecb1854de233031257dcd40da265463887259f95ed886dac8bc2b6cc535 diff --git a/dev-lang/php/files/php73-CVE2021-21703.patch b/dev-lang/php/files/php73-CVE2021-21703.patch new file mode 100644 index 000000000000..d565c84c364e --- /dev/null +++ b/dev-lang/php/files/php73-CVE2021-21703.patch @@ -0,0 +1,397 @@ +From c600ec7bcf2696882ffe961e7b158c67aa2e7277 Mon Sep 17 00:00:00 2001 +From: Jakub Zelenka +Date: Sat, 2 Oct 2021 22:53:41 +0100 +Subject: [PATCH] Fix bug #81026 (PHP-FPM oob R/W in root process leading to + priv escalatio) + +The main change is to store scoreboard procs directly to the variable sized +array rather than indirectly through the pointer. +--- + sapi/fpm/fpm/fpm_children.c | 14 ++--- + sapi/fpm/fpm/fpm_request.c | 4 +- + sapi/fpm/fpm/fpm_scoreboard.c | 106 ++++++++++++++++++++------------- + sapi/fpm/fpm/fpm_scoreboard.h | 11 ++-- + sapi/fpm/fpm/fpm_status.c | 4 +- + sapi/fpm/fpm/fpm_worker_pool.c | 2 +- + 6 files changed, 81 insertions(+), 60 deletions(-) + +diff --git a/sapi/fpm/fpm/fpm_children.c b/sapi/fpm/fpm/fpm_children.c +index fd121372f3..912f77c11a 100644 +--- a/sapi/fpm/fpm/fpm_children.c ++++ b/sapi/fpm/fpm/fpm_children.c +@@ -246,7 +246,7 @@ void fpm_children_bury() /* {{{ */ + + fpm_child_unlink(child); + +- fpm_scoreboard_proc_free(wp->scoreboard, child->scoreboard_i); ++ fpm_scoreboard_proc_free(child); + + fpm_clock_get(&tv1); + +@@ -256,9 +256,9 @@ void fpm_children_bury() /* {{{ */ + if (!fpm_pctl_can_spawn_children()) { + severity = ZLOG_DEBUG; + } +- zlog(severity, "[pool %s] child %d exited %s after %ld.%06d seconds from start", child->wp->config->name, (int) pid, buf, tv2.tv_sec, (int) tv2.tv_usec); ++ zlog(severity, "[pool %s] child %d exited %s after %ld.%06d seconds from start", wp->config->name, (int) pid, buf, tv2.tv_sec, (int) tv2.tv_usec); + } else { +- zlog(ZLOG_DEBUG, "[pool %s] child %d has been killed by the process management after %ld.%06d seconds from start", child->wp->config->name, (int) pid, tv2.tv_sec, (int) tv2.tv_usec); ++ zlog(ZLOG_DEBUG, "[pool %s] child %d has been killed by the process management after %ld.%06d seconds from start", wp->config->name, (int) pid, tv2.tv_sec, (int) tv2.tv_usec); + } + + fpm_child_close(child, 1 /* in event_loop */); +@@ -324,7 +324,7 @@ static struct fpm_child_s *fpm_resources_prepare(struct fpm_worker_pool_s *wp) / + return 0; + } + +- if (0 > fpm_scoreboard_proc_alloc(wp->scoreboard, &c->scoreboard_i)) { ++ if (0 > fpm_scoreboard_proc_alloc(c)) { + fpm_stdio_discard_pipes(c); + fpm_child_free(c); + return 0; +@@ -336,7 +336,7 @@ static struct fpm_child_s *fpm_resources_prepare(struct fpm_worker_pool_s *wp) / + + static void fpm_resources_discard(struct fpm_child_s *child) /* {{{ */ + { +- fpm_scoreboard_proc_free(child->wp->scoreboard, child->scoreboard_i); ++ fpm_scoreboard_proc_free(child); + fpm_stdio_discard_pipes(child); + fpm_child_free(child); + } +@@ -349,10 +349,10 @@ static void fpm_child_resources_use(struct fpm_child_s *child) /* {{{ */ + if (wp == child->wp) { + continue; + } +- fpm_scoreboard_free(wp->scoreboard); ++ fpm_scoreboard_free(wp); + } + +- fpm_scoreboard_child_use(child->wp->scoreboard, child->scoreboard_i, getpid()); ++ fpm_scoreboard_child_use(child, getpid()); + fpm_stdio_child_use_pipes(child); + fpm_child_free(child); + } +diff --git a/sapi/fpm/fpm/fpm_request.c b/sapi/fpm/fpm/fpm_request.c +index c80aa14462..0a6f6a7cfb 100644 +--- a/sapi/fpm/fpm/fpm_request.c ++++ b/sapi/fpm/fpm/fpm_request.c +@@ -285,7 +285,7 @@ int fpm_request_is_idle(struct fpm_child_s *child) /* {{{ */ + struct fpm_scoreboard_proc_s *proc; + + /* no need in atomicity here */ +- proc = fpm_scoreboard_proc_get(child->wp->scoreboard, child->scoreboard_i); ++ proc = fpm_scoreboard_proc_get_from_child(child); + if (!proc) { + return 0; + } +@@ -300,7 +300,7 @@ int fpm_request_last_activity(struct fpm_child_s *child, struct timeval *tv) /* + + if (!tv) return -1; + +- proc = fpm_scoreboard_proc_get(child->wp->scoreboard, child->scoreboard_i); ++ proc = fpm_scoreboard_proc_get_from_child(child); + if (!proc) { + return -1; + } +diff --git a/sapi/fpm/fpm/fpm_scoreboard.c b/sapi/fpm/fpm/fpm_scoreboard.c +index 328f999f0c..7e9da4d684 100644 +--- a/sapi/fpm/fpm/fpm_scoreboard.c ++++ b/sapi/fpm/fpm/fpm_scoreboard.c +@@ -6,6 +6,7 @@ + #include + + #include "fpm_config.h" ++#include "fpm_children.h" + #include "fpm_scoreboard.h" + #include "fpm_shm.h" + #include "fpm_sockets.h" +@@ -23,7 +24,6 @@ static float fpm_scoreboard_tick; + int fpm_scoreboard_init_main() /* {{{ */ + { + struct fpm_worker_pool_s *wp; +- unsigned int i; + + #ifdef HAVE_TIMES + #if (defined(HAVE_SYSCONF) && defined(_SC_CLK_TCK)) +@@ -40,7 +40,7 @@ int fpm_scoreboard_init_main() /* {{{ */ + + + for (wp = fpm_worker_all_pools; wp; wp = wp->next) { +- size_t scoreboard_size, scoreboard_nprocs_size; ++ size_t scoreboard_procs_size; + void *shm_mem; + + if (wp->config->pm_max_children < 1) { +@@ -53,22 +53,15 @@ int fpm_scoreboard_init_main() /* {{{ */ + return -1; + } + +- scoreboard_size = sizeof(struct fpm_scoreboard_s) + (wp->config->pm_max_children) * sizeof(struct fpm_scoreboard_proc_s *); +- scoreboard_nprocs_size = sizeof(struct fpm_scoreboard_proc_s) * wp->config->pm_max_children; +- shm_mem = fpm_shm_alloc(scoreboard_size + scoreboard_nprocs_size); ++ scoreboard_procs_size = sizeof(struct fpm_scoreboard_proc_s) * wp->config->pm_max_children; ++ shm_mem = fpm_shm_alloc(sizeof(struct fpm_scoreboard_s) + scoreboard_procs_size); + + if (!shm_mem) { + return -1; + } +- wp->scoreboard = shm_mem; ++ wp->scoreboard = shm_mem; ++ wp->scoreboard->pm = wp->config->pm; + wp->scoreboard->nprocs = wp->config->pm_max_children; +- shm_mem += scoreboard_size; +- +- for (i = 0; i < wp->scoreboard->nprocs; i++, shm_mem += sizeof(struct fpm_scoreboard_proc_s)) { +- wp->scoreboard->procs[i] = shm_mem; +- } +- +- wp->scoreboard->pm = wp->config->pm; + wp->scoreboard->start_epoch = time(NULL); + strlcpy(wp->scoreboard->pool, wp->config->name, sizeof(wp->scoreboard->pool)); + } +@@ -162,28 +155,48 @@ struct fpm_scoreboard_s *fpm_scoreboard_get() /* {{{*/ + } + /* }}} */ + +-struct fpm_scoreboard_proc_s *fpm_scoreboard_proc_get(struct fpm_scoreboard_s *scoreboard, int child_index) /* {{{*/ ++static inline struct fpm_scoreboard_proc_s *fpm_scoreboard_proc_get_ex( ++ struct fpm_scoreboard_s *scoreboard, int child_index, unsigned int nprocs) /* {{{*/ + { + if (!scoreboard) { +- scoreboard = fpm_scoreboard; ++ return NULL; + } + +- if (!scoreboard) { ++ if (child_index < 0 || (unsigned int)child_index >= nprocs) { + return NULL; + } + ++ return &scoreboard->procs[child_index]; ++} ++/* }}} */ ++ ++struct fpm_scoreboard_proc_s *fpm_scoreboard_proc_get( ++ struct fpm_scoreboard_s *scoreboard, int child_index) /* {{{*/ ++{ ++ if (!scoreboard) { ++ scoreboard = fpm_scoreboard; ++ } ++ + if (child_index < 0) { + child_index = fpm_scoreboard_i; + } + +- if (child_index < 0 || (unsigned int)child_index >= scoreboard->nprocs) { +- return NULL; +- } ++ return fpm_scoreboard_proc_get_ex(scoreboard, child_index, scoreboard->nprocs); ++} ++/* }}} */ + +- return scoreboard->procs[child_index]; ++struct fpm_scoreboard_proc_s *fpm_scoreboard_proc_get_from_child(struct fpm_child_s *child) /* {{{*/ ++{ ++ struct fpm_worker_pool_s *wp = child->wp; ++ unsigned int nprocs = wp->config->pm_max_children; ++ struct fpm_scoreboard_s *scoreboard = wp->scoreboard; ++ int child_index = child->scoreboard_i; ++ ++ return fpm_scoreboard_proc_get_ex(scoreboard, child_index, nprocs); + } + /* }}} */ + ++ + struct fpm_scoreboard_s *fpm_scoreboard_acquire(struct fpm_scoreboard_s *scoreboard, int nohang) /* {{{ */ + { + struct fpm_scoreboard_s *s; +@@ -234,28 +247,28 @@ void fpm_scoreboard_proc_release(struct fpm_scoreboard_proc_s *proc) /* {{{ */ + proc->lock = 0; + } + +-void fpm_scoreboard_free(struct fpm_scoreboard_s *scoreboard) /* {{{ */ ++void fpm_scoreboard_free(struct fpm_worker_pool_s *wp) /* {{{ */ + { +- size_t scoreboard_size, scoreboard_nprocs_size; ++ size_t scoreboard_procs_size; ++ struct fpm_scoreboard_s *scoreboard = wp->scoreboard; + + if (!scoreboard) { + zlog(ZLOG_ERROR, "**scoreboard is NULL"); + return; + } + +- scoreboard_size = sizeof(struct fpm_scoreboard_s) + (scoreboard->nprocs) * sizeof(struct fpm_scoreboard_proc_s *); +- scoreboard_nprocs_size = sizeof(struct fpm_scoreboard_proc_s) * scoreboard->nprocs; ++ scoreboard_procs_size = sizeof(struct fpm_scoreboard_proc_s) * wp->config->pm_max_children; + +- fpm_shm_free(scoreboard, scoreboard_size + scoreboard_nprocs_size); ++ fpm_shm_free(scoreboard, sizeof(struct fpm_scoreboard_s) + scoreboard_procs_size); + } + /* }}} */ + +-void fpm_scoreboard_child_use(struct fpm_scoreboard_s *scoreboard, int child_index, pid_t pid) /* {{{ */ ++void fpm_scoreboard_child_use(struct fpm_child_s *child, pid_t pid) /* {{{ */ + { + struct fpm_scoreboard_proc_s *proc; +- fpm_scoreboard = scoreboard; +- fpm_scoreboard_i = child_index; +- proc = fpm_scoreboard_proc_get(scoreboard, child_index); ++ fpm_scoreboard = child->wp->scoreboard; ++ fpm_scoreboard_i = child->scoreboard_i; ++ proc = fpm_scoreboard_proc_get_from_child(child); + if (!proc) { + return; + } +@@ -264,18 +277,22 @@ void fpm_scoreboard_child_use(struct fpm_scoreboard_s *scoreboard, int child_ind + } + /* }}} */ + +-void fpm_scoreboard_proc_free(struct fpm_scoreboard_s *scoreboard, int child_index) /* {{{ */ ++void fpm_scoreboard_proc_free(struct fpm_child_s *child) /* {{{ */ + { ++ struct fpm_worker_pool_s *wp = child->wp; ++ struct fpm_scoreboard_s *scoreboard = wp->scoreboard; ++ int child_index = child->scoreboard_i; ++ + if (!scoreboard) { + return; + } + +- if (child_index < 0 || (unsigned int)child_index >= scoreboard->nprocs) { ++ if (child_index < 0 || child_index >= wp->config->pm_max_children) { + return; + } + +- if (scoreboard->procs[child_index] && scoreboard->procs[child_index]->used > 0) { +- memset(scoreboard->procs[child_index], 0, sizeof(struct fpm_scoreboard_proc_s)); ++ if (scoreboard->procs[child_index].used > 0) { ++ memset(&scoreboard->procs[child_index], 0, sizeof(struct fpm_scoreboard_proc_s)); + } + + /* set this slot as free to avoid search on next alloc */ +@@ -283,41 +300,44 @@ void fpm_scoreboard_proc_free(struct fpm_scoreboard_s *scoreboard, int child_ind + } + /* }}} */ + +-int fpm_scoreboard_proc_alloc(struct fpm_scoreboard_s *scoreboard, int *child_index) /* {{{ */ ++int fpm_scoreboard_proc_alloc(struct fpm_child_s *child) /* {{{ */ + { + int i = -1; ++ struct fpm_worker_pool_s *wp = child->wp; ++ struct fpm_scoreboard_s *scoreboard = wp->scoreboard; ++ int nprocs = wp->config->pm_max_children; + +- if (!scoreboard || !child_index) { ++ if (!scoreboard) { + return -1; + } + + /* first try the slot which is supposed to be free */ +- if (scoreboard->free_proc >= 0 && (unsigned int)scoreboard->free_proc < scoreboard->nprocs) { +- if (scoreboard->procs[scoreboard->free_proc] && !scoreboard->procs[scoreboard->free_proc]->used) { ++ if (scoreboard->free_proc >= 0 && scoreboard->free_proc < nprocs) { ++ if (!scoreboard->procs[scoreboard->free_proc].used) { + i = scoreboard->free_proc; + } + } + + if (i < 0) { /* the supposed free slot is not, let's search for a free slot */ + zlog(ZLOG_DEBUG, "[pool %s] the proc->free_slot was not free. Let's search", scoreboard->pool); +- for (i = 0; i < (int)scoreboard->nprocs; i++) { +- if (scoreboard->procs[i] && !scoreboard->procs[i]->used) { /* found */ ++ for (i = 0; i < nprocs; i++) { ++ if (!scoreboard->procs[i].used) { /* found */ + break; + } + } + } + + /* no free slot */ +- if (i < 0 || i >= (int)scoreboard->nprocs) { ++ if (i < 0 || i >= nprocs) { + zlog(ZLOG_ERROR, "[pool %s] no free scoreboard slot", scoreboard->pool); + return -1; + } + +- scoreboard->procs[i]->used = 1; +- *child_index = i; ++ scoreboard->procs[i].used = 1; ++ child->scoreboard_i = i; + + /* supposed next slot is free */ +- if (i + 1 >= (int)scoreboard->nprocs) { ++ if (i + 1 >= nprocs) { + scoreboard->free_proc = 0; + } else { + scoreboard->free_proc = i + 1; +diff --git a/sapi/fpm/fpm/fpm_scoreboard.h b/sapi/fpm/fpm/fpm_scoreboard.h +index 1fecde1d0f..9d5981e1c7 100644 +--- a/sapi/fpm/fpm/fpm_scoreboard.h ++++ b/sapi/fpm/fpm/fpm_scoreboard.h +@@ -63,7 +63,7 @@ struct fpm_scoreboard_s { + unsigned int nprocs; + int free_proc; + unsigned long int slow_rq; +- struct fpm_scoreboard_proc_s *procs[]; ++ struct fpm_scoreboard_proc_s procs[]; + }; + + int fpm_scoreboard_init_main(); +@@ -72,18 +72,19 @@ int fpm_scoreboard_init_child(struct fpm_worker_pool_s *wp); + void fpm_scoreboard_update(int idle, int active, int lq, int lq_len, int requests, int max_children_reached, int slow_rq, int action, struct fpm_scoreboard_s *scoreboard); + struct fpm_scoreboard_s *fpm_scoreboard_get(); + struct fpm_scoreboard_proc_s *fpm_scoreboard_proc_get(struct fpm_scoreboard_s *scoreboard, int child_index); ++struct fpm_scoreboard_proc_s *fpm_scoreboard_proc_get_from_child(struct fpm_child_s *child); + + struct fpm_scoreboard_s *fpm_scoreboard_acquire(struct fpm_scoreboard_s *scoreboard, int nohang); + void fpm_scoreboard_release(struct fpm_scoreboard_s *scoreboard); + struct fpm_scoreboard_proc_s *fpm_scoreboard_proc_acquire(struct fpm_scoreboard_s *scoreboard, int child_index, int nohang); + void fpm_scoreboard_proc_release(struct fpm_scoreboard_proc_s *proc); + +-void fpm_scoreboard_free(struct fpm_scoreboard_s *scoreboard); ++void fpm_scoreboard_free(struct fpm_worker_pool_s *wp); + +-void fpm_scoreboard_child_use(struct fpm_scoreboard_s *scoreboard, int child_index, pid_t pid); ++void fpm_scoreboard_child_use(struct fpm_child_s *child, pid_t pid); + +-void fpm_scoreboard_proc_free(struct fpm_scoreboard_s *scoreboard, int child_index); +-int fpm_scoreboard_proc_alloc(struct fpm_scoreboard_s *scoreboard, int *child_index); ++void fpm_scoreboard_proc_free(struct fpm_child_s *child); ++int fpm_scoreboard_proc_alloc(struct fpm_child_s *child); + + #ifdef HAVE_TIMES + float fpm_scoreboard_get_tick(); +diff --git a/sapi/fpm/fpm/fpm_status.c b/sapi/fpm/fpm/fpm_status.c +index 36d2240635..de8db9d61a 100644 +--- a/sapi/fpm/fpm/fpm_status.c ++++ b/sapi/fpm/fpm/fpm_status.c +@@ -498,10 +498,10 @@ int fpm_status_handle_request(void) /* {{{ */ + + first = 1; + for (i=0; inprocs; i++) { +- if (!scoreboard_p->procs[i] || !scoreboard_p->procs[i]->used) { ++ if (!scoreboard_p->procs[i].used) { + continue; + } +- proc = *scoreboard_p->procs[i]; ++ proc = scoreboard_p->procs[i]; + + if (first) { + first = 0; +diff --git a/sapi/fpm/fpm/fpm_worker_pool.c b/sapi/fpm/fpm/fpm_worker_pool.c +index d04528f4e0..65a9b226b1 100644 +--- a/sapi/fpm/fpm/fpm_worker_pool.c ++++ b/sapi/fpm/fpm/fpm_worker_pool.c +@@ -54,7 +54,7 @@ static void fpm_worker_pool_cleanup(int which, void *arg) /* {{{ */ + fpm_worker_pool_config_free(wp->config); + fpm_children_free(wp->children); + if ((which & FPM_CLEANUP_CHILD) == 0 && fpm_globals.parent_pid == getpid()) { +- fpm_scoreboard_free(wp->scoreboard); ++ fpm_scoreboard_free(wp); + } + fpm_worker_pool_free(wp); + } +-- +2.25.1 + diff --git a/dev-lang/php/php-7.3.31-r1.ebuild b/dev-lang/php/php-7.3.31-r1.ebuild new file mode 100644 index 000000000000..68107492ff90 --- /dev/null +++ b/dev-lang/php/php-7.3.31-r1.ebuild @@ -0,0 +1,754 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +inherit flag-o-matic systemd autotools + +MY_PV=${PV/_rc/RC} +DESCRIPTION="The PHP language runtime engine" +HOMEPAGE="https://www.php.net/" +SRC_URI="https://www.php.net/distributions/${P}.tar.xz" + +LICENSE="PHP-3.01 + BSD + Zend-2.0 + bcmath? ( LGPL-2.1+ ) + fpm? ( BSD-2 ) + gd? ( gd ) + unicode? ( BSD-2 LGPL-2.1 )" + +SLOT="$(ver_cut 1-2)" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" + +S="${WORKDIR}/${PN}-${MY_PV}" + +# We can build the following SAPIs in the given order +SAPIS="embed cli cgi fpm apache2 phpdbg" + +# SAPIs and SAPI-specific USE flags (cli SAPI is default on): +IUSE="${IUSE} + ${SAPIS/cli/+cli} + threads" + +IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk + coverage +ctype curl debug + enchant exif +fileinfo +filter firebird + +flatfile ftp gd gdbm gmp +hash +iconv imap inifile + intl iodbc ipv6 +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 recode selinux +session session-mm sharedmem + +simplexml snmp soap sockets sodium spell sqlite ssl + sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode wddx webp + +xml xmlreader xmlwriter xmlrpc xpm xslt zip zip-encryption zlib" + +# The supported (that is, autodetected) versions of BDB are listed in +# the ./configure script. Other versions *work*, but we need to stick to +# the ones that can be detected to avoid a repeat of bug #564824. +COMMON_DEPEND=" + >=app-eselect/eselect-php-0.9.1[apache2?,fpm?] + >=dev-libs/libpcre2-10.30[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:4.8 ) ) + bzip2? ( app-arch/bzip2:0= ) + cdb? ( || ( dev-db/cdb dev-db/tinycdb ) ) + coverage? ( dev-util/lcov ) + curl? ( >=net-misc/curl-7.10.5 ) + enchant? ( =virtual/jpeg-0-r3:0 media-libs/libpng:0= >=sys-libs/zlib-1.2.0.4 ) + gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) + gmp? ( dev-libs/gmp:0= ) + iconv? ( virtual/libiconv ) + imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] ) + intl? ( dev-libs/icu:= ) + iodbc? ( dev-db/libiodbc ) + kerberos? ( virtual/krb5 ) + ldap? ( >=net-nds/openldap-1.2.11 ) + ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 ) + libedit? ( dev-libs/libedit ) + lmdb? ( dev-db/lmdb:= ) + mssql? ( dev-db/freetds[mssql] ) + nls? ( sys-devel/gettext ) + oci8-instant-client? ( dev-db/oracle-instantclient[sdk] ) + odbc? ( >=dev-db/unixODBC-1.8.13 ) + postgres? ( dev-db/postgresql:* ) + qdbm? ( dev-db/qdbm ) + readline? ( sys-libs/readline:0= ) + recode? ( app-text/recode:0= ) + session-mm? ( dev-libs/mm ) + simplexml? ( >=dev-libs/libxml2-2.6.8 ) + snmp? ( >=net-analyzer/net-snmp-5.2 ) + soap? ( >=dev-libs/libxml2-2.6.8 ) + sodium? ( dev-libs/libsodium:=[-minimal] ) + 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:= ) + wddx? ( >=dev-libs/libxml2-2.6.8 ) + webp? ( media-libs/libwebp:0= ) + xml? ( >=dev-libs/libxml2-2.6.8 ) + xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv ) + xmlreader? ( >=dev-libs/libxml2-2.6.8 ) + xmlwriter? ( >=dev-libs/libxml2-2.6.8 ) + xpm? ( x11-libs/libXpm ) + xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 ) + zip? ( >=sys-libs/zlib-1.2.0.4:0= ) + zip-encryption? ( >=dev-libs/libzip-1.2.0:= ) + zlib? ( >=sys-libs/zlib-1.2.0.4:0= ) +" + +RDEPEND="${COMMON_DEPEND} + virtual/mta + fpm? ( + selinux? ( sec-policy/selinux-phpfpm ) + systemd? ( sys-apps/systemd ) )" + +# Bison isn't actually needed when building from a release tarball +# However, the configure script will warn if it's absent or if you +# have an incompatible version installed. See bug 593278. +DEPEND="${COMMON_DEPEND} + app-arch/xz-utils + >=sys-devel/bison-3.0.1" + +BDEPEND="virtual/pkgconfig" + +# Without USE=readline or libedit, the interactive "php -a" CLI will hang. +# The Oracle instant client provides its own incompatible ldap library. +REQUIRED_USE=" + || ( cli cgi fpm apache2 embed phpdbg ) + cli? ( ^^ ( readline libedit ) ) + truetype? ( gd zlib ) + webp? ( gd zlib ) + cjk? ( gd zlib ) + exif? ( gd zlib ) + xpm? ( gd zlib ) + gd? ( zlib ) + simplexml? ( xml ) + soap? ( xml ) + wddx? ( xml ) + xmlrpc? ( || ( xml iconv ) ) + xmlreader? ( xml ) + xslt? ( xml ) + ldap-sasl? ( ldap ) + mhash? ( hash ) + oci8-instant-client? ( !ldap ) + phar? ( hash ) + qdbm? ( !gdbm ) + readline? ( !libedit ) + recode? ( !imap !mysqli !mysql ) + session-mm? ( session !threads ) + mysql? ( || ( mysqli pdo ) ) + zip-encryption? ( zip ) +" + +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}/php-freetype-2.9.1.patch" + "${FILESDIR}/php73-CVE2021-21703.patch" +) + +PHP_MV="$(ver_cut 1)" + +php_install_ini() { + local phpsapi="${1}" + + # work out where we are installing the ini file + php_set_ini_dir "${phpsapi}" + + # Always install the production INI file, bug 611214. + local phpinisrc="php.ini-production-${phpsapi}" + cp php.ini-production "${phpinisrc}" || die + + # default to /tmp for save_path, bug #282768 + sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die + + # Set the extension dir + sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \ + -i "${phpinisrc}" || die + + # Set the include path to point to where we want to find PEAR packages + sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die + + insinto "${PHP_INI_DIR#${EPREFIX}}" + newins "${phpinisrc}" php.ini + + elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}" + elog + + dodir "${PHP_EXT_INI_DIR#${EPREFIX}}" + dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}" + + if use opcache; then + elog "Adding opcache to $PHP_EXT_INI_DIR" + echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \ + "${D}/${PHP_EXT_INI_DIR}"/opcache.ini + dosym "../ext/opcache.ini" \ + "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini" + fi + + # SAPI-specific handling + if [[ "${sapi}" == "fpm" ]] ; then + einfo "Installing FPM config files php-fpm.conf and www.conf" + insinto "${PHP_INI_DIR#${EPREFIX}}" + doins sapi/fpm/php-fpm.conf + insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d" + doins sapi/fpm/www.conf + fi + + dodoc php.ini-{development,production} +} + +php_set_ini_dir() { + PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}" + PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext" + PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active" +} + +src_prepare() { + default + + # In php-7.x, the FPM pool configuration files have been split off + # of the main config. By default the pool config files go in + # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the + # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later + # we'll install the pool configuration file "www.conf" there. + php_set_ini_dir fpm + sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \ + sapi/fpm/php-fpm.conf.in \ + || die 'failed to move the include directory in php-fpm.conf' + + # Bug 669566 - necessary so that build tools are updated for commands like pecl + # Force rebuilding aclocal.m4 + rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare" + eautoreconf +} + +src_configure() { + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}" + + # The php-fpm config file wants localstatedir to be ${EPREFIX}/var + # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002. + local our_conf=( + --prefix="${PHP_DESTDIR}" + --mandir="${PHP_DESTDIR}/man" + --infodir="${PHP_DESTDIR}/info" + --libdir="${PHP_DESTDIR}/lib" + --with-libdir="$(get_libdir)" + --localstatedir="${EPREFIX}/var" + --without-pear + $(use_enable threads maintainer-zts) + ) + + our_conf+=( + $(use_with argon2 password-argon2 "${EPREFIX}/usr") + $(use_enable bcmath bcmath) + $(use_with bzip2 bz2 "${EPREFIX}/usr") + $(use_enable calendar calendar) + $(use_enable coverage gcov) + $(use_enable ctype ctype) + $(use_with curl curl "${EPREFIX}/usr") + $(use_enable xml dom) + $(use_with enchant enchant "${EPREFIX}/usr") + $(use_enable exif exif) + $(use_enable fileinfo fileinfo) + $(use_enable filter filter) + $(use_enable ftp ftp) + $(use_with nls gettext "${EPREFIX}/usr") + $(use_with gmp gmp "${EPREFIX}/usr") + $(use_enable hash hash) + $(use_with mhash mhash "${EPREFIX}/usr") + $(use_with iconv iconv \ + $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr")) + $(use_enable intl intl) + $(use_enable ipv6 ipv6) + $(use_enable json json) + $(use_with kerberos kerberos "${EPREFIX}/usr") + $(use_enable xml libxml) + $(use_with xml libxml-dir "${EPREFIX}/usr") + $(use_enable unicode mbstring) + $(use_with unicode onig "${EPREFIX}/usr") + $(use_with ssl openssl "${EPREFIX}/usr") + $(use_with ssl openssl-dir "${EPREFIX}/usr") + $(use_enable pcntl pcntl) + $(use_enable phar phar) + $(use_enable pdo pdo) + $(use_enable opcache opcache) + $(use_with postgres pgsql "${EPREFIX}/usr") + $(use_enable posix posix) + $(use_with spell pspell "${EPREFIX}/usr") + $(use_with recode recode "${EPREFIX}/usr") + $(use_enable simplexml simplexml) + $(use_enable sharedmem shmop) + $(use_with snmp snmp "${EPREFIX}/usr") + $(use_enable soap soap) + $(use_enable sockets sockets) + $(use_with sodium sodium "${EPREFIX}/usr") + $(use_with sqlite sqlite3 "${EPREFIX}/usr") + $(use_enable sysvipc sysvmsg) + $(use_enable sysvipc sysvsem) + $(use_enable sysvipc sysvshm) + $(use_with tidy tidy "${EPREFIX}/usr") + $(use_enable tokenizer tokenizer) + $(use_enable wddx wddx) + $(use_enable xml xml) + $(use_enable xmlreader xmlreader) + $(use_enable xmlwriter xmlwriter) + $(use_with xmlrpc xmlrpc) + $(use_with xslt xsl "${EPREFIX}/usr") + $(use_enable zip zip) + $(use_with zip-encryption libzip "${EPREFIX}/usr") + $(use_with zlib zlib "${EPREFIX}/usr") + $(use_enable debug debug) + ) + + # DBA support + if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ + || use qdbm || use lmdb || use tokyocabinet ; then + our_conf+=( "--enable-dba${shared}" ) + fi + + # DBA drivers support + our_conf+=( + $(use_with cdb cdb) + $(use_with berkdb db4 "${EPREFIX}/usr") + $(use_enable flatfile flatfile) + $(use_with gdbm gdbm "${EPREFIX}/usr") + $(use_enable inifile inifile) + $(use_with qdbm qdbm "${EPREFIX}/usr") + $(use_with lmdb lmdb "${EPREFIX}/usr") + ) + + # Support for the GD graphics library + our_conf+=( + $(use_with truetype freetype-dir "${EPREFIX}/usr") + $(use_enable cjk gd-jis-conv) + $(use_with gd jpeg-dir "${EPREFIX}/usr") + $(use_with gd png-dir "${EPREFIX}/usr") + $(use_with xpm xpm-dir "${EPREFIX}/usr") + ) + if use webp; then + our_conf+=( --with-webp-dir="${EPREFIX}/usr" ) + fi + # enable gd last, so configure can pick up the previous settings + our_conf+=( $(use_with gd gd) ) + + # IMAP support + if use imap ; then + our_conf+=( + $(use_with imap imap "${EPREFIX}/usr") + $(use_with ssl imap-ssl "${EPREFIX}/usr") + ) + fi + + # Interbase/firebird support + our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") ) + + # LDAP support + if use ldap ; then + our_conf+=( + $(use_with ldap ldap "${EPREFIX}/usr") + $(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr") + ) + fi + + # MySQL support + local mysqllib="mysqlnd" + local mysqlilib="mysqlnd" + + our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") ) + + local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock" + if use mysql || use mysqli ; then + our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") ) + fi + + # ODBC support + our_conf+=( + $(use_with odbc unixODBC "${EPREFIX}/usr") + $(use_with iodbc iodbc "${EPREFIX}/usr") + ) + + # Oracle support + our_conf+=( $(use_with oci8-instant-client oci8) ) + + # PDO support + if use pdo ; then + our_conf+=( + $(use_with mssql pdo-dblib "${EPREFIX}/usr") + $(use_with mysql pdo-mysql "${mysqllib}") + $(use_with postgres pdo-pgsql) + $(use_with sqlite pdo-sqlite "${EPREFIX}/usr") + $(use_with firebird pdo-firebird "${EPREFIX}/usr") + $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr") + $(use_with oci8-instant-client pdo-oci) + ) + fi + + # readline/libedit support + our_conf+=( + $(use_with readline readline "${EPREFIX}/usr") + $(use_with libedit libedit "${EPREFIX}/usr") + ) + + # Session support + if use session ; then + our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") ) + else + our_conf+=( $(use_enable session session) ) + fi + + # Use pic for shared modules such as apache2's mod_php + our_conf+=( --with-pic ) + + # we use the system copy of pcre + # --with-pcre-regex affects ext/pcre + # --with-pcre-dir affects ext/filter and ext/zip + # --with-pcre-valgrind cannot be enabled with system pcre + our_conf+=( + --with-pcre-regex="${EPREFIX}/usr" + --with-pcre-dir="${EPREFIX}/usr" + --without-pcre-valgrind + $(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-7.4.25.ebuild b/dev-lang/php/php-7.4.25.ebuild new file mode 100644 index 000000000000..6597d5945d52 --- /dev/null +++ b/dev-lang/php/php-7.4.25.ebuild @@ -0,0 +1,745 @@ +# 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 ~riscv ~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:4.8 ) ) + bzip2? ( app-arch/bzip2:0= ) + cdb? ( || ( dev-db/cdb dev-db/tinycdb ) ) + coverage? ( dev-util/lcov ) + curl? ( >=net-misc/curl-7.10.5 ) + enchant? ( =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:=[-minimal] ) + 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.12.ebuild b/dev-lang/php/php-8.0.12.ebuild new file mode 100644 index 000000000000..ec069975b43a --- /dev/null +++ b/dev-lang/php/php-8.0.12.ebuild @@ -0,0 +1,744 @@ +# 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 ~riscv ~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 apparmor 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 ) apparmor? ( sys-libs/libapparmor ) ) + apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] ) + argon2? ( app-crypt/argon2:= ) + berkdb? ( || ( sys-libs/db:5.3 sys-libs/db:4.8 ) ) + 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:=[-minimal] ) + 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 apparmor fpm-apparmor) + $(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/Manifest b/dev-lang/python/Manifest index d846310092b3..e4ad4fb5868a 100644 --- a/dev-lang/python/Manifest +++ b/dev-lang/python/Manifest @@ -4,42 +4,28 @@ DIST Python-2.7.18.tar.xz 12854736 BLAKE2B 060a621c91dd8e3d321aec99d44c17aa67381 DIST Python-2.7.18.tar.xz.asc 833 BLAKE2B 1d98770e46171971fb99994508d238c01d2755281d2f94353314014d9e83e0ec5f0b3e3950ea1fdf5fce9ba6b8f55312355845c2a3fc4291c27ee56fe6215448 SHA512 c2a5f5a52f47dec52460ad3275758d4e5de6e7075c3def4353c988d74d563a39b42cae2d5eb24e2a23a6247cef69100f91620b11a49c2359fbf99b203c9cbda8 DIST Python-3.10.0.tar.xz 18726176 BLAKE2B 77143edf733cadf7e52327a58782f0617b1dd0d132cf58e0f26d37a454bb97f82e7931118a6a71f22779d9b6ec4efca974c43c19a6338b4b24a9fd616b60cc89 SHA512 82b2729afc7d72a80882f199970667dce7d971a2e5ecfe6cf84f7b68612ab2caf6ed6d7a8cb81f24ea85cb0816464bb2e8b2e6884eda62fa40742edc674193bd DIST Python-3.10.0.tar.xz.asc 833 BLAKE2B 295df19932ea076bb1a50acb38782055ff34fb235df0380fa361727eedb3ca68aeca2a31419de5b05ce128c2e21ad04605c226e7a61d508a17607f615e46e570 SHA512 67236e02bc49da1423717cb54216b745f613ba2fc4b372a4aa15a36ab15fe69d9b9087070382957d480df7576d13056caedcd979fb56531799a1190b822f673d -DIST Python-3.10.0rc2.tar.xz 18737220 BLAKE2B bcbddfa718b66b30b85dc3afad59eb3d977bfe036564821d5016d7150a38c377bc6fb29c611dd28681b660e488f0ef3d1de21a6cd9528866a3e86e8afbf589af SHA512 8511d837e465818a7b41df4593f29179e4d420171a287deb484ab6834fe17fe6b9d49ea6ee619573c8fa02aae0bf11807b5fa5903b200e311a0ba27981ecdc04 -DIST Python-3.10.0rc2.tar.xz.asc 833 BLAKE2B d518871f35126be04effc213cd78b9fe641c75ffa361671f111916cff0dcf9578cb0010842afb5b25037cbff494023db8b28e7fcf0d59a53667ed59d7f4f661b SHA512 ce38167956314b27641f08fd5cad67bcf286154ff3a74a8987e9cda8b5737ed2218f0190726c7555cc5f49d76dee3d90521512e4560bfb4e91789217e36ee096 DIST Python-3.6.14.tar.xz 17218148 BLAKE2B efe655cb907ffa678ca135f88ba9d867e523969ad82dbc09ffb6d8d383824a4b43c525e156a3c35484a526b4b3ea755109e5ef15d17852d44e3351c307fc5e91 SHA512 15b82b7285db97cb27a6fcd57ce9e258fdf8dbdb2f00e22e4331161b8557c8244342546c4143e84c72730759e0276770396b6ca5bb7cf87310cca8e175423006 DIST Python-3.6.14.tar.xz.asc 833 BLAKE2B 81c79dca5728b21b8c2badcaa1242836f1cf13984bb755463cfe9e4fd96a02ebf31f1a9239759a937c6d6a04c18bfc682a82cb0ab2e5a473de153423a7248c9c SHA512 600bf504f2c0d3ce7d1e8e953b4f27a7a7c996b7b9cd70efb876178fa5424130bff5414d5ac7deb8b45103ed417fd40d830613db39750d35a0c967c8fdfea50d DIST Python-3.6.15.tar.xz 17223796 BLAKE2B c139c6f93ea70ad898d5626dfa964280a14de9676f0d9d55668ad91618b1ba330874cbba8d6526a87e53b585ff34e3bf242613ca3fb17ee60f362a9676306c7d SHA512 f1894d704c91669d94ec83b5631288bf1e0c73ddcf33cea0977575f262eb672caebc8ac00e34e9b99c321c19cc9a71d6081fa957bb8e23cf5bfba50f345145ef DIST Python-3.6.15.tar.xz.asc 833 BLAKE2B c910f2367ed947ff6b33380bf8fee318c65d6e5fb0c4a847fd8f2761bbae81dec07b729b31eca060916264b6a0ccf5c52ca72181b3db79751df7697a426a8939 SHA512 cdc93e5d8fb2b5b48a1560a55bba4680adea10e35c8c38b4c51cfd2f6ba54ab2a5d4e5f71b78b889f98cf8ad9d598e0f4e019d50cc16f7db57f9d292a860fcfd -DIST Python-3.7.11.tar.xz 17393380 BLAKE2B 6394d69935950366da7c4cecd4816d76254170d5313adeb4de9edddae13bda7dea373308517c2abe00cb7eeea8eb428619124feed8df858f9bb904bd423e96d6 SHA512 b8d8c6958444ee9bdd59f0804f7e61d9657c0805c7c58c3352d1c1efb33ba2be8d3485cd2656a2b2b99618a439879687a918f57dfdd125e989af637043600a59 -DIST Python-3.7.11.tar.xz.asc 833 BLAKE2B 8af6b3e58b607a34c91f57af2fbe9c3f3c7cb6fa5e435e963edd7edcf7649e70c3a76bd346ff8ef1b3c890d8a92d3b2fed27ee01b512c579ff8ce80be61274fb SHA512 f19db95e88c9269174a2b4ac4d8c68fa7ed666b6698af26d2da202e30d145686e8679be763eecba9f8a0c34a207639724094463cffce659c3855ed4b133b0a59 DIST Python-3.7.12.tar.xz 17401916 BLAKE2B f01b5cc54cd0ffe2e8756767c624dda8d2fbf24e90f22a16b5a406dad995ef218613db10f0b3fb2da0ece50ccb02c8a8e007ceb0842ce9e93ee9df7348ef1528 SHA512 e1a5942908c1d1469c0ab129fb4287d4ba6eb2a030e88fd71c043fe187a1bc86c00878dab29147199617a361a0c60d9e720fe3bc58bc7bc4cc8ec4bb50c7ea2a DIST Python-3.7.12.tar.xz.asc 833 BLAKE2B 587fcf019f4b07b811834d7279b9861eb709731a431be9cbe8f5b868ac72b6d9a4de8b24e3fefd6b339813299514a0ac12b5f627acd04c185ff8dea22a044723 SHA512 a47003dd5c784eca4e3c34dc8705d1171043e060f3a97e4dd63ce4aec2bceac56d7e808924d63b2a38f9a020bf799cf29e5055fb444b9b2c3f03976d47122355 DIST Python-3.8.12.tar.xz 18443568 BLAKE2B 73413aee7a31347ac4342718a54d23d4036220262c4cd41cd50b06c3b1698d52d11cf7ac2c781b919f2cdb0dcb6397d623c463dcdcd1edca99abbbce239a3c6e SHA512 2f93fe5ff83f470c7b6a1b7f29f499a2a010fabd649e9fe65ad3fbfa21b6e1966e77c9b7ac012d978159bc3fe63fec2d64bc6982fc2ee1714d3fa0e47631f279 DIST Python-3.8.12.tar.xz.asc 833 BLAKE2B 33f59aa667555832ee510d2a7295079f34a3983dfa84beab20b33ec691ea3eecfcc4a62591fe233fc30622d0236ee69a3d41b8922ee2f4c632df3523d565c3ec SHA512 ef552b716a721f410abb14387594c8b0ddc65ce4b8a6ae6bf920c1db2ea9ddf6bbf547e93d3716495ae31848eb1049aae4257016e888393681bbfb6f6529bc12 -DIST Python-3.9.6.tar.xz 19051972 BLAKE2B 0d8586b2935088eeab7138cf2210c1a74f1bf7359359d25750af5f69de55eb39c92f518b887a8b749c772ed7d33e85b912928ae6d878514eb58d85ef210f54f0 SHA512 01c529e3207738d8771caeb5ed6217e10745c21aa39832fe3185e1c87fdb6aedead97ce38dbb11e02d873654028bd8071c3f345c18452769520723284efe9dc1 -DIST Python-3.9.6.tar.xz.asc 833 BLAKE2B 41901bfb80a901f2f14e86769e6d08ded8f75656d347201345183162e180e61442da871a1067572a54da579551166a19bf5436e51581bb10cb78afc4d28773fc SHA512 0673c8833f302c829bfde97453c52744f6aa99b4a72520f4cc384d4aa9d6ffd28a1407ceafb0a1ec4462b3aa74b656bf39c67872c4e6a131429ea58c47ad0ecc DIST Python-3.9.7.tar.xz 19123232 BLAKE2B 69dfba6974c8c74de1b71977d28cad4d7c26615695f48a99444d2eb83d657b4bd8d22e7f6e94b1b2dcbcc5605c0aee08c609b9564e306f48588e2a7f471209b2 SHA512 55139776ab58a40f9e1e70613d7071d559ef9e51e32a77791422aac134322c21a49f0348c42813214b69789c589367eae43e16d4ae838a73daf37617e966b735 DIST Python-3.9.7.tar.xz.asc 833 BLAKE2B 2d9c47e47d9a625e393a8b456dd5b10dd485fc13ca7c236b5fd304c373879bea8ab3c67ff99c3a81350443f6ccba20718466a221a05faada6b82cfe92943fdbf SHA512 7ff9f845f520efab3b4a0e95da3ffe055ee5777a4173a5b2cc1fd2419dc2b4faf30d1e711e372df36e34bc971ecfcde88a7cd815cfe2d8080ccb575a1ae8e101 DIST python-gentoo-patches-2.7.18_p13.tar.xz 33296 BLAKE2B 91b711458aff4f6337ee1b34aff58d7edda6725644a64c9320076a1e04c816729ed163d82333cfe4dfef379a9ad5ef50ba00abdbbfed4503b0f92c8f0b7ca683 SHA512 97f3657a4a95e8492aa710801b974a56e6dd4636e475aea45cbbe76e7ae32d00f07b05769887f05e49cb0df8584ac9499a7ce842bad77f837a7c869f9b769b07 DIST python-gentoo-patches-3.10.0_p1.tar.xz 10068 BLAKE2B 1c9817b449831559f0a0b722c02a5f55d94b3dfde98e5882c1403fe24a4addf7074ab39c09b91cff6fd7ace2e4b6e8ed899d9a0b9ffd6612ce315c4c192bd309 SHA512 39aa41dbf17b6dc5255491c75031a3dae6962b44125e426dbfdce365a6533c5dae9856b1fff8016a189124b7cff72d2665ce99da344c2f9dff005ba685e8c2c4 -DIST python-gentoo-patches-3.10.0rc2.tar.xz 8488 BLAKE2B d7c1e45e63bf5bfe5d41823ea183608f4bcb44694feb18ee6d315250f1563684ce87dec29f46c16da223b6bbd1d20e75791d347ae6ac1d4b5130ba3f08c55ca1 SHA512 c2ca3b60f33131b20037fc0f53a5ce655e9978c5fa42d0b8e2c6b56aec24f6f37d8997fa146a446e5fd72b5d2c4b017d5e4fb71318a51dbb45f5d3b0ea4ed4ad DIST python-gentoo-patches-3.6.14_p1.tar.xz 16576 BLAKE2B 902a9073e6d3e40cfba105680d9947b64a4bfa1632381bc71afbd2691350dccb36f498bf17ac7dfc8ce331dfc3fb7e3cdd539cea3f5e9db1c49210ad4d124182 SHA512 4aa354f1ca8d9bb3c30b666ef61cac8380741342102aeb9ea77cc06ae62179f595acc1c2e6321e9c2395abbc3fbc649ecc93b80443d139859924524989539992 DIST python-gentoo-patches-3.6.15.tar.xz 15300 BLAKE2B f49fd96f6ad1a1c94fea6b83acd229a81754b86061e243044ead4b9a9d5122a2e43b270b68722c359c084c05a566a3ad70aa46588ab7a005ee560ee118b92b8b SHA512 cc33491a33f3f1d990cf494d53b91b74db761142e8aebe1bd4b128ef10a268ff945e5ba08daad39cee095612a8e52265d6988873ecf9c073377cbbc10735aa39 -DIST python-gentoo-patches-3.7.11_p1.tar.xz 18540 BLAKE2B 717f3b279368faa355e9b306ede5aa3cf750b7a862e50553caf4efe19b6b8d40431974fbb510414291c4c91623addebff54fd6d4f7f7553c686c5382174bc81f SHA512 e403d2364bbe600d7c3dba8f70157b1f243b00848e3826e6f350d7dbbdd0966229fbf9aa11e0e87fb5ab93b8ea69893f389e5b92c22d7315f99657d69695ded2 DIST python-gentoo-patches-3.7.12_p1.tar.xz 19112 BLAKE2B e9964244af3db544dd6e96d85ca4bc24d7131b48eda85df5bafa3fb36474a024cecbbf4b27324e1f35f76ae6a1aed31dd7896e831b79b574b45a4371afcc7e5b SHA512 9ec996c2904f99bd6651ed1b700eabd91f2b82b1e9e0f3d9572243886a9c7139bf8ac2af04169485d3ca6339e1a87044cba203f6f0aee9609d2a1d53c812548d -DIST python-gentoo-patches-3.8.12.tar.xz 14936 BLAKE2B 1cb6cdb0bb659b1bc3f8a4ecd80da74b41a9fa2f4d5646ac4b48ddecd5124677cb24574a425404fedab4fb9c7faba4b1cb54cc3482785559a54fa3e9b3ca13f1 SHA512 86c30622bbf6847efcdf2bc43d916b05ee78ab17f45b93148a01cf4c181592029ecc52e8c4887112d97aeece63a92ee0f685a689287c133443cf51b3f8171fb9 DIST python-gentoo-patches-3.8.12_p1.tar.xz 16632 BLAKE2B cce7a41d020af1ffc55a01ef67b20bcb16c68adbccc1e44ef166d1707e817ed6c3bae70f84c56553f27bca449015e273014c0be73bc2f9b4e25844ddce385486 SHA512 4621727c2e9cc1c5519e021210e16a97e7167ea831445dfdd07f5b0ed642b5919834244111708a971ce098b10b439797e1c76827eccab803f801052c671f1ae6 -DIST python-gentoo-patches-3.9.6_p2.tar.xz 14720 BLAKE2B e14634229b65a29f5294694949c138bfa6146810349d1207a07d84eeca529571eb9c760b58ddbe6e8d96d50d1a3e0d1dfe42328c53c977a9eeb22ecd553317dc SHA512 5d84b8bb4e5584e3ef8e6298af000e772240ad93ed0aaadf1d785db947f1e79aecae7313b8dbeb65849212c9930e683be6e18e42ef6c41a3c27d60f75df08a01 DIST python-gentoo-patches-3.9.7_p1.tar.xz 14444 BLAKE2B c976beb1205b0b777ff3375f538758bf28443bcf4c953fe161545791763da043e32582c398ec8151478afc40e53f963e080d29420066305c12963c953887e4b8 SHA512 283c8975885f9306e46a0047219f3a70e1000f3401affb0b55cde976be6fb6df2f1c13f4e05a479e72e0731d683fef9b22413f7cd320298295a31b19c8915b3d EBUILD python-2.7.18_p13.ebuild 10084 BLAKE2B 1dad5dbeec00ae05accd7a05614991812facf0fce7b6d3afb978019ac2facd204156d44d9df76190de9c2075b5c8d0dcbceead7ac445361fcab97309e8dd67f3 SHA512 84d49306ba25875b3542b3a825aaa613516501a348746e3d7f3f74fb44d7e14a393ac0d7180b33ff43e9d879392a9a086c78894b1f2644c9e21ec5a68e1e7c22 EBUILD python-3.10.0_p1.ebuild 10009 BLAKE2B be9e178279612086f3cefd33683b1c91fb019c7a6f159753f59305648b94daf31812a04c463d9c3c5fdc797ff8b9b50fd9ab3d7fbc70d565b6af04bd9ea2a8fe SHA512 67af2b30c1c98fc370b1ca77e2fb76e1285d6a180bd46d4e71cde3c92abbbe37bb9110d0f56ed5f4cb093129201b2d1697c36414dedcce3110ddb3be1d8b43ae -EBUILD python-3.10.0_rc2.ebuild 10013 BLAKE2B 0fc5812116ad7d044e61ca6103b75cbf42c309799c70d59f4fff7d496893d3e1ed6f0a4381772e41ccb945a09948cf90ffaf61003da3b15853a55436cdc2865d SHA512 7048e4eabec33c57dc17c4867ef0b867df71cc00ce038252ad67cf88b83ef94250313463a2e6941b427600947b8e49a2a2f11b46c8fbb448fbb854ce4be83e1a EBUILD python-3.6.14_p1.ebuild 9702 BLAKE2B 5b247e39c0d753420adba7b83f952cdf75805815585d221642499223f894fd6a0365385806cf9edb2ce0b79956efdb6e5fc7b64020382a6216159d449c2a49f7 SHA512 f6b1f0ad1f82b68eae9f2a8691daa85bbc75fa0ccc3c24036174d9c38c8bd5d8bb93b79b587c2815dc56eeb1db24e288043629fea0bdbd13ca2b98a687eafeee -EBUILD python-3.6.15.ebuild 9710 BLAKE2B 8bd667da95e331d0d1ece3089b990fb3d4769dd6b632b98086edb389b10fac4f341a2616dec459dfb9501a14376253bfd13fe3a68dca1b6494d02a9365183add SHA512 85bb866b40325e793c0dd0ef3d69e88d6b34ebc4cecfb9f441bcce0259c09751d1033f101d48826186c8fb97b3d77f3ca6c18bddafdb42e8469b2cf09f6240ae -EBUILD python-3.7.11_p1.ebuild 9601 BLAKE2B 8d410e5eb77a2af1612f8f0c3e1d18f360bccdcc95d466c65150875146ab9d6469c9bfda41295ea19bcaa04a3f9dbb89841491d4d9420384c5c29a0098337a25 SHA512 a696575a1ddb66bb6c0a6a3931cdd3c5b0544eb686dd446ed775e45268ff2642a19f92eab5476840f2f644e5ec4cbb3bcd938f956c0c229e26804a05f6822c23 +EBUILD python-3.6.15.ebuild 9705 BLAKE2B 0442b71528390e92747b40d678813f5ea35fff60dd952e07e3b20e2f0438985b9e025e9817972aeb2fa381981ae9b03b5b774e61f3182abc11704b5a9179c449 SHA512 69f9fd71c46a8b9bc71708701d6e189a1b8461b8fe5308b05b4fc8283ff0c942199ed5af693d408f3b2529d69510f9dcc656647ccce4ed65e5921727aabd55a0 EBUILD python-3.7.12_p1.ebuild 9597 BLAKE2B 6047255b5cc230884bcd6168e8495013aafe781a8885c0b190cc8dc4b80d7d05242d214e055c215827968a94d2193ce95fe727dd9c6961ace1eba3be1309ea07 SHA512 fb59c050dd42f615881a52198b894653c69c5fab267453c5c04a367ddb7610ea8d27d1ea2d192be94c9ed2515b8ef56465ec7679c015def5f5d9c00c9c9a0c76 -EBUILD python-3.8.12.ebuild 9755 BLAKE2B c547d90b8d6a07ffba68d5fc45bf247927b759cf66ea0e1d752d104d994403bb9d5f453ca3d7220ec06b9cc52325b98776bc1078227fd583483e72d29d9609d9 SHA512 9d568dd1a3aa64c3b04d92a4bf463b2911351ad3a611ae3530d45e185fa7a95f82f41c98ed6a44576192d564cfcf5110c1f504a56ef47d50388d4845d8c27b84 EBUILD python-3.8.12_p1.ebuild 9751 BLAKE2B 7324e10e05dc1aad568af0e4a6c57ae27918dc973259981be548649e3af65da46592d53d43f1733efe8f878aecdbc07809a2745bda44a50d948a49f6f44cc7bb SHA512 f8d0998e6d00ef3d6e877cef57ae69976cdd0c946c9927a7edb6ed4dd02f0a74f2a5cbc75c9d27ce152df6a66e708fdf86acbce82707e30b412d3c4dd9606f21 -EBUILD python-3.9.6_p2.ebuild 9894 BLAKE2B 78998d700dcbfae7a80ec67162f8f770b69c538c6cb881044b10bd3064fd26038415456f23727d2dbff7765652837be05c4b4d25b1af252f2ab44296defdebc7 SHA512 8d689629b00d0d67cecdeed88e52d7c44c25bcadf42a889a7219a74166de25e883c18fb237d64dc0b79d6895dee21259af95c273ad2582456132529a1a7f4878 EBUILD python-3.9.7_p1.ebuild 9890 BLAKE2B 5dbea7e2ba4db850b2ed67ea27781613ec71a0fa23d040dcdfcb4d1919d5cfbeff541b0e7a0763381508b8597d392fc157a88d52edf0ec00cb1417af62059061 SHA512 a6438dce5e69e520f160aab01e10b1523eb56b700a4bdc7d694f3060103aaa9d637defc3340ec27677d83532e35b0c124d7b284c7287c30165ff6b0affbf9d4a MISC metadata.xml 447 BLAKE2B 0f4f1f1af9e1d7e00f984eae6e555d57ebd41f36ace2c24781ec0fdb08d2d3fc96de80e83a2da89ce3f06b209781a674dfcfd1ced5204f3c5d3cada8f58ea417 SHA512 b309e96985959bf70da42d43604e7acd9eacd62d321f5efdb68b77ebcc496e56104da0c5b3b65b6e74e4d0acce8e66aa572baf49277546044ecc8d0f61c6148c diff --git a/dev-lang/python/python-3.10.0_rc2.ebuild b/dev-lang/python/python-3.10.0_rc2.ebuild deleted file mode 100644 index 871bbbb0eba6..000000000000 --- a/dev-lang/python/python-3.10.0_rc2.ebuild +++ /dev/null @@ -1,346 +0,0 @@ -# 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 +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-1.1.1:= ) - tk? ( - >=dev-lang/tcl-8.0:= - >=dev-lang/tk-8.0:= - dev-tcltk/blt:= - dev-tcltk/tix - ) - xml? ( >=dev-libs/expat-2.1:= ) - !!/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.6.15.ebuild b/dev-lang/python/python-3.6.15.ebuild index 54ae5943f023..a65e997bcb90 100644 --- a/dev-lang/python/python-3.6.15.ebuild +++ b/dev-lang/python/python-3.6.15.ebuild @@ -22,7 +22,7 @@ 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" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86" IUSE="bluetooth build examples gdbm hardened +ncurses +readline +sqlite +ssl test tk wininst +xml" RESTRICT="!test? ( test )" diff --git a/dev-lang/python/python-3.7.11_p1.ebuild b/dev-lang/python/python-3.7.11_p1.ebuild deleted file mode 100644 index 84d00b68ff84..000000000000 --- a/dev-lang/python/python-3.7.11_p1.ebuild +++ /dev/null @@ -1,329 +0,0 @@ -# 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 +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-1.1.1:= ) - 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(-)]" -RDEPEND+=" !build? ( app-misc/mime-types )" - -VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/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 - --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.12.ebuild b/dev-lang/python/python-3.8.12.ebuild deleted file mode 100644 index b6e8bbaeae44..000000000000 --- a/dev-lang/python/python-3.8.12.ebuild +++ /dev/null @@ -1,335 +0,0 @@ -# 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 +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-1.1.1:= ) - 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 )" - -VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/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 - --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.6_p2.ebuild b/dev-lang/python/python-3.9.6_p2.ebuild deleted file mode 100644 index 6e4e3ef1158d..000000000000 --- a/dev-lang/python/python-3.9.6_p2.ebuild +++ /dev/null @@ -1,344 +0,0 @@ -# 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 +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-1.1.1:= ) - 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 )" - -VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/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 - --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/ruby/Manifest b/dev-lang/ruby/Manifest index 0a3590913a83..aa6c9f4a1cfc 100644 --- a/dev-lang/ruby/Manifest +++ b/dev-lang/ruby/Manifest @@ -14,6 +14,8 @@ DIST ruby-2.6.8.tar.xz 11599488 BLAKE2B e5b2949233d8540f72d4d8b9c246f9bd0d134242 DIST ruby-2.7.4.tar.xz 12067588 BLAKE2B 2680a7ccd1daf3d156d9519d9132853e68f5f1aad592abce3e73fdd03314a6c28e7d94590153aead86af8952ff51f804ee029f8100b0137919cc27373cb8b9cd SHA512 2cbb70ecfdd69120e789023ddb2b25cab0d03bc33fdc367a8f74ca8a3ee785c18c8ded9de3ecee627c7e275ffb85147e6abf921b6a61e31851b37c7fedf45bf9 DIST ruby-3.0.2.tar.xz 14746080 BLAKE2B 47c5591261fb63b1ec3ca719ea6b0c348937456c3711351c1f5317d1e6a748de197e90c8bd4ff822f7b2d4580ad7ed0b54b9eb7aaa5166ea1a15ab2deae96439 SHA512 0f702e2d8ca1342a9d4284dbdd234a3588e057b92566353aa7c21835cf09a3932864b2acf459a976960a1704e9befa562155d36b98b7cda8bd99526e10a374c4 EBUILD ruby-2.6.8.ebuild 7481 BLAKE2B c37e80c3f6debd1befd5d8b5cfff7ffa547557e94fecfb51c962a7a4ce6052fd047d9f5f143302d5d53887bac0463b65f2649b199625430fd5a49e32c565884a SHA512 b3be72cde078972a1e6dd9969dd7dd085d4fed10d2c7a87128773962955e788cd11868a93f44adb2887a23bffebca3a4155309bb9cb0af55fa2df851f48410c0 +EBUILD ruby-2.7.4-r1.ebuild 7768 BLAKE2B bd50997cb99ca6fe205c6bde609b4470e1f181635784379c2397ff30be736079061749bcfc88cb830c93543a1bfa142913eaa9e4dfb86f58e1269506540b1b18 SHA512 0f905c170bf701a023a73e8d7fa37041c87b1735846ca5332ddbdd6e8a6af731e47136ae0cac6c3de1d989eb718cb58f341b65188498c657b74c3ee0295cd474 EBUILD ruby-2.7.4.ebuild 7794 BLAKE2B 56d2afa53101a685e10b4035fbc255dcde9bb43c99aec8a6268f420109bcef1495d690ee86cab704f39ac9faf11f99d95cb31bb022e134bfb8c272c851d2348e SHA512 3363c57844f706a93b397eb23bbda7665465b65b8930bb73cf06e4bb027f588de4cf4df6d5183be8e651e10df5a49625a43a172b7d3496458bbb20a507330048 +EBUILD ruby-3.0.2-r1.ebuild 7770 BLAKE2B f8e201766ccc5a667ca1dfc22ea0017a441bf621719c10da66cf7b5ece4441e48dc63225e04ec4b38c032318e4f0353f8b87e02a9cbfc6d2eb710c9ca83fda2a SHA512 6843ddd68c6cd45e0e4f5e9d72f7cc38fceeb2548498fd8e5de362e559db8597e8434e4ccc4f3db80f22e45db49bcaebddee27f9f50d5b65323332a6ceab1bae EBUILD ruby-3.0.2.ebuild 7803 BLAKE2B 56b59ef10cc36a467f8778a4e2f3115c8647664a2800535c79cffc932b7bb836ba43dbc81d87c20e394f3a276fd2260a1bb0b3db67dce2bb66fb86b7cdfe3d16 SHA512 68066fa039fcdecd83ff94314780e4acc7d1ba3a55f5028b7dea72cc9794f1478086b2e6a2aed03168351324ab5dd8791a1e2f086b5ee424aa531d8dd11142c8 MISC metadata.xml 524 BLAKE2B 78b64ea8e53d1bcfa249561354ef45ca34cdbcf6c4147944e98e6a17d884f5b4b29c0ddb6047bf2883a57f9a53386626bb7a779ef80ddcb33301d0e3822ead6b SHA512 1b254526486eb7d1d132f1286056d55963cb569ab47ccc94d625a9789e4dd3c45b5639510535543d96d2d7a3ccae13535e2e35ba9d78873d75ecac3bedfae762 diff --git a/dev-lang/ruby/ruby-2.7.4-r1.ebuild b/dev-lang/ruby/ruby-2.7.4-r1.ebuild new file mode 100644 index 000000000000..1941ac0252cc --- /dev/null +++ b/dev-lang/ruby/ruby-2.7.4-r1.ebuild @@ -0,0 +1,267 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools flag-o-matic multilib + +MY_P="${PN}-$(ver_cut 1-3)" +S=${WORKDIR}/${MY_P} + +SLOT=$(ver_cut 1-2) +MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) +RUBYVERSION=${SLOT}.0 + +DESCRIPTION="An object-oriented scripting language" +HOMEPAGE="https://www.ruby-lang.org/" +SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" + +LICENSE="|| ( Ruby-BSD BSD-2 )" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs" + +RDEPEND=" + berkdb? ( sys-libs/db:= ) + gdbm? ( sys-libs/gdbm:= ) + jemalloc? ( dev-libs/jemalloc:= ) + jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) ) + ssl? ( + dev-libs/openssl:0= + ) + socks5? ( >=net-proxy/dante-1.1.13 ) + systemtap? ( dev-util/systemtap ) + tk? ( + dev-lang/tcl:0=[threads] + dev-lang/tk:0=[threads] + ) + dev-libs/libyaml + dev-libs/libffi:= + sys-libs/readline:0= + sys-libs/zlib + virtual/libcrypt:= + >=app-eselect/eselect-ruby-20191222 +" + +DEPEND="${RDEPEND}" + +BUNDLED_GEMS=" + >=dev-ruby/minitest-5.13.0[ruby_targets_ruby27] + >=dev-ruby/net-telnet-0.2.0[ruby_targets_ruby27] + >=dev-ruby/power_assert-1.1.7[ruby_targets_ruby27] + >=dev-ruby/rake-13.0.1[ruby_targets_ruby27] + >=dev-ruby/test-unit-3.3.4[ruby_targets_ruby27] + >=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby27] +" + +PDEPEND=" + ${BUNDLED_GEMS} + virtual/rubygems[ruby_targets_ruby27] + >=dev-ruby/bundler-2.1.4[ruby_targets_ruby27] + >=dev-ruby/did_you_mean-1.3.1[ruby_targets_ruby27] + >=dev-ruby/json-2.0.2[ruby_targets_ruby27] + rdoc? ( >=dev-ruby/rdoc-6.1.2[ruby_targets_ruby27] ) + xemacs? ( app-xemacs/ruby-modes )" + +src_prepare() { + eapply "${FILESDIR}"/2.7/{003,010}*.patch + + if use elibc_musl ; then + eapply "${FILESDIR}"/2.7/{900,901}-musl-*.patch + fi + + # Reset time on patched gem_prelude.rb to avoid the need for a base + # ruby during bootstrapping, bug 787137 + touch -t 202001010000 gem_prelude.rb || die + + einfo "Unbundling gems..." + cd "$S" + # Remove bundled gems that we will install via PDEPEND, bug + # 539700. + rm -fr gems/* || die + # Don't install CLI tools since they will clash with the gem + rm -f bin/{racc,racc2y,y2racc} || die + sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die + + einfo "Removing bundled libraries..." + rm -fr ext/fiddle/libffi-3.2.1 || die + + if use prefix ; then + # Fix hardcoded SHELL var in mkmf library + sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die + + if [[ ${CHOST} == *darwin* ]] ; then + # avoid symlink loop on Darwin (?!) + sed -i \ + -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \ + configure.ac || die + + # make ar/libtool hack for Darwin work + sed -i \ + -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \ + configure.ac || die + fi + fi + + eapply_user + + eautoreconf +} + +src_configure() { + local modules= myconf= + + # -fomit-frame-pointer makes ruby segfault, see bug #150413. + filter-flags -fomit-frame-pointer + # In many places aliasing rules are broken; play it safe + # as it's risky with newer compilers to leave it as it is. + append-flags -fno-strict-aliasing + + # Socks support via dante + if use socks5 ; then + # Socks support can't be disabled as long as SOCKS_SERVER is + # set and socks library is present, so need to unset + # SOCKS_SERVER in that case. + unset SOCKS_SERVER + fi + + # Increase GC_MALLOC_LIMIT if set (default is 8000000) + if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then + append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}" + fi + + # ipv6 hack, bug 168939. Needs --enable-ipv6. + use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET" + + # Determine which modules *not* to build depending in the USE flags. + if ! use berkdb ; then + modules="${modules},dbm" + fi + if ! use gdbm ; then + modules="${modules},gdbm" + fi + if ! use ssl ; then + modules="${modules},openssl" + fi + if ! use tk ; then + modules="${modules},tk" + fi + + # Provide an empty LIBPATHENV because we disable rpath but we do not + # need LD_LIBRARY_PATH by default since that breaks USE=multitarget + # #564272 + INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \ + --program-suffix=${MY_SUFFIX} \ + --with-soname=ruby${MY_SUFFIX} \ + --with-readline-dir="${EPREFIX}"/usr \ + --enable-shared \ + --enable-pthread \ + --disable-rpath \ + --with-out-ext="${modules}" \ + $(use_with jemalloc jemalloc) \ + $(use_enable jit jit-support ) \ + $(use_enable socks5 socks) \ + $(use_enable systemtap dtrace) \ + $(use_enable doc install-doc) \ + --enable-ipv6 \ + $(use_enable static-libs static) \ + $(use_enable static-libs install-static-library) \ + $(use_with static-libs static-linked-ext) \ + $(use_enable debug) \ + ${myconf} \ + --enable-option-checking=no + + # Makefile is broken because it lacks -ldl + rm -rf ext/-test-/popen_deadlock || die +} + +src_compile() { + emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS="" +} + +src_test() { + emake -j1 V=1 test + + elog "Ruby's make test has been run. Ruby also ships with a make check" + elog "that cannot be run until after ruby has been installed." + elog + if use rubytests; then + elog "You have enabled rubytests, so they will be installed to" + elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other" + elog "than root, and you must place them into a writeable directory." + elog "Then call: " + elog + elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb" + else + elog "Enable the rubytests USE flag to install the make check tests" + fi +} + +src_install() { + # Remove the remaining bundled gems. We do this late in the process + # since they are used during the build to e.g. create the + # documentation. + einfo "Removing default gems before installation" + rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die + + # Ruby is involved in the install process, we don't want interference here. + unset RUBYOPT + + local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby) + + LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" + + if [[ ${CHOST} == *darwin* ]] ; then + DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}" + export DYLD_LIBRARY_PATH + fi + + RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}" + for d in $(find "${S}/ext" -type d) ; do + RUBYLIB="${RUBYLIB}:$d" + done + export LD_LIBRARY_PATH RUBYLIB + + # Create directory for the default gems + local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}" + mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed" + + emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install + + # Remove installed rubygems and rdoc copy + rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed" + rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed" + rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed" + rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed" + + if use doc; then + emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc + fi + + if use examples; then + dodoc -r sample + fi + + dodoc ChangeLog NEWS doc/NEWS* README* + + if use rubytests; then + pushd test + insinto /usr/share/${PN}-${SLOT}/test + doins -r . + popd + fi +} + +pkg_postinst() { + if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then + eselect ruby set ruby${MY_SUFFIX} + fi + + elog + elog "To switch between available Ruby profiles, execute as root:" + elog "\teselect ruby set ruby(23|24|...)" + elog +} + +pkg_postrm() { + eselect ruby cleanup +} diff --git a/dev-lang/ruby/ruby-3.0.2-r1.ebuild b/dev-lang/ruby/ruby-3.0.2-r1.ebuild new file mode 100644 index 000000000000..16eea1190ab4 --- /dev/null +++ b/dev-lang/ruby/ruby-3.0.2-r1.ebuild @@ -0,0 +1,267 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools flag-o-matic multilib + +MY_P="${PN}-$(ver_cut 1-3)" +S=${WORKDIR}/${MY_P} + +SLOT=$(ver_cut 1-2) +MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) +RUBYVERSION=${SLOT}.0 + +DESCRIPTION="An object-oriented scripting language" +HOMEPAGE="https://www.ruby-lang.org/" +SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" + +LICENSE="|| ( Ruby-BSD BSD-2 )" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs" + +RDEPEND=" + berkdb? ( sys-libs/db:= ) + gdbm? ( sys-libs/gdbm:= ) + jemalloc? ( dev-libs/jemalloc:= ) + jit? ( || ( sys-devel/gcc:* sys-devel/clang:* ) ) + ssl? ( + dev-libs/openssl:0= + ) + socks5? ( >=net-proxy/dante-1.1.13 ) + systemtap? ( dev-util/systemtap ) + tk? ( + dev-lang/tcl:0=[threads] + dev-lang/tk:0=[threads] + ) + dev-libs/libyaml + dev-libs/libffi:= + sys-libs/readline:0= + sys-libs/zlib + virtual/libcrypt:= + >=app-eselect/eselect-ruby-20201225 +" + +DEPEND="${RDEPEND}" + +BUNDLED_GEMS=" + >=dev-ruby/minitest-5.14.2[ruby_targets_ruby30] + >=dev-ruby/power_assert-1.2.0[ruby_targets_ruby30] + >=dev-ruby/rake-13.0.3[ruby_targets_ruby30] + >=dev-ruby/rbs-1.0.0[ruby_targets_ruby30] + >=dev-ruby/rexml-3.2.4[ruby_targets_ruby30] + >=dev-ruby/rss-0.2.9[ruby_targets_ruby30] + >=dev-ruby/test-unit-3.3.7[ruby_targets_ruby30] + >=dev-ruby/typeprof-0.11.0[ruby_targets_ruby30] +" + +PDEPEND=" + ${BUNDLED_GEMS} + virtual/rubygems[ruby_targets_ruby30] + >=dev-ruby/bundler-2.2.15[ruby_targets_ruby30] + >=dev-ruby/did_you_mean-1.5.0[ruby_targets_ruby30] + >=dev-ruby/json-2.5.1[ruby_targets_ruby30] + rdoc? ( >=dev-ruby/rdoc-6.3.0[ruby_targets_ruby30] ) + xemacs? ( app-xemacs/ruby-modes )" + +src_prepare() { + eapply "${FILESDIR}"/"${SLOT}"/010*.patch + + if use elibc_musl ; then + eapply "${FILESDIR}"/3.0/900-musl-*.patch + eapply "${FILESDIR}"/2.7/901-musl-*.patch + fi + + einfo "Unbundling gems..." + cd "$S" + # Remove bundled gems that we will install via PDEPEND, bug + # 539700. + rm -fr gems/* || die + touch gems/bundled_gems || die + # Don't install CLI tools since they will clash with the gem + rm -f bin/{racc,racc2y,y2racc} || die + sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die + + einfo "Removing bundled libraries..." + rm -fr ext/fiddle/libffi-3.2.1 || die + + if use prefix ; then + # Fix hardcoded SHELL var in mkmf library + sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die + + if [[ ${CHOST} == *darwin* ]] ; then + # avoid symlink loop on Darwin (?!) + sed -i \ + -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \ + configure.ac || die + + # make ar/libtool hack for Darwin work + sed -i \ + -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \ + configure.ac || die + fi + fi + + eapply_user + + eautoreconf +} + +src_configure() { + local modules= myconf= + + # -fomit-frame-pointer makes ruby segfault, see bug #150413. + filter-flags -fomit-frame-pointer + # In many places aliasing rules are broken; play it safe + # as it's risky with newer compilers to leave it as it is. + append-flags -fno-strict-aliasing + + # Socks support via dante + if use socks5 ; then + # Socks support can't be disabled as long as SOCKS_SERVER is + # set and socks library is present, so need to unset + # SOCKS_SERVER in that case. + unset SOCKS_SERVER + fi + + # Increase GC_MALLOC_LIMIT if set (default is 8000000) + if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then + append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}" + fi + + # ipv6 hack, bug 168939. Needs --enable-ipv6. + use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET" + + # Determine which modules *not* to build depending in the USE flags. + if ! use berkdb ; then + modules="${modules},dbm" + fi + if ! use gdbm ; then + modules="${modules},gdbm" + fi + if ! use ssl ; then + modules="${modules},openssl" + fi + if ! use tk ; then + modules="${modules},tk" + fi + + # Provide an empty LIBPATHENV because we disable rpath but we do not + # need LD_LIBRARY_PATH by default since that breaks USE=multitarget + # #564272 + INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \ + --program-suffix=${MY_SUFFIX} \ + --with-soname=ruby${MY_SUFFIX} \ + --with-readline-dir="${EPREFIX}"/usr \ + --enable-shared \ + --enable-pthread \ + --disable-rpath \ + --with-out-ext="${modules}" \ + $(use_with jemalloc jemalloc) \ + $(use_enable jit jit-support ) \ + $(use_enable socks5 socks) \ + $(use_enable systemtap dtrace) \ + $(use_enable doc install-doc) \ + --enable-ipv6 \ + $(use_enable static-libs static) \ + $(use_enable static-libs install-static-library) \ + $(use_with static-libs static-linked-ext) \ + $(use_enable debug) \ + ${myconf} \ + --enable-option-checking=no + + # Makefile is broken because it lacks -ldl + rm -rf ext/-test-/popen_deadlock || die +} + +src_compile() { + emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS="" +} + +src_test() { + emake -j1 V=1 test + + elog "Ruby's make test has been run. Ruby also ships with a make check" + elog "that cannot be run until after ruby has been installed." + elog + if use rubytests; then + elog "You have enabled rubytests, so they will be installed to" + elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other" + elog "than root, and you must place them into a writeable directory." + elog "Then call: " + elog + elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb" + else + elog "Enable the rubytests USE flag to install the make check tests" + fi +} + +src_install() { + # Remove the remaining bundled gems. We do this late in the process + # since they are used during the build to e.g. create the + # documentation. + einfo "Removing default gems before installation" + rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die + + # Ruby is involved in the install process, we don't want interference here. + unset RUBYOPT + + local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby) + + LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" + + if [[ ${CHOST} == *darwin* ]] ; then + DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}" + export DYLD_LIBRARY_PATH + fi + + RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}" + for d in $(find "${S}/ext" -type d) ; do + RUBYLIB="${RUBYLIB}:$d" + done + export LD_LIBRARY_PATH RUBYLIB + + # Create directory for the default gems + local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}" + mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed" + + emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install + + # Remove installed rubygems and rdoc copy + rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed" + rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed" + rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed" + rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed" + + if use doc; then + emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc + fi + + if use examples; then + dodoc -r sample + fi + + dodoc ChangeLog NEWS.md doc/NEWS* README* + + if use rubytests; then + pushd test + insinto /usr/share/${PN}-${SLOT}/test + doins -r . + popd + fi +} + +pkg_postinst() { + if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then + eselect ruby set ruby${MY_SUFFIX} + fi + + elog + elog "To switch between available Ruby profiles, execute as root:" + elog "\teselect ruby set ruby(23|24|...)" + elog +} + +pkg_postrm() { + eselect ruby cleanup +} diff --git a/dev-lang/rust-bin/Manifest b/dev-lang/rust-bin/Manifest index 95f095ea2137..e78488c37c6d 100644 --- a/dev-lang/rust-bin/Manifest +++ b/dev-lang/rust-bin/Manifest @@ -126,8 +126,41 @@ DIST rust-1.55.0-x86_64-unknown-linux-gnu.tar.xz 139040728 BLAKE2B 1d7905411b556 DIST rust-1.55.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d454086c93147737c7c144af288394512528e4ce759dc221d7371b62724857fe16e391949b5b4dac436bdcaef8bf817f577e8d951e1f4bae098d687b4a7bdbb5 SHA512 b175e3ddefd036fce29c80c65a86565583167f7859f0941dee6718fd71baa8596f1788a6bed5d992096959e1deda98dc9c10e8cbc896114b7938a05951c29f02 DIST rust-1.55.0-x86_64-unknown-linux-musl.tar.xz 267291288 BLAKE2B b96e8fa1c8d2e55c07781db37ddd33ec7180cde29c84f5020f2ba0fbf6aa83f9db32723e191c15df765f965d1314a57d12d80e73d20deaab1333afca65bdfac7 SHA512 6fb700d5d17c084fa520b29f3012ac565eaf891705a27c7738a61bb9899bc952f679987ef3790875b5a7adae836c602b394c7e19103f30bbdf5ec82cf3e86567 DIST rust-1.55.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 5ccf03518eae6406ff66bff108b26988a6a859e5cf88ca44327f9826d880ea26d6e115fb3e63f6a40d1cb15adc25d6f1c056438466095b7223269fb0d74540fe SHA512 8d84a976d9922d28a5ddac0f47258759a4c7542df02fb9ffede4a3e98ceecc6415229f3eb676a22536ffff842c6e7ee35d50d1507f2d818301493ee3a7db9bb5 +DIST rust-1.56.0-aarch64-unknown-linux-gnu.tar.xz 223490136 BLAKE2B 29085e44fbc7337a11d396e452e53c43c0ea2ef53d2bfd6e294c837f890ce4400e9274705764ab40680226010ab502798131b1d717d7a4a1cc590313ec65f8d2 SHA512 858a28c6d74848bed5e731cd785995b095b78375d6b10834b2cca97778d571a9bed2bc2104a924d099297eebe91f9e829d7558acba0a46b31d7cfffad520bc44 +DIST rust-1.56.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7b6bd9c532801b1759524007ea1aa7037303a94cc0571cc3265f4be867d4f69d5a3c732598db01c43716ceaa19717c418ca7d5df6ca030ef014618b849cf72e4 SHA512 d8d05fc573f93a7063bbe54a6785305171b096b8348a44b0e72753a5500d97cd1b903394c0e8fea601e33892592cda6dc667285bb095e4d4fe0c4fff8cf12b46 +DIST rust-1.56.0-aarch64-unknown-linux-musl.tar.xz 219878296 BLAKE2B 5f7b0670820f2ecf8499c47d5731ec371234be923dad2abd261cbb4cb6da39d27a813d7ceaef22aa75f9ffce3067500e6f02c157a517951a0377073847919a6b SHA512 9a1445794558352005921c92d64a454b3270a1052dbd6dc1ff5e407057403b232dea5183920459fd2c9a6f22423c28af60b427c2edcd3f19565e036f918570fa +DIST rust-1.56.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B fbab4bc200ec56df82cceb8511d5e11c94a64cf2202eac7fd9eb32857ef4f7acd441482ebaea24fa04d4df6709f14852d937b6b62e500609f678044507f3ce68 SHA512 796365d5bbff1f39b46df8353a0ce282c368e649569a202c50e13e1bdf8e280630d38630a752f18dc8da545561675fd5112cefac207cd98adfaf556029514d5d +DIST rust-1.56.0-arm-unknown-linux-gnueabi.tar.xz 202166060 BLAKE2B 1e73ce9ad86bc9f4f7a920a822829ce12c991e763f09cfdf16d1118ca16ba8f8ef217232eae303fdcfa0eccf5b913b80f771d8236a2fc0bcefa9c9e30f5cb92e SHA512 31ba5c7a8aca7f42789b606775145ef776d03a5b06c46e4336aabdd38f92633e2bc206ad74c28676c52387dd979acf742f56ea49c3de8bab868c98f18242e8b9 +DIST rust-1.56.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B ee433953b9fc732f1e8606b4070d379dfe373b94b702316f10ae5d0802baa7bd6ed19d01c6a4eeb206066a6cfbab7329f76c175c7b76023adacef030ad666f80 SHA512 d64bc0635f9d87323cbce77dfa779a3d360df76ca161cd4b175e5aa63e2a4cfe1c8609b38d678d7ef8bccc011326bc4851dd81b55836223ff84fb85e29cc6364 +DIST rust-1.56.0-arm-unknown-linux-gnueabihf.tar.xz 198940944 BLAKE2B 651932afcf232292611b20ca43a034e2b54060a15b6c4bf0c37c40b2864e59d9ef3ad865cc6a0729b02de34abe23a09e758029860d3d196080fef43268fd2546 SHA512 6e5edb3df13fcd0b4501e78ae55d2b62bca2c696e938f3e913cd15dd1e3fa802bbc813fbe5696cf5bfecf1e9fed99e6c83b23be423a467b084f6f66cf08646cb +DIST rust-1.56.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 94363ce80bc31d867583484eab662c3a3012019c9e90205959b71df6a8893a92524673246e1c1831b3a228fc75233184bdcea13cb28ed1dafb3b8a0764fc8161 SHA512 2eff4a8d702c88a1e283139a9a435d845a1ba30fd2f2857f8c19c0d19fc94698ad6b6ac87be0b1d3ca4a78a6ad658bc57357c9c84e8983505dc29d080a4041f1 +DIST rust-1.56.0-armv7-unknown-linux-gnueabihf.tar.xz 204645860 BLAKE2B 4d1bcbb704954aa09fe89d0e2d15e886dc5e25c91c24a2239caeae228ebeb94fa40ccd7bacdf67a3b9ecb5aa0cb5b1d54306642d879591675380496142699acc SHA512 952edc69bd1747bcb711ea81c58c580b8b2128722edf851cb0a20e6b85674e9bba0e234e6eacd5e3052480a72d896f2792f1a281ed8e99b23dfe1c51b467e3dd +DIST rust-1.56.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B be71c4cc8ee6e64e8850cf4c95b6f34c115fc1bfb62890c7f1794a229656fc3be1b54321db1174e7804540ca307360c49d07e45e418bd0ce7e1b1db20bb83da8 SHA512 2e9b2d38beb4199062f87c40875622ea2d914023d0fae2cd631db5f04b423c868089084e8731c3260a180d2d5aed531714ddd3c383f06703cae720942c90ef6f +DIST rust-1.56.0-i686-unknown-linux-gnu.tar.xz 215611688 BLAKE2B 759781d0e5771cf058eb47ef6f5aa2cf5bc2c692d71ddad6bccf37af62a587cb38f70d23c7ba2ba0bdc07635b6516d2ed63a99497bdd03433bdab16a611e46aa SHA512 6e19d19ec3aa00262c90e66a7be46805b36601f8e13ff3b026479c589965c6006d045c92bc56a063fb284e830220af1124a80df1a2e7850bdfe1cc0fdd149f3b +DIST rust-1.56.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c416bfa472174a38631022988de8b6294585a797b764766a9547564e5099f9fe24d46f27d734eb81c82156ccd135fd60c97aa9e13f69dc2a84b9a8554407ebaa SHA512 04a040802634f42fd2d9ea62a26b89d10c44426eb7f00ea4532859903fa89c7dec6dbe37fc572b6986653fb862236ca0d48be87c6febc7983a670c452c145ac5 +DIST rust-1.56.0-mips-unknown-linux-gnu.tar.xz 160762656 BLAKE2B 74a98ca534020c1beea16ed0aae5d55087e52e80743ecb5d4e23861cfa3e39c9f3eb216c948095f76be25a5fe89c47f2e1c7354b5b4f56acdd3532ae3874ee49 SHA512 a6e33f557faa842f3c5fd49223216516c012d4af9b3c5efb3f53778a38f02138e1b522b98ec91bfe523f507ebc932f6966d329f23b36fad6a3d105d4020bce3b +DIST rust-1.56.0-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fd9cf1b07e64c4196e25c023dbd7b5dd9ecc346c3590f8dd4e5d3ed3b03b6b04da90a8549178eed0db0cee2acd5efa4be300da6907cdfa5424acc52ed047696b SHA512 a7278ed6ffa56025257c70e77f5dff3aabed699282e05b01f7f3eba8ca1a813f43f0ee07357518dde78df11fd3600cfd6dbc45757a20850694a0bdd2c079cd20 +DIST rust-1.56.0-mips64-unknown-linux-gnuabi64.tar.xz 165953860 BLAKE2B f02278555bbc3c8169bb4dff02383b8736fea8ca8dbf395aae5d62a10c0a9e25088d1d56b7d6b0fba6d4384f988f55d1d82153ec0038bbef0044fc8316cb7786 SHA512 fec707ddb8ee51700716ec6283f3ecdb910f7ddbd8ad4fef7882595afe5b55b1c8f862240172ed20cc8e07bc8db9682184fcc10ad58d2ef7e4eddb3e54a14dc3 +DIST rust-1.56.0-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B a1509f1799555bc84ba43eafff55c4e6e62821c3eef27280682210823cfafb627ec28d0b3faf1cf624f88c9bd2e83af1438b8659acdf3d33413d7e95a2271a53 SHA512 6a39541d53229f432090a1304797c1f2c2d203c72ee266a07e408907ed56a1dba15f644a074235dd56058f77bafeb27bde32087546db2a86b64a65bc7bbbd41d +DIST rust-1.56.0-mipsel-unknown-linux-gnu.tar.xz 164590680 BLAKE2B a5c7c7e1ecb0a6cb079677b1a72c17fb0b141588a6003ec5ad01c54ecfc2d5e1f928246f978e7606b166e8a60c2defa375287931e04fb28da341037cd226040c SHA512 3b05f8f0e624e75608f94cb51be5c032b7ad56c9ee99220cac73a7f8f6c40cc35c3b5f846c2c930398eabdff2622c1d447720063b831006615c1ec4d2c25e01a +DIST rust-1.56.0-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5ef21a9b209ec1b88df8cde1444bb5704656d3b435b1a4749ab65a13d0352392030c4ab4b59d71c2c03e554136c55fe44614b65d09fea644b7de572d357ccfdf SHA512 fd9efde43ae9d3427a56cab3128481733e0ee51d14365b8b5e65dbb5173bb11a564a4fdf68ad23ec443ab3371267399aba3ba704f3da41ded038a2d2ee898b46 +DIST rust-1.56.0-powerpc-unknown-linux-gnu.tar.xz 172592208 BLAKE2B 54016cd5f94e2fdba36329e5af7eb161de0485adc4f0e7b7933694bceffde8b101fc778880eb66156851f38cee66303b24095a6928f668d08bcba4277e2f6e92 SHA512 dd5e5a0f073c3de04a605cdfadb19538884ce1a715946e60fdc85408fa09a45d230eb3141ad999c5edb469a789151d5e6c7565743e162f7ce9add99021cb32ec +DIST rust-1.56.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 56f2c613dcf42d969da0734f7c5d6d544d1a2883b4435e941c0779f9406c9b02a9eb8eeb4d8393cf7abc389ba2df78f05b78dad56848c24df1023971101a9a92 SHA512 a5a933921e9670b3b55a9ffb01d8eb5b7520a7e73bec987a161a7f37d07f9024266566a7059b47592e66f6c1926934ef2306b1e7283e88329e68a124255f07d5 +DIST rust-1.56.0-powerpc64-unknown-linux-gnu.tar.xz 186235644 BLAKE2B 13754e77299dd432adba0773586910a215a8916399ea827a6b5ab5d8866b731ec0af2a0772a8ef83ad897c491add7c513c4f3f06c41c61bd600f2ff742610b3e SHA512 1ad3c1b7da0cb4a697c8bbe8a0580a3a8f01e1a8e415b75ab4798f5425098855ca9c95ec636a36e796d919464f3ed3ca651e8d3811f3adb9b040976422fecaab +DIST rust-1.56.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 62277bf7ee93ff6ad847cd9c69e89a2bd58f31efd235eafc7c4814c2e465ec24390c4a9fd99fc2c4c53fd994be159720b03ee169486f0c7af31da50b91cec2b0 SHA512 fab2896c285dd6641b5a7e6c8d1a9e96c084b65fe05cb519cc20abef7d5d42dfc0aaa2c61c137c89db26d0701fd4b32dee6453e98651f98b2d63ee34c8627dcd +DIST rust-1.56.0-powerpc64le-unknown-linux-gnu.tar.xz 195350800 BLAKE2B 2ceeb04ae5a5482ee3908f07dc50e306426fac09aaab154c6235392ca9e403ed36f492dbf23b3f6172e964d2ce7360fc0d19f345ea39cc28874d812e21e22b8f SHA512 bcddee74d0c7c52e7ec17b4b808b0caca764bd6f4ce6235cceed5c93983673c768981cd8403b2a7cb993eb5055625af2679c8635955d4765acd871643eabb6b4 +DIST rust-1.56.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e4085f8f853cfd50e44b0bb8ca70a73fe2cb14827261aef40c98fe399ed2aaee9d29acaabe2d85d51d77ec1ccf6eeb263aba1042c4e06c2b0ff7539ace11368c SHA512 6d21afed2e7eebc11d1713774feb662abaf84d1ad524edd506efb0910654b84828017db6c07248156514a37c176dde48088cf387aebccf6476ecdbdfc961c0dd +DIST rust-1.56.0-riscv64gc-unknown-linux-gnu.tar.xz 192792856 BLAKE2B 85af51b16ef1f749b1903cf98d4cb5d92d26bb17d5b5c2d493862feb8d21316a2d4aad73f3f9c8e2ef1436544a592d8a8378f3671c4c099b39e6e24f597bd4ba SHA512 ff9959be93e6d4049030d9e07fe6dc8be67fc635698ac37630b0cd8e1e446e6909879a4aaac4b0b08b93dcc2ce7650986d961ae1001fb683b235efc101b7e470 +DIST rust-1.56.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B da4e11a82df51283edc6066d5a54b1f2c5937e1f8a9e45ecc10d1509a7377c630a63c141b413123b01d6df67c0be6c63b0017bfae20b13c654d3a5de98981410 SHA512 2fa854448aa07f2c23bfc6145bab5973e73f0c444dbde8f0f823b6a843f2125773115fd91660906e7dbede25d44bee2ae3873d299ebf75a8123c618afd07fb4d +DIST rust-1.56.0-s390x-unknown-linux-gnu.tar.xz 194222748 BLAKE2B 4cc8ac554f85ccf0963da9935da46d51640f37346fec2486fea50afabdd881c331c54af6ea15ef76a53d850dc9cbd8cfab8f4125b4749045d985393ead77b1b9 SHA512 8b00ed11f12604c377cafe7c206f8db10980a4c73bfe4b4d1d628ca6fcbb3df0553decd89a9ef775c06e62f446b817d4d51ed7b55bba5f1826e9d384fca7a26d +DIST rust-1.56.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 443228e6dc0fcf1da9a33a89938710efef0881f835daa2af1b7593e32f90403992b752bcaa321d5241f233faee3773f205a9afa44f12b59978cc84c261b85ba6 SHA512 608a7062e93e7ada52fe9688f2efe1e3caa4d768f0e7be31cf47b8665a8dc550e9287d339da6712366cb68a14868e07e5b68c4a25b86c2bac1fe738f77815b3f +DIST rust-1.56.0-x86_64-unknown-linux-gnu.tar.xz 147894784 BLAKE2B 6cbdb8a82aba4715d07c41497443a90cbe2bbed32ca95b3a8ca4bfd048334f1158b30f221bdec10bbef2d07344e8a35d4320ba8b991006263a6b764932cdc7e4 SHA512 bfc3a7493c208b35b42f40867286a6b3d97bda1c45983379d4223df31291e046a1214df1f88df2cb6558cafd8912cb8f0bab99a45899321b128e729ad03b9493 +DIST rust-1.56.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e0ed39db46b40631f69fa379a04ec37ba314587a4f081aa1f3251e01b7221ee8732b668cfcc4c24c1a3950f3f8dcfd542a1a73c603cea545b812d5d3a9527055 SHA512 3e9d0b159684a496e29c9e40af11f16f5ef5cadd8bc4852018a953310e77a4e29db6c14ffcc86198908aa4998550c83cfd3f2cc42e007122d56167d664776c44 +DIST rust-1.56.0-x86_64-unknown-linux-musl.tar.xz 255010720 BLAKE2B 286e91cbf001de6f888bd82139e6711b32f03d45c599f26b01f60222d98c3521a1933b3b9b7f8c46fa79d481780dc8dc47e5e24985b721a6998d620b446c38b4 SHA512 fb5a914a25ef3cb39393207a75c40f1313740167062feb4cda4084e738f4e93a51624a8a9591acc18553cfd6e2e232984c8c84acc3dfd77fbe38b17085850881 +DIST rust-1.56.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B bb7cfc775c1c44569276e687028e9a7ffac31577310052d9c354179a541ee13b0ca00a025e994e03ab17086d0abe6dda6845ed1cb10879425439c7651bdc9269 SHA512 cb23d98cfb1b59fcccaec575145b6f38846f3f49b16a3be199b06d6198b1db13720157ca65a01f6ef76abf742507bba39776d130f0fd03aa228acf5917457f7d EBUILD rust-bin-1.52.1.ebuild 5378 BLAKE2B 88912dbecd970882f4a6acdc66f4058b2eca20541b77bf98f799354dc3c4e6c1606592e57bac4c05eb5aa44901b4bbd14577bcb3ded25db730bdcdf6d4eca5f6 SHA512 4d2f865a1431b13fe40d40eac7b8bdff6e3da4af094d2fa125369bc864bc6d9669cacf94401e33703284ff8b955818283f659157176a1283fa299555f0a30f34 EBUILD rust-bin-1.53.0.ebuild 5378 BLAKE2B 88912dbecd970882f4a6acdc66f4058b2eca20541b77bf98f799354dc3c4e6c1606592e57bac4c05eb5aa44901b4bbd14577bcb3ded25db730bdcdf6d4eca5f6 SHA512 4d2f865a1431b13fe40d40eac7b8bdff6e3da4af094d2fa125369bc864bc6d9669cacf94401e33703284ff8b955818283f659157176a1283fa299555f0a30f34 EBUILD rust-bin-1.54.0.ebuild 5383 BLAKE2B 7c271e76a052a77c4bbdb72969f33be124c3f5a028e70e3797ef2895e50f5b5a4725deac92f7c3fad64c8fbf1be1d9a1b61e91db4d25453de69abab6980a3cb7 SHA512 147596f07d55953ed795ab2e6b6162505a3cac65526e0acc08db1f37094df9471519e143a709e5a410790b17288b24e9d16ab916855891b15b8cb24af9edeb0d EBUILD rust-bin-1.55.0.ebuild 5383 BLAKE2B 7c271e76a052a77c4bbdb72969f33be124c3f5a028e70e3797ef2895e50f5b5a4725deac92f7c3fad64c8fbf1be1d9a1b61e91db4d25453de69abab6980a3cb7 SHA512 147596f07d55953ed795ab2e6b6162505a3cac65526e0acc08db1f37094df9471519e143a709e5a410790b17288b24e9d16ab916855891b15b8cb24af9edeb0d +EBUILD rust-bin-1.56.0.ebuild 5383 BLAKE2B 7c271e76a052a77c4bbdb72969f33be124c3f5a028e70e3797ef2895e50f5b5a4725deac92f7c3fad64c8fbf1be1d9a1b61e91db4d25453de69abab6980a3cb7 SHA512 147596f07d55953ed795ab2e6b6162505a3cac65526e0acc08db1f37094df9471519e143a709e5a410790b17288b24e9d16ab916855891b15b8cb24af9edeb0d MISC metadata.xml 490 BLAKE2B 91056b5357c6d4a4bb86d867114272211ffd3bc8299e89fd1fe5f83f4809687c9f79dcca87df02d2d4e0d820df8de7457fac7869ba1e12d8a02b54fd0bde8ad4 SHA512 1052d99d16e2bcd4dc37c94966cee016e11ab020137dd4d73839b305ce58b158ee1df5e4315ee9657c530d2ef8f5a1c44ecccee49e4968cb69a1216da6203178 diff --git a/dev-lang/rust-bin/rust-bin-1.56.0.ebuild b/dev-lang/rust-bin/rust-bin-1.56.0.ebuild new file mode 100644 index 000000000000..64f7fa3d9544 --- /dev/null +++ b/dev-lang/rust-bin/rust-bin-1.56.0.ebuild @@ -0,0 +1,187 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit bash-completion-r1 prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal + +MY_P="rust-${PV}" + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P})" + +LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" +SLOT="stable" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86" +IUSE="clippy cpu_flags_x86_sse2 doc prefix rls rustfmt" + +DEPEND="" +RDEPEND=">=app-eselect/eselect-rust-20190311" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( app-crypt/openpgp-keys-rust ) +" + +REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" + +QA_PREBUILT=" + opt/${P}/bin/.* + opt/${P}/lib/.*.so + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/lib/rustlib/.*/lib/.* +" + +VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/rust.asc + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + verify-sig_src_unpack + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +patchelf_for_bin() { + local filetype=$(file -b ${1}) + if [[ ${filetype} == *ELF*interpreter* ]]; then + einfo "${1}'s interpreter changed" + patchelf ${1} --set-interpreter ${2} || die + elif [[ ${filetype} == *script* ]]; then + hprefixify ${1} + fi +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use rls && components="${components},rls-preview,${analysis}" + use rustfmt && components="${components},rustfmt-preview" + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + if use prefix; then + local interpreter=$(patchelf --print-interpreter ${EPREFIX}/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" + find "${ED}/opt/${P}/bin" -type f -print0 | \ + while IFS= read -r -d '' filename; do + patchelf_for_bin ${filename} ${interpreter} \; || die + done + eend $? + fi + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + use rls && symlinks+=( rls ) + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + + einfo "installing eselect-rust symlinks and paths" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /opt/rust-bin-/bin/rustc- + local ver_i="${i}-bin-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # musl logic can be improved a bit, but fine as is for now + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib" + MANPATH="${EPREFIX}/usr/lib/rust/man" + $(use amd64 && usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '') + $(use arm64 && usex elibc_musl 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '') + _EOF_ + doenvd "${T}/50${P}" + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${P}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" + fi + if use rls; then + echo /usr/bin/rls >> "${T}/provider-${P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end native abi install + + else + local rust_target + rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" + dodir "/opt/${P}/lib/rustlib" + cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ + "${ED}/opt/${P}/lib/rustlib" || die + fi + + # BUG: installs x86_64 binary on other arches + rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die +} + +pkg_postinst() { + eselect rust update + + elog "Rust installs a helper script for calling GDB now," + elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}." + + if has_version app-editors/emacs; then + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest index 614eef3228b2..e516e0159e03 100644 --- a/dev-lang/rust/Manifest +++ b/dev-lang/rust/Manifest @@ -133,6 +133,38 @@ DIST rust-1.54.0-x86_64-unknown-linux-gnu.tar.xz 136593024 BLAKE2B 2f10b636982f3 DIST rust-1.54.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B cdfb03b6a75cd86e565b0b502cbd72636b67a92f9039fb148ca19fbef3d0775616ff03420cebeffe36db3d1d1db75e7e77ac473841a399dc2a218df09598b2eb SHA512 144ec35e82194d16cbf4e56c34dc25aa83d8ec8021052cc471ec85f169b74bd9394ec52c21c898d3ac0b966fd7463cd567d729eec9152f5fb8307c87eb02877d DIST rust-1.54.0-x86_64-unknown-linux-musl.tar.xz 267840732 BLAKE2B 32e50467c4ee88cc502ea7e3e8cda9cbd89bcb6b7fac0c84b1509abf0a5c551d43f6522d148f54e4af65e0738b1dd13bfebaaba7e863909047fd53cac03bbbac SHA512 131f4743e5990c3e1ec2b7a0d1eb107a0e5264e6ce387cf4aa6db9a1693d0fe4a42de5722072708d72d580500d566f7772513974ce5589ea07997374fbdefdb9 DIST rust-1.54.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 8b9194ce2b172cdd1fecbe064ddaa0047d30ddeafeaa903637e65775b139207c47da7eb17475ed17b1792b7c872ae71058c1f2cb7d59bd2d42a78cc590f9ec03 SHA512 2aaa42cab5272b6ee2ad0d3cd67b7dc648af68c5b9b5fd8f816688c0ebcc2cb0a24ac8c2a23dda5f17f7ba04f544625b3b03b22882c9122852bba680d8155afc +DIST rust-1.55.0-aarch64-unknown-linux-gnu.tar.xz 233469360 BLAKE2B ac0529d771dcd22ed55cf52af12a5b55a8ee008d9dec2c09fb1aacb0c7ced78e87a6b7cd8d17a3dd81241d553b750720e48631c3a3702ee59bcac905f3a51420 SHA512 223a024701762675adb5c7c59fc54717d23f2ae4ea5984cd1cc0568d39c5207aa07a104ddad68da057f6434eecf23415ae13be2235797897d8d0f7cb5f2fc4b5 +DIST rust-1.55.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 02fec5fd64e97da4c74aa5354f557b3090c3df9c55d827c1811fbc41fe513ba00d8f854f95babafc7c9a4d2dadf50f4cbe6d3bf60cc10f12609c0957971c571b SHA512 1c2f41efb85971009a705ff3f82a45b6e3688d12b2c919c2555cc19dcc3b9575b516223a72caccb5ec3622e353fa0380ae3481a63ed2fa9b89f8e01c2771c95e +DIST rust-1.55.0-aarch64-unknown-linux-musl.tar.xz 233248308 BLAKE2B 263506150ecb677c73a9a670952796d7df90b572ceada5fa4afd8b1478363670d802f6a26f47d0d6cbb34544edc63279dd4b08a9131e5702f4119a2236a91f6b SHA512 a74050bbeabee752d030b07f830b919467af59755b7b79f64edbbb7acf822bfbbd1d013d25091d37ce255ee9796056966d102bf5b3da475a859788af7ebbdf68 +DIST rust-1.55.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B b1b43bf430d33acc9a9b5f99148f1e0b930d3e271d40834a44ca839bf00369a01bfbcc69f4851e1cc951b26d6f7eedfd6f02b6ff9ada8dac85ccda0c22b1ce36 SHA512 04d31f458c285801b0185308a56700f0bc3bc2ad8c4548a1aa91e73bf94878810dbcf483403ad5815e80e87fb1417d958dbb18e6fdf090d2fd41b90d1c8c040c +DIST rust-1.55.0-arm-unknown-linux-gnueabi.tar.xz 210542012 BLAKE2B 91e6eb6c42f99e13aaeae97ef85cb266378a0201c64c3588335022a7218bd95c438d290a66390ed004a627a667ed6e4acded9f79fd6a7d47017457fe9955c658 SHA512 3cfd6e6968ed4b7872376da4d33f2eae0bf10d99eaf5fcf59e6d9be432f0239b03baf46b70f0146175894f2eb1ef118854d263d4ba8d18913e4f820fdd1f97e8 +DIST rust-1.55.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 0902e4acc3a70750d8c2de86c22cfefad261e2b204c63d948c7e232adece894c4f7e15d799eaa3fadcef9a63953e603f5bf1e17c6f4b601cb4d93b88d8c970bd SHA512 39db8c7421e86c79189f1e0cc5a79dfae6e7633c43749f49cff371af862c0becead4a977cb75295b06da75d64516ceef68de4f42beee6d63e1eb4fb0bf976dd5 +DIST rust-1.55.0-arm-unknown-linux-gnueabihf.tar.xz 210534624 BLAKE2B cf02334a4b0182073b5387f3d1f16b6ae0d0508fc07e81ecc7623eb21031b03c1e6ab10cb2b6fd23071c3cc0c77adcf4cbd7d34d38e81853cd0ef02368c99036 SHA512 83a888c334caeda24f365df43df0fb83f367fda477d1bd7c869c88cff5407ffc134d8bd172a037c27a34d79cb28eb2e9629f26a7cfbc0db9209e581e06ec86bf +DIST rust-1.55.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 17911a4745c705f7a4a2849301901912161c85300305e77588180d0fa4160a7ccd9188415c97a266613f35fdfd5b0b45879814c0afef6c6c2fea2bac700d0f39 SHA512 95d0731d84b49ecec8388fbcc0cb65f0ce93956a44dc62e1628f7e51e5726de6b611ed426a5e5c586a028d8808e6bca4257a8a1354b524087d833a32c3e0a231 +DIST rust-1.55.0-armv7-unknown-linux-gnueabihf.tar.xz 216342104 BLAKE2B ea2cb2d41c0a994124c5a5893cd3764f078157cb225117d9ca8641ca8896f02724beab7561a828d1163055e4c999ecece669f77920ccce0f495f2ff1b6632368 SHA512 b06b3c36b5ca35391030f3c9d2f64725263ac987002923d9263c4c27877d91453db3191e01d40c78f439a48f83da220926a2841337d815dd333591d453f2fc0e +DIST rust-1.55.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B f35d5adf2ef48d52d22f6066a2dbf6a61543cf7e478a5d201caf1831f5cda53b7003148477fd043de98530bf3160de51f44f87d4e30be6cb7768344c6754f16e SHA512 e3cc3596e3f96d0aa6ec915690730118cea023e57b7bd9255acf80782acb865a1aa5ed3e404654d7eaa8110947f50f42b575d3df1eaef616afd2c55e8502b535 +DIST rust-1.55.0-i686-unknown-linux-gnu.tar.xz 228160060 BLAKE2B a5c37f6a25b8e09b3ca831f4f69d65d71f97bf0b0e975e7c92e8a4b2ec791f166f477b2fdce0ae6d9f539e598887a54b1e9ed0bc603da0e0c787cd2ba4b59565 SHA512 a0222c68c63ddd67afee552dd9ed636ea02fd3f26000deb7a1dc47806a1ec0b2fafaed903d4dabb0fddeb9e4026bf0da8bb2161c14db24d2883c084932e306b6 +DIST rust-1.55.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 62cc675de6155892cd6c0932d0b354cac4b3a07be58b2d6b021f7e86df058d5ecccef8e4ad9bedfd2432e84cea9720a982cbf9a50bf8a42149d8f197a27f8fb1 SHA512 21efa3b95a0344913666220f2996a8273e7d41077410b9eaafb7467976d0eca0139c780326b3e645d83db0b410e5db3a36342d89af668e65d045309f541c1c1e +DIST rust-1.55.0-mips-unknown-linux-gnu.tar.xz 152431144 BLAKE2B b5b27cf62f92f551a39ed65c957b73ce30ef9d1d956b5ca342641bb647c4874d7e325ec5f1c22a340668315c8f50c34240d0a2044ac8e5a88608c02fdf4f7e39 SHA512 e7eb3a64ea87c211a77ac73c4cfa001849fde1f73605d4e58cab84b09c886ab1a9a850cf1dcc9e1af19fcea0ea53400529a74adab531bc0a5ae3cee70a7cc99e +DIST rust-1.55.0-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 31dde6a6991040bc4772bba2577946837af84922b01c12bfa1ac9003f90f118c24d63bdcaff339b3a256f48cbfc55aac0bd1823727c35ca6424c5cf3b049d4b0 SHA512 685e6d15e79f71de45c9c2532cbbf7ded0c6b8d986c2bbb78887c43c05cc91ad5430c5f04c80d8007a3a86fe2936b29d7c8d92905cebf0ddbd152c526f324077 +DIST rust-1.55.0-mips64-unknown-linux-gnuabi64.tar.xz 159792528 BLAKE2B b762f4965771184fcf3ceaf38c7c8b62d9f4cbafe0fbc0a1e01a30ab9a5c951bff9472796c72ae1945d2a510b0efefd576f3ef0b4041eec7103cb5e5deb75e14 SHA512 74b199449c2237d71d2d8de4d8de05c82f631cda1fbf00b342707b4e99aa6aa7f89957d606c29dfeebb5990b3e6f09de5f360c484c8153cd17076bffbbfac251 +DIST rust-1.55.0-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 92a173654e7de569734b9c56f4f9d73d67fdad625b71db20c1f1fbbe20a12cb54a54a69bd215846101fc620b6a995d1f91dccdd59c97a5d6f2efdf59f1c40b3e SHA512 2f166793f3d814f39b11c968921fb9d95627325f588eab9d7b26b76c5824222978286cbfd2cc3b197d7a53711e74dc5da39eb422d0dfead9e2ad2638a2d3692f +DIST rust-1.55.0-mipsel-unknown-linux-gnu.tar.xz 155530648 BLAKE2B ffdaba2d35b5a6287fa78234df4368cab5e95ee139600d2d0964398eb0eddddf0382fc5e17f721eff3c1b61feaadadfa056727e249266d4a1783dfd441316eb3 SHA512 b4de4aab16039b7119760922fc18e7a5e0d1a1cc61ba5b3b5f778ce9d1d234448c8cfb5d46ced58a5b5705c1ae1a79403b394f0c4894e6387d7a9276768b2014 +DIST rust-1.55.0-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B bf9a712e8b3ee8e44a4a1e9bb5e70486d11a65a09134845553c8f2d201eb1f674e64a6dc50a9de7eba3c8c457a747a0c14ec8228710e2725fc4a4630dea9414d SHA512 f9f62b8d12d33446504e193df49b11507cf47f17ea63abe329505af25c29ef928505049e161bd0157f03dab5f54bd59c38382e0e2cd891e79bcb831dc4c1ddef +DIST rust-1.55.0-powerpc-unknown-linux-gnu.tar.xz 165801508 BLAKE2B 752325711493d0caccd005a2509121992dfd3850eb87cd4100b61be08f42d0680d16098c631b15e4b94f63dc5d11f63f75e2d3d38ff7817fcf254563f80cc6af SHA512 c78fb4a5e7c59fc96f937eaee2e8ddf08be32376f45a6916aebdf046363f5ad792f67dbe1d42b699ee82b5f968671e710233f72d1677e70efaa90c9a54d36688 +DIST rust-1.55.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B bdcea33c2655a29bbb154129e981229cacff826483d950f32b5df5fb9ba7728c68d25d35df796bd75a26cad20ff525e6de4a059d0c908449a68460ae83112767 SHA512 f3ba9d98da9d4eb60c0f07ac509c24281cca419b805e1efe89583c93bb050665992f63069b3a76d8cd810b5a81d28b3f732c54eba081c40e9f8e6e0d39e452ab +DIST rust-1.55.0-powerpc64-unknown-linux-gnu.tar.xz 179595992 BLAKE2B 3ed33cd7d28f0d8f91fa0ad2e46b7e8e53afe3f0fe8b8557530aa7ddeb3489e054635b636bdedc85bf91f17ea074b286f603b83cdad1c149eec431bd0b440ab5 SHA512 367ddaee0131ae05945b0a81efb73fde479140cb8078d10ec166c0da68afc1fa2aff40a8e6246c2b4861a876b8672a8d8d126bf15d23830c6e170aa27c1d6a7b +DIST rust-1.55.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 795eda0483df19dc9c3f4439ab01dd3a647cbcd7bdb03a6d236d699214c6d1e2b1d794515bc09b067b0c4ab789893d07ba9905821d4851c84e4b16cdc38e85b7 SHA512 e2c527769342b8c05b60065e74ab7c8b3fa05e39a78f7cdca3044fc3b3167c62911194402d2256cc98ea69a30d5ef8b726dfec76755b7211cb0e9f0131eb556a +DIST rust-1.55.0-powerpc64le-unknown-linux-gnu.tar.xz 188758520 BLAKE2B 789d6a835f4bf3c5631e55645cb7d8b77674dfa66b49c6f5c089b2a913785aa8962ee5db90a34000958f946b0f00b648a31346aa93d509e898e6476c14d6f551 SHA512 67c98c7cc44482082daa5daa3926dc92782b373b3173181413e68d59ea07f6eee61d46f3832a3fce18bdc44dd563e2e1f85709435e04c599b299981ecd932a9f +DIST rust-1.55.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ef25130d02f4570b433ddcd52545c7ceea9b239204a6bf138cc210f8a7fbd48922a0b8ab5a93a9f1c2b2f1d608bf525dd4f5402b03863defc8979fb84ec19760 SHA512 4a707f12d4b1c3113e0b4202fb0a7b66a04572f9c522ad6f0da0b049e1915ccdd9d3978cc03fb9a47a97639430101f3871869e99953374bfc5541d02ee0d7ff8 +DIST rust-1.55.0-riscv64gc-unknown-linux-gnu.tar.xz 182350256 BLAKE2B 1b139ae02b036719c7173d9607329a225455ac430d3911adce74ed0edd7c85e0f63a0beee563b7e26a4efe147083bcecf2dc93b5babad66303dcb7231bd83048 SHA512 c28beb76d9ae3a0727ae368845b4f62f8a087570a5464eac3b966ece6dd30d324696240a404f67c90cf005004bbfac8da31410d51469a7c34a6af3415e958acd +DIST rust-1.55.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e04e2c6ae4c2192c558b41201aec4fede2fcb05022f2e841e9048f2891b3baad5737e27297c0479e7363f920b7a63a502fca0fa7481ffdeca5084d1fd8bd2a4d SHA512 96b6412bfe84c6b4d13a13a8bfccb28505e8070c2e5ee94bc572be84dc5a59a7c5208659d20fe0d37cf3c02ca8475e5c9c0d4f0a5b9b86aecce2a35bc91c5a11 +DIST rust-1.55.0-s390x-unknown-linux-gnu.tar.xz 187722100 BLAKE2B 030413321337cab855fdcf6ff4ffdca4cf1105e633fc4b28d049263a5fe40a0097a9e03ff4aeff80b57c761c672d96e65c9f774cd83a9aba0f95180a2eb2dac9 SHA512 7fc83c8723493864a470f32a05db9e16ecba0ff621080d8a3a257e6f42a37bfcc8d364d71aff696991dd85635f6596ffa72efdefee1620c308984536b48d212a +DIST rust-1.55.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fa4d8d8bb025a9010a44a9f021ba2fb443146debd9281ba520d764b49db6dd0e8b7b614d7a131f1722b29be4b80eabd3694e14f47a05d87cb3382c799ef96a88 SHA512 9ed8aefb443bc51a33e3cbca80f3ce1e65a565735672a966b73e5f4c8f7363c6d8204ab0f9387739765b70dfa8269372156500d99cc4d74ed94d1c2473c807f2 +DIST rust-1.55.0-x86_64-unknown-linux-gnu.tar.xz 139040728 BLAKE2B 1d7905411b55617178c88a062a1ff3048edb8020126a8c4c047aef762c4fd13b1c8c5de4c06a97477d9cfacadf6dc008c2b7b66862dc0c3fb9a8dc48f12f5ed2 SHA512 4bc304727b1e9459194a9a9ad5c8e1fe63501f01047d479585de6708365b3f59e09aade64c7f4969df204f8bbcf9de9508745d2b96bc25cb74ed093f8053a4d6 +DIST rust-1.55.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d454086c93147737c7c144af288394512528e4ce759dc221d7371b62724857fe16e391949b5b4dac436bdcaef8bf817f577e8d951e1f4bae098d687b4a7bdbb5 SHA512 b175e3ddefd036fce29c80c65a86565583167f7859f0941dee6718fd71baa8596f1788a6bed5d992096959e1deda98dc9c10e8cbc896114b7938a05951c29f02 +DIST rust-1.55.0-x86_64-unknown-linux-musl.tar.xz 267291288 BLAKE2B b96e8fa1c8d2e55c07781db37ddd33ec7180cde29c84f5020f2ba0fbf6aa83f9db32723e191c15df765f965d1314a57d12d80e73d20deaab1333afca65bdfac7 SHA512 6fb700d5d17c084fa520b29f3012ac565eaf891705a27c7738a61bb9899bc952f679987ef3790875b5a7adae836c602b394c7e19103f30bbdf5ec82cf3e86567 +DIST rust-1.55.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 5ccf03518eae6406ff66bff108b26988a6a859e5cf88ca44327f9826d880ea26d6e115fb3e63f6a40d1cb15adc25d6f1c056438466095b7223269fb0d74540fe SHA512 8d84a976d9922d28a5ddac0f47258759a4c7542df02fb9ffede4a3e98ceecc6415229f3eb676a22536ffff842c6e7ee35d50d1507f2d818301493ee3a7db9bb5 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 DIST rustc-1.53.0-src.tar.xz 115686332 BLAKE2B fa068f89d42f927fdc79ee31aad1386eaf2aa596a060e059c5a1a73fe48c48d008fc952cd6c7912b743e41d77a94b205639eed0f728b2539b62f18a772cabfe3 SHA512 70485cf7a0f7fc36ee31644e546374079dc387a85b44e5e793707fd0a4d7ca05d311291e78b86db955485d8f21c47ff9e1908acc4da68ba04929287213a40c24 @@ -141,8 +173,11 @@ DIST rustc-1.54.0-src.tar.xz 116286856 BLAKE2B 5ac47822646a0b6205f09282168b4d4dd DIST rustc-1.54.0-src.tar.xz.asc 801 BLAKE2B 5ee9166eaa00e4ffec10fb82b18946d403bc2030c6e04de6449311cbccc2ef1b017044f451a1c19be3a0a9640c4a9a9e4bd22d28e2115509f333ae38eb25e9d4 SHA512 5ad91f43515de14114964db0348cd28c08adc6dc935f110bf339053414b8eab8a40f1074ceffa44ed2df61254f8368d867479400618c44efaa0333642ab49d07 DIST rustc-1.55.0-src.tar.xz 117197580 BLAKE2B 8d9739ce7571146aee0e07c6287de9a8c4f1a914606cd47819eb1ef118b15772ecf22d0d43d7732f03c234a013fa54a4a7f0578a3f136af518f71bf64a03305d SHA512 7522f2fa95d5af92472404ecc97d7d9e745e88c933196a83fa373ce1efff6db3c295e0e2afdbfa1ff00644554efa0c3c7f6c11f9119ecf9010cb440b3f27c2da DIST rustc-1.55.0-src.tar.xz.asc 801 BLAKE2B 5b4ba951ed7ed56c7bd9c71df89cc1e966485d77411016ad71a811ad8e21b88295deec08f24f65afdb163e69ee0fe19288bcc64d18fe272bea51319caddb66b2 SHA512 9bc858ce26cc069cafaefe6165cb15a07e144ad6d6312bcbe115a0a51fec6e281d3e8a7977e958d7fa10e77139548d57396b1552a2802ec74b7bc6ac641e7ae4 +DIST rustc-1.56.0-src.tar.xz 121802340 BLAKE2B aa471fd0785d6ceb75d4b661d466a450c960f6df19018a74732f2bab6ec176ea95e247e7cd44d550345bfa723bfc1b6088f0436287bed3752558654198856003 SHA512 2daa365524b47dcc48e49a0e9c8c45988af44c0845e2695dc5053f18e768e49acf3dbdd77f808dbf260546ef608eb47c593544012dd05675cb7e6b6223900315 +DIST rustc-1.56.0-src.tar.xz.asc 801 BLAKE2B 75bd829e457b6cefb2fcdfd04ef835487c295420d9d9c8fd7af800b405fe1113c14be01ad3540fea7ed7c743397e337ce1d3b0e757c73292d7f342f352e89791 SHA512 e81cf3d8b1c97803138d4487c32c1463526d53513112b4fa170a81ba947280613fb3260b43d0629a45c859519ea094e467ce0cc0def722577febc3cc34ce5ed8 EBUILD rust-1.52.1.ebuild 20520 BLAKE2B ae12faa245d6043afb9dd9b62db207d89eae1655940369a9663d7ac9388f2390b854c32a459256f843b35b8eccdf4d7ee78170c14d6565b2c2ad28d72cdf4202 SHA512 e4bb2c8ab8bec76d6881b8aec1008e7a5f1a49ce16175137b4eaf4e3052a01ddb77304d44a30e344e90953ace280df1dd13172317d662b989c5cce6f27aa1375 EBUILD rust-1.53.0.ebuild 20802 BLAKE2B 97c59e812e197158a9a0b9bdcf8a41417298bf80afee1642526ed396b087da6d990d3559efcb3d50898374a0bd06ebd0764a9325c3268c6a40926ae33b015894 SHA512 a5bab41380d0d122fa2b81012af04cc9e4cb1b1299e20c14d05cf989a437f63b9a7939e7a80cb910328ce0ae1543efc3765252c9a837b9bec5ef5b149aea1a26 EBUILD rust-1.54.0.ebuild 20806 BLAKE2B cde615998a6281dd6e823d55549c56ee3b23c5e26b92358516cd20665d406317a3f1333271ebcdb000660fd84e540574109b398a12882c0ba655ca978c3a8579 SHA512 1fe3d61af31ce9ef9e6c97ea694965115b41982f1d95285483838e861762115bf9abc863b2466c6eb927b56a2ed22aff6784a0af0983f56ffd76da83c40b0335 EBUILD rust-1.55.0.ebuild 20713 BLAKE2B e43e75effdb0de4f007cbd4be21931d14cc08aad92226cf13e076c653dd2144f35ddd90beca0b2f078f446585eb805484e3e1f7c9b583d9d03846e1bda33b042 SHA512 97866c0bb0e3f31796b67cfaa246ec769e307eeb46474207ad02850157a05d5a643086ec3020d351a0b067be7862a9b39384718da91cdb3b6e3e499cd01583ae +EBUILD rust-1.56.0-r1.ebuild 20625 BLAKE2B 7e669a0e7d6988fcf5fd7635e3da348b4883f8e8426951a01ceaa34869349ff294fa9579c593f72c8eb17ab2b5535e3a5786633b0ec58d0635c512080efa03f2 SHA512 cb3086d79a852790f635232baa1fa6059920f1fa2a98088cda5b3e0c0775ee55e9e4f5b29b2724b8e6642a82359c1e9b8b3e327fb0938e05f3dbb94e233866d4 MISC metadata.xml 1123 BLAKE2B 3a4e817eda9e998275741d9b3e313369bfb3d4ee8ba3b701f2a26ea3fd8b5564e8ee5dca29574693e0361d56d1b91aa1b8791fc46a3533b5e5a98bbd6991cb01 SHA512 dbd9646a10e11b9ee8a87e4785f06530758dd611e58da3b16fde927dd0e7f858710e246a0401e09e7500ff5c301c84f5606f4fce85c21f0f8a5579f0bb4ea8ab diff --git a/dev-lang/rust/rust-1.56.0-r1.ebuild b/dev-lang/rust/rust-1.56.0-r1.ebuild new file mode 100644 index 000000000000..a388d0a00694 --- /dev/null +++ b/dev-lang/rust/rust-1.56.0-r1.ebuild @@ -0,0 +1,683 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{7..9} ) + +inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \ + multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig + +if [[ ${PV} = *beta* ]]; then + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + MY_P="rustc-beta" + SLOT="beta/${PV}" + SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz" +else + ABI_VER="$(ver_cut 1-2)" + SLOT="stable/${ABI_VER}" + MY_P="rustc-${PV}" + SRC="${MY_P}-src.tar.xz" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +fi + +RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +SRC_URI=" + https://static.rust-lang.org/dist/${SRC} + verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) + !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) +" + +# keep in sync with llvm ebuild of the same version as bundled one. +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430 + NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} + +LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" + +IUSE="clippy cpu_flags_x86_sse2 debug doc miri nightly parallel-compiler rls rustfmt system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" + +# Please keep the LLVM dependency block separate. Since LLVM is slotted, +# we need to *really* make sure we're not pulling more than one slot +# simultaneously. + +# How to use it: +# List all the working slots in LLVM_VALID_SLOTS, newest first. +LLVM_VALID_SLOTS=( 13 ) +LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}" + +# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation +# (-) usedep needed because we may build with older llvm without that target +LLVM_DEPEND="|| ( " +for _s in ${LLVM_VALID_SLOTS[@]}; do + LLVM_DEPEND+=" ( " + for _x in ${ALL_LLVM_TARGETS[@]}; do + LLVM_DEPEND+=" + ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )" + done + LLVM_DEPEND+=" )" +done +unset _s _x +LLVM_DEPEND+=" ) + /dev/null) ) + rustc_version=${rustc_version[0]#rust-bin-} + rustc_version=${rustc_version#rust-} + + [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output" + + if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then + eerror "Rust >=${rustc_wanted} is required" + eerror "please run 'eselect rust' and set correct rust version" + die "selected rust version is too old" + elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then + eerror "Rust <${rustc_toonew} is required" + eerror "please run 'eselect rust' and set correct rust version" + die "selected rust version is too new" + else + einfo "Using rust ${rustc_version} to build" + fi +} + +pre_build_checks() { + local M=4096 + # multiply requirements by 1.5 if we are doing x86-multilib + if use amd64; then + M=$(( $(usex abi_x86_32 15 10) * ${M} / 10 )) + fi + M=$(( $(usex clippy 128 0) + ${M} )) + M=$(( $(usex miri 128 0) + ${M} )) + M=$(( $(usex rls 512 0) + ${M} )) + M=$(( $(usex rustfmt 256 0) + ${M} )) + # add 2G if we compile llvm and 256M per llvm_target + if ! use system-llvm; then + M=$(( 2048 + ${M} )) + local ltarget + for ltarget in ${ALL_LLVM_TARGETS[@]}; do + M=$(( $(usex ${ltarget} 256 0) + ${M} )) + done + fi + M=$(( $(usex wasm 256 0) + ${M} )) + M=$(( $(usex debug 2 1) * ${M} )) + eshopts_push -s extglob + if is-flagq '-g?(gdb)?([1-9])'; then + M=$(( 15 * ${M} / 10 )) + fi + eshopts_pop + M=$(( $(usex system-bootstrap 0 1024) + ${M} )) + M=$(( $(usex doc 256 0) + ${M} )) + CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} +} + +llvm_check_deps() { + has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]" +} + +pkg_pretend() { + pre_build_checks +} + +pkg_setup() { + pre_build_checks + python-any-r1_pkg_setup + + export LIBGIT2_NO_PKG_CONFIG=1 #749381 + + use system-bootstrap && bootstrap_rust_version_check + + if use system-llvm; then + llvm_pkg_setup + + local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" + export LLVM_LINK_SHARED=1 + export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)" + fi +} + +src_prepare() { + if ! use system-bootstrap; then + local rust_stage0_root="${WORKDIR}"/rust-stage0 + local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)" + + "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ + --without=rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die + fi + + default +} + +src_configure() { + local rust_target="" rust_targets="" arch_cflags + + # Collect rust target names to compile standard libs for all ABIs. + for v in $(multilib_get_enabled_abi_pairs); do + rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" + done + if use wasm; then + rust_targets="${rust_targets},\"wasm32-unknown-unknown\"" + if use system-llvm; then + # un-hardcode rust-lld linker for this target + # https://bugs.gentoo.org/715348 + sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm_base.rs || die + fi + fi + rust_targets="${rust_targets#,}" + + local tools="\"cargo\"," + if use clippy; then + tools="\"clippy\",$tools" + fi + if use miri; then + tools="\"miri\",$tools" + fi + if use rls; then + tools="\"rls\",\"analysis\",\"src\",$tools" + fi + if use rustfmt; then + tools="\"rustfmt\",$tools" + fi + + local rust_stage0_root + if use system-bootstrap; then + 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)" + + cat <<- _EOF_ > "${S}"/config.toml + changelog-seen = 2 + [llvm] + download-ci-llvm = false + optimize = $(toml_usex !debug) + release-debuginfo = $(toml_usex debug) + assertions = $(toml_usex debug) + ninja = true + targets = "${LLVM_TARGETS// /;}" + experimental-targets = "" + link-shared = $(toml_usex system-llvm) + [build] + build-stage = 2 + test-stage = 2 + doc-stage = 2 + build = "${rust_target}" + host = ["${rust_target}"] + target = [${rust_targets}] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + docs = $(toml_usex doc) + compiler-docs = false + submodules = false + python = "${EPYTHON}" + locked-deps = true + vendor = true + extended = true + tools = [${tools}] + verbose = 2 + sanitizers = false + profiler = false + cargo-native-static = false + [install] + prefix = "${EPREFIX}/usr/lib/${PN}/${PV}" + sysconfdir = "etc" + docdir = "share/doc/rust" + bindir = "bin" + libdir = "lib" + mandir = "share/man" + [rust] + # https://github.com/rust-lang/rust/issues/54872 + codegen-units-std = 1 + optimize = true + debug = $(toml_usex debug) + debug-assertions = $(toml_usex debug) + debug-assertions-std = $(toml_usex debug) + debuginfo-level = $(usex debug 2 0) + debuginfo-level-rustc = $(usex debug 2 0) + debuginfo-level-std = $(usex debug 2 0) + debuginfo-level-tools = $(usex debug 2 0) + debuginfo-level-tests = 0 + backtrace = true + incremental = false + default-linker = "$(tc-getCC)" + parallel-compiler = $(toml_usex parallel-compiler) + channel = "$(usex nightly nightly stable)" + description = "gentoo" + rpath = false + verbose-tests = true + optimize-tests = $(toml_usex !debug) + codegen-tests = true + dist-src = false + remap-debuginfo = true + lld = $(usex system-llvm false $(toml_usex wasm)) + # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it + # https://github.com/rust-lang/rust/issues/74976 + # https://github.com/rust-lang/rust/issues/76526 + deny-warnings = $(usex wasm $(usex doc false true) true) + backtrace-on-ice = true + jemalloc = false + [dist] + src-tarball = false + compression-formats = ["gz"] + _EOF_ + + for v in $(multilib_get_enabled_abi_pairs); do + rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) + arch_cflags="$(get_abi_CFLAGS ${v##*.})" + + cat <<- _EOF_ >> "${S}"/config.env + CFLAGS_${rust_target}=${arch_cflags} + _EOF_ + + cat <<- _EOF_ >> "${S}"/config.toml + [target.${rust_target}] + cc = "$(tc-getBUILD_CC)" + cxx = "$(tc-getBUILD_CXX)" + linker = "$(tc-getCC)" + ar = "$(tc-getAR)" + _EOF_ + # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; + if use elibc_musl; then + cat <<- _EOF_ >> "${S}"/config.toml + crt-static = false + _EOF_ + fi + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/config.toml + llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" + _EOF_ + fi + done + if use wasm; then + cat <<- _EOF_ >> "${S}"/config.toml + [target.wasm32-unknown-unknown] + linker = "$(usex system-llvm lld rust-lld)" + _EOF_ + fi + + if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below + # experimental cross support + # discussion: https://bugs.gentoo.org/679878 + # TODO: c*flags, clang, system-llvm, cargo.eclass target support + # it would be much better if we could split out stdlib + # complilation to separate ebuild and abuse CATEGORY to + # just install to /usr/lib/rustlib/ + + # extra targets defined as a bash array + # spec format: :: + # best place would be /etc/portage/env/dev-lang/rust + # Example: + # RUST_CROSS_TARGETS=( + # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu" + # ) + # no extra hand holding is done, no target transformations, all + # values are passed as-is with just basic checks, so it's up to user to supply correct values + # valid rust targets can be obtained with + # rustc --print target-list + # matching cross toolchain has to be installed + # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one) + # only gcc toolchains installed with crossdev are checked for now. + + # BUG: we can't pass host flags to cross compiler, so just filter for now + # BUG: this should be more fine-grained. + filter-flags '-mcpu=*' '-march=*' '-mtune=*' + + local cross_target_spec + for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do + # extracts first element form :: + local cross_llvm_target="${cross_target_spec%%:*}" + # extracts toolchain triples, : + local cross_triples="${cross_target_spec#*:}" + # extracts first element after before : separator + local cross_rust_target="${cross_triples%%:*}" + # extracts last element after : separator + local cross_toolchain="${cross_triples##*:}" + use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled" + command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain" + + cat <<- _EOF_ >> "${S}"/config.toml + [target.${cross_rust_target}] + cc = "${cross_toolchain}-gcc" + cxx = "${cross_toolchain}-g++" + linker = "${cross_toolchain}-gcc" + ar = "${cross_toolchain}-ar" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/config.toml + llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" + _EOF_ + fi + if [[ "${cross_toolchain}" == *-musl* ]]; then + cat <<- _EOF_ >> "${S}"/config.toml + musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr" + _EOF_ + fi + + # append cross target to "normal" target list + # example 'target = ["powerpc64le-unknown-linux-gnu"]' + # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]' + + rust_targets="${rust_targets},\"${cross_rust_target}\"" + sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die + + ewarn + ewarn "Enabled ${cross_rust_target} rust target" + ewarn "Using ${cross_toolchain} cross toolchain" + ewarn + if ! has_version -b 'sys-devel/binutils[multitarget]' ; then + ewarn "'sys-devel/binutils[multitarget]' is not installed" + ewarn "'strip' will be unable to strip cross libraries" + ewarn "cross targets will be installed with full debug information" + ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files" + ewarn + ewarn "Alternatively llvm-strip can be used, it supports stripping any target" + ewarn "define STRIP=\"llvm-strip\" to use it (experimental)" + ewarn + fi + done + fi # I_KNOW_WHAT_I_AM_DOING_CROSS + + einfo "Rust configured with the following flags:" + echo + echo RUSTFLAGS="${RUSTFLAGS:-}" + echo RUSTFLAGS_BOOTSTRAP="${RUSTFLAGS_BOOTSTRAP:-}" + echo RUSTFLAGS_NOT_BOOTSTRAP="${RUSTFLAGS_NOT_BOOTSTRAP:-}" + env | grep "CARGO_TARGET_.*_RUSTFLAGS=" + cat "${S}"/config.env || die + echo + einfo "config.toml contents:" + cat "${S}"/config.toml || die + echo +} + +src_compile() { + # we need \n IFS to have config.env with spaces loaded properly. #734018 + ( + IFS=$'\n' + env $(cat "${S}"/config.env) RUST_BACKTRACE=1\ + "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + ) +} + +src_test() { + # https://rustc-dev-guide.rust-lang.org/tests/intro.html + + # those are basic and codegen tests. + local tests=( + codegen + codegen-units + compile-fail + incremental + mir-opt + pretty + run-make + ) + + # fails if llvm is not built with ALL targets. + # and known to fail with system llvm sometimes. + use system-llvm || tests+=( assembly ) + + # fragile/expensive/less important tests + # or tests that require extra builds + # TODO: instead of skipping, just make some nonfatal. + if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then + tests+=( + rustdoc + rustdoc-js + rustdoc-js-std + rustdoc-ui + run-make-fulldeps + ui + ui-fulldeps + ) + fi + + local i failed=() + einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}" + for i in "${tests[@]}"; do + local t="src/test/${i}" + einfo "rust_src_test: running ${t}" + if ! ( + IFS=$'\n' + env $(cat "${S}"/config.env) RUST_BACKTRACE=1 \ + "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \ + -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}" + ) + then + failed+=( "${t}" ) + eerror "rust_src_test: ${t} failed" + fi + done + + if [[ ${#failed[@]} -ne 0 ]]; then + eerror "rust_src_test: failure summary: ${failed[@]}" + die "aborting due to test failures" + fi +} + +src_install() { + ( + IFS=$'\n' + env $(cat "${S}"/config.env) DESTDIR="${D}" \ + "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + ) + + # bug #689562, #689160 + rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die + rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die + newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + use miri && symlinks+=( miri cargo-miri ) + use rls && symlinks+=( rls ) + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + + einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /usr/lib/rust//bin/rustc- + # need to fix eselect-rust to remove this hack. + local ver_i="${i}-${PV}" + if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then + einfo "Installing ${i} symlink" + ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die + else + ewarn "${i} symlink requested, but source file not found" + ewarn "please report this" + fi + dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}" + dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}" + dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}" + dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}" + dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" + + newenvd - "50${P}" <<-_EOF_ + LDPATH="${EPREFIX}/usr/lib/rust/lib" + MANPATH="${EPREFIX}/usr/lib/rust/man" + $(use amd64 && usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '') + $(use arm64 && usex elibc_musl 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '') + _EOF_ + + rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${P}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/libexec + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" + fi + if use miri; then + echo /usr/bin/miri >> "${T}/provider-${P}" + echo /usr/bin/cargo-miri >> "${T}/provider-${P}" + fi + if use rls; then + echo /usr/bin/rls >> "${T}/provider-${P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" +} + +pkg_postinst() { + eselect rust update + + if has_version sys-devel/gdb || has_version dev-util/lldb; then + elog "Rust installs a helper script for calling GDB and LLDB," + elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest index 5ad544d2727f..593127bd0950 100644 --- a/dev-lang/spidermonkey/Manifest +++ b/dev-lang/spidermonkey/Manifest @@ -19,7 +19,7 @@ DIST firefox-78esr-patches-14.tar.xz 82976 BLAKE2B 08cc3618c8069f4169b7647e7eb69 DIST firefox-78esr-patches-15.tar.xz 65604 BLAKE2B 86e421e555ffd5f7f201d0f1a1c446c649739c67cdf8dca536efa115e09d9c357ce1551b7270c77e8bfe7dd53e0f3e6386496283879cf5e0c59b3c864951ebb3 SHA512 b229e895f083a0404cda1da0d8ae937429d5975ac52ab20e8b15611d9c737381a1076ebfa8c8a127dacac0e12a2a905ffd579facde2d80c6facc911e5739e34b DIST firefox-78esr-patches-16.tar.xz 55964 BLAKE2B 79d3a465c69656bb55ee7c1e9060606464b6404435b92f534db275521ac2343e045feae1fff6166fde9e2599a82cd982b0b2395271b1033f0f784e745e2c6965 SHA512 3aa971c726646cbf37a14a0dba6c4ac966b88db655cd8b730c5572543bfbf682991ee7c139889541e4f6936c13f27233dc1837fbdb9ee340b33ebb2cec59b01f DIST firefox-78esr-patches-17.tar.xz 56004 BLAKE2B 01d2ded2658c24176a3d13d0267d1c4df4ef0113c5c40b1002acd39a0f04db35b773bc617afed1c681df3ec38120621a5c3753ba2d36688d7d5926233bfb8501 SHA512 43b372b848c1f30e02505d06bbb11f5b80d976fe7ee39c0d2aacf60d48bc1d3e378c325f4e2fd4730b971e88c3bd902539a7b81874f53b8b92369f876e05be5e -DIST firefox-78esr-patches-18.tar.xz 55968 BLAKE2B f32fe8e0086e4bf74fd43127b9fe136a0e0ad6e51cb8a2398f6e8f9fe585de1574c745dd3f50440cf62b626f9fa24d368284c563fb75acbacc5238f9bc8d099f SHA512 99a51a241d91aa00c64550f2a521528f6134c8812e379eaf95cd1287fd51d00346de8d41f2d2f55a83332580531b31c4e814a47d7f69da6e3512613e8e98bb31 +DIST firefox-78esr-patches-19.tar.xz 88424 BLAKE2B fdc7bf8f28b3e799551a70f1cec7a695f52c4712f3b28733648fcd7dac5a599613f4c3d2cfa169266dc62b65619b7f28c0e06d32317adb8ec0056ca79c87e9f6 SHA512 3c81dadc9bf74207c4e361605127ef6141d77700c5c54f1f9cd5ad3be13df9f73c6eec2f51d779558e4bdad1e7395c6aa8943a93415bd1786d461042bc03550a 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 @@ -31,11 +31,11 @@ DIST spidermonkey-slot0-patches-02.tar.xz 10952 BLAKE2B fb7bf5cdac6c821a48d407ff EBUILD spidermonkey-1.8.5-r10.ebuild 4000 BLAKE2B c150d2215de328dc57f3868db23b74135e63ed278edff61ff28663a6ea7556c03bc47bd62fc16dffbda697dd7b5f1d2d30b72f0ba1cb919bd0b84da39abf5508 SHA512 951d6daf23ae5ce5f5f900ef452e1e5d928584cc20f28d9d30ac234cc2047b3d79b19ca54dbd5722dc133f34f0605780e973e62612cfee0a42051cd357738905 EBUILD spidermonkey-52.9.1_pre1-r4.ebuild 4596 BLAKE2B c6fc6d671fb6d3cedc6cb07f57fc98770c0fb20f3552cd8a88f8bcde57563cfe352757c8684a6026aaae3db588ad11b3ce3de27b4ade858690e13340cd2fa839 SHA512 8f43d1c741e57939e6b3e8a93ec46598a927bbf3ac6f0cbf33176cc0418ef2b44dc89540f37e83122e3bae27dcf95ffc8b0af373f41b6432ae6efa2f723e8297 EBUILD spidermonkey-60.5.2_p0-r6.ebuild 4243 BLAKE2B 241ddff023bd60a1541a9e1681cbd1b233cf64fe22e39d91363ed0b0f5cf723f8812f8fa46e8c7e8e5ae1ec0b7e5b590404185bdae10cf46715bf1823da27426 SHA512 1a01517a201ad105bed700a24a60e9d91ef729ae22aa497a044c68dfdaa3e21612e74fdab388ae0f5d3f4acf21c72e55d2d2b3752a95e5bd88edd6ef3d321a63 -EBUILD spidermonkey-68.12.0.ebuild 7464 BLAKE2B 4162b72944c601bfc7600b1d01868bd85b13b74872ecb1b3ac2e7004b55603196407406f15c2bc54a62fe842a67e89c64cfa660acf0041ea32f92aa95e2588bd SHA512 efdf7a391d9a96dcd1b63f6fd73c70316c4be2eea0ad7acb45ec75ece74c7d2e080a1c9b0be2350ef7898aeb7c8b77f48e75d7cd37b6834b731c6a157e1d4649 +EBUILD spidermonkey-68.12.0.ebuild 7485 BLAKE2B 03281a3cd04a3fb9e54175da6063047e9fa7bbde08689cf31295f4a839e5db74582824904cef5bc501090c4402a6b0f6d3bf85c4d6fe4a51049f8d6f3bf529ba SHA512 e33931bae78420f7ebcec2e59e8ae16094fb473c6248de96ae6a23fcb86ef10e4c0bae3b6407a4c8df4acc09b1bf1d5d2c6a1a1246ee7da417e6c7914c131f5d EBUILD spidermonkey-78.10.1.ebuild 13020 BLAKE2B 1df644878ca6ced6f09412392dcf44a09226e8d7d436c5ead8e94d332d931aa3dd734565ca2e4c670871cf04c755b3b271640db34bbbcfdeb334187adb0d9e6f SHA512 c95d1e675d3c7822b5df2373c45e5535ea6ab7b0141a855c9a3d593edd9544de4faf975dbdc9bab276b5cdef8d96a736781aa24ac84574414eb08f66d9fab059 EBUILD spidermonkey-78.11.0.ebuild 13023 BLAKE2B 5c6ac236be68d84fa31d433f425f3298ca114abd206312da92098284478a4e8f40b8358b8298cd3e7f340fb3ce7cc6e7c5609da87a3f2b7f123b2c09a0ac0779 SHA512 7f55e7770c7e3e7bb6ebb7bccf432934e0cdd585b04ed7d0612ddf667eda0bed8c6102dc7d687c9afc5b44cb693c51989766e1c42523e6372471b0001b9719f1 EBUILD spidermonkey-78.12.0.ebuild 13021 BLAKE2B e0c048fc9845d7b24e72df1efb67764bfc9570efc2a40e753bd3d222ebfe297168a229242a5439e6922bad5b6d4f6275b6b6df52ca50a173049f394d6f8e41d1 SHA512 1748dd580ef80259e81586b24a07495ffd43ca94d6f794e2cd36849396e04e421cb2a40d1c17cf6a9cf7ef215adf31af9cb4de74a31edef7f6c8d60f3f098e3b EBUILD spidermonkey-78.13.0.ebuild 13025 BLAKE2B eaaf4df87e0497daeb4bfb2a554f9f2009a64d94e02d94c9a852e3db4047d419132abc671898ce7beb239ee88721eac8be8ce794a5e9abaa2840ae4e87eadd6e SHA512 a8223fb84b0174b24845e8c226662823d196019d10989b08cf4c3c2975609799510edc3b25bb922d86b23bf58c8f6f4c1051cac14e9281ed90942dc926b4069d EBUILD spidermonkey-78.14.0.ebuild 13021 BLAKE2B a321dbcb5856cf9f86c462f06c26c2f004f2bf0a9fce72392a4f8ead7b06e7f617eb362274ad8f9bb324d447f45ac735da0d52fd88321558faa44a6dcffb13e7 SHA512 1f32f4747a6fc2e66f256db53f5db502c75cab0c6f2ed31bf6aafc265155c1bd0d66cfdccdf17ab6272ef01f00523960eed885777b13089b0ee6f90a21cecf2c -EBUILD spidermonkey-78.15.0.ebuild 13025 BLAKE2B fcf3d5b84fd0cb37672b00bd2298c842cce44158a8daa6847c5ccfbcf84ae9e26fd37cf336b821ccca43ddf52583a9679684ea22a0b84d15b19226be3cc9b3f5 SHA512 33aa7146f1bd7f965909b677d6c9611b8ac28eea8f9045ec811eee8c58fd35a701562550b339d6d5eb74d4541eb50b27240ccdca46297971dc8fc4992945021e +EBUILD spidermonkey-78.15.0.ebuild 13148 BLAKE2B f6f5ba3fa6b08853c0153feeb58e9893bb1c7687f84f85af32d8aff8d3c86dcc97a84d80d4792814dc65197d07f730e6971eafe9153e0fbfb7cbbf62e730cbb3 SHA512 bedcaf6dbf3458874a76163a48e87fe983d1c425d29e997feb98e5d8ea8f7b68d300b5f3d433ef1008e3b22a51566d47a88de7c8d883db41440f13ca5e2a6bd8 MISC metadata.xml 869 BLAKE2B 79d6ea91e84e3bb666797cde6b2993282ff1b4266dfa835eaf02d8aa65d5d000729b149a49c9fa5c8dbf12e4b97b46d976243c888834db9df73a8a5c814aa610 SHA512 f78399a1ad88583c50ad1e967f5ba293cdfff7d58cf26b87bd8888c7102b62d42ef1982d1b8462f3d31f0806b6cead8db28b7f0c7b12c08d3871607b5a4c63cc diff --git a/dev-lang/spidermonkey/spidermonkey-68.12.0.ebuild b/dev-lang/spidermonkey/spidermonkey-68.12.0.ebuild index 250dca91fcc4..85b28744cbed 100644 --- a/dev-lang/spidermonkey/spidermonkey-68.12.0.ebuild +++ b/dev-lang/spidermonkey/spidermonkey-68.12.0.ebuild @@ -4,6 +4,7 @@ EAPI="7" PYTHON_COMPAT=( python3_{8..9} ) +PYTHON_REQ_USE="ssl" WANT_AUTOCONF="2.1" diff --git a/dev-lang/spidermonkey/spidermonkey-78.15.0.ebuild b/dev-lang/spidermonkey/spidermonkey-78.15.0.ebuild index bb963d8b2c55..f038868d787b 100644 --- a/dev-lang/spidermonkey/spidermonkey-78.15.0.ebuild +++ b/dev-lang/spidermonkey/spidermonkey-78.15.0.ebuild @@ -4,12 +4,13 @@ EAPI="7" # Patch version -FIREFOX_PATCHSET="firefox-78esr-patches-18.tar.xz" +FIREFOX_PATCHSET="firefox-78esr-patches-19.tar.xz" SPIDERMONKEY_PATCHSET="spidermonkey-78-patches-04.tar.xz" -LLVM_MAX_SLOT=12 +LLVM_MAX_SLOT=13 -PYTHON_COMPAT=( python3_{7..9} ) +PYTHON_COMPAT=( python3_{7..10} ) +PYTHON_REQ_USE="ssl" WANT_AUTOCONF="2.1" @@ -72,6 +73,13 @@ BDEPEND="${PYTHON_DEPS} >=virtual/rust-1.41.0 virtual/pkgconfig || ( + ( + sys-devel/llvm:13 + clang? ( + sys-devel/clang:13 + lto? ( =sys-devel/lld-13* ) + ) + ) ( sys-devel/llvm:12 clang? ( diff --git a/dev-lang/tcc/Manifest b/dev-lang/tcc/Manifest index 2663798b148d..cca317187310 100644 --- a/dev-lang/tcc/Manifest +++ b/dev-lang/tcc/Manifest @@ -1,4 +1,6 @@ DIST tcc-0.9.27.tar.bz2 634999 BLAKE2B 9a76dac9f54fa0b64a72e874cfec9a4bd9b938d244d064b2e76bd31acfb9e48fdbdb8895132634be1dee4302293405bf75606a6804c8178afa8fd30daa53b73a SHA512 835184292d97c07f0ff7b36ec550e855e649b04e23c7e2a1c706d223409eb60708dc1ae969f28eba45e56c8b96ae56936b93caf9d8a13ac5adf119014d5367a7 +DIST tcc-0.9.27_p20211022.tar.gz 893631 BLAKE2B f1a82498db65a9944f04a6c35897db6ceeea0e5d14ac383acc6b334fb2aa921a0e7b4badf647c101d064ceae1ee8d79ab91674a2d0faa2899b831a57e6148174 SHA512 5f40a0d31d63e876d1fb233758d9f58be2f14807bbc0847b7df3eb6bb8df0946100b58edb5a29caea8770201d02275daf0a3ca7668141151e931204ad7100fb3 EBUILD tcc-0.9.27.ebuild 1507 BLAKE2B 463216d8345068c8852fc76571f7db26722813c05efbfaad2372b950d8344ece98c3452ff87899ff4e8616ed51c3df76a6fd6aa0ff53f40f2b363393eec50c67 SHA512 94bd0fe005b456f96e8c8da642d02a1cb6d2005aca0e1e1530e3167f85c50cb017c9849b391dfdc870da1e72da14206cecd6897833cd68cc111543014b06e8ce -EBUILD tcc-9999.ebuild 1705 BLAKE2B cdb32188eee6371e7f05579ee723bd2034428d6869a151f82a6576db15e32e8252d181a5d51a059b3062453f6c42a850d707c497986fb2156b7dbca703b08284 SHA512 90bf09da8190441b439148cd642b0082bc69ce3593f58b3a60bb62111234aec12694f5d90c99bb80d984182053158597a64ae6aaa50d6406fb60a76375d73406 +EBUILD tcc-0.9.27_p20211022.ebuild 2040 BLAKE2B 4c7ba161c9fc674a69ff15137ff92ceb5a8410f31e203f9783762751a06bf86dfedcd1eed91b582323e1a7b4d02342d74778da2773a0fc09f6046332b72de1b5 SHA512 aee75cbede5d69917c9ddbe1a55990d76f458cf06db6cbb60e96fa9e3f876a734535630503a62e86a901d32ba90652d3883d09075cb824875230d476ecd8abbc +EBUILD tcc-9999.ebuild 2040 BLAKE2B 4c7ba161c9fc674a69ff15137ff92ceb5a8410f31e203f9783762751a06bf86dfedcd1eed91b582323e1a7b4d02342d74778da2773a0fc09f6046332b72de1b5 SHA512 aee75cbede5d69917c9ddbe1a55990d76f458cf06db6cbb60e96fa9e3f876a734535630503a62e86a901d32ba90652d3883d09075cb824875230d476ecd8abbc MISC metadata.xml 241 BLAKE2B ac22a6a72982cebf268e9d367947dc556420370c70b1f6e26531950f7f2c89734cd293fad93dfea0345fd020a97b8f9304c1362a2ccd6225b22aac1f7b674b17 SHA512 b59cc421f52bc545bc8667dcbf6b4891e29180ef1984596ccc20886071e5f080bed259026c2831c6418131802b93ad945137fe4406d042feb02d9bfdc14c431c diff --git a/dev-lang/tcc/tcc-0.9.27_p20211022.ebuild b/dev-lang/tcc/tcc-0.9.27_p20211022.ebuild new file mode 100644 index 000000000000..6d4133762683 --- /dev/null +++ b/dev-lang/tcc/tcc-0.9.27_p20211022.ebuild @@ -0,0 +1,86 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +MY_COMMIT="16456168430c9e185dd94b8215aa77d02bbb8a2c" +DESCRIPTION="A very small C compiler for ix86/amd64" +HOMEPAGE="https://bellard.org/tcc/ https://repo.or.cz/tinycc.git/" + +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="https://repo.or.cz/r/tinycc.git" + inherit git-r3 +elif [[ ${PV} == *_p* ]] ; then + SRC_URI="https://repo.or.cz/tinycc.git/snapshot/${MY_COMMIT}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}"/tinycc-1645616 +else + SRC_URI="https://download.savannah.gnu.org/releases/tinycc/${P}.tar.bz2" +fi + +LICENSE="LGPL-2.1" +SLOT="0" +if [[ ${PV} != *9999* ]] ; then + KEYWORDS="~amd64 ~x86 ~amd64-linux" +fi + +BDEPEND="dev-lang/perl" # doc generation +IUSE="test" +RESTRICT="!test? ( test )" + +src_prepare() { + default + + # Don't strip + sed -i \ + -e 's|$(INSTALL) -s|$(INSTALL)|' \ + -e 's|STRIP_yes = -s|STRIP_yes =|' \ + Makefile || die + + # Fix examples + sed -i -e '1{ + i#! /usr/bin/tcc -run + /^#!/d + }' examples/ex*.c || die + sed -i -e '1s/$/ -lX11/' examples/ex4.c || die + + # Fix texi2html invocation + sed -i -e 's/-number//' Makefile || die + sed -i -e 's/--sections//' Makefile || die +} + +src_configure() { + local libc + + use test && unset CFLAGS LDFLAGS # Tests run with CC=tcc etc, they will fail hard otherwise + # better fixes welcome, it feels wrong to hack the env like this + + use elibc_musl && libc=musl + use elibc_uclibc && libc=uClibc + + # not autotools, so call configure directly + ./configure --cc="$(tc-getCC)" \ + ${libc:+--config-${libc}} \ + --prefix="${EPREFIX}/usr" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --docdir="${EPREFIX}/usr/share/doc/${PF}" +} + +src_compile() { + emake AR="$(tc-getAR)" LDFLAGS="${LDFLAGS}" +} + +src_test() { + # this is using tcc bits that don't know as-needed etc. + TCCFLAGS="" emake test +} + +src_install() { + emake DESTDIR="${D}" install + + dodoc Changelog README TODO VERSION + #dohtml tcc-doc.html + exeinto /usr/share/doc/${PF}/examples + doexe examples/ex*.c +} diff --git a/dev-lang/tcc/tcc-9999.ebuild b/dev-lang/tcc/tcc-9999.ebuild index 5aa530ef3af5..6d4133762683 100644 --- a/dev-lang/tcc/tcc-9999.ebuild +++ b/dev-lang/tcc/tcc-9999.ebuild @@ -1,34 +1,42 @@ # Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="6" +EAPI=8 +inherit toolchain-funcs + +MY_COMMIT="16456168430c9e185dd94b8215aa77d02bbb8a2c" DESCRIPTION="A very small C compiler for ix86/amd64" -HOMEPAGE="https://bellard.org/tcc/" +HOMEPAGE="https://bellard.org/tcc/ https://repo.or.cz/tinycc.git/" if [[ ${PV} == *9999* ]]; then EGIT_REPO_URI="https://repo.or.cz/r/tinycc.git" - SRC_URI="" - scm_eclass=git-r3 + inherit git-r3 +elif [[ ${PV} == *_p* ]] ; then + SRC_URI="https://repo.or.cz/tinycc.git/snapshot/${MY_COMMIT}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}"/tinycc-1645616 else - KEYWORDS="~amd64 ~x86 ~amd64-linux" SRC_URI="https://download.savannah.gnu.org/releases/tinycc/${P}.tar.bz2" fi -inherit toolchain-funcs ${scm_eclass} - LICENSE="LGPL-2.1" SLOT="0" +if [[ ${PV} != *9999* ]] ; then + KEYWORDS="~amd64 ~x86 ~amd64-linux" +fi -DEPEND="dev-lang/perl" # doc generation -# Both tendra and tinycc install /usr/bin/tcc -RDEPEND="!dev-lang/tendra" +BDEPEND="dev-lang/perl" # doc generation IUSE="test" RESTRICT="!test? ( test )" src_prepare() { + default + # Don't strip - sed -i -e 's|$(INSTALL) -s|$(INSTALL)|' Makefile || die + sed -i \ + -e 's|$(INSTALL) -s|$(INSTALL)|' \ + -e 's|STRIP_yes = -s|STRIP_yes =|' \ + Makefile || die # Fix examples sed -i -e '1{ @@ -37,25 +45,35 @@ src_prepare() { }' examples/ex*.c || die sed -i -e '1s/$/ -lX11/' examples/ex4.c || die - # fix texi2html invocation + # Fix texi2html invocation sed -i -e 's/-number//' Makefile || die sed -i -e 's/--sections//' Makefile || die - - eapply_user } src_configure() { + local libc + use test && unset CFLAGS LDFLAGS # Tests run with CC=tcc etc, they will fail hard otherwise # better fixes welcome, it feels wrong to hack the env like this + + use elibc_musl && libc=musl + use elibc_uclibc && libc=uClibc + # not autotools, so call configure directly ./configure --cc="$(tc-getCC)" \ + ${libc:+--config-${libc}} \ --prefix="${EPREFIX}/usr" \ --libdir="${EPREFIX}/usr/$(get_libdir)" \ --docdir="${EPREFIX}/usr/share/doc/${PF}" } src_compile() { - emake AR="$(tc-getAR)" + emake AR="$(tc-getAR)" LDFLAGS="${LDFLAGS}" +} + +src_test() { + # this is using tcc bits that don't know as-needed etc. + TCCFLAGS="" emake test } src_install() { @@ -66,8 +84,3 @@ src_install() { exeinto /usr/share/doc/${PF}/examples doexe examples/ex*.c } - -src_test() { - # this is using tcc bits that don't know as-needed etc. - TCCFLAGS="" emake test -} -- cgit v1.2.3