diff options
Diffstat (limited to 'dev-lang')
272 files changed, 11044 insertions, 13747 deletions
diff --git a/dev-lang/R/Manifest b/dev-lang/R/Manifest index ff6f613c6b3..e39053606ef 100644 --- a/dev-lang/R/Manifest +++ b/dev-lang/R/Manifest @@ -1,4 +1,4 @@ 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-4.1.2.tar.gz 34009074 BLAKE2B 7ca14b28fc40548180dde979d57f93f41fb3966697d58f686cf63e24e4cbf2de8166240952e708fc94f97846cd57bbd559b4edb688500e1db2a6704de16f508c SHA512 657c7950a88f632f1bbb08dbd0b3fb485732a25d8bbcb8a7939a40b23c7a235fdb9b46c296acaa9f72eabebe96e270ecbdcd7970fc9d3a299e6687bea45f2d3f +DIST R-4.2.0.tar.gz 37585694 BLAKE2B 5ba4d3b9397e92b72af729d88ff562655e0dd7c547bd371638aa76d4f1701f4f8a7911d500cf4f10d87b62457f8f8ce7a946d893477ceb7268b06bd59bc10f3d SHA512 99e71dad00b63e44bfcb8dc9539ff1951809112882d9ee7e06a4e99bce2e6ceac24e8348fd598c21e6d5ab0e0629a85170cde208bfa8145af91c398ac4ef7bcd DIST R-78d6830e28ea90a046da79a9b4f70c39594bb6d6.bash_completion 13596 BLAKE2B 53338e4a1c4f68beb69247216e553dbcac47f660fbf032bfebf7a660e32d2cff5b11ed35411c52de7e1fd6e00bbf5b5ea19369a325fa0a38bd93d63dc3288cbd SHA512 9ccd19bb1b0c18a2f13035ccd6809447429e197e298fb4d1df808ef345d723b42f75a1b91c349f6dbb46e4a82e59ef33e11300c495d79b63d670d0c0f2b16a06 diff --git a/dev-lang/R/R-4.1.2.ebuild b/dev-lang/R/R-4.1.2-r1.ebuild index a29cab314d2..dfe847ee6a9 100644 --- a/dev-lang/R/R-4.1.2.ebuild +++ b/dev-lang/R/R-4.1.2-r1.ebuild @@ -16,7 +16,7 @@ SRC_URI=" LICENSE="|| ( GPL-2 GPL-3 ) LGPL-2.1" SLOT="0" -KEYWORDS="~amd64 ~arm64 ~hppa ~ia64 ~sparc ~x86 ~amd64-linux ~x86-linux" +KEYWORDS="amd64 ~arm64 ~hppa ~ia64 sparc x86 ~amd64-linux ~x86-linux" IUSE="cairo doc icu java jpeg lapack lto minimal nls openmp perl png prefix profile readline test tiff tk X" REQUIRED_USE=" @@ -41,6 +41,7 @@ DEPEND=" app-arch/xz-utils app-text/ghostscript-gpl dev-libs/libpcre2:= + >=dev-libs/tre-0.8.0_p20210321[approx] net-libs/libtirpc net-misc/curl virtual/blas @@ -93,6 +94,8 @@ pkg_setup() { } src_prepare() { +# rm -r src/extra/tre || die + default # fix packages.html for doc (gentoo bug #205103) @@ -142,8 +145,6 @@ src_prepare() { src_configure() { filter-ldflags -Wl,-Bdirect -Bdirect - # --with-system-tre \ - # tre is patched from upstream econf \ --enable-byte-compiled-packages \ --enable-R-shlib \ @@ -151,6 +152,7 @@ src_configure() { --disable-R-static-lib \ --with-blas="$($(tc-getPKG_CONFIG) --libs blas)" \ rdocdir="${EPREFIX}/usr/share/doc/${PF}" \ + --with-system-tre \ $(use_enable java) \ $(use_enable lto lto R) \ $(use_enable nls) \ diff --git a/dev-lang/R/R-4.1.0-r2.ebuild b/dev-lang/R/R-4.2.0.ebuild index ebf4b5c27c2..28e62a99b24 100644 --- a/dev-lang/R/R-4.1.0-r2.ebuild +++ b/dev-lang/R/R-4.2.0.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit bash-completion-r1 autotools flag-o-matic fortran-2 toolchain-funcs @@ -17,48 +17,59 @@ SRC_URI=" 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 lto minimal nls openmp perl png prefix profile readline static-libs test tiff tk X" +IUSE="cairo doc icu java jpeg lapack lto minimal nls openmp perl png prefix profile readline test tiff tk X" -REQUIRED_USE="png? ( || ( cairo X ) ) +REQUIRED_USE=" + png? ( || ( cairo X ) ) jpeg? ( || ( cairo X ) ) - tiff? ( || ( cairo X ) ) -" + tiff? ( || ( cairo X ) )" +RESTRICT=" + minimal? ( test ) + !test? ( test )" # At least one package installation in the test suite requires TeX, # and will fail without it (bug #718056). -BDEPEND="virtual/pkgconfig +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-arch/bzip2 + app-arch/xz-utils app-text/ghostscript-gpl dev-libs/libpcre2:= + >=dev-libs/tre-0.8.0_p20210321[approx] 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= ) + virtual/blas + sys-libs/zlib[minizip] + || ( + sys-apps/coreutils + app-misc/realpath + ) + cairo? ( + x11-libs/cairo:=[X=] + x11-libs/pango:= + ) icu? ( dev-libs/icu:= ) - jpeg? ( virtual/jpeg:0 ) - lapack? ( virtual/lapack:0 ) + jpeg? ( virtual/jpeg ) + lapack? ( virtual/lapack ) 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-libs/libXt x11-misc/xdg-utils )" - + png? ( media-libs/libpng:= ) + readline? ( sys-libs/readline:= ) + tiff? ( media-libs/tiff:= ) + tk? ( dev-lang/tk:= ) + X? ( + x11-libs/libXmu + x11-libs/libXt + x11-misc/xdg-utils + )" RDEPEND="${DEPEND} - sys-libs/zlib:0[minizip] java? ( >=virtual/jre-1.8:* )" -RESTRICT="minimal? ( test ) - !test? ( test )" - PATCHES=( "${FILESDIR}"/${PN}-3.4.1-parallel.patch "${FILESDIR}"/${PN}-3.4.1-rmath-shared.patch @@ -72,10 +83,12 @@ pkg_pretend() { pkg_setup() { if [[ ${MERGE_TYPE} != binary ]] && use openmp; then + tc-check-openmp FORTRAN_NEED_OPENMP=1 fi + fortran-2_pkg_setup - filter-ldflags -Wl,-Bdirect -Bdirect + # avoid using existing R installation unset R_HOME } @@ -88,13 +101,18 @@ src_prepare() { -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}\"':" \ + sed -e "s:-DR_HOME='\"\$(rhome)\"':-DR_HOME='\"${EPREFIX}/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" + # Disable this test until it passes again, + # https://bugs.r-project.org/show_bug.cgi?id=18338 + sed -e 's/ reg-packages.R / /' \ + -i tests/Makefile.common || die + use lapack && \ export LAPACK_LIBS="$($(tc-getPKG_CONFIG) --libs lapack)" @@ -107,7 +125,8 @@ src_prepare() { # don't search /usr/local sed -i -e '/FLAGS=.*\/local\//c\: # removed by ebuild' configure.ac || die - # Fix for Darwin (OS X) + + # Fix for Darwin (macOS) if use prefix; then if [[ ${CHOST} == *-darwin* ]] ; then sed -e 's:-install_name libR.dylib:-install_name ${libdir}/R/lib/libR.dylib:' \ @@ -116,33 +135,33 @@ src_prepare() { -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:" \ + sed -e "s:-Wl,-soname=libRmath.so:-install_name ${EPREFIX}/usr/$(get_libdir)/libRmath.dylib:" \ -i src/nmath/standalone/Makefile.in || die else - append-ldflags -Wl,-rpath="${EROOT}/usr/$(get_libdir)/R/lib" + append-ldflags -Wl,-rpath="${EPREFIX}/usr/$(get_libdir)/R/lib" fi fi - AT_M4DIR=m4 - eautoreconf + + AT_M4DIR=m4 eautoreconf } src_configure() { - # --with-system-tre \ - # tre is patched from upstream + filter-ldflags -Wl,-Bdirect -Bdirect + econf \ --enable-byte-compiled-packages \ --enable-R-shlib \ --disable-R-framework \ + --disable-R-static-lib \ --with-blas="$($(tc-getPKG_CONFIG) --libs blas)" \ rdocdir="${EPREFIX}/usr/share/doc/${PF}" \ + --with-system-tre \ $(use_enable java) \ $(use_enable lto lto R) \ $(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) \ @@ -152,16 +171,15 @@ src_configure() { $(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 tk tk-config "${ESYSROOT}"/usr/$(get_libdir)/tkConfig.sh) \ + $(use_with tk tcl-config "${ESYSROOT}"/usr/$(get_libdir)/tclConfig.sh) \ $(use_with X x) } src_compile() { - export VARTEXFONTS="${T}/fonts" + export VARTEXFONTS="${T}"/fonts emake AR="$(tc-getAR)" - emake -C src/nmath/standalone \ - shared $(use static-libs && echo static) AR="$(tc-getAR)" + emake -C src/nmath/standalone shared AR="$(tc-getAR)" use doc && emake info pdf } @@ -174,11 +192,11 @@ src_install() { 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 + newenvd - 99R <<-_EOF_ + LDPATH=${EPREFIX}/usr/$(get_libdir)/${PN}/lib + R_HOME=${EPREFIX}/usr/$(get_libdir)/${PN} + _EOF_ + 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 @@ -186,13 +204,13 @@ src_install() { # system here is not really trivial. if [[ ${CHOST} == *-darwin* ]] ; then local mod - pushd "${ED}"/usr/$(get_libdir)/R > /dev/null + pushd "${ED}"/usr/$(get_libdir)/R >/dev/null || die for mod in $(find . -name "*.dylib") ; do mod=${mod#./} install_name_tool -id "${EPREFIX}/usr/$(get_libdir)/R/${mod}" \ "${mod}" done - popd > /dev/null + popd >/dev/null || die fi # Users are encouraged to access some of the the R documentation @@ -203,7 +221,7 @@ src_install() { # 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=( + local INTERACTIVE_DOCS=( AUTHORS COPYING FAQ @@ -213,18 +231,21 @@ src_install() { # Other data sources that are shipped as "documentation," but which # need to be accessible via their original unmolested filenames. - INTERACTIVE_DATA=( + local INTERACTIVE_DATA=( BioC_mirrors.csv CRAN_mirrors.csv KEYWORDS.db NEWS.rds ) - NOCOMPRESS_DOCS=( "${INTERACTIVE_DOCS[@]}" "${INTERACTIVE_DATA[@]}" ) + local f NOCOMPRESS_DOCS=( "${INTERACTIVE_DOCS[@]}" "${INTERACTIVE_DATA[@]}" ) for f in "${NOCOMPRESS_DOCS[@]}"; do docompress -x "/usr/share/doc/${PF}/${f}" done + + # Finally, an extra copy of this started showing up at some point... + rm "${ED}/usr/$(get_libdir)/R/COPYING" || die } pkg_postinst() { diff --git a/dev-lang/abs/Manifest b/dev-lang/abs/Manifest index 112b1f4eed3..5178d72bafb 100644 --- a/dev-lang/abs/Manifest +++ b/dev-lang/abs/Manifest @@ -1,53 +1,2 @@ -DIST abs-2.5.0.tar.gz 8857271 BLAKE2B ee3ce3c77f9e1dd6b9ec6e15738e71100f4105a6c900c1308ef62487f88e6f791e5248c4b06d159fa097b3ea53b4de8a77a40ed12d9c8b0e140c33f1b1d70b23 SHA512 574e54dc6ee0e66d7d4292aa9f41b4d59a8a61d742da6c004eb7e2b97646853d08dd7db3877a95f9a0c983150bb37a9486365489af6498fe4a63b75961eb288c -DIST abs-2.5.1.tar.gz 8911811 BLAKE2B 64a6db5acf19bad720d9ed6d40e4ecd8a9cc6c023dc2fedc80361ba07e041da803b9b5bf0a20250728f8b4714f4e3ed18ca8f8b6d18947b30211e206a78cae95 SHA512 33c2a83927096373a37559b7e289cdff3e06307018ff45f8919b470c1e8ed74582834f3a10ac02dac11e890b6d845512569d42edf3b71a78ca09dd8d9fb7a329 -DIST github.com%2Fc-bata%2Fgo-prompt%2F@v%2Fv0.2.4-0.20190826134812-0f95e1d1de2e.mod 340 BLAKE2B 650749404beaa133f46d4c68c1b07e32165aa7812e6f305051593343b09015bf4b1d0e3611ac036405d6385cb3ea1e6f744fb43d62211eaff0eb2ea1b79bfd23 SHA512 72a9185136d1cf700e66e4d797735736cdb657616e4d06bb1215e0a31cc2450e54ec371d18689321260a920d252a5989548ee877519506da59aef45ed8f780ba -DIST github.com%2Fc-bata%2Fgo-prompt%2F@v%2Fv0.2.4-0.20190826134812-0f95e1d1de2e.zip 67370 BLAKE2B 558e9204a410da1e3084baaaed6dbcff71e4276f59351baea247b472de5740343e4be8f1a78ee477c5b7ec067fa85e90ddc2a7a01e1ed747e552e20a22ea91d2 SHA512 e1b4ddd39ea717b9e2913542de9b8cdd6e6fd63accc1cf2917256e21ed196c0f0c381510f342aff94a716fb5fbd2581dcb914180a580b2f3c70cbf3d8f902062 -DIST github.com%2Fiancoleman%2Fstrcase%2F@v%2Fv0.0.0-20191112232945-16388991a334.mod 37 BLAKE2B b89a81bf16b5ba5e2f814368631aa94f29971205a44decaac68cded4238cbd22a212c27cc98de33cdf3536c3988f0d37b4834be2c079fecdb660a00b9ec1091b SHA512 2ecd44b656204f60c1eeb710bb443b8a860b97365fefa295d2ceb07f08199f17f53444f76a6202d26efb1226c30a093ad2eee65ba6e0ab910090998ca0ca9792 -DIST github.com%2Fiancoleman%2Fstrcase%2F@v%2Fv0.0.0-20191112232945-16388991a334.zip 9937 BLAKE2B 781465df5c7d7f4952950d20ca04536d0df39fb2b6c296757eaa313bfa3e7ac76387ae2c0d4aa5e9fe0d301f173cd808f9680b86fbed740eef7820d1111658d1 SHA512 89a97ae5947bb4b4e4e48fc02f2d3fe568153dafbaf6b999cc9e17afc868efe9bacdda36f3d1c869b4534f7dfa2145423eaf6268459a27ab7a8cf74564835606 -DIST github.com%2Fiancoleman%2Fstrcase%2F@v%2Fv0.1.0.mod 37 BLAKE2B b89a81bf16b5ba5e2f814368631aa94f29971205a44decaac68cded4238cbd22a212c27cc98de33cdf3536c3988f0d37b4834be2c079fecdb660a00b9ec1091b SHA512 2ecd44b656204f60c1eeb710bb443b8a860b97365fefa295d2ceb07f08199f17f53444f76a6202d26efb1226c30a093ad2eee65ba6e0ab910090998ca0ca9792 -DIST github.com%2Fiancoleman%2Fstrcase%2F@v%2Fv0.1.0.zip 8897 BLAKE2B 4847c9758faf05a96572eaa488c0da4916aad67219ce1798c1204ec13fdc1269807ea959eaf43b7f4d17eaee355cbea3ba54487a3473d8d3ec72a1ddd1cc2a0a SHA512 57465a7f3ea929ca0115b5f6fd857292f4fa6a11f5cdbc40815d01e8ac7735016f1c7ff26115164a4431e03d5ad8353a1674238f57f18a5e58d601eb017e05ab -DIST github.com%2Fjteeuwen%2Fgo-bindata%2F@v%2Fv3.0.7+incompatible.mod 38 BLAKE2B a13b18980c75d555eb0eb51e506dac6148a3279a34d7a4defdc78ee4beb14b9f50566869c44b07b6f3b7afbbf5ec767510e52af8f307cb26ad8fc4b2e38c802c SHA512 ba3b02c44dd395548a55e459e053e6d95b38eb1e92e4926942411e6738df01128b42c23b0dfce2454765bc2cc33397e99795e533711973b92aa5b59dc2fc3b97 -DIST github.com%2Fjteeuwen%2Fgo-bindata%2F@v%2Fv3.0.7+incompatible.zip 26778 BLAKE2B cfe2d6ff41cb33b3745a1f45b986cca88036543b1a660047ae88a313f4222459171b39141d797ae15b92af2b64a150d33aeeb6f6a06174a3a268a0334c34606a SHA512 8d115a09a50969b2c627578e4fd5e88861c5d7151da3beff8d7955476e603a51a82be164bb3879fba1ab1f366fe9088512e1074be13e7c63370f689aa7cc61e7 -DIST github.com%2Fmattn%2Fgo-colorable%2F@v%2Fv0.0.9.mod 37 BLAKE2B 6bd675a05c0bb6f9dc12d09203d13de115801888cf8c02cb5d609f72d214b7e7ebf13a72ddfa2eb9172e9c2ba1f3e5a040f089a86ce9fe873d49288d5f7dc5a7 SHA512 3cc3ae26618b96a0fc076b18bab6f8f0f6a1064d6a9913c1015a9867fd3571d17f5d2867d72cec008e9bc7005883a596edb21424084f82ad5b572443de90f976 -DIST github.com%2Fmattn%2Fgo-colorable%2F@v%2Fv0.1.4.mod 80 BLAKE2B 486156a648d66786de2a05b45b054ffbc6ccbb45ffe98230d3b3126ff533fd546af1b348fdcf67b1b3ae9310918869355fc39390a4f67b99cd7a1bbd1c6cf891 SHA512 f69ecc2e8097c17a9c0002181451d56a8a7496f62e87f437802420e9af27c5f80da2be189597759f2a5ee2656dca8c1cf91a5374b8e46919f7a6e0f9579d2526 -DIST github.com%2Fmattn%2Fgo-colorable%2F@v%2Fv0.1.6.mod 160 BLAKE2B 10c23e5a0edbdd398d6913ee8e4665e15ab0c30c6aad4d8e113533d421058858a4c23898f8f360b72cc39922bf9b4e7c6c656faab76ec4616e05285932bfef03 SHA512 60840c731813699f19e9a23f3cc0e890c0b0e8228510b0021aa2696f35f3aefa1fc06eb396c5035214ac185816d5757896da1bfaf59e2dd24ca750f5b792e6c5 -DIST github.com%2Fmattn%2Fgo-colorable%2F@v%2Fv0.1.6.zip 13586 BLAKE2B 8f8bc0b542920d0effcd6939a66e34609401f564af0c1f6330bff2925abc664add3c36534bdf8602ac176e74ed85ec8c8597f748a7ec82db9e9f86207c563fee SHA512 bd6adb6aaf44c6c59bda2407a05e192d3336154cec35d0a6b6244cc5b93dc5e53509abded7c5999af166821749dd2e55333a8813ce64c310ba5db2df597bc171 -DIST github.com%2Fmattn%2Fgo-colorable%2F@v%2Fv0.1.7.mod 160 BLAKE2B 10c23e5a0edbdd398d6913ee8e4665e15ab0c30c6aad4d8e113533d421058858a4c23898f8f360b72cc39922bf9b4e7c6c656faab76ec4616e05285932bfef03 SHA512 60840c731813699f19e9a23f3cc0e890c0b0e8228510b0021aa2696f35f3aefa1fc06eb396c5035214ac185816d5757896da1bfaf59e2dd24ca750f5b792e6c5 -DIST github.com%2Fmattn%2Fgo-colorable%2F@v%2Fv0.1.7.zip 13682 BLAKE2B d7065d3799d84593a9f7f7d93b8c286b7673505bb292208ba0475573667831ecf1aca5236f4703f1bd4d43e41b7cb688a9abe7502181edc9a76305e2a5842ebf SHA512 60a5dfa6c733fa6f71f2b0fb16ee153b2905f940b5eb7e95ff0d04bd3537961467426a1f6064d079fb164190d6a8b3c4bdeece2bf643057f34f7f96e9842f54f -DIST github.com%2Fmattn%2Fgo-isatty%2F@v%2Fv0.0.10.mod 104 BLAKE2B ee5067e0e89fe2d374ea852dac828c094db84c3a3d2d8a991abeaf40385431015577eeb6b11a66033e8da599e808f9385a84843fd8f87dea487bd3bc9ba233da SHA512 f144089cc85271c7d91b9a6faf169018bb12177dd770db0092dfd0b4c71846e5cc6dea385c0158a974cfe86971e5642858a6d633c64d3b598f1ab254fd47db28 -DIST github.com%2Fmattn%2Fgo-isatty%2F@v%2Fv0.0.12.mod 104 BLAKE2B a8f54d5566d54ac27763dd535705d64dddd862f32d23f234b1ffbf759cbf4aa16886c90a96198ae2f4c0d0bc892932f1b8244e8ff0f8150bb87123947d734016 SHA512 7bd9f6a38aa9a16c3569142164389d1c4046170f66b5e9044f7aaa3192e9d2e2ccec486e3bc7fbac868c9693b6d333068c1a34ccd9e79dec1746a86348951503 -DIST github.com%2Fmattn%2Fgo-isatty%2F@v%2Fv0.0.12.zip 8902 BLAKE2B 7257687403b9f8f066147fdd4ee1bec7e4b02cfd3fddda8349a89d9b9ea5b93d9bef61280ed48d68adac4dfed7e382ee96886aa0d65d85406fb93dc6fe0c53b1 SHA512 79ba14a04838c509500e6098553e8aadcd7105445387160a8aa1a6d7b0e70f0e807c99036c31faf51920544da2156195174c8530e317a72728719cb0a9a66098 -DIST github.com%2Fmattn%2Fgo-isatty%2F@v%2Fv0.0.3.mod 34 BLAKE2B 55253c2475bc0169df729915bc92689eaad2908ff7b9dd81b8a553bd75d5f866c308a85fd69d664d31b0d2d373d8d52ee1701677cbebb07e361612ab8cf17f2a SHA512 00c272b4652db259c46875641b29489ecada2602e38beede8c8bd529d73b6e123bff58f8e0f8cadd2d680a6a5485aadffa448e9445548abbd2fb424b059a31e1 -DIST github.com%2Fmattn%2Fgo-isatty%2F@v%2Fv0.0.8.mod 95 BLAKE2B bb0de423d1270e7ec38c7ee345c788b23e2083b05e4f745832327358c4c054ef8d2f3f48d9bb7bc669ddc67796ca0abae164c1d40b2def5f38749d8ee4bd6f32 SHA512 923114bfd285393d06f681ba57db69f042f57d8cd7817a1611c7719121c812de8023a049024165e10112bda31a7f99d3bfe0d4c4f419557ba8909a2d005be405 -DIST github.com%2Fmattn%2Fgo-runewidth%2F@v%2Fv0.0.3.mod 37 BLAKE2B f36ba4b667bc5bebbf49062ee5be234891ecc0a2be075c7bf57f5e39ee7fa2657d6bc086ba9a89728468ddd0623d27edb3c357ba4e91f79563bc9747d1d9ae63 SHA512 b891712f639a850e41582c15bcb384a985fad4f8aa86ce2d3f4d2554354aa1a9619667f60837a8280f869fc07dd58dc676c222bac23aaa5b2b00c06284b2f475 -DIST github.com%2Fmattn%2Fgo-runewidth%2F@v%2Fv0.0.6.mod 45 BLAKE2B a7d3b1ffaf20b96cc98161ea6756d62d8380e7557859606dc7975b3de91a2d4142932d5008caf40b41d8ff2ac1ff33f672dbfac351f3e518922a036d7c116a93 SHA512 0cfd4101dd8ed90f80b7f4ce2928cd322b93855764abae65d66c5ff9888a7c8aec6ee6581c7f05d1c80db5c78003ee2afc8537fda8a3855e2349bfb8267aba61 -DIST github.com%2Fmattn%2Fgo-runewidth%2F@v%2Fv0.0.9.mod 45 BLAKE2B a7d3b1ffaf20b96cc98161ea6756d62d8380e7557859606dc7975b3de91a2d4142932d5008caf40b41d8ff2ac1ff33f672dbfac351f3e518922a036d7c116a93 SHA512 0cfd4101dd8ed90f80b7f4ce2928cd322b93855764abae65d66c5ff9888a7c8aec6ee6581c7f05d1c80db5c78003ee2afc8537fda8a3855e2349bfb8267aba61 -DIST github.com%2Fmattn%2Fgo-runewidth%2F@v%2Fv0.0.9.zip 20005 BLAKE2B c0f71323efd262296b78867d2b387a74491cfae3f4498e0dd22c036b20dd6fc1b6569171eebf267effd140ec009527fa5ccbcedda4f8cebab2679582766331ea SHA512 fad08292597cbd4a359e06f85bc7cc37b3d3d84b8046e47828259e36872063069c4ab17b7c89f2a5de4b5d0ab1ca5cc66cc515847a7887339a3a04b5f44e3c92 -DIST github.com%2Fmattn%2Fgo-tty%2F@v%2Fv0.0.0-20180219170247-931426f7535a.mod 31 BLAKE2B 01ec123858a9bf8d2e9b6b2bb8415431e5d4145cf3ce82c16522eaad6f5bcb7667e391ddc4544a3ee04a8dc9dbf3fbdfb74173da09f3a330952bb5eedbbe203e SHA512 8c099ef777c49b02a62031dbe9d4fdb18839f4b2265802ac5fc3e6c6fd1d3278dbd3bc01e8674a0b52d2d6e6a394d1d4ef7bd64f4388c68e9b81749a4228773e -DIST github.com%2Fmattn%2Fgo-tty%2F@v%2Fv0.0.3.mod 272 BLAKE2B 484cb3660777f39c9c1fcff527b4a8b31d78f6150f362d648a29df008e681b32faa8374500edd2f18ec9c94df93e89a339b9661e27f38f0fa0284d6f74268af2 SHA512 64df798c54270a8893af97285fe0914af14dbc7f87228e13e0de5c29927d786e34d009ba2b0f9d2db2ba743e443bbb49f51fab1b8f9af921b856ecfc31cf0e4b -DIST github.com%2Fmattn%2Fgo-tty%2F@v%2Fv0.0.3.zip 11986 BLAKE2B 76f2e98def36d186c1e5ef5d7a9cb05129dc3cf5878311a8fc39cd83f8b58bc0c3d6100e7492ec44f6c01c5c88d859e59b03da389d35f4617b2d7d14e1856374 SHA512 52d18022f3dd4faecb00fb54aad9b184db033a6c143dfad72173e38545e8d2ae9f4d26d925cdb56b0e4b78a747a224d73bcf0716d44db4d4f3adaaa0bc4f404b -DIST github.com%2Fpkg%2Fterm%2F@v%2Fv0.0.0-20180423043932-cda20d4ac917.mod 27 BLAKE2B c44820090e3e6b67eb062638dd9251af75ef1262a034430d43ee34024051c45bfd596f258ba3f9238f1a8f25374fb55ab3840503310e1f97e6e6e5c98ea0725c SHA512 5b8d46571cfdd120c406dd6d48a943d4484053ddf05edd078529c3f927b4acfa1bf15c775e1adf9eddef260673fd6c591541fa1d781310017e421a9f164dd9ca -DIST github.com%2Fpkg%2Fterm%2F@v%2Fv0.0.0-20190109203006-aa71e9d9e942.mod 27 BLAKE2B c44820090e3e6b67eb062638dd9251af75ef1262a034430d43ee34024051c45bfd596f258ba3f9238f1a8f25374fb55ab3840503310e1f97e6e6e5c98ea0725c SHA512 5b8d46571cfdd120c406dd6d48a943d4484053ddf05edd078529c3f927b4acfa1bf15c775e1adf9eddef260673fd6c591541fa1d781310017e421a9f164dd9ca -DIST github.com%2Fpkg%2Fterm%2F@v%2Fv0.0.0-20190109203006-aa71e9d9e942.zip 25000 BLAKE2B 5470dce573b7e354aecac309ff208c340dd25f660bd4707101d5dc4bb57ad740a45c4aad7c3207c3955d07ce2f82108f48a59aad79e636856fc83eb64c7bc0fb SHA512 d1ef751c72755912e131976daadfab11a19910a392f27f9ccfd37751b8523822f3de331623631e17c1b13b8d2647d73ec5346cf2b8dafd9d034a10a5fcfbef16 -DIST github.com%2Fpkg%2Fterm%2F@v%2Fv0.0.0-20200520122047-c3ffed290a03.mod 36 BLAKE2B 525cf7609640e852d05ca2b0c524c7dc2de536e8db16f7c081fcfadfc2da4bb62401db0280ac9dcb9ce23322b23957053b48ef9e750c5ae042e4182b25e9dfcb SHA512 f1c46f3161f5453291db3d6a9cff0992aacc57e3e503b5b4263ab6e94417a0f0059e4e3957696f6774afaaa8716c11e73f7cb1c691565b2b742be3a447263fd2 -DIST github.com%2Fpkg%2Fterm%2F@v%2Fv0.0.0-20200520122047-c3ffed290a03.zip 24758 BLAKE2B 96de6c7234bd426d7ad84fdae21d0cf9099115e57cd085ddd86864fbefc5263c81e333acbecaadb2c7428f66a1b62ec6bac0b375356e62c004c9a8ec10e080cd SHA512 4c257c2db479b56199324b90275ab62d3a367d69a099b3ec5927867cf898be6a49ec0a2d85d67d887629f5fe267386b5f9ee32ddbaae754ae63fa91a68d37372 -DIST golang.org%2Fx%2Fcrypto%2F@v%2Fv0.0.0-20190308221718-c2843e01d9a2.mod 88 BLAKE2B aec7d0eea1278eb3d1568d5bfb4041267501ad14457ebfcbdbc5fe21473170b8616ca4028f52af2edbfd85922cbe04540b4b0df7f69f63197698143cc5557a7a SHA512 2df49895053b36fed7ea905aa73f86568fbafd79ff0a7976679d8c77cf15025129435d9dbfd89367b611b1aadbea4f4bd1835eb4efa9ea702466e443638d379e -DIST golang.org%2Fx%2Fcrypto%2F@v%2Fv0.0.0-20200323165209-0ec3e9974c59.mod 155 BLAKE2B 8bba3353db8ceb3b9fe40b8fd59aacde169776a4a553a069a04836bbf15e5a9a8d7a2d39feed98dac6cb890198180fda39f26b528ff95f24c5b2bbf6601b45c3 SHA512 7c5a755a03063d47d259fda0a6c2faa63c2f30b98dbac583e106aaa817d6cde3e07551e0b5e08f3a25db4c4ca45a23cebe993ae6f3d39c88deeaf2c7d8086a06 -DIST golang.org%2Fx%2Fcrypto%2F@v%2Fv0.0.0-20200323165209-0ec3e9974c59.zip 1872460 BLAKE2B bcf70beb075025ed54a129e7e5851328cffb872f4885a388ff0a765793b657078ed9ed89ad6ce63a84ea0fd958731d549f6457c20a8f752c2d5a25a86f3d7195 SHA512 aa3d172a5c0d759ef698bf10ee48c231d3dc981c5f22f5e4755a2dc36596bdd2cd78891bb45c91aecb44380560e11c318d1de2c26e72650947449b335ae4b177 -DIST golang.org%2Fx%2Fcrypto%2F@v%2Fv0.0.0-20200820211705-5c72a883971a.mod 155 BLAKE2B 8bba3353db8ceb3b9fe40b8fd59aacde169776a4a553a069a04836bbf15e5a9a8d7a2d39feed98dac6cb890198180fda39f26b528ff95f24c5b2bbf6601b45c3 SHA512 7c5a755a03063d47d259fda0a6c2faa63c2f30b98dbac583e106aaa817d6cde3e07551e0b5e08f3a25db4c4ca45a23cebe993ae6f3d39c88deeaf2c7d8086a06 -DIST golang.org%2Fx%2Fcrypto%2F@v%2Fv0.0.0-20200820211705-5c72a883971a.zip 1876176 BLAKE2B 84ea067e58783d36780037272d669162fce90fac23d5bb6090898e14ed6753ebd4bafc001b3e3ec792a29a2a802d57763a365a3f89f1acfc37f18e320aee42e6 SHA512 1a94d4b9e787a0f322cf9ee223c3b01d8dbd34b59381330808d2682ae05de0cdad62c31e085c554033e852bc5fe49d789993a668a2d75bd7eb8b2389ac774e65 -DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20190404232315-eb5bcb51f2a3.mod 119 BLAKE2B e042b2716739483252c3340451b2c3c7b421fdf8d6b3e0333e979802fca66159596982ea63a24b6a64457b2757a0ad24cbb9ea032bab4c5377edf84a3ea18b97 SHA512 26b6c92eecd2208967336d4d23f8a71f77f9a73643ad1e5cd84dee36b2f626fffc806e4dd33acc284831a0961e2b363d898a747903235945fbfb665c5b4d5ef2 -DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20190911185100-cd5d95a43a6e.mod 25 BLAKE2B 01f7f78a0324ca728efd4d662ea130d7e200ab25805125e472720ca01feaaf2625b15bf53f51837a6913e35e060a19018928a38851d7445f39e6e42e237dfda2 SHA512 a9dd073f69c5be1153aaab6e84dd3bb1610a0df8b9882ca4c486c6625d4b5201e5032f86e5014421358dff564d93c4e67f20e5fd1d21ed5e259ddfbc90af43c0 -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20180620133508-ad87a3a340fa.mod 24 BLAKE2B 64a70c4594f5d3c37d962c1ed07630fba8abeaf534242f8f1509af271684499252af9a2320d5bac8e44064dba344b807535e4e9dd085fc0fb47bd9304120601a SHA512 ffe50fccf7f1d200f2ebc805b190e3f10c5a3184458a38f4590e520d7ce115e1520fbabe56651bbdc2e08da4a8db5ac86d0e88728efde3ab26c64ab4e0cd604c -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190215142949-d0b11bdaac8a.mod 24 BLAKE2B 64a70c4594f5d3c37d962c1ed07630fba8abeaf534242f8f1509af271684499252af9a2320d5bac8e44064dba344b807535e4e9dd085fc0fb47bd9304120601a SHA512 ffe50fccf7f1d200f2ebc805b190e3f10c5a3184458a38f4590e520d7ce115e1520fbabe56651bbdc2e08da4a8db5ac86d0e88728efde3ab26c64ab4e0cd604c -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190222072716-a9d3bda3a223.mod 24 BLAKE2B 64a70c4594f5d3c37d962c1ed07630fba8abeaf534242f8f1509af271684499252af9a2320d5bac8e44064dba344b807535e4e9dd085fc0fb47bd9304120601a SHA512 ffe50fccf7f1d200f2ebc805b190e3f10c5a3184458a38f4590e520d7ce115e1520fbabe56651bbdc2e08da4a8db5ac86d0e88728efde3ab26c64ab4e0cd604c -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190412213103-97732733099d.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20191008105621-543471e840be.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20191120155948-bd437916bb0e.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20200116001909-b77594299b42.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20200223170610-d5e6a3e2c0ae.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20200323222414-85ca7c5b95cd.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20200323222414-85ca7c5b95cd.zip 1470272 BLAKE2B 9a8bbb988370bedc24428e6c78f42a9ba44dbb852ce91c3d7fc54e83678b72b9177e67c955c49dc8ef7a1e2e214475a2e55c53254469e3426ec271e90ec9e2d5 SHA512 e46ef76fe4a1628def4c6a291003b64cf11185c0214427af9c49b9ff3af99f258488d49e887206a9c8652784228d822665c5841ce87d6ff993e95ea3d0494129 -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20200824131525-c12d262b63d8.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20200824131525-c12d262b63d8.zip 1487245 BLAKE2B b2c149e42a4f4dfe28fd48bc6584be56e3fad1109a60bafa746035b402296f725e13539a80e397c13ec39e2d05e2a543e53893a711be773aec2a7492aa16daf0 SHA512 f6a53b877801048a082c1f1ec069fac8958f24d290c22b12045d0be5ae44464f9dc9ca7ac3b6a692a14654aec681fa168ef62c0ddf8f3a525e929a05031c717e -DIST golang.org%2Fx%2Ftext%2F@v%2Fv0.3.0.mod 25 BLAKE2B 31009af0fdcd0f8730c9985287e6e364ec4e5183e57e92560dbc80a2010eced51b8a90f01a82b49384268c8a0adbf69d179c205d3f68e0eb459169d2ea9528f0 SHA512 ca081ef7cccd7bbedc6843fbe0c452352661a07e1298cd02ff338ed79d807c6401d613a3cf20011189d2f98a794ffa410547b3e352eb58a6f0a84822285d391d +DIST abs-2.6.0-deps.tar.xz 5042696 BLAKE2B 3503af4167f99efcdeaf423c3b259bc41f8fbc6d322cc4ba98096dbf2d634d1e0bac8ced667c5b5bb3137cda6d484bec300a03214073ba408e11267c96f737e0 SHA512 0fb33142e192e4f5720b5c973af352a45d433c94cd1840d519a513f423759288f42679c744ba27c861eb2a8f32b9da79795ff530627d7d1d717b419f14fa8338 +DIST abs-2.6.0.tar.gz 8829951 BLAKE2B b8153c997d0366cc536f7fb4b484f1cd7815ef460e7ee1b2a21d2c84b71d598f44ca8ab5ebe14b4fc7ba9ee4a6dd962ccf70426374bca051684e6220037fd542 SHA512 3a4998670f2c71c847d6fdc6f25a6a67b884a81c3f0de09d8bb534a5b199910cc8a2d788101c588f4f0481c83cdacae34bcf648aabdfb06f570734b8bdc8d0b1 diff --git a/dev-lang/abs/abs-2.5.0.ebuild b/dev-lang/abs/abs-2.5.0.ebuild deleted file mode 100644 index 441b7b6dd2a..00000000000 --- a/dev-lang/abs/abs-2.5.0.ebuild +++ /dev/null @@ -1,84 +0,0 @@ -# Copyright 2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit go-module - -DESCRIPTION="The ABS programing language" -HOMEPAGE="https://github.com/abs-lang/abs https://www.abs-lang.org/" - -EGO_SUM=( -"github.com/c-bata/go-prompt v0.2.4-0.20190826134812-0f95e1d1de2e" -"github.com/c-bata/go-prompt v0.2.4-0.20190826134812-0f95e1d1de2e/go.mod" -"github.com/iancoleman/strcase v0.0.0-20191112232945-16388991a334" -"github.com/iancoleman/strcase v0.0.0-20191112232945-16388991a334/go.mod" -"github.com/iancoleman/strcase v0.1.0" -"github.com/iancoleman/strcase v0.1.0/go.mod" -"github.com/jteeuwen/go-bindata v3.0.7+incompatible/go.mod" -"github.com/mattn/go-colorable v0.0.9/go.mod" -"github.com/mattn/go-colorable v0.1.4/go.mod" -"github.com/mattn/go-colorable v0.1.6" -"github.com/mattn/go-colorable v0.1.6/go.mod" -"github.com/mattn/go-colorable v0.1.7" -"github.com/mattn/go-colorable v0.1.7/go.mod" -"github.com/mattn/go-isatty v0.0.3/go.mod" -"github.com/mattn/go-isatty v0.0.8/go.mod" -"github.com/mattn/go-isatty v0.0.10/go.mod" -"github.com/mattn/go-isatty v0.0.12" -"github.com/mattn/go-isatty v0.0.12/go.mod" -"github.com/mattn/go-runewidth v0.0.3/go.mod" -"github.com/mattn/go-runewidth v0.0.6/go.mod" -"github.com/mattn/go-runewidth v0.0.9" -"github.com/mattn/go-runewidth v0.0.9/go.mod" -"github.com/mattn/go-tty v0.0.0-20180219170247-931426f7535a/go.mod" -"github.com/mattn/go-tty v0.0.3" -"github.com/mattn/go-tty v0.0.3/go.mod" -"github.com/pkg/term v0.0.0-20180423043932-cda20d4ac917/go.mod" -"github.com/pkg/term v0.0.0-20190109203006-aa71e9d9e942" -"github.com/pkg/term v0.0.0-20190109203006-aa71e9d9e942/go.mod" -"github.com/pkg/term v0.0.0-20200520122047-c3ffed290a03" -"github.com/pkg/term v0.0.0-20200520122047-c3ffed290a03/go.mod" -"golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod" -"golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59" -"golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod" -"golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a" -"golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod" -"golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod" -"golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod" -"golang.org/x/sys v0.0.0-20180620133508-ad87a3a340fa/go.mod" -"golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod" -"golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod" -"golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod" -"golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod" -"golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod" -"golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod" -"golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod" -"golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd" -"golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod" -"golang.org/x/sys v0.0.0-20200824131525-c12d262b63d8" -"golang.org/x/sys v0.0.0-20200824131525-c12d262b63d8/go.mod" -"golang.org/x/text v0.3.0/go.mod" -) -go-module_set_globals -SRC_URI="https://github.com/abs-lang/abs/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz - ${EGO_SUM_SRC_URI}" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64" -RESTRICT+=" test" - -src_prepare() { - sed -e "s:^var Version = \"dev\"\$:var Version = \"${PV}\":" -i main.go || die - default -} - -src_compile() { - CGO_ENABLED=0 emake build_simple || die -} - -src_install() { - dobin builds/abs - dodoc README.md -} diff --git a/dev-lang/abs/abs-2.5.1.ebuild b/dev-lang/abs/abs-2.5.1.ebuild deleted file mode 100644 index 604c23585fe..00000000000 --- a/dev-lang/abs/abs-2.5.1.ebuild +++ /dev/null @@ -1,85 +0,0 @@ -# Copyright 2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit go-module - -DESCRIPTION="The ABS programing language" -HOMEPAGE="https://github.com/abs-lang/abs https://www.abs-lang.org/" - -EGO_SUM=( -"github.com/c-bata/go-prompt v0.2.4-0.20190826134812-0f95e1d1de2e" -"github.com/c-bata/go-prompt v0.2.4-0.20190826134812-0f95e1d1de2e/go.mod" -"github.com/iancoleman/strcase v0.0.0-20191112232945-16388991a334" -"github.com/iancoleman/strcase v0.0.0-20191112232945-16388991a334/go.mod" -"github.com/iancoleman/strcase v0.1.0" -"github.com/iancoleman/strcase v0.1.0/go.mod" -"github.com/jteeuwen/go-bindata v3.0.7+incompatible" -"github.com/jteeuwen/go-bindata v3.0.7+incompatible/go.mod" -"github.com/mattn/go-colorable v0.0.9/go.mod" -"github.com/mattn/go-colorable v0.1.4/go.mod" -"github.com/mattn/go-colorable v0.1.6" -"github.com/mattn/go-colorable v0.1.6/go.mod" -"github.com/mattn/go-colorable v0.1.7" -"github.com/mattn/go-colorable v0.1.7/go.mod" -"github.com/mattn/go-isatty v0.0.3/go.mod" -"github.com/mattn/go-isatty v0.0.8/go.mod" -"github.com/mattn/go-isatty v0.0.10/go.mod" -"github.com/mattn/go-isatty v0.0.12" -"github.com/mattn/go-isatty v0.0.12/go.mod" -"github.com/mattn/go-runewidth v0.0.3/go.mod" -"github.com/mattn/go-runewidth v0.0.6/go.mod" -"github.com/mattn/go-runewidth v0.0.9" -"github.com/mattn/go-runewidth v0.0.9/go.mod" -"github.com/mattn/go-tty v0.0.0-20180219170247-931426f7535a/go.mod" -"github.com/mattn/go-tty v0.0.3" -"github.com/mattn/go-tty v0.0.3/go.mod" -"github.com/pkg/term v0.0.0-20180423043932-cda20d4ac917/go.mod" -"github.com/pkg/term v0.0.0-20190109203006-aa71e9d9e942" -"github.com/pkg/term v0.0.0-20190109203006-aa71e9d9e942/go.mod" -"github.com/pkg/term v0.0.0-20200520122047-c3ffed290a03" -"github.com/pkg/term v0.0.0-20200520122047-c3ffed290a03/go.mod" -"golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod" -"golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59" -"golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod" -"golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a" -"golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod" -"golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod" -"golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod" -"golang.org/x/sys v0.0.0-20180620133508-ad87a3a340fa/go.mod" -"golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod" -"golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod" -"golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod" -"golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod" -"golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod" -"golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod" -"golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod" -"golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd" -"golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod" -"golang.org/x/sys v0.0.0-20200824131525-c12d262b63d8" -"golang.org/x/sys v0.0.0-20200824131525-c12d262b63d8/go.mod" -"golang.org/x/text v0.3.0/go.mod" -) -go-module_set_globals -SRC_URI="https://github.com/abs-lang/abs/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz - ${EGO_SUM_SRC_URI}" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64" -RESTRICT+=" test" - -src_prepare() { - sed -e "s:^var Version = \"dev\"\$:var Version = \"${PV}\":" -i main.go || die - default -} - -src_compile() { - CGO_ENABLED=0 emake build_simple || die -} - -src_install() { - dobin builds/abs - dodoc README.md -} diff --git a/dev-lang/abs/abs-2.6.0.ebuild b/dev-lang/abs/abs-2.6.0.ebuild new file mode 100644 index 00000000000..0391f7c101e --- /dev/null +++ b/dev-lang/abs/abs-2.6.0.ebuild @@ -0,0 +1,30 @@ +# Copyright 2021-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit go-module + +DESCRIPTION="The ABS programing language" +HOMEPAGE="https://github.com/abs-lang/abs https://www.abs-lang.org/" +SRC_URI="https://github.com/abs-lang/abs/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz + https://dev.gentoo.org/~zmedico/dist/${P}-deps.tar.xz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" +RESTRICT+=" test" + +src_prepare() { + sed -e "s:^var Version = \"dev\"\$:var Version = \"${PV}\":" -i main.go || die + default +} + +src_compile() { + CGO_ENABLED=0 emake build_simple || die +} + +src_install() { + dobin builds/abs + dodoc README.md +} diff --git a/dev-lang/ammonite-repl-bin/Manifest b/dev-lang/ammonite-repl-bin/Manifest index d7138c6c4e4..ae972eaff88 100644 --- a/dev-lang/ammonite-repl-bin/Manifest +++ b/dev-lang/ammonite-repl-bin/Manifest @@ -1,3 +1,2 @@ -DIST ammonite-2.4.1 48567893 BLAKE2B d7096170c1072aabdc2b4374fdc89bee390a04fc01748c985eeb8be9cb2bc5d09334644c21b3bb4d2eab436b7df1ff8c915a26cde76d38a5765b29673d09ccf9 SHA512 7e65c7789c42e1ac23455dd27702baf80c3f7c554403f3a34bb939283328b719212af0a824152875e09a6120cc6c67405c1dce0e5da1d07e4e185002ae4672ca -DIST ammonite-2.5.0 48405047 BLAKE2B 5d3506a89f59adde33447f22ed1a480161c6a635cd4710320f7ac66991e6171e5addc9e5ba62013f95b4e4f969899bce5b009853c36e0e966bff41c6afa69041 SHA512 8878a53b42db5edfe5a489c6abba16d985c94adc6b59ce8cac077a4e1eb7b9ad40be4bc1c27a28bbb277a47bab581a60b28ccded90081d216194d45086701550 -DIST ammonite-repl-bin-2.5.1 48408804 BLAKE2B 20d9738229c054e94393d50c86996a8a3fb8ecac1bfebe4b61d989edf0921c027bd5c1b48304bd69d9410c84debe9439aa315678fa9e4146bda845583c829fd9 SHA512 bb45d8790bf5ae853d22501b47e20e532b8a78f61dc63fbeb052b9a704befe1facb5572a3cdf9f7329f1dbca1637e9f191b10be761cb657e293506fb3fdc749c +DIST ammonite-repl-bin-2.5.3 48419355 BLAKE2B dece0bec04f5d394470dbf393570a86674488a7191fb3285cfb4c97734e64a0bbaef1197535f134bbf8b1f03ab5847e14e9053a68649a166cdec93bee34acf27 SHA512 3ad296f1c2a5b8a6b6a7772f2f2bebab71a4e41b3e3a9b66ef65af5b39f3db6866cc07b620b0f4e64cdc21f059e17494541a03af4314f759187744229f24bee9 +DIST ammonite-repl-bin-2.5.4 48438500 BLAKE2B 386ab32fc122267d17d377201a73e001ca40eb9c3254527e0819ae399cdcda90c5ada8d4773e16a1a930ba839e374dfd0d9848ccf1da75e5f6e385bf870f27a1 SHA512 cd1b382e2a5eb2ca93ad0640d9806e5770516f8fbd1c2a468e2bb333ab648916ed7b86efdf5d5e674176eee09532cf0a9b5af57021695c37b4862abb546966db diff --git a/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.0.ebuild b/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.0.ebuild deleted file mode 100644 index 35f7b5f9e33..00000000000 --- a/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.0.ebuild +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -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" - -S="${WORKDIR}" - -RDEPEND=">=virtual/jre-1.8:*" - -src_install() { - newbin "${DISTDIR}/ammonite-${PV}" amm -} diff --git a/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.4.1.ebuild b/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.3.ebuild index e02d511c8f8..6cae7d9be42 100644 --- a/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.4.1.ebuild +++ b/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.3.ebuild @@ -1,23 +1,26 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 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}" +SRC_URI="https://github.com/com-lihaoyi/Ammonite/releases/download/${PV}/${SCALA_VERSION}-${PV} -> ${P}" KEYWORDS="amd64 x86" LICENSE="MIT" SLOT="0" -IUSE="" S="${WORKDIR}" RDEPEND=">=virtual/jre-1.8:*" +src_unpack() { + : +} + src_install() { - newbin "${DISTDIR}/ammonite-${PV}" amm + newbin "${DISTDIR}"/${P} amm } diff --git a/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.1.ebuild b/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.4.ebuild index 7da31b8ae7c..3cb6ca4d0ff 100644 --- a/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.1.ebuild +++ b/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.4.ebuild @@ -7,7 +7,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} -> ${P}" +SRC_URI="https://github.com/com-lihaoyi/Ammonite/releases/download/${PV}/${SCALA_VERSION}-${PV} -> ${P}" KEYWORDS="~amd64 ~x86" LICENSE="MIT" diff --git a/dev-lang/ammonite-repl-bin/metadata.xml b/dev-lang/ammonite-repl-bin/metadata.xml index 75209e7cb52..29c1eb29b6d 100644 --- a/dev-lang/ammonite-repl-bin/metadata.xml +++ b/dev-lang/ammonite-repl-bin/metadata.xml @@ -5,4 +5,13 @@ <email>flow@gentoo.org</email> <name>Florian Schmaus</name> </maintainer> + <stabilize-allarches/> + <upstream> + <remote-id type="github">com-lihaoyi/Ammonite</remote-id> + <bugs-to>https://github.com/com-lihaoyi/Ammonite/issues</bugs-to> + <maintainer status='active'> + <name>Li Haoyi</name> + <email>haoyi.sg@gmail.com</email> + </maintainer> + </upstream> </pkgmetadata> diff --git a/dev-lang/arc/metadata.xml b/dev-lang/arc/metadata.xml index 95f19d42625..cd6d01f6dcc 100644 --- a/dev-lang/arc/metadata.xml +++ b/dev-lang/arc/metadata.xml @@ -6,7 +6,7 @@ <email>scheme@gentoo.org</email> <name>Gentoo Scheme Project</name> </maintainer> - <longdescription lang="en"> + <longdescription> Arc is designed for exploratory programming: the kind where you decide what to write by writing it. A good medium for exploratory programming is one that makes programs brief and malleable, diff --git a/dev-lang/cfortran/cfortran-20110621.ebuild b/dev-lang/cfortran/cfortran-20110621.ebuild index e61e831fc6a..9a624c62ccf 100644 --- a/dev-lang/cfortran/cfortran-20110621.ebuild +++ b/dev-lang/cfortran/cfortran-20110621.ebuild @@ -1,11 +1,11 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 FORTRAN_NEEDED=test -inherit autotools fortran-2 +inherit autotools fortran-2 flag-o-matic DEB_PR="1" @@ -17,7 +17,7 @@ SRC_URI=" SLOT="0" LICENSE="LGPL-2" -KEYWORDS="~alpha amd64 ~arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux" +KEYWORDS="~alpha amd64 ~arm64 ~hppa ~ia64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux" IUSE="examples test" RESTRICT="!test? ( test )" @@ -38,6 +38,11 @@ src_prepare() { fi } +src_configure() { + use sparc && append-fflags $(test-flags-FC -fno-store-merging -fno-tree-slp-vectorize) # bug 818400 + default +} + src_install() { default diff --git a/dev-lang/cfortran/cfortran-20210827.ebuild b/dev-lang/cfortran/cfortran-20210827.ebuild index d389fc9ca6b..9639036d282 100644 --- a/dev-lang/cfortran/cfortran-20210827.ebuild +++ b/dev-lang/cfortran/cfortran-20210827.ebuild @@ -1,11 +1,11 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 FORTRAN_NEEDED=test -inherit autotools fortran-2 +inherit autotools fortran-2 flag-o-matic DEB_PR="1" @@ -39,6 +39,11 @@ src_prepare() { fi } +src_configure() { + use sparc && append-fflags $(test-flags-FC -fno-store-merging -fno-tree-slp-vectorize) # bug 818400 + default +} + src_install() { default diff --git a/dev-lang/clips/metadata.xml b/dev-lang/clips/metadata.xml index 17de2386ed6..8950bb052c8 100644 --- a/dev-lang/clips/metadata.xml +++ b/dev-lang/clips/metadata.xml @@ -6,7 +6,7 @@ <email>xgqt@gentoo.org</email> <name>Maciej Barć</name> </maintainer> - <longdescription lang="en"> + <longdescription> This package is a pure C implementation of CLIPS. CLIPS is a forward-chaining rule-based programming language written in C that also provides procedural and object-oriented programming facilities. diff --git a/dev-lang/clipsjni/clipsjni-6.40.ebuild b/dev-lang/clipsjni/clipsjni-6.40-r1.ebuild index a6d8f93e099..5e5cd3a3725 100644 --- a/dev-lang/clipsjni/clipsjni-6.40.ebuild +++ b/dev-lang/clipsjni/clipsjni-6.40-r1.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 JAVA_PKG_IUSE="source" diff --git a/dev-lang/clipsjni/metadata.xml b/dev-lang/clipsjni/metadata.xml index 87cd0caf515..95bdb20e967 100644 --- a/dev-lang/clipsjni/metadata.xml +++ b/dev-lang/clipsjni/metadata.xml @@ -6,7 +6,7 @@ <email>xgqt@gentoo.org</email> <name>Maciej Barć</name> </maintainer> - <longdescription lang="en"> + <longdescription> This package is a Java implementation of CLIPS with a native shared library and a IDE. CLIPS is a forward-chaining rule-based programming language written in C diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest index 318e4430347..18941e5a07b 100644 --- a/dev-lang/crystal/Manifest +++ b/dev-lang/crystal/Manifest @@ -1,9 +1,3 @@ -DIST crystal-1.1.0-1-linux-i686.tar.gz 30747190 BLAKE2B 7fe29248ae69c81cb0c79419488c5b544bb55810894ac1d7f276ccdf2d2d98c7c2bc4f8c007214e5ffd18ee39bdf6983f33b13c08f012105fce714eeaa18fac9 SHA512 df267250971c11d1e2f4f869a14f7b2f1e5a32cf15c407a0ee9291aeb4ddc21241c3f21c7706ee2305dfbf4ac645681a06bb70a6ee9246968a30f59b7595ea8a -DIST crystal-1.1.0-1-linux-x86_64.tar.gz 27998777 BLAKE2B 06be8a51b28266b25f1a3629b1a1ac6f3878aacdd4ca4019ac201369ca0507f3ed27bfea46ea7d8d4dfa67888268a8e027586bb32e9964d4754661f43e36ac12 SHA512 8c4542ce0623e459b61591b7bd13f416ee30c89913ce827830e570225c72ec79ad5466d414b05f520d384f04363f11964ff8bf158f0ae798da3864208655319e -DIST crystal-1.1.0.tar.gz 2476748 BLAKE2B 2874da651a8b4454c6a34b00ac4ef93be6beaabe01ff66aaac86583a9d9c1baccde9473358d70d78490b367db3a307af3b5219af6751c1d83cb5084e74955197 SHA512 fcd14338c4c6cb9189cfb9d4d93af7feab806a49e10b9c83399f9252f0c5f3488605141f09adef82d48343eab5653b754b9196fb659590df8d4deb2c4b6499f4 -DIST crystal-1.1.1-1-linux-i686.tar.gz 30749110 BLAKE2B d79113bc616685b30a80bb8632593c1b0a24d770ee9fa50810e771996f9ca95cdb5cdab64a7c445bc461e27e77e457b8334877e3a62281a3f9cbe59975518eae SHA512 eecd485fe06642a534aee2f837ac9ad6eeb5b52fa5fb4ab0f36bcf167535b784b5e306c0bb578a3198b58552efd3f0afc356b2711b0b7dc00f25fb1a2f4fe43f -DIST crystal-1.1.1-1-linux-x86_64.tar.gz 27999355 BLAKE2B 115d9002973d9e0e1ad2edac55a10d4275176f95352634eee00f29d6ebeef2e3538f30a26904a1c6b68fa5b42e70b4cf54bb50ed4aa1097bb2d2dc716ff83427 SHA512 f27277af810f295c8ee4f5fedc3b7f1ffb06d166970fcc25d2de43e1c41e0af01de2a508292b44aac48a1583ac9892058f54fa3a7c361fc56dd483265f8bc36c -DIST crystal-1.1.1.tar.gz 2477825 BLAKE2B 4e1b06c831a22447a4d1f065be64b12642ee4b4a75f24b0b73b990944afe6e2a6fca95189b46ea0656b8d13bd7c6a83a23452779b494822803a0264e02b9d4ce SHA512 6e9e977792c863d17ae94aa285a65a453da581a71c3fd9c57cc606ae20813504d675faffa74f78e7c4cf863b6334c4a63ab5356c04fb11d3267dd516e060fe74 DIST crystal-1.2.1-1-linux-x86_64.tar.gz 28586682 BLAKE2B 4d7847cdc6263c369de0926055569986cece1302d2251e4b2d25308609e45c0aa3afe7cdfecba3b7909d7568b1e81aafe69f9976a90c8980684a92231cc3857c SHA512 23cfb2389c65202dc70ebadb85cf0390ba2366520fbfd4b7bb0683c5194cd2b5c87b6b4142dd251471ec4146a5c1046ec86bcafa50c66389a41c9cb394ee6f5d DIST crystal-1.2.1.tar.gz 2618956 BLAKE2B e9ffd8b9114af419ee433093066dcf69f86e2f3293a6eeafee20f00c982dcd78774b3faf64d1e2568ba3141e24ef751cb2b5e0b2a2c57dac92d0039e6e224971 SHA512 a6acfac36a8a0d93e39947f2e35238f9cfc43485994fd6caf102f1d62ebc4d71d13d96801e998dbbff9541b76a8eb4fade7b998b179807ed49c1c338207a4720 DIST crystal-1.2.2-1-linux-x86_64.tar.gz 28611412 BLAKE2B 95593120b00b09b0a250917cbfd0841a77ead5e768ad483a900452678be5b231408017c4ac668df4de675612a008a385ed0dbf6ea216aec0343f8b5e8ede3e98 SHA512 7fdb247074723f52f8dfb9d2e18eef1ceb6fcf595bd12ec7304eb292716c4462ee34d2d87eac56302053dd4d8cd2beccde3dc5bfa3c75e6e832813afecfadcde diff --git a/dev-lang/crystal/crystal-1.1.0.ebuild b/dev-lang/crystal/crystal-1.1.0.ebuild deleted file mode 100644 index 7af64a71141..00000000000 --- a/dev-lang/crystal/crystal-1.1.0.ebuild +++ /dev/null @@ -1,123 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit bash-completion-r1 llvm multiprocessing toolchain-funcs - -BV=${PV}-1 -BV_AMD64=${BV}-linux-x86_64 -BV_X86=${BV}-linux-i686 - -DESCRIPTION="The Crystal Programming Language" -HOMEPAGE="https://crystal-lang.org" -SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz - amd64? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_AMD64}.tar.gz ) - x86? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_X86}.tar.gz )" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64" -IUSE="doc debug examples blocking-stdio-hack +xml +yaml" - -RESTRICT=test # not stable for day-to-day runs - -LLVM_MAX_SLOT=11 - -DEPEND=" - sys-devel/llvm:${LLVM_MAX_SLOT} - dev-libs/boehm-gc[static-libs,threads] - dev-libs/libatomic_ops - dev-libs/libevent - dev-libs/libpcre - sys-libs/libunwind - dev-libs/pcl - dev-libs/gmp:0 -" -RDEPEND="${DEPEND} - xml? ( dev-libs/libxml2 ) - yaml? ( dev-libs/libyaml ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-1.1.0-verbose.patch - "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-sandbox.patch - "${FILESDIR}"/${PN}-0.27.0-extra-spec-flags.patch - #"${FILESDIR}"/${PN}-0.27.0-max-age-0-test.patch - "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix.patch - "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix-2.patch -) - -src_prepare() { - default - - use blocking-stdio-hack && eapply "${FILESDIR}"/"${PN}"-0.22.0-blocking-stdio-hack.patch -} - -src_compile() { - local bootstrap_path=${WORKDIR}/${PN}-${BV}/bin - if [[ ! -d ${bootstrap_path} ]]; then - eerror "Binary tarball does not contain expected directory:" - die "'${bootstrap_path}' path does not exist." - fi - - # crystal uses 'LLVM_TARGETS' to override default list of targets - unset LLVM_TARGETS - emake \ - $(usex debug "" release=1) \ - progress=true \ - stats=1 \ - threads=$(makeopts_jobs) \ - verbose=1 \ - \ - CC=$(tc-getCC) \ - CXX=$(tc-getCXX) \ - AR=$(tc-getAR) \ - LLVM_CONFIG="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" \ - \ - PATH="${bootstrap_path}:${PATH}" \ - CRYSTAL_PATH=src \ - CRYSTAL_CONFIG_VERSION=${PV} \ - CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal" - use doc && emake docs -} - -src_test() { - # EXTRA_SPEC_FLAGS is useful to debug individual tests - # as part of full build: - # USE=debug EXTRA_SPEC_FLAGS='-e parse_set_cookie' emerge -1 crystal - emake spec \ - $(usex debug "" release=1) \ - progress=true \ - stats=1 \ - threads=$(makeopts_jobs) \ - verbose=1 \ - \ - CC=$(tc-getCC) \ - CXX=$(tc-getCXX) \ - AR=$(tc-getAR) \ - LLVM_CONFIG="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" \ - \ - CRYSTAL_PATH=src \ - CRYSTAL_CONFIG_VERSION=${PV} \ - \ - "EXTRA_SPEC_FLAGS=${EXTRA_SPEC_FLAGS}" -} - -src_install() { - insinto /usr/$(get_libdir)/crystal - doins -r src/. - dobin .build/crystal - - insinto /usr/share/zsh/site-functions - newins etc/completion.zsh _crystal - - use examples && dodoc -r samples - - if use doc ; then - docinto api - dodoc -r docs/. - fi - - newbashcomp etc/completion.bash ${PN} -} diff --git a/dev-lang/crystal/crystal-1.1.1.ebuild b/dev-lang/crystal/crystal-1.1.1.ebuild deleted file mode 100644 index 5917510958e..00000000000 --- a/dev-lang/crystal/crystal-1.1.1.ebuild +++ /dev/null @@ -1,107 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit bash-completion-r1 llvm multiprocessing toolchain-funcs - -BV=${PV}-1 -BV_AMD64=${BV}-linux-x86_64 -BV_X86=${BV}-linux-i686 - -DESCRIPTION="The Crystal Programming Language" -HOMEPAGE="https://crystal-lang.org" -SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz - amd64? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_AMD64}.tar.gz ) - x86? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_X86}.tar.gz )" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64" -IUSE="doc debug" - -# Upstream test suite not reliable -RESTRICT=test - -# See https://github.com/crystal-lang/crystal/issues/10434 -LLVM_MAX_SLOT=11 - -DEPEND=" - dev-libs/boehm-gc[static-libs,threads] - dev-libs/gmp:= - dev-libs/libatomic_ops - dev-libs/libevent - dev-libs/libpcre - dev-libs/pcl:= - sys-devel/llvm:${LLVM_MAX_SLOT} - sys-libs/libunwind:= -" -RDEPEND="${DEPEND} - dev-libs/libxml2 - dev-libs/libyaml -" - -PATCHES=( - "${FILESDIR}"/${PN}-1.1.0-verbose.patch - "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-sandbox.patch - "${FILESDIR}"/${PN}-0.27.0-extra-spec-flags.patch - "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix.patch - "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix-2.patch -) - -src_configure() { - local bootstrap_path=${WORKDIR}/${PN}-${BV}/bin - if [[ ! -d ${bootstrap_path} ]]; then - eerror "Binary tarball does not contain expected directory:" - die "'${bootstrap_path}' path does not exist." - fi - - MY_EMAKE_COMMON_ARGS=( - $(usex debug "" release=1) - progress=true - stats=1 - threads=$(makeopts_jobs) - verbose=1 - CC=$(tc-getCC) - CXX=$(tc-getCXX) - AR=$(tc-getAR) - LLVM_CONFIG="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" - PATH="${bootstrap_path}:${PATH}" - CRYSTAL_PATH=src - CRYSTAL_CONFIG_VERSION=${PV} - CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal" - ) - - # crystal uses 'LLVM_TARGETS' to override default list of targets - unset LLVM_TARGETS -} - -src_compile() { - emake "${MY_EMAKE_COMMON_ARGS[@]}" - use doc && emake docs -} - -src_test() { - # EXTRA_SPEC_FLAGS is useful to debug individual tests - # as part of full build: - # USE=debug EXTRA_SPEC_FLAGS='-e parse_set_cookie' emerge -1 crystal - emake std_spec "${MY_EMAKE_COMMON_ARGS[@]}" "EXTRA_SPEC_FLAGS=${EXTRA_SPEC_FLAGS}" -} - -src_install() { - insinto /usr/$(get_libdir)/crystal - doins -r src/. - dobin .build/crystal - - insinto /usr/share/zsh/site-functions - newins etc/completion.zsh _crystal - - dodoc -r samples - - if use doc ; then - docinto api - dodoc -r docs/. - fi - - newbashcomp etc/completion.bash ${PN} -} diff --git a/dev-lang/crystal/crystal-1.2.1.ebuild b/dev-lang/crystal/crystal-1.2.1.ebuild index 6e531f8dcf4..7758bb838f9 100644 --- a/dev-lang/crystal/crystal-1.2.1.ebuild +++ b/dev-lang/crystal/crystal-1.2.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -59,9 +59,9 @@ src_configure() { stats=1 threads=$(makeopts_jobs) verbose=1 - CC=$(tc-getCC) - CXX=$(tc-getCXX) - AR=$(tc-getAR) + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + AR="$(tc-getAR)" LLVM_CONFIG="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" PATH="${bootstrap_path}:${PATH}" CRYSTAL_PATH=src diff --git a/dev-lang/crystal/crystal-1.2.2.ebuild b/dev-lang/crystal/crystal-1.2.2.ebuild index 6e531f8dcf4..7758bb838f9 100644 --- a/dev-lang/crystal/crystal-1.2.2.ebuild +++ b/dev-lang/crystal/crystal-1.2.2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -59,9 +59,9 @@ src_configure() { stats=1 threads=$(makeopts_jobs) verbose=1 - CC=$(tc-getCC) - CXX=$(tc-getCXX) - AR=$(tc-getAR) + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + AR="$(tc-getAR)" LLVM_CONFIG="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" PATH="${bootstrap_path}:${PATH}" CRYSTAL_PATH=src diff --git a/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch b/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch deleted file mode 100644 index 07b7dba7be6..00000000000 --- a/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch +++ /dev/null @@ -1,20 +0,0 @@ -Workaround tty corruption in crystal. - -Patch restores blocking mode of file desriptors -in exchange of potential runtime deadlocks -when dealing with stdio. - -Reported-by: Renich Bon Ciric -Bug: https://github.com/crystal-lang/crystal/issues/2065 -Bug: https://bugs.gentoo.org/616256 -diff --git a/src/compiler/crystal/stdio.cr b/src/compiler/crystal/stdio.cr -new file mode 100644 -index 000000000..e65f65089 ---- /dev/null -+++ b/src/compiler/crystal/stdio.cr -@@ -0,0 +1,5 @@ -+module Crystal -+ STDIN.blocking = true -+ STDOUT.blocking=true -+ STDERR.blocking = true -+end diff --git a/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch b/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch deleted file mode 100644 index d78927ab3ee..00000000000 --- a/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/spec/std/http/cookie_spec.cr -+++ b/spec/std/http/cookie_spec.cr -@@ -150,7 +150,10 @@ module HTTP - parse_set_cookie("a=1; domain=127.0.0.1; path=/; HttpOnly").domain.should eq "127.0.0.1" - end - -- it "parse max-age as seconds from Time.now" do -+ # unstable test: sometimes 'now - max-age=0' == 0.0: -+ # Failure/Error: delta.should be > 0.seconds -+ # Expected 00:00:00 to be > 00:00:00 -+ pending "parse max-age as seconds from Time.now" do - cookie = parse_set_cookie("a=1; max-age=10") - delta = cookie.expires.not_nil! - Time.now - delta.should be > 9.seconds diff --git a/dev-lang/crystal/metadata.xml b/dev-lang/crystal/metadata.xml index 233928bcc79..456e61401b3 100644 --- a/dev-lang/crystal/metadata.xml +++ b/dev-lang/crystal/metadata.xml @@ -18,17 +18,6 @@ <flag name="debug"> Build each module as a separate object file. Speeds build up. </flag> - <flag name="blocking-stdio-hack"> - Keep STDIO file descriptors in blocking mode. - </flag> - <flag name="yaml"> - Use the <pkg>dev-libs/libyaml</pkg> library to enable Crystal yaml - module - </flag> - <flag name="xml"> - Use the <pkg>dev-libs/libxml2</pkg> library to enable Crystal xml - module - </flag> </use> <upstream> <remote-id type="github">crystal-lang/crystal</remote-id> diff --git a/dev-lang/cxprolog/cxprolog-0.98.2.ebuild b/dev-lang/cxprolog/cxprolog-0.98.2.ebuild index 77c3bde5c40..3c949317f17 100644 --- a/dev-lang/cxprolog/cxprolog-0.98.2.ebuild +++ b/dev-lang/cxprolog/cxprolog-0.98.2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -32,6 +32,7 @@ S="${WORKDIR}"/${P} src_prepare() { eapply "${FILESDIR}"/${P}-portage.patch + eapply "${FILESDIR}"/${P}-printf-musl.patch eapply "${FILESDIR}"/${P}-test-io.patch eapply_user @@ -74,9 +75,9 @@ src_compile() { emake lib \ PREFIX=/usr \ TMP_DIR="${S}/tmp" \ - CC=$(tc-getCC) \ - CPP=$(tc-getCXX) \ - LD=$(tc-getLD) \ + CC="$(tc-getCC)" \ + CPP="$(tc-getCXX)" \ + LD="$(tc-getLD)" \ CFLAGS="${CFLAGS}" \ LDFLAGS="${LDFLAGS}" \ EXT_DEFINES="${CX_EXT_DEFINES}" \ diff --git a/dev-lang/cxprolog/files/cxprolog-0.98.2-printf-musl.patch b/dev-lang/cxprolog/files/cxprolog-0.98.2-printf-musl.patch new file mode 100644 index 00000000000..f55595461a8 --- /dev/null +++ b/dev-lang/cxprolog/files/cxprolog-0.98.2-printf-musl.patch @@ -0,0 +1,14 @@ +--- cxprolog-0.98.2.orig/src/Number.c 2016-01-23 22:07:48.000000000 +0100 ++++ cxprolog-0.98.2/src/Number.c 2022-05-21 10:03:54.275367970 +0200 +@@ -282,9 +282,9 @@ + { + #if HAS_LONG_DOUBLE_OPS + if( precision > 0 ) +- return GStrFormat("%%.%dllg", precision) ; ++ return GStrFormat("%%.%dLg", precision) ; + else +- return GStrFormat("%%.%dllf", -precision) ; ++ return GStrFormat("%%.%dLf", -precision) ; + #else + if( precision > 0 ) + return GStrFormat("%%.%dlg", precision) ; diff --git a/dev-lang/duktape/Manifest b/dev-lang/duktape/Manifest index a9ff63d0552..50e7d3685ae 100644 --- a/dev-lang/duktape/Manifest +++ b/dev-lang/duktape/Manifest @@ -1,3 +1 @@ -DIST duktape-2.4.0.tar.xz 1027744 BLAKE2B 9fb74b0586a5ccf5ef80d69955ab0ddb94428d463e300a558b5ab6e279d2c416b794434466604caa80581883df85f889694af1dd3ea0aaa4a3d53babb855f3ef SHA512 be6b7c73ae7c3419e8ced375fcff9680946e780b71d30e3be4e4e3b4b3a2710aa8f86530081c64958507a11fc215cacc5409c7d3a1d30b757838a00c748fa281 -DIST duktape-2.5.0.tar.xz 1031188 BLAKE2B 15d9190e9c723bacf8249ea31bf528793ca06e86d2697648192fee50b4ba2f7cf091e1392ac14a7a5c35b05a3ff5f200e0318cc8a4b873ad26f0c97683a2cb72 SHA512 230e298a91cb48407d7c2a4b7c85cf9d53151d550e2fd7ba6cb8f9115682abce295fb78a3c3cd22b4812ce86944dd6d28c2b25c3845668a17232e3a08ea63837 -DIST duktape-2.6.0.tar.xz 1035160 BLAKE2B 98155e1bf7e76aab37f5ccdb951d9d456df3d984ebed5058d8931e25317ffd94b4d95f08e102eb6eb2fa36ab6d2d60be6072b4101b7754e1c1440f7d6fb2c91b SHA512 d72a2aaa05391fa243861aca6ca6082f91a08b9c5d60c7b246d35d7161532b0048bb67bd8fec7996c700ee317ac2bb52e528582682e5425b0431757d8b1c5be4 +DIST duktape-2.7.0.tar.xz 1026524 BLAKE2B da5eea88758201177f32c5611a3757433ef1b0173d6430eff1f067abd7535f3e4b9c3717290fbd8475827a53f7a2a74818287a65e563f14e91761f5cd0fe30d5 SHA512 8ff5465c9c335ea08ebb0d4a06569c991b9dc4661b63e10da6b123b882e7375e82291d6b883c2644902d68071a29ccc880dae8229447cebe710c910b54496c1d diff --git a/dev-lang/duktape/duktape-2.4.0.ebuild b/dev-lang/duktape/duktape-2.4.0.ebuild deleted file mode 100644 index 40429cd2db2..00000000000 --- a/dev-lang/duktape/duktape-2.4.0.ebuild +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -DESCRIPTION="Embeddable Javascript engine" -HOMEPAGE="https://duktape.org" -SRC_URI="https://duktape.org/${P}.tar.xz" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="" - -DEPEND="" -RDEPEND="${DEPEND}" - -src_prepare() { - eapply_user - - # Set install path - sed -i "s#INSTALL_PREFIX = /usr/local#INSTALL_PREFIX = ${D::-1}/usr#" \ - Makefile.sharedlibrary || die "failed to set install path" - - # Edit pkgconfig - sed "s#VERSION#${PV}#" "${FILESDIR}/${PN}.pc" > "${S}/${PN}.pc" || die - sed -i "s#LIBDIR#$(get_libdir)#" "${S}/${PN}.pc" || die - - # Set lib folder - sed -i "s#(INSTALL_PREFIX)/lib#(INSTALL_PREFIX)/$(get_libdir)#" \ - Makefile.sharedlibrary || die - - mv Makefile.sharedlibrary Makefile || die "failed to rename makefile" -} - -src_install() { - dodir /usr/$(get_libdir) - dodir /usr/include - emake install - - insinto /usr/$(get_libdir)/pkgconfig/ - doins "${S}/${PN}.pc" -} diff --git a/dev-lang/duktape/duktape-2.5.0-r1.ebuild b/dev-lang/duktape/duktape-2.5.0-r1.ebuild deleted file mode 100644 index 3f817f751d2..00000000000 --- a/dev-lang/duktape/duktape-2.5.0-r1.ebuild +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit toolchain-funcs - -DESCRIPTION="Embeddable Javascript engine" -HOMEPAGE="https://duktape.org" -SRC_URI="https://duktape.org/${P}.tar.xz" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="amd64 ~arm ~arm64 ppc ~ppc64 x86" -IUSE="" - -DEPEND="" -RDEPEND="${DEPEND}" - -src_prepare() { - eapply_user - - # Set install path - sed -i "s#INSTALL_PREFIX = /usr/local#INSTALL_PREFIX = ${ED}/usr#" \ - Makefile.sharedlibrary || die "failed to set install path" - - # Edit pkgconfig - sed "s#VERSION#${PV}#" "${FILESDIR}/${PN}.pc" > "${S}/${PN}.pc" || die - sed -i "s#LIBDIR#$(get_libdir)#" "${S}/${PN}.pc" || die - - # Set lib folder - sed -i "s#(INSTALL_PREFIX)/lib#(INSTALL_PREFIX)/$(get_libdir)#" \ - Makefile.sharedlibrary || die - - mv Makefile.sharedlibrary Makefile || die "failed to rename makefile" -} - -src_compile() { - emake CC="$(tc-getCC)" -} - -src_install() { - dodir /usr/$(get_libdir) - dodir /usr/include - emake install - - insinto /usr/$(get_libdir)/pkgconfig/ - doins "${S}/${PN}.pc" -} diff --git a/dev-lang/duktape/duktape-2.6.0.ebuild b/dev-lang/duktape/duktape-2.6.0.ebuild deleted file mode 100644 index 2106a96a82c..00000000000 --- a/dev-lang/duktape/duktape-2.6.0.ebuild +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit toolchain-funcs - -DESCRIPTION="Embeddable Javascript engine" -HOMEPAGE="https://duktape.org" -SRC_URI="https://duktape.org/${P}.tar.xz" - -LICENSE="MIT" -# Upstream don't maintain binary compatibility -# https://github.com/svaarala/duktape/issues/1524 -SLOT="0/${PV}" -KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv x86" - -PATCHES=( - "${FILESDIR}/${PN}-2.6.0-respect-tc-env.patch" -) - -src_prepare() { - default - - # Set install path - sed -i "s#INSTALL_PREFIX = /usr/local#INSTALL_PREFIX = ${ED}/usr#" \ - Makefile.sharedlibrary || die "failed to set install path" - - # Edit pkgconfig - sed "s#VERSION#${PV}#" "${FILESDIR}/${PN}.pc" > "${S}/${PN}.pc" || die - sed -i "s#LIBDIR#$(get_libdir)#" "${S}/${PN}.pc" || die - - # Set lib folder - sed -i "s#(INSTALL_PREFIX)/lib#(INSTALL_PREFIX)/$(get_libdir)#" \ - Makefile.sharedlibrary || die - - mv Makefile.sharedlibrary Makefile || die "failed to rename makefile" -} - -src_compile() { - emake CC="$(tc-getCC)" -} - -src_install() { - dodir /usr/$(get_libdir) - dodir /usr/include - emake install - - insinto /usr/$(get_libdir)/pkgconfig/ - doins "${S}/${PN}.pc" -} diff --git a/dev-lang/duktape/duktape-2.7.0-r1.ebuild b/dev-lang/duktape/duktape-2.7.0-r1.ebuild new file mode 100644 index 00000000000..72e9787eeba --- /dev/null +++ b/dev-lang/duktape/duktape-2.7.0-r1.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="Embeddable Javascript engine" +HOMEPAGE="https://duktape.org" +SRC_URI="https://duktape.org/${P}.tar.xz" + +LICENSE="MIT" +# Upstream don't maintain binary compatibility +# https://github.com/svaarala/duktape/issues/1524 +SLOT="0/${PV}" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ppc ppc64 ~riscv ~s390 sparc x86" + +PATCHES=( + "${FILESDIR}"/${PN}-2.7.0-respect-tc-env.patch +) + +src_prepare() { + default + + mv Makefile.sharedlibrary Makefile || die "failed to rename makefile" +} + +src_compile() { + emake CC="$(tc-getCC)" +} + +src_install() { + dodir /usr/$(get_libdir) + dodir /usr/include + emake INSTALL_PREFIX="${ED}"/usr LIBDIR="/$(get_libdir)" install +} diff --git a/dev-lang/duktape/files/duktape-2.6.0-respect-tc-env.patch b/dev-lang/duktape/files/duktape-2.6.0-respect-tc-env.patch deleted file mode 100644 index cb92d0ab8d3..00000000000 --- a/dev-lang/duktape/files/duktape-2.6.0-respect-tc-env.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff --git a/Makefile.sharedlibrary b/Makefile.sharedlibrary -index 156ea96..a0997b1 100644 ---- a/Makefile.sharedlibrary -+++ b/Makefile.sharedlibrary -@@ -52,7 +52,7 @@ INSTALL_PREFIX = /usr/local - DUKTAPE_SRCDIR = ./src - #DUKTAPE_SRCDIR = ./src-noline - --CC = gcc -+CC ?= gcc - - .PHONY: all - all: libduktape.$(SO_REALNAME_SUFFIX) libduktaped.$(SO_REALNAME_SUFFIX) -@@ -62,11 +62,11 @@ all: libduktape.$(SO_REALNAME_SUFFIX) libduktaped.$(SO_REALNAME_SUFFIX) - # to $INSTALL_PREFIX/include on installation. - - libduktape.$(SO_REALNAME_SUFFIX): -- $(CC) -shared -fPIC -Wall -Wextra -Os -Wl,$(LD_SONAME_ARG),libduktape.$(SO_SONAME_SUFFIX) \ -+ $(CC) -shared -fPIC ${CFLAGS} ${LDFLAGS} -Wl,$(LD_SONAME_ARG),libduktape.$(SO_SONAME_SUFFIX) -lm \ - -o $@ $(DUKTAPE_SRCDIR)/duktape.c - - libduktaped.$(SO_REALNAME_SUFFIX): -- $(CC) -shared -fPIC -g -Wall -Wextra -Os -Wl,$(LD_SONAME_ARG),libduktaped.$(SO_SONAME_SUFFIX) \ -+ $(CC) -shared -fPIC ${CFLAGS} ${LDFLAGS} -Wl,$(LD_SONAME_ARG),libduktaped.$(SO_SONAME_SUFFIX) -lm \ - -o $@ $(DUKTAPE_SRCDIR)/duktape.c - - # Symlinks depend on platform conventions. -@@ -85,4 +85,4 @@ install: libduktape.$(SO_REALNAME_SUFFIX) libduktaped.$(SO_REALNAME_SUFFIX) - - CCOPTS = -I./examples/cmdline - duk: -- $(CC) $(CCOPTS) -I$(INSTALL_PREFIX)/include -L$(INSTALL_PREFIX)/lib -Wall -Wextra -Os -o $@ ./examples/cmdline/duk_cmdline.c -lduktape -lm -+ $(CC) $(CCOPTS) -I$(INSTALL_PREFIX)/include -L$(INSTALL_PREFIX)/lib ${CFLAGS} -o $@ ./examples/cmdline/duk_cmdline.c -lduktape -lm diff --git a/dev-lang/duktape/files/duktape-2.7.0-respect-tc-env.patch b/dev-lang/duktape/files/duktape-2.7.0-respect-tc-env.patch new file mode 100644 index 00000000000..f29f9c7073a --- /dev/null +++ b/dev-lang/duktape/files/duktape-2.7.0-respect-tc-env.patch @@ -0,0 +1,24 @@ +diff --git a/Makefile.sharedlibrary b/Makefile.sharedlibrary +index bf5c0cb..5862b4f 100644 +--- a/Makefile.sharedlibrary ++++ b/Makefile.sharedlibrary +@@ -70,11 +70,11 @@ all: libduktape.$(SO_REALNAME_SUFFIX) libduktaped.$(SO_REALNAME_SUFFIX) duktape. + # to $INSTALL_PREFIX/include on installation. + + libduktape.$(SO_REALNAME_SUFFIX): +- $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fPIC -Wall -Wextra -Os -Wl,$(LD_SONAME_ARG),libduktape.$(SO_SONAME_SUFFIX) \ ++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fPIC -Wall -Wextra -Wl,$(LD_SONAME_ARG),libduktape.$(SO_SONAME_SUFFIX) \ + -o $@ $(DUKTAPE_SRCDIR)/duktape.c + + libduktaped.$(SO_REALNAME_SUFFIX): +- $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fPIC -g -Wall -Wextra -Os -Wl,$(LD_SONAME_ARG),libduktaped.$(SO_SONAME_SUFFIX) \ ++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fPIC -Wall -Wextra -Wl,$(LD_SONAME_ARG),libduktaped.$(SO_SONAME_SUFFIX) \ + -o $@ $(DUKTAPE_SRCDIR)/duktape.c + + duktape.pc: +@@ -101,4 +101,4 @@ install: libduktape.$(SO_REALNAME_SUFFIX) libduktaped.$(SO_REALNAME_SUFFIX) dukt + + CCOPTS = -I./examples/cmdline + duk: +- $(CC) $(CCOPTS) -I$(INSTALL_PREFIX)/include -L$(INSTALL_PREFIX)$(LIBDIR) -Wall -Wextra -Os -o $@ ./examples/cmdline/duk_cmdline.c -lduktape -lm ++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(CCOPTS) -I$(INSTALL_PREFIX)/include -L$(INSTALL_PREFIX)$(LIBDIR) -Wall -Wextra -o $@ ./examples/cmdline/duk_cmdline.c -lduktape -lm diff --git a/dev-lang/duktape/files/duktape.pc b/dev-lang/duktape/files/duktape.pc deleted file mode 100644 index 56eff91ada9..00000000000 --- a/dev-lang/duktape/files/duktape.pc +++ /dev/null @@ -1,10 +0,0 @@ -prefix=/usr -exec_prefix=${prefix} -libdir=${exec_prefix}/LIBDIR -includedir=${prefix}/include - -Name: duktape -Description: Embeddable Javascript engine -Version: VERSION -Libs: -L${libdir} -lduktape -Cflags: -I${includedir} diff --git a/dev-lang/duktape/metadata.xml b/dev-lang/duktape/metadata.xml index 8dbab43f9b2..fa4a06426fc 100644 --- a/dev-lang/duktape/metadata.xml +++ b/dev-lang/duktape/metadata.xml @@ -1,8 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <!-- maintainer-needed --> - <upstream> - <remote-id type="github">svaarala/duktape</remote-id> - </upstream> + <maintainer type="person"> + <email>sam@gentoo.org</email> + <name>Sam James</name> + </maintainer> + <upstream> + <remote-id type="github">svaarala/duktape</remote-id> + </upstream> </pkgmetadata> diff --git a/dev-lang/elixir/Manifest b/dev-lang/elixir/Manifest index 290ee846579..1ae2fe58484 100644 --- a/dev-lang/elixir/Manifest +++ b/dev-lang/elixir/Manifest @@ -2,3 +2,4 @@ DIST elixir-1.11.4.tar.gz 2396885 BLAKE2B f63e835991420bce8cacd38a920637aa5656c0 DIST elixir-1.12.1.tar.gz 2458060 BLAKE2B 512f016cb7f064f2b90a4d2dae4ffaf957422f049322b5fbed1eef155687b1111de89df838c254cf123b904e64f746fc19175372166526c739d8a1d66f9abb0c SHA512 ecea8a95d05e85431c324c7e15fdd08639a52fa6031fb8ec671825debecd892d2258b3914fdd8417728be1a18202d211eeb19869797ad0fd022c6ec91cd05880 DIST elixir-1.12.2.tar.gz 2460047 BLAKE2B eebcb4b828bf445ece6bfceb40b228406a15b0d33fb6efcc2b34fa4a264d83c5d71aa9787c5b641e903fb97ba02da07f3edf76424136e3dab0248a65823f225f SHA512 4c19a6a0310606b3016b3699079dc5f667e348c86c92e7e998cbecbacd283f5f4ccdd3d83b757725ba637a39729e9d82673b596feee72e831d575630e2f3111a DIST elixir-1.12.3.tar.gz 2461828 BLAKE2B cdae9bd7f3463b89dd737ce943d57b7f9801bf382500a274332e1cb87902ecc37bd6e7a53af4dd5c1cd6e6d9d64171e226e676cd8023252c86fdf028d80dd383 SHA512 945e33ca9c3e50015531f87630c1bc1b9966acc64bbf7d01c8c4f8cfc104ee1e08113f572f0ad6a9f5e8ee37e33144e58b2ac33dc0a2b01e1355fc5f8b1b9329 +DIST elixir-1.13.3.tar.gz 2922197 BLAKE2B 47c98ffe24d11ea161e9b9fa55d3c8ee1c2234848707aeeaf715eb02a61b7d3e8784bf2599b4129a824edf004d1edda2f0a42252710d957cc0213202f86dc06d SHA512 88bf585e18bfefa54c1c771247ec489bc96d16cc0f88384e9c0c981ddb665cd7efccd49383b4de1fbbd823ecd0a5e65d76e3065c9ce3c45f2f4feccd01ace48e diff --git a/dev-lang/elixir/elixir-1.12.3.ebuild b/dev-lang/elixir/elixir-1.12.3.ebuild index 116a530e4d3..126b4810b36 100644 --- a/dev-lang/elixir/elixir-1.12.3.ebuild +++ b/dev-lang/elixir/elixir-1.12.3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -9,7 +9,7 @@ SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar LICENSE="Apache-2.0 ErlPL-1.1" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~sparc ~x86" +KEYWORDS="amd64 ~arm ~arm64 ~ia64 ppc ~sparc x86" IUSE="test" RESTRICT="!test? ( test )" diff --git a/dev-lang/elixir/elixir-1.13.3.ebuild b/dev-lang/elixir/elixir-1.13.3.ebuild new file mode 100644 index 00000000000..8379162f7b0 --- /dev/null +++ b/dev-lang/elixir/elixir-1.13.3.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Elixir programming language" +HOMEPAGE="https://elixir-lang.org" +SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0 ErlPL-1.1" +SLOT="0" +KEYWORDS="amd64 ~arm ~arm64 ~ia64 ppc ~sparc x86" +IUSE="test" + +RESTRICT="!test? ( test )" + +DEPEND=" + >=dev-lang/erlang-22:0=[ssl] +" +# 'mix' tool collides with sci-biology/phylip, bug #537514 +RDEPEND="${DEPEND} + !!sci-biology/phylip +" +DEPEND+=" + test? ( dev-vcs/git ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.9.1-disable-network-tests.patch + "${FILESDIR}"/${PN}-1.10.3-no-Q.patch + "${FILESDIR}"/${PN}-1.10.3-epmd-daemon.patch +) + +src_install() { + emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="${EPREFIX}/usr" install + dodoc README.md CHANGELOG.md CODE_OF_CONDUCT.md +} diff --git a/dev-lang/elixir/metadata.xml b/dev-lang/elixir/metadata.xml index 5a135856200..10b86bcffd2 100644 --- a/dev-lang/elixir/metadata.xml +++ b/dev-lang/elixir/metadata.xml @@ -2,8 +2,8 @@ <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person" proxied="yes"> - <email>styx.mp@gmail.com</email> - <name>Mikhail</name> + <email>contact@hacktivis.me</email> + <name>Haelwenn (lanodan) Monnier</name> </maintainer> <maintainer type="project" proxied="proxy"> <email>proxy-maint@gentoo.org</email> @@ -19,8 +19,6 @@ <doc lang="en"> http://elixir-lang.org/docs.html </doc> - <remote-id type="github"> - elixir-lang/elixir - </remote-id> + <remote-id type="github">elixir-lang/elixir</remote-id> </upstream> </pkgmetadata> diff --git a/dev-lang/erlang/Manifest b/dev-lang/erlang/Manifest index d7285cf755f..7adc2a68e1e 100644 --- a/dev-lang/erlang/Manifest +++ b/dev-lang/erlang/Manifest @@ -1,14 +1,11 @@ -DIST erlang-23.3.4.8.tar.gz 57242259 BLAKE2B 9959fd9ae0d8a0a4639ad0ff9f5a16079cdd7af525e0dc1189a3cc6741f653e511c84da77344465e7f365a8cbc07f691d3cfec23b062c2e274dbb8d4911733a2 SHA512 14449701a88b18103266cd562cad8b0f10e7abb153c7fe2d39792c232a11c5c5ea12e75eb17bac57e30cc43d1e907ae988a1beb662b4d7309f35231c76bdb381 -DIST erlang-23.3.4.tar.gz 56664814 BLAKE2B ef8aa8d5a6fd1efc02a35459d1cb15eecf5f948127266bf782544e1da9a59765aca15070ea92df5558a4de017cc810e3542e2393e9470243fc6d9be13e9f37b6 SHA512 c8c5a9676163058276c703a0db0373508fad0ed9dff0aa9806ce59115ca766ff1d343c5a3917a920b249655fe188b974482ff378e9173c9fe00ea3907e618da5 -DIST erlang-24.0.2.tar.gz 58878378 BLAKE2B c2ea65cac39b654d9037ea9fcb47eb6eea96dec2483378f414bc33475e850121c1adaa30ea880070624496be9779539f98c864b0dd6eb92d3c4badaa121353d1 SHA512 d85e3e6a4177ac8c696dd666183f624065a89d35aa7f031cd6a7b105e0d1f9007de8d413880df47daf8f695485d952a81a14a01313b52f66534c1e5bd050093b -DIST erlang-24.1.4.tar.gz 59009229 BLAKE2B 484ad90509a618098dc1c3fc2ae7d2b44dc7735399f3ba2138d3c755b337e7c513083724329581e72968f6a5c33c9767f0192a1f5d21d35a3a69d5b4e151def2 SHA512 b5cf4fbce07b26b97ec8af62d1b86315227ff369f27c996a6df08b322b76721539a55664dcd4ffec49ff77efadc8e4f0c967c064bb4e1f5cdfa2db2eaa02620f -DIST erlang-24.1.7.tar.gz 59014237 BLAKE2B e32e963911c574fb7927d870029912b8de2cdde8303ee12cdcca8d345eddaa76ee16862a07c6d5013a775c80db6abb744c6be3447dad8126d0aa26ac4d305043 SHA512 052758df429af0971c9d78a4f56e2f333379510db3efbb103e6b869584e54af438b2d43e5172412e0fc624ea68b1df6be84debdae51777a7f4aa327b39b2248f -DIST erlang-24.2.tar.gz 59094451 BLAKE2B 4b1673570e97fe399dbdb5ab2095ba38f08b684c6a0cf7ad47f628d900802751c2db11d5de6f267aeb8c77d27634c2642f96045893acf9f1c32de3e4fe3f3ffb SHA512 88450f935579677eb0d43fd25e5f45b1e78ff8e9c6455d87198decbbb675f90c2e87757b3ee33b43fafb87fced20e984220be9b6b70f8cb8f6d84e4743764495 +DIST erlang-23.3.4.12.tar.gz 57278064 BLAKE2B 3620dd2e49cfd75e49bf573ad1a8f8952c232ce2bf734ee845d8e8bb26053e34df96b472a9490c1cdf77ae6c106732f6a68b2f5d31808fd941bddb616004819f SHA512 d4f468393116d2d24a5170d7efe04305d221baccccfc273d4740b701ec23d1e55268cc49eeb99722afa636431e6e50faa5c11758484aa71e29c2fb3ed7c2ad25 +DIST erlang-23.3.4.14.tar.gz 57288870 BLAKE2B 64c53eac18f970d7b6e560ec678c34cab7e9ecd77af1789843c17c072e05034bef00d0985a294b118890f30cd40e429db19d309626172deabcd2ee1328f04584 SHA512 1a1e5eebd471a919dbbbdfcdea32285d3c8f51d5ba4a4f16081c1ffc00cc118e2056ffb84040147ee70175a3cad4419501ec892dccd59cfa133d473eee3f00e9 +DIST erlang-24.3.3.tar.gz 59296830 BLAKE2B 1792274c77001b6f49e84f1584620a247cf3acdf075a8d581403f31a2b4cfe32e7b8104d325f3c1a999595d94484cb74b7996a35599e9ef8935931a133a554f6 SHA512 5e8ce0ebd50c1c67ca29ce9405fc18f5461793b20a1732418bc8fac404078044deb72526682aab92ee3e737bc9dc9e94e6be162a088e2cb7cc68c14b1d76454e +DIST erlang-24.3.4.tar.gz 59298534 BLAKE2B 66e8cb2148392229fb24fb0994b09510ede89229b90708df7149393d4f522ccc98774fad9f924d2c1f806f099303e097e05b1f91348674e86057c0a8952e133e SHA512 bd3fb31d69ef64a87fc436f610409308bdb44493422974ae563bdf001dabd0a5aadfcdb0334b430ebb385f7e91f629e793fdf03801ab48df5f265472e3af540a +DIST erlang-25.0.tar.gz 59574655 BLAKE2B fddcd0d099b84981862b06397dcd6d1a53e11c5624f5e8e60ef0caa1db215a8447b6a9eaecd56761d3d7d213ca40b5e7e7b0860d2cbf0d547f5dfcf9e9edd08b SHA512 36f2d36c5d2d5dcd28c6f817f3dc008c902838115b8830a684f9d9290017074cbfbb616d4a28f02fedaab097e73183c86cef1ce28f656e0852df0a95c30c5639 DIST erlang_doc_html_23.3.tar.gz 36224657 BLAKE2B 7e2a3e16f4cfa0f15c01074740e02af7a45b480b4a94e764463717658ab7e5d0281f928c3ec585582b10168645e3e06cfe72cf6a0ba1b88f539b80f2b7ad99be SHA512 8be4aae46839239604b875b39339e7b6b6c677c099b3d749d5f1041c4508c1c3b4aa8136a93df12b1e5cb6333ef907276f5965c9726ed2b9e77a6043c8ef53b1 -DIST erlang_doc_html_24.0.tar.gz 39731398 BLAKE2B 8a9fe3acb4cc13691e16c477cf89e8298df1a99bbe6a6c9e59e3c34248ecdc21077835951087b5a5bbb23ddb28f3bd7ab8b058fe64ce56c342b825a6c0ef8948 SHA512 453f8a9cf779a4f43966615433afc3be3aae7a571acf45974947bd720a331ca05949bc310de5f3b33b72d274971103ede56875bbfe757ba17f903510f690d97e -DIST erlang_doc_html_24.1.tar.gz 39873142 BLAKE2B 5e4bea792be6332a2186a270466a61bda5f37b5a066638ae00545433bf5bd11f84fba7a0ac210a9104e5322fd372759e53d0abd63468c59a3a2c59a3eaddd5ca SHA512 6ace8d8ba4b74e3269e71880f73bd296769acd8778f13fd945b80e57a694d70929d3e7a3263ff3c154190679d88fbb9855e201212e504de4a261e4182662e99a -DIST erlang_doc_html_24.2.tar.gz 36604264 BLAKE2B edc870e53cb89a42ec1022b4250942ab03d47d81dfa86d767c179ef89ec67e2ed7df2274acfe2e1469e5344691e9a0a33174c5237e48e2fc6203518c39978d19 SHA512 de3957676970419953043cbf130194b1bfcb0f2664e2a6148ccfdf7fbd3bc797fa76a19f2e8362e176afd81408b937c5b8b0b126703326b757cfaf396d5e3e79 +DIST erlang_doc_html_24.3.tar.gz 36645792 BLAKE2B ef90b7d05ed43656ab1ffdbbd0833c9da08a867ad7a99ec0f7f1eb59697c1f9cd5ccd150b2e564af80b2098f063da0c76121d4444b5444e603581442ad1c7bc8 SHA512 b8d3832ffdbdede656b362d719474f7b9ff04a32ea7235e77d63755629cf9305c203cd6cd9ae089171b2cee694f9641d6ed5d0197e2acf893a31d25696096f1e +DIST erlang_doc_html_25.0.tar.gz 37051192 BLAKE2B 2d79ccb3b850b199de0a7da83c6358b9f3cf63826aeddb54307640129c1f96689200895c3c3ec52f503362945e7c6083a7317cd4ea57dc7d6772844801843c74 SHA512 6ce8423705f86fb2cd403e9c51089d7b2569ba93498f9143b5dbac85eb10b403c4bc948f8a68e55c40116cdd9a93f050bb037f94fc3c8651175d9065d2c598be DIST erlang_doc_man_23.3.tar.gz 1456501 BLAKE2B 414bedee0e316d97b26d9d6418b799a9434a22e9980e7d3a83e2478d184d63d1633c0e10d0e180d929a3cacd82b4d703be86cbc8e99996037f6b37ea122f7a8c SHA512 6c661c210ffec4752afe624fa46700a0f62cc6589b74b859ab1dfde77d289e992988ac8744f7b4126d7512cd6d0aab3321f710a6324552b259bd7acd5b54a05e -DIST erlang_doc_man_24.0.tar.gz 1666152 BLAKE2B aaef8165322f39f7410840eafe562ec5038d9c89b4fa99b3b1d5748ba70fe755ba732de403dd916328e1fdcec895e2a347db4fb8c8837b5e41155439c9c54ef6 SHA512 7251f6eeb0534cc8538236a2c4be9d732bf0a05ba6832f9b3859116f9148e469d004331924c7187b07204798afb66067bfd321c8905000c355775927e5841918 -DIST erlang_doc_man_24.1.tar.gz 1673084 BLAKE2B 092c7870914e108e3fe06b68be6c54cff508cd938b5b510ca9a7c946b786e5725ffa1f2c87282a36480a9c1c7d7c899e8118546102a98136f813309a7f0bd334 SHA512 a11361811c5d58a431f4096866a45755f771f0519bbc992fc71e3c760d81bdc9cf636e189aee72c602a5f02cbf6c7bb6cc442cdb71fd06e0c4097bdf6ffe92ec -DIST erlang_doc_man_24.2.tar.gz 1673926 BLAKE2B 17cf3c1e296c883e9c930cd540d439f7dd71a40048bbe80efd6f46dd5b4d9faf51177d2bb133f782742b0b367c8f54c27ed2b2cce277372a98dd55bb629f3b55 SHA512 359bfca20835eb2a6b6d199e2b108537c453369896b8bd4bd7db05c797421a734c31aea41ddf819b703718353f43186c5fd8f37d1a7d8624e767a41a922c01b9 +DIST erlang_doc_man_24.3.tar.gz 1680242 BLAKE2B 3311eb6ed6dcaa2d611adf7a08269f67e3f31d106f6b6d04e5cc91efa8efc382ddb6b230f218fa543390bf4ec37f477e0c4979c82632ebfb6ccda8c5de1fbc41 SHA512 72876911a1ec82071225e7b71de0462254becd64892a5459239b9e44b20601f6b6990a12cd36a8320e81e5307bcf7b5e5057e42baec12403be4a0eda00cdf62c +DIST erlang_doc_man_25.0.tar.gz 1711510 BLAKE2B 743efa8edbeeb99e37e227c1e5e3be1825a391007e1c220ba22163c528edda8941b1dca0951cc02aff016dda0d52f3a6ff4fdbbbe279ce067c7a1993997ce6b4 SHA512 c6b6490961228893253e11d5bb88cbd30ba2cb1c13819a85db6699b437f0327fb55962accb6b602a4ec5ffc423882205d05873b064fb3e4c52950a423706fb09 diff --git a/dev-lang/erlang/erlang-23.3.4.ebuild b/dev-lang/erlang/erlang-23.3.4.12.ebuild index fd509078eb6..d87e1a997eb 100644 --- a/dev-lang/erlang/erlang-23.3.4.ebuild +++ b/dev-lang/erlang/erlang-23.3.4.12.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 diff --git a/dev-lang/erlang/erlang-23.3.4.8.ebuild b/dev-lang/erlang/erlang-23.3.4.14-r1.ebuild index 257dbb6d4a2..4ec3b42e084 100644 --- a/dev-lang/erlang/erlang-23.3.4.8.ebuild +++ b/dev-lang/erlang/erlang-23.3.4.14-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -47,6 +47,7 @@ S="${WORKDIR}/otp-OTP-${PV}" PATCHES=( "${FILESDIR}"/18.2.1-wx3.0.patch "${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch + "${FILESDIR}"/${PN}-23.3.4.14-emacs28-compat.patch ) SITEFILE=50"${PN}"-gentoo.el diff --git a/dev-lang/erlang/erlang-24.0.2.ebuild b/dev-lang/erlang/erlang-24.0.2.ebuild deleted file mode 100644 index a953a96263c..00000000000 --- a/dev-lang/erlang/erlang-24.0.2.ebuild +++ /dev/null @@ -1,162 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -WX_GTK_VER="3.0-gtk3" - -inherit elisp-common java-pkg-opt-2 systemd toolchain-funcs wxwidgets - -# NOTE: If you need symlinks for binaries please tell maintainers or -# open up a bug to let it be created. - -UPSTREAM_V="$(ver_cut 1-2)" - -DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)" -HOMEPAGE="https://www.erlang.org/" -SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz - http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz - doc? ( http://erlang.org/download/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )" - -LICENSE="Apache-2.0" -# We use this subslot because Compiled HiPE Code can be loaded on the exact -# same build of ERTS that was used when compiling the code. See -# http://erlang.org/doc/system_principles/misc.html for more information. -SLOT="0/${PV}" -KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="doc emacs java +kpoll odbc sctp ssl systemd tk wxwidgets" - -RDEPEND=" - acct-group/epmd - acct-user/epmd - sys-libs/ncurses:0 - sys-libs/zlib - emacs? ( >=app-editors/emacs-23.1:* ) - java? ( >=virtual/jdk-1.8:* ) - odbc? ( dev-db/unixODBC ) - sctp? ( net-misc/lksctp-tools ) - ssl? ( >=dev-libs/openssl-0.9.7d:0= ) - systemd? ( sys-apps/systemd ) - wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] ) -" -DEPEND="${RDEPEND} - dev-lang/perl -" - -S="${WORKDIR}/otp-OTP-${PV}" - -PATCHES=( - "${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch - "${FILESDIR}"/${PN}-24.0.2-serial-configure.patch -) - -SITEFILE=50"${PN}"-gentoo.el - -src_prepare() { - default - - tc-export AR CPP CXX LD - - # bug #797886: erlang's VM does unsafe casts for ints - # to pointers and back. This breaks on gcc-11 -flto. - append-flags -fno-strict-aliasing -} - -src_configure() { - use wxwidgets && setup-wxwidgets - - local myconf=( - --disable-builtin-zlib - - # don't search for static zlib - --with-ssl-zlib=no - - $(use_enable kpoll kernel-poll) - $(use_with java javac) - $(use_enable sctp) - $(use_with ssl ssl) - $(use_enable ssl dynamic-ssl-lib) - $(use_enable systemd) - $(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null") - ) - econf "${myconf[@]}" -} - -src_compile() { - emake - - if use emacs ; then - pushd lib/tools/emacs &>/dev/null || die - elisp-compile *.el - popd &>/dev/null || die - fi -} - -extract_version() { - local path="$1" - local var_name="$2" - sed -n -e "/^${var_name} = \(.*\)$/s::\1:p" "${S}/${path}/vsn.mk" || die "extract_version() failed" -} - -src_install() { - local erl_libdir_rel="$(get_libdir)/erlang" - local erl_libdir="/usr/${erl_libdir_rel}" - local erl_interface_ver="$(extract_version lib/erl_interface EI_VSN)" - local erl_erts_ver="$(extract_version erts VSN)" - local my_manpath="/usr/share/${PN}/man" - - [[ -z "${erl_erts_ver}" ]] && die "Couldn't determine erts version" - [[ -z "${erl_interface_ver}" ]] && die "Couldn't determine interface version" - - emake INSTALL_PREFIX="${D}" install - - if use doc ; then - # Note: we explicitly install docs into: - # /usr/share/doc/${PF}/{doc,lib,erts-*} - # To maintain that layout we gather everything in 'html-docs'. - # See bug #684376. - mkdir html-docs || die - mv "${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-* html-docs/ || die - local DOCS=( "AUTHORS" "HOWTO"/* "README.md" "CONTRIBUTING.md" html-docs/. ) - docompress -x /usr/share/doc/${PF} - else - local DOCS=("README.md") - fi - - einstalldocs - - dosym "../${erl_libdir_rel}/bin/erl" /usr/bin/erl - dosym "../${erl_libdir_rel}/bin/erlc" /usr/bin/erlc - dosym "../${erl_libdir_rel}/bin/escript" /usr/bin/escript - dosym "../${erl_libdir_rel}/lib/erl_interface-${erl_interface_ver}/bin/erl_call" /usr/bin/erl_call - dosym "../${erl_libdir_rel}/erts-${erl_erts_ver}/bin/beam.smp" /usr/bin/beam.smp - - ## Clean up the no longer needed files - rm "${ED}/${erl_libdir}/Install" || die - - insinto "${my_manpath}" - doins -r "${WORKDIR}"/man/* - # extend MANPATH, so the normal man command can find it - # see bug 189639 - newenvd - "90erlang" <<-_EOF_ - MANPATH="${my_manpath}" - _EOF_ - - if use emacs ; then - elisp-install erlang lib/tools/emacs/*.{el,elc} - sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \ - "${FILESDIR}/${SITEFILE}" > "${T}/${SITEFILE}" || die - elisp-site-file-install "${T}/${SITEFILE}" - fi - - newinitd "${FILESDIR}"/epmd.init-r2 epmd - newconfd "${FILESDIR}"/epmd.confd-r2 epmd - use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service -} - -pkg_postinst() { - use emacs && elisp-site-regen -} - -pkg_postrm() { - use emacs && elisp-site-regen -} diff --git a/dev-lang/erlang/erlang-24.1.7.ebuild b/dev-lang/erlang/erlang-24.3.3.ebuild index ae108c6fba5..1d539c7aa9b 100644 --- a/dev-lang/erlang/erlang-24.1.7.ebuild +++ b/dev-lang/erlang/erlang-24.3.3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -14,15 +14,15 @@ UPSTREAM_V="$(ver_cut 1-2)" DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)" HOMEPAGE="https://www.erlang.org/" SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz - http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz - doc? ( http://erlang.org/download/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )" + https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz + doc? ( https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )" LICENSE="Apache-2.0" # We use this subslot because Compiled HiPE Code can be loaded on the exact # same build of ERTS that was used when compiling the code. See # http://erlang.org/doc/system_principles/misc.html for more information. SLOT="0/${PV}" -KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" IUSE="doc emacs java +kpoll odbc sctp ssl systemd tk wxwidgets" RDEPEND=" diff --git a/dev-lang/erlang/erlang-24.2.ebuild b/dev-lang/erlang/erlang-24.3.4.ebuild index ae108c6fba5..d08bb337a5c 100644 --- a/dev-lang/erlang/erlang-24.2.ebuild +++ b/dev-lang/erlang/erlang-24.3.4.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -14,15 +14,15 @@ UPSTREAM_V="$(ver_cut 1-2)" DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)" HOMEPAGE="https://www.erlang.org/" SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz - http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz - doc? ( http://erlang.org/download/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )" + https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz + doc? ( https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )" LICENSE="Apache-2.0" # We use this subslot because Compiled HiPE Code can be loaded on the exact # same build of ERTS that was used when compiling the code. See # http://erlang.org/doc/system_principles/misc.html for more information. SLOT="0/${PV}" -KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" IUSE="doc emacs java +kpoll odbc sctp ssl systemd tk wxwidgets" RDEPEND=" diff --git a/dev-lang/erlang/erlang-24.1.4.ebuild b/dev-lang/erlang/erlang-25.0.ebuild index e329ba63eea..d08bb337a5c 100644 --- a/dev-lang/erlang/erlang-24.1.4.ebuild +++ b/dev-lang/erlang/erlang-25.0.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 WX_GTK_VER="3.0-gtk3" -inherit elisp-common java-pkg-opt-2 systemd toolchain-funcs wxwidgets +inherit elisp-common flag-o-matic java-pkg-opt-2 systemd toolchain-funcs wxwidgets # NOTE: If you need symlinks for binaries please tell maintainers or # open up a bug to let it be created. @@ -14,15 +14,15 @@ UPSTREAM_V="$(ver_cut 1-2)" DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)" HOMEPAGE="https://www.erlang.org/" SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz - http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz - doc? ( http://erlang.org/download/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )" + https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz + doc? ( https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )" LICENSE="Apache-2.0" # We use this subslot because Compiled HiPE Code can be loaded on the exact # same build of ERTS that was used when compiling the code. See # http://erlang.org/doc/system_principles/misc.html for more information. SLOT="0/${PV}" -KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" IUSE="doc emacs java +kpoll odbc sctp ssl systemd tk wxwidgets" RDEPEND=" diff --git a/dev-lang/erlang/files/erlang-23.3.4.14-emacs28-compat.patch b/dev-lang/erlang/files/erlang-23.3.4.14-emacs28-compat.patch new file mode 100644 index 00000000000..32844d8dd1a --- /dev/null +++ b/dev-lang/erlang/files/erlang-23.3.4.14-emacs28-compat.patch @@ -0,0 +1,137 @@ +From 22a7522ef3f0f3c13618214e61f60cb01d80eef4 Mon Sep 17 00:00:00 2001 +From: Justin Davis <jrcd83@gmail.com> +Date: Tue, 26 Oct 2021 13:28:16 -0400 +Subject: [PATCH] Fix emacs erlang-mode: xref switched to CL-Lib + +Fix for GitHub issue #5314. + +Xref is a package which is also bundled with emacs: +http://elpa.gnu.org/packages/xref.html + +Xref switched its own internally defined classes from EIEIO to +CL-lib (emacs-mirror/emacs@86da812afb2572c7fead2bb07570b976bffd7c55). +erlang-mode subclasses xref-file-location in order to add a function +arity slot to xrefs. + +If xref-file-location is a class, use defclass to subclass it. Otherwise +use cl-defstruct. Avoids referencing make-instance, slot-value functions +from EIEIO. Only references constructor, accessor, and predicate +functions. Updates comments that make references to classes. + +Testing: +- cd into lib/tools/emacs. +- Run the tests included with erlang-mode from the shell: + emacs -Q -batch -L . -l erlang.el -l erlang-test.el \ + -f ert-run-tests-batch-and-exit +- Copy xref.el from the xref package (>=1.3.1) into the + lib/tools/emacs directory. +- Run the tests again. This will load xref.el automatically + and use the new interface. +--- + lib/tools/emacs/erlang.el | 48 +++++++++++++++++++++++++-------------- + 1 file changed, 31 insertions(+), 17 deletions(-) + +diff --git a/lib/tools/emacs/erlang.el b/lib/tools/emacs/erlang.el +index 69a5fdaeb55..40fe32689e7 100644 +--- a/lib/tools/emacs/erlang.el ++++ b/lib/tools/emacs/erlang.el +@@ -5120,8 +5120,8 @@ about Erlang modules." + ;; + ;; As mentioned this xref implementation is based on the etags xref + ;; implementation. But in the cases where arity is considered the +-;; etags information structures (class xref-etags-location) will be +-;; translated to our own structures which include arity (class ++;; etags information structures (struct xref-etags-location) will be ++;; translated to our own structures which include arity (struct + ;; erlang-xref-location). This translation is started in the function + ;; `erlang-refine-xrefs'. + +@@ -5129,6 +5129,11 @@ about Erlang modules." + ;; with xref items with xref-etags-location and some deal with xref + ;; items with erlang-xref-location. + ++;; NOTE: Around Sept 2021, the xrefs package changed all of its defined types ++;; (i.e. xref-location, xref-file-location) from EIEIO classes to CL-Lib ++;; structures. These are both supported. Older Emacsen with earlier versions of ++;; xref will continue to use defclass. Newer Emacsen will use cl-defstruct. ++ + (defun erlang-etags--xref-backend () 'erlang-etags) + + (defun erlang-soft-require (feature) +@@ -5137,6 +5142,7 @@ about Erlang modules." + + (when (and (erlang-soft-require 'xref) + (erlang-soft-require 'cl-generic) ++ (erlang-soft-require 'cl-lib) + (erlang-soft-require 'eieio) + (erlang-soft-require 'etags)) + ;; The purpose of using eval here is to avoid compilation +@@ -5165,10 +5171,20 @@ about Erlang modules." + (let ((erlang-replace-etags-tags-completion-table t)) + (tags-completion-table))) + +- (defclass erlang-xref-location (xref-file-location) +- ((arity :type fixnum :initarg :arity +- :reader erlang-xref-location-arity)) +- :documentation "An erlang location is a file location plus arity.") ++ ;; Xref 1.3.1 bundled with Emacs 28+ switched from using EIEIO classes to ++ ;; using CL-Lib structs. ++ (if (find-class 'xref-file-location) ++ (progn ++ (defclass erlang-xref-location (xref-file-location) ++ ((arity :type fixnum :initarg :arity ++ :reader erlang-xref-location-arity)) ++ :documentation "An erlang location is a file location plus arity.") ++ ;; Make a constructor with the same name that a CL structure would have. ++ (defalias 'make-erlang-xref-location 'erlang-xref-location)) ++ (cl-defstruct (erlang-xref-location ++ (:include xref-file-location)) ++ "An erlang location is a file location plus arity." ++ (arity 0 :type fixnum))) + + ;; This method definition only calls the superclass which is + ;; the default behaviour if it was not defined. It is only +@@ -5331,8 +5347,7 @@ is non-nil then TAG is a regexp." + xrefs + (when (and xrefs + (fboundp 'xref-item-location) +- (fboundp 'xref-location-group) +- (fboundp 'slot-value)) ++ (fboundp 'xref-location-group)) + (let (files) + (cl-loop for xref in xrefs + for loc = (xref-item-location xref) +@@ -5357,7 +5372,8 @@ is non-nil then TAG is a regexp." + t)))) + + (defun erlang-xrefs-in-file (file kind tag is-regexp) +- (when (fboundp 'make-instance) ++ (when (and (fboundp 'make-erlang-xref-location) ++ (fboundp 'xref-make)) + (with-current-buffer (find-file-noselect file) + (save-excursion + (goto-char (point-min)) +@@ -5369,17 +5385,15 @@ is non-nil then TAG is a regexp." + for name = (match-string-no-properties 1) + for arity = (save-excursion + (erlang-get-arity)) +- for loc = (make-instance 'erlang-xref-location +- :file file +- :line (line-number-at-pos) +- :column 0 +- :arity arity) ++ for loc = (make-erlang-xref-location ++ :file file ++ :line (line-number-at-pos) ++ :column 0 ++ :arity arity) + for sum = (erlang-xref-summary kind name arity) + when (and arity + (not (eq arity last-arity))) +- collect (make-instance 'xref-item +- :summary sum +- :location loc) ++ collect (xref-make sum loc) + do (setq last-arity arity))))))) + + (defun erlang-xref-summary (kind tag arity) diff --git a/dev-lang/erlang/metadata.xml b/dev-lang/erlang/metadata.xml index 12eaef01330..3f54798ac7d 100644 --- a/dev-lang/erlang/metadata.xml +++ b/dev-lang/erlang/metadata.xml @@ -1,7 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <!-- maintainer-needed --> + <maintainer type="person" proxied="yes"> + <email>jpds@protonmail.com</email> + <name>Jonathan Davies</name> + </maintainer> + <maintainer type="person"> + <email>matthew@gentoo.org</email> + <name>Matthew Smith</name> + </maintainer> <use> <flag name="hipe">HIgh Performance Erlang extension</flag> <flag name="kpoll">Enable kernel polling support</flag> diff --git a/dev-lang/execline/Manifest b/dev-lang/execline/Manifest index b10c290c5f7..29abd6664f7 100644 --- a/dev-lang/execline/Manifest +++ b/dev-lang/execline/Manifest @@ -1 +1,2 @@ -DIST execline-2.6.1.1.tar.gz 92495 BLAKE2B 6b901819e49c424d52ce2d87b6b42aec1595fb97fef7905e93eca2f3ac029a35f826e37e519e2c6ab9e2638f625a446db363f5fbfd5530a93b52c831660b7a11 SHA512 5826abb407742ad8a2cd48c09b966827d129dda420db07c893cd7a27e806441d7b117a0c61fdc0222e527aada976da26e4779a4896fc084cdf6efa8294ffac5b +DIST execline-2.8.2.0.tar.gz 98438 BLAKE2B 66860a1abb3f8078bd625d13dda2caec71bc41d54a35275548897018818b8b881b37d4ab4f4dd7a9a36386802f1f830d345e7ade0e9638b49acc80314ae60ae1 SHA512 9a2c21fbddfc4bce69857fa906fcbb7b17b0cd1009a33a9f3bbcce69ff443af82704d74b792e2d4393eb6d7de9888a5bc74ff208c31485d3398b0dea07368a15 +DIST execline-2.8.3.0.tar.gz 98448 BLAKE2B f3dc1a194838f7973044b2d86e6026936697be4f34f9b01f5dfc98ddabfbde3dad7cfe95afd63f65cb266994b922d7d4c94368cf5dca2a2494fd0033b4ed6032 SHA512 40f4697a8165616848ed36dcb31a5859dee55a47439d13908a387550e8f53ca8fffe3bcb3e0462cb93f694c8fb483b14e152f92e6f9d0d536cdab9d94be9c53a diff --git a/dev-lang/execline/execline-2.6.1.1.ebuild b/dev-lang/execline/execline-2.6.1.1.ebuild deleted file mode 100644 index e932435f75e..00000000000 --- a/dev-lang/execline/execline-2.6.1.1.ebuild +++ /dev/null @@ -1,42 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="A non-interactive scripting language" -HOMEPAGE="https://www.skarnet.org/software/execline/" -SRC_URI="https://www.skarnet.org/software/${PN}/${P}.tar.gz" - -LICENSE="ISC" -SLOT="0/$(ver_cut 1-2)" -KEYWORDS="amd64 ~arm x86" -IUSE="static static-libs" - -REQUIRED_USE="static? ( static-libs )" - -RDEPEND=">=dev-libs/skalibs-2.9.3.0:=[static-libs?]" -DEPEND="${RDEPEND}" - -HTML_DOCS=( doc/. ) - -src_prepare() { - default - - # Avoid QA warning for LDFLAGS addition; avoid overriding -fstack-protector - sed -i -e 's/.*-Wl,--hash-style=both$/:/' -e '/-fno-stack-protector$/d' \ - configure || die -} - -src_configure() { - econf \ - --bindir=/bin \ - --dynlibdir=/usr/$(get_libdir) \ - --libdir=/usr/$(get_libdir)/${PN} \ - --with-dynlib=/usr/$(get_libdir) \ - --with-lib=/usr/$(get_libdir)/skalibs \ - --with-sysdeps=/usr/$(get_libdir)/skalibs \ - --enable-shared \ - $(use_enable static allstatic) \ - $(use_enable static static-libc) \ - $(use_enable static-libs static) -} diff --git a/dev-lang/execline/execline-2.8.2.0.ebuild b/dev-lang/execline/execline-2.8.2.0.ebuild new file mode 100644 index 00000000000..ba27a4716f2 --- /dev/null +++ b/dev-lang/execline/execline-2.8.2.0.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="A non-interactive scripting language" +HOMEPAGE="https://www.skarnet.org/software/execline/" +SRC_URI="https://www.skarnet.org/software/${PN}/${P}.tar.gz" + +LICENSE="ISC" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="amd64 ~arm x86" +IUSE="static static-libs" + +REQUIRED_USE="static? ( static-libs )" + +RDEPEND=">=dev-libs/skalibs-2.10.1.0:=[static-libs?]" +DEPEND="${RDEPEND}" + +HTML_DOCS=( doc/. ) + +src_prepare() { + default + + # Avoid QA warning for LDFLAGS addition + sed -i -e 's/.*-Wl,--hash-style=both$/:/' configure || die + + sed -i -e '/AR := /d' -e '/RANLIB := /d' Makefile || die +} + +src_configure() { + tc-export AR CC RANLIB + + local myconf=( + --bindir=/bin + --dynlibdir=/usr/$(get_libdir) + --libdir=/usr/$(get_libdir)/${PN} + --with-dynlib=/usr/$(get_libdir) + --with-lib=/usr/$(get_libdir)/skalibs + --with-sysdeps=/usr/$(get_libdir)/skalibs + --enable-shared + $(use_enable static allstatic) + $(use_enable static static-libc) + $(use_enable static-libs static) + ) + + econf "${myconf[@]}" +} diff --git a/dev-lang/execline/execline-2.8.3.0.ebuild b/dev-lang/execline/execline-2.8.3.0.ebuild new file mode 100644 index 00000000000..2db001f8d0f --- /dev/null +++ b/dev-lang/execline/execline-2.8.3.0.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="A non-interactive scripting language" +HOMEPAGE="https://www.skarnet.org/software/execline/" +SRC_URI="https://www.skarnet.org/software/${PN}/${P}.tar.gz" + +LICENSE="ISC" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="amd64 ~arm x86" +IUSE="static static-libs" + +REQUIRED_USE="static? ( static-libs )" + +RDEPEND=">=dev-libs/skalibs-2.11.2.0:=[static-libs?]" +DEPEND="${RDEPEND}" + +HTML_DOCS=( doc/. ) + +src_prepare() { + default + + # Avoid QA warning for LDFLAGS addition + sed -i -e 's/.*-Wl,--hash-style=both$/:/' configure || die + + sed -i -e '/AR := /d' -e '/RANLIB := /d' Makefile || die +} + +src_configure() { + tc-export AR CC RANLIB + + local myconf=( + --bindir=/bin + --dynlibdir=/usr/$(get_libdir) + --libdir=/usr/$(get_libdir)/${PN} + --with-dynlib=/usr/$(get_libdir) + --with-lib=/usr/$(get_libdir)/skalibs + --with-sysdeps=/usr/$(get_libdir)/skalibs + --enable-shared + $(use_enable static allstatic) + $(use_enable static static-libc) + $(use_enable static-libs static) + ) + + econf "${myconf[@]}" +} diff --git a/dev-lang/execline/metadata.xml b/dev-lang/execline/metadata.xml index 140e707ac53..566ebdf7d09 100644 --- a/dev-lang/execline/metadata.xml +++ b/dev-lang/execline/metadata.xml @@ -5,6 +5,14 @@ <email>williamh@gentoo.org</email> <name>William Hubbs</name> </maintainer> + <maintainer type="person" proxied="yes"> + <email>arkamar@atlas.cz</email> + <name>Petr Vaněk</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> <longdescription lang="en"> Execline is a non-interactive scripting language similar to sh. According to the home page, the syntax is far mor logical and diff --git a/dev-lang/fennel/Manifest b/dev-lang/fennel/Manifest index fc8d0dcd8dd..03e035206e5 100644 --- a/dev-lang/fennel/Manifest +++ b/dev-lang/fennel/Manifest @@ -1 +1,3 @@ DIST fennel-0.9.1.tar.gz 203441 BLAKE2B 74f461b3e7a24cdae0c8dde590814cb9753a12ab62e797746cc8753d178007a09084037e443d8309fa11ff309a5c6bf6c2e369942ef357aa0402883cef278542 SHA512 87e7ffbef0b49499a93255f50e77f53b9be4faa6d4609d8d65e3a64470bbf07b49a55e7dd547fda4b0e5fe0f4f1e6ece18282cc89955a57ed0a50be8dc01261c +DIST fennel-1.0.0.tar.gz 243719 BLAKE2B 07758493c8c96d2d5151a1cb38da9fec002eb2522926dc2cad0a125c3e608daf2035a3d21743a8634a5fd0cab372e78ee0179710388c56888cb9a2fef167ea58 SHA512 4ad1635807d244297fdc7bf7c06568ae708ae805dcaac2bb190fad412da21c9e3c3b86a6afa223e343488c725afea94682f213332fb22ba66eb5190e97f18415 +DIST fennel-1.1.0.tar.gz 261279 BLAKE2B fc77cc82b164477e3b8ef2b40a14439b49953efbea1395330ae60c1f68989816b8477823e1d8b26813dc492a235b1268124b03c0d6dcb773007c6e8435be5a33 SHA512 86e92e399118a3aff8d49098b1a914bca6fdcd898aabcdfda38803a2e69a1d179bd972edece500ce2d912a895d15b8aaf1b05c8840e0062cf6d4043b862457b3 diff --git a/dev-lang/fennel/fennel-1.0.0.ebuild b/dev-lang/fennel/fennel-1.0.0.ebuild new file mode 100644 index 00000000000..f470a84c271 --- /dev/null +++ b/dev-lang/fennel/fennel-1.0.0.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Fails to build with with lua5-1 +LUA_COMPAT=( lua5-{3,4} luajit ) + +inherit lua-single + +DESCRIPTION="Lisp-like language that compiles to Lua" +HOMEPAGE="https://fennel-lang.org/" + +if [[ ${PV} == 9999 ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://git.sr.ht/~technomancy/${PN}" +else + SRC_URI="https://git.sr.ht/~technomancy/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="MIT" +SLOT="0/${PV}" +REQUIRED_USE="${LUA_REQUIRED_USE}" + +RDEPEND="${LUA_DEPS}" +DEPEND="${RDEPEND}" + +src_install() { + emake LUA_LIB_DIR="${ED}/$(lua_get_lmod_dir)" PREFIX="${ED}/usr" install + + rm -r "${ED}"/usr/man || die + doman ${PN}.1 + + dodoc *.md +} diff --git a/dev-lang/fennel/fennel-1.1.0.ebuild b/dev-lang/fennel/fennel-1.1.0.ebuild new file mode 100644 index 00000000000..f470a84c271 --- /dev/null +++ b/dev-lang/fennel/fennel-1.1.0.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Fails to build with with lua5-1 +LUA_COMPAT=( lua5-{3,4} luajit ) + +inherit lua-single + +DESCRIPTION="Lisp-like language that compiles to Lua" +HOMEPAGE="https://fennel-lang.org/" + +if [[ ${PV} == 9999 ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://git.sr.ht/~technomancy/${PN}" +else + SRC_URI="https://git.sr.ht/~technomancy/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="MIT" +SLOT="0/${PV}" +REQUIRED_USE="${LUA_REQUIRED_USE}" + +RDEPEND="${LUA_DEPS}" +DEPEND="${RDEPEND}" + +src_install() { + emake LUA_LIB_DIR="${ED}/$(lua_get_lmod_dir)" PREFIX="${ED}/usr" install + + rm -r "${ED}"/usr/man || die + doman ${PN}.1 + + dodoc *.md +} diff --git a/dev-lang/fennel/metadata.xml b/dev-lang/fennel/metadata.xml index 2b5cd319731..001e74a2f44 100644 --- a/dev-lang/fennel/metadata.xml +++ b/dev-lang/fennel/metadata.xml @@ -6,24 +6,18 @@ <email>xgqt@gentoo.org</email> <name>Maciej Barć</name> </maintainer> - <longdescription lang="en"> + <longdescription> Fennel is a lisp that compiles to Lua. It aims to be easy to use, expressive, and has almost zero overhead compared to handwritten Lua. - - - Full Lua compatibility - You can use any function or library from Lua. - - Zero overhead - Compiled code should be just as or more efficient + Full Lua compatibility - You can use any function or library from Lua. + Zero overhead - Compiled code should be just as or more efficient than hand-written Lua. - - Compile-time macros - Ship compiled code with no runtime dependency + Compile-time macros - Ship compiled code with no runtime dependency on Fennel. - - Embeddable - Fennel is a one-file library as well as an executable. + Embeddable - Fennel is a one-file library as well as an executable. Embed it in other programs to support runtime extensibility and interactive development. - At https://fennel-lang.org there's a live in-browser REPL you can use without installing anything. </longdescription> - <upstream> - <bugs-to>https://github.com/bakpakin/Fennel/issues</bugs-to> - <remote-id type="github">bakpakin/Fennel</remote-id> - </upstream> </pkgmetadata> diff --git a/dev-lang/gforth/gforth-0.7.3-r2.ebuild b/dev-lang/gforth/gforth-0.7.3-r2.ebuild index dfd7e9a7b68..2bf4b1dff98 100644 --- a/dev-lang/gforth/gforth-0.7.3-r2.ebuild +++ b/dev-lang/gforth/gforth-0.7.3-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -11,7 +11,7 @@ SRC_URI="mirror://gnu/gforth/${P}.tar.gz" LICENSE="GPL-3" SLOT="0" -KEYWORDS="~amd64 ~ppc ~x86 ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris" +KEYWORDS="~amd64 ~arm64 ~ppc ~x86 ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris" IUSE="+check emacs" DEPEND="dev-libs/ffcall diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2019-gentoo.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2019-gentoo.patch deleted file mode 100644 index 36befaafc0f..00000000000 --- a/dev-lang/gnat-gpl/files/gnat-gpl-2019-gentoo.patch +++ /dev/null @@ -1,42 +0,0 @@ ---- a/patch/15_all_disable-systemtap-switch.patch 2019-05-28 09:25:40.556754095 +0200 -+++ b/patch/15_all_disable-systemtap-switch.patch 2019-05-28 09:25:00.731426775 +0200 -@@ -42,8 +42,8 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF ---#line 18451 "configure" --+#line 18453 "configure" -+-#line 18497 "configure" -++#line 18499 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -51,8 +51,8 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF ---#line 18557 "configure" --+#line 18559 "configure" -+-#line 18603 "configure" -++#line 18605 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H ---- a/gcc-8-2019-20190517-18C94-src/gcc/ada/osint.adb 2017-03-10 21:58:02.600710156 +0100 -+++ b/gcc-8-2019-20190517-18C94-src/gcc/ada/osint.adb 2017-03-10 21:59:38.033983293 +0100 -@@ -2229,14 +2229,11 @@ - for J in Start_Of_Prefix .. Name_Len - Prog'Length + 1 loop - if Name_Buffer (J .. J + Prog'Length - 1) = Prog then - End_Of_Prefix := J - 1; -+ Start_Of_Suffix := J + Prog'Length; - exit; - end if; - end loop; - -- if End_Of_Prefix > 1 then -- Start_Of_Suffix := End_Of_Prefix + Prog'Length + 1; -- end if; -- - -- Create the new program name - - return new String' diff --git a/dev-lang/gnat-gpl/gnat-gpl-2021-r1.ebuild b/dev-lang/gnat-gpl/gnat-gpl-2021-r1.ebuild index e0bcd6f39fb..02da8f27ec3 100644 --- a/dev-lang/gnat-gpl/gnat-gpl-2021-r1.ebuild +++ b/dev-lang/gnat-gpl/gnat-gpl-2021-r1.ebuild @@ -120,6 +120,7 @@ src_prepare() { cd - sed -i \ -e 's:-fcf-protection":":' \ + libiberty/configure \ lto-plugin/configure || die sed -i \ -e 's:$(P) ::g' \ diff --git a/dev-lang/gnat-gpl/gnat-gpl-2021-r3.ebuild b/dev-lang/gnat-gpl/gnat-gpl-2021-r3.ebuild new file mode 100644 index 00000000000..3122d8366ba --- /dev/null +++ b/dev-lang/gnat-gpl/gnat-gpl-2021-r3.ebuild @@ -0,0 +1,146 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PATCH_GCC_VER=10.3.0 +PATCH_VER="3" + +TOOLCHAIN_GCC_PV=10.3.1 + +REL=10 +MYP=gcc-${REL}-${PV}-20210519-19A74-src +GNATDIR=gnat-${PV}-20210519-19A70-src +INTFDIR=gcc-interface-${REL}-${PV}-20210519-19A75-src + +BTSTRP_X86=gnat-gpl-2014-x86-linux-bin +BTSTRP_AMD64=gnat-gpl-2014-x86_64-linux-bin +BASE_URI=https://community.download.adacore.com/v1 +# we provide own tarball below +GCC_TARBALL_SRC_URI=" + ${BASE_URI}/005d2b2eff627177986d2517eb31e1959bec6f3a?filename=${GNATDIR}.tar.gz + -> ${GNATDIR}.tar.gz + ${BASE_URI}/44cd393be0b468cc253bf2cf9cf7804c993e7b5b?filename=${MYP}.tar.gz + -> ${MYP}.tar.gz + ${BASE_URI}/8ace7d06e469d36d726cc8badb0ed78411e727f3?filename=${INTFDIR}.tar.gz + -> ${INTFDIR}.tar.gz + bootstrap? ( + amd64? ( + ${BASE_URI}/6eb6eef6bb897e4c743a519bfebe0b1d6fc409c6?filename=${BTSTRP_AMD64}.tar.gz&rand=1193 + -> ${BTSTRP_AMD64}.tar.gz + ) + x86? ( + ${BASE_URI}/c5e9e6fdff5cb77ed90cf8c62536653e27c0bed6?filename=${BTSTRP_X86}.tar.gz&rand=436 + -> ${BTSTRP_X86}.tar.gz + ) + )" + +inherit toolchain-funcs toolchain + +DESCRIPTION="GNAT Ada Compiler - GPL version" +HOMEPAGE="http://libre.adacore.com/" + +LICENSE+=" GPL-2 GPL-3" +KEYWORDS="~amd64 ~x86" +IUSE="+ada +bootstrap" +RESTRICT="test" + +RDEPEND="!=sys-devel/gcc-${TOOLCHAIN_GCC_PV}*" +BDEPEND=sys-devel/binutils + +S="${WORKDIR}"/${MYP} + +src_unpack() { + if ! use bootstrap && [[ -z "$(type ${GNATMAKE} 2>/dev/null)" ]] ; then + eerror "You need a gcc compiler that provides the Ada Compiler:" + eerror "1) use gcc-config to select the right compiler or" + eerror "2) set the bootstrap use flag" + die "ada compiler not available" + fi + + toolchain_src_unpack +} + +src_prepare() { + if use amd64; then + BTSTRP=${BTSTRP_AMD64} + else + BTSTRP=${BTSTRP_X86} + fi + + if use bootstrap; then + GCC="${WORKDIR}"/${BTSTRP}/bin/gcc + else + GCC=${ADA:-$(tc-getCC)} + fi + + gnatbase=$(basename ${GCC}) + gnatpath=$(dirname ${GCC}) + + GNATMAKE=${gnatbase/gcc/gnatmake} + if [[ ${gnatpath} != "." ]] ; then + GNATMAKE="${gnatpath}/${GNATMAKE}" + fi + if use bootstrap; then + rm "${WORKDIR}"/${BTSTRP}/libexec/gcc/x86_64-pc-linux-gnu/4.7.4/ld \ + || die + ln -s /usr/bin/$CHOST-ld \ + "${WORKDIR}"/${BTSTRP}/libexec/gcc/x86_64-pc-linux-gnu/4.7.4/ld \ + || die + rm "${WORKDIR}"/${BTSTRP}/libexec/gcc/x86_64-pc-linux-gnu/4.7.4/as \ + || die + ln -s /usr/bin/$CHOST-as \ + "${WORKDIR}"/${BTSTRP}/libexec/gcc/x86_64-pc-linux-gnu/4.7.4/as \ + || die + fi + + CC=${GCC} + CXX="${gnatbase/gcc/g++}" + GNATBIND="${gnatbase/gcc/gnatbind}" + GNATLINK="${gnatbase/gcc/gnatlink}" + GNATLS="${gnatbase/gcc/gnatls}" + if [[ ${gnatpath} != "." ]] ; then + CXX="${gnatpath}/${CXX}" + GNATBIND="${gnatpath}/${GNATBIND}" + GNATLINK="${gnatpath}/${GNATLINK}" + GNATLS="${gnatpath}/${GNATLS}" + fi + mkdir bin || die + ln -s $(which ${GCC}) bin/gcc || die + ln -s $(which ${CXX}) bin/g++ || die + ln -s $(which ${GNATMAKE}) bin/gnatmake || die + ln -s $(which ${GNATBIND}) bin/gnatbind || die + ln -s $(which ${GNATLINK}) bin/gnatlink || die + ln -s $(which ${GNATLS}) bin/gnatls || die + + cd .. + mv ${GNATDIR}/src/ada ${MYP}/gcc/ || die + mv ${INTFDIR} ${MYP}/gcc/ada/gcc-interface || die + eapply "${FILESDIR}"/${P}-gentoo.patch + cd - + sed -i \ + -e 's:-fcf-protection":":' \ + libiberty/configure \ + lto-plugin/configure || die + sed -i \ + -e 's:$(P) ::g' \ + gcc/ada/gcc-interface/Makefile.in \ + || die "sed failed" + toolchain_src_prepare +} + +src_configure() { + export PATH=${PWD}/bin:${PATH} + downgrade_arch_flags "$(gcc-version)" + toolchain_src_configure +} + +pkg_postinst() { + toolchain_pkg_postinst + einfo "This provide the GNAT compiler with gcc for ada/c/c++ and more" + einfo "The compiler binary is ${CTARGET}-gcc-${TOOLCHAIN_GCC_PV}" + einfo "Even if the c/c++ compilers are using almost the same patched" + einfo "source as the sys-devel/gcc package its use is not extensively" + einfo "tested, and not supported for updating your system, except for ada" + einfo "related packages" +} diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest index 4f83f3de81a..439b88e61dc 100644 --- a/dev-lang/go/Manifest +++ b/dev-lang/go/Manifest @@ -1,2 +1,2 @@ -DIST go1.17.5.src.tar.gz 22186577 BLAKE2B fe6cbfce1a8e7556e7f690f34eb1cdf761f0f74b2ff3781bdc3c6ce2efa4fd00229268ee704d6c4a84f4b37b3deae7c65bd12628bf60ec32c2d8c32b13d99de1 SHA512 6c833455fe79476c29a0565ae3b5ede452abb75689d52cbaa524743549f6f12681b6b5035dc4048387bd738c15b7cd8bdc4c875d54232ca2343c7404a4326884 -DIST go1.17.6.src.tar.gz 22191372 BLAKE2B d6b52e23cea61709a682f06aa21db345980a7eb223b08d539721429227bb22d365bde5901e18f289eede0872e7bf9a5db4c2736d847202ded0f5f7351dcf035a SHA512 59e5471d33e72208a3ca1ddf6c13aeb2b95a3291c0491571597197a260fb8cb74241c7bb09b44129c1e39f857ce4279f416c139b3ab2d7aded10002beb222ee2 +DIST go1.17.10.src.tar.gz 22196380 BLAKE2B 548d54aa27aca78b6a5b6338a4496c7072c37a9bbcea78456d0851f562278a872fe63d102a3d68bc3c91266bf07f9f4fc0b903ba047bbf8a0e51d973b6ae2a49 SHA512 92aa95927ce244cab339dd7f2fb7e416605515d496e96618e6e45ecfa7b022ae3a178bf88338a7a9e9e1afea4c9ab5f9c35f5716409cddbab3542daefb6ba425 +DIST go1.18.2.src.tar.gz 22837686 BLAKE2B 73bdbdcd7b78baacc123fbc9bb0ae603a5eb2b983192fafe7ccd35c79b526bd8f28979ba48a9fffce0a26dd1ba4d010968c01298671703b272bb0b009819b7e2 SHA512 9214cbc051cf26b49ab1bd4d8d30b060865944b831578a9ea7fcfe33f84009f77932a39f2948efbfc412b151e4734a3bc1f8332f3bea11b35a912b0e23a4118f diff --git a/dev-lang/go/go-1.17.5.ebuild b/dev-lang/go/go-1.17.10.ebuild index 1896c2546e8..7f1ce9304e5 100644 --- a/dev-lang/go/go-1.17.5.ebuild +++ b/dev-lang/go/go-1.17.10.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -36,7 +36,6 @@ IUSE="cpu_flags_x86_sse2" BDEPEND="|| ( dev-lang/go dev-lang/go-bootstrap )" -RDEPEND="!<dev-go/go-tools-0_pre20150902" # the *.syso files have writable/executable stacks QA_EXECSTACK='*.syso' diff --git a/dev-lang/go/go-1.17.6.ebuild b/dev-lang/go/go-1.18.2.ebuild index cd2ef07a589..7f1ce9304e5 100644 --- a/dev-lang/go/go-1.17.6.ebuild +++ b/dev-lang/go/go-1.18.2.ebuild @@ -21,7 +21,7 @@ case ${PV} in case ${PV} in *_beta*|*_rc*) ;; *) - KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" + KEYWORDS="-* amd64 arm arm64 ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" ;; esac esac @@ -36,7 +36,6 @@ IUSE="cpu_flags_x86_sse2" BDEPEND="|| ( dev-lang/go dev-lang/go-bootstrap )" -RDEPEND="!<dev-go/go-tools-0_pre20150902" # the *.syso files have writable/executable stacks QA_EXECSTACK='*.syso' diff --git a/dev-lang/go/go-9999.ebuild b/dev-lang/go/go-9999.ebuild index a1e1574ff8d..21789104670 100644 --- a/dev-lang/go/go-9999.ebuild +++ b/dev-lang/go/go-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -36,7 +36,6 @@ IUSE="cpu_flags_x86_sse2" BDEPEND="|| ( dev-lang/go dev-lang/go-bootstrap )" -RDEPEND="!<dev-go/go-tools-0_pre20150902" # the *.syso files have writable/executable stacks QA_EXECSTACK='*.syso' diff --git a/dev-lang/haxe/haxe-4.2.4-r2.ebuild b/dev-lang/haxe/haxe-4.2.4-r3.ebuild index 6a8441c77ab..e9961fd9000 100644 --- a/dev-lang/haxe/haxe-4.2.4-r2.ebuild +++ b/dev-lang/haxe/haxe-4.2.4-r3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 DESCRIPTION="Multi-target universal programming language" HOMEPAGE="https://haxe.org/" -if [[ "${PV}" == *9999* ]]; then +if [[ "${PV}" == *9999* ]] ; then inherit git-r3 EGIT_REPO_URI="https://github.com/HaxeFoundation/haxe.git" else @@ -56,18 +56,11 @@ src_configure() { } src_compile() { - local mymakeargs=( - BRANCH="" - COMMIT_DATE="" - COMMIT_SHA="" - OCAMLOPT=${OCAMLOPT} - INSTALL_DIR=/usr - ) - emake -j1 + emake -j1 BRANCH="" COMMIT_DATE="" COMMIT_SHA="" \ + OCAMLOPT="${OCAMLOPT}" INSTALL_DIR=/usr } src_install() { emake DESTDIR="${D}" INSTALL_DIR=/usr install - dodoc *.md } diff --git a/dev-lang/idris2/Manifest b/dev-lang/idris2/Manifest index ceffb317d5d..f5794839e9b 100644 --- a/dev-lang/idris2/Manifest +++ b/dev-lang/idris2/Manifest @@ -1 +1,3 @@ DIST idris2-0.5.1_p20211112.tar.gz 6202861 BLAKE2B 189bf28c7a33281494edea9b2c0821a934000fe9ca6e929b3318fe33576553142e5ad8d81598249cc384c6e342491ccef0998f33a4f2940b80264f5a3e4b32b2 SHA512 3b419ddbdc4aa3a28d92bf204448090c168d6a844d570886f982129f9e650c7112bbf95b727baf6c9f0f2fd6200c75eb68b6b71fd8684e01365eaf964dea1ea1 +DIST idris2-0.5.1_p20220131.tar.gz 6283472 BLAKE2B 86b75457b8772d0a8938a4d3422af08fa8e625b675cc2648bc9f2683a6654586ff91b8b1d592f72a3a44c72fa830f9ebc5ae0c451398e8cb5d3fdf5070f7f8ab SHA512 50f21819dee929f847a6b64c89231da9dd55bc35314300aa7d3c3c5ea0da451caba67081ca8b2ffd89608d3aaa042e9b9a6ecb2df0585589404bae3c6a2fe74a +DIST idris2-0.5.1_p20220224.tar.gz 6299027 BLAKE2B 65654d76dc4a593826904321d78246da877ae71da95d56b4ee266de9676706e899bf9a1ae4293dde077a3ea50a860501fa4c3b8065a5b8d759d785954ea7b822 SHA512 6bea9e5ce01c64a893c39e7aacceef5d4f6bfd499f0b4ca17681bea6ab11620e0058faba8bdd84eecacf3f8d1cfe2594ca830aff89f2cfde2208fdc092fc37f1 diff --git a/dev-lang/idris2/idris2-0.5.1_p20211112.ebuild b/dev-lang/idris2/idris2-0.5.1_p20211112-r1.ebuild index 762d534c28a..73c7651d40e 100644 --- a/dev-lang/idris2/idris2-0.5.1_p20211112.ebuild +++ b/dev-lang/idris2/idris2-0.5.1_p20211112-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -26,8 +26,8 @@ REQUIRED_USE="^^ ( chez racket )" RDEPEND=" dev-libs/gmp - chez? ( dev-scheme/chez[threads] ) - racket? ( dev-scheme/racket[threads] ) + chez? ( dev-scheme/chez:=[threads] ) + racket? ( dev-scheme/racket:=[threads] ) " DEPEND="${RDEPEND}" BDEPEND=" diff --git a/dev-lang/idris2/idris2-0.5.1_p20220131-r1.ebuild b/dev-lang/idris2/idris2-0.5.1_p20220131-r1.ebuild new file mode 100644 index 00000000000..f15431251bd --- /dev/null +++ b/dev-lang/idris2/idris2-0.5.1_p20220131-r1.ebuild @@ -0,0 +1,104 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +H=a2c7e9f306ea8ff935bbeff1eac764291b12ce87 + +inherit toolchain-funcs + +DESCRIPTION="Purely functional programming language with first class types" +HOMEPAGE="https://idris-lang.org/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/idris-lang/Idris2.git" +else + SRC_URI="https://github.com/idris-lang/Idris2/archive/${H}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" + S="${WORKDIR}/${PN^}-${H}" +fi + +LICENSE="BSD" +SLOT="0" +IUSE="+chez doc racket test-full" +REQUIRED_USE="^^ ( chez racket )" + +RDEPEND=" + dev-libs/gmp + chez? ( dev-scheme/chez:=[threads] ) + racket? ( dev-scheme/racket:=[threads] ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + doc? ( dev-python/sphinx_rtd_theme ) + test-full? ( + dev-scheme/chez[threads] + dev-scheme/racket[threads] + net-libs/nodejs + ) +" + +# Generated via "SCHEME", not CC +QA_FLAGS_IGNORED="usr/lib/idris2/bin/idris2_app/idris2 + usr/lib/idris2/bin/idris2_app/idris2-boot" +QA_PRESTRIPPED="${QA_FLAGS_IGNORED}" + +src_prepare() { + # Clean up environment of Idris and Racket variables + unset IDRIS2_DATA IDRIS2_INC_CGS IDRIS2_LIBS IDRIS2_PACKAGE_PATH + unset IDRIS2_PATH IDRIS2_PREFIX + unset PLTUSERHOME + + tc-export AR CC CXX LD RANLIB + export CFLAGS + sed -i '/^CFLAGS/d' ./support/*/Makefile || die + + # Fix "PREFIX" + sed -i 's|$(HOME)/.idris2|/usr/lib/idris2|g' ./config.mk || die + + # Bad tests + sed -i 's|, "futures001"||g' ./tests/Main.idr || die + # > Missing incremental compile data, reverting to whole program compilation + sed -i 's|"chez033",||g' ./tests/Main.idr || die + + default +} + +src_configure() { + export IDRIS2_VERSION=${PV} + export SCHEME=$(usex chez chezscheme racket) + + if use chez ; then + export IDRIS2_CG=chez + export BOOTSTRAP_TARGET=bootstrap + elif use racket ; then + export IDRIS2_CG=racket + export BOOTSTRAP_TARGET=bootstrap-racket + else + die "Neither chez nor racket was chosen" + fi +} + +src_compile() { + # > jobserver unavailable + # This is caused by Makefile using a script which in turn calls make + # https://github.com/idris-lang/Idris2/issues/2152 + emake SCHEME=${SCHEME} ${BOOTSTRAP_TARGET} -j1 + + use doc && emake -C ./docs html +} + +src_test() { + emake SCHEME=${SCHEME} bootstrap-test +} + +src_install() { + # "DESTDIR" variable is not respected + emake IDRIS2_PREFIX="${D}"/usr/lib/idris2 PREFIX="${D}"/usr/lib/idris2 install + dosym ../lib/${PN}/bin/${PN} /usr/bin/${PN} + + # Install documentation + use doc && dodoc -r ./docs/build/html + einstalldocs +} diff --git a/dev-lang/idris2/idris2-0.5.1_p20220224-r1.ebuild b/dev-lang/idris2/idris2-0.5.1_p20220224-r1.ebuild new file mode 100644 index 00000000000..05c702574bd --- /dev/null +++ b/dev-lang/idris2/idris2-0.5.1_p20220224-r1.ebuild @@ -0,0 +1,105 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +H=1011cc6162bad580b0c51237c86fbf4fe2035fbe + +inherit toolchain-funcs + +DESCRIPTION="Purely functional programming language with first class types" +HOMEPAGE="https://idris-lang.org/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/idris-lang/${PN^}.git" +else + SRC_URI="https://github.com/idris-lang/${PN^}/archive/${H}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" + S="${WORKDIR}/${PN^}-${H}" +fi + +LICENSE="BSD" +SLOT="0" +IUSE="+chez doc racket test-full" +REQUIRED_USE="^^ ( chez racket )" + +RDEPEND=" + dev-libs/gmp + chez? ( dev-scheme/chez:=[threads] ) + racket? ( dev-scheme/racket:=[threads] ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + doc? ( dev-python/sphinx_rtd_theme ) + test-full? ( + dev-scheme/chez[threads] + dev-scheme/racket[threads] + net-libs/nodejs + ) +" + +# Generated via "SCHEME", not CC +QA_FLAGS_IGNORED="usr/lib/idris2/bin/idris2_app/idris2 + usr/lib/idris2/bin/idris2_app/idris2-boot" +QA_PRESTRIPPED="${QA_FLAGS_IGNORED}" + +src_prepare() { + # Clean up environment of Idris and Racket variables + unset IDRIS2_DATA IDRIS2_INC_CGS IDRIS2_LIBS IDRIS2_PACKAGE_PATH + unset IDRIS2_PATH IDRIS2_PREFIX + unset PLTUSERHOME + + tc-export AR CC CXX LD RANLIB + export CFLAGS + sed -i '/^CFLAGS/d' ./support/*/Makefile || die + + # Fix "PREFIX" + sed -i 's|$(HOME)/.idris2|/usr/lib/idris2|g' ./config.mk || die + + # Bad tests + # Weird Racket Futures (parallelism) test, might need further investigation + sed -i 's|, "futures001"||g' ./tests/Main.idr || die + # > Missing incremental compile data, reverting to whole program compilation + sed -i 's|"chez033",||g' ./tests/Main.idr || die + + default +} + +src_configure() { + export IDRIS2_VERSION=${PV} + export SCHEME=$(usex chez chezscheme racket) + + if use chez ; then + export IDRIS2_CG=chez + export BOOTSTRAP_TARGET=bootstrap + elif use racket ; then + export IDRIS2_CG=racket + export BOOTSTRAP_TARGET=bootstrap-racket + else + die 'Neither "chez" nor "racket" was chosen' + fi +} + +src_compile() { + # > jobserver unavailable + # This is caused by Makefile using a script which in turn calls make + # https://github.com/idris-lang/Idris2/issues/2152 + emake SCHEME=${SCHEME} ${BOOTSTRAP_TARGET} -j1 + + use doc && emake -C ./docs html +} + +src_test() { + emake SCHEME=${SCHEME} bootstrap-test +} + +src_install() { + # "DESTDIR" variable is not respected, use "PREFIX" instead + emake IDRIS2_PREFIX="${D}"/usr/lib/idris2 PREFIX="${D}"/usr/lib/idris2 install + dosym ../lib/${PN}/bin/${PN} /usr/bin/${PN} + + # Install documentation + use doc && dodoc -r ./docs/build/html + einstalldocs +} diff --git a/dev-lang/ispc/Manifest b/dev-lang/ispc/Manifest index a461c6e709b..6c9781daedf 100644 --- a/dev-lang/ispc/Manifest +++ b/dev-lang/ispc/Manifest @@ -1,3 +1,2 @@ -DIST ispc-1.16.0.tar.gz 19548153 BLAKE2B 9b6d9329430d59041a76c20332b527560afa47a5585652abdf93aedb7907483d1647c829f2bd3f396cd53301bc79367cd91606b90a543fa8bec2f6ab34452989 SHA512 8469db4e3e9834477345b431162543f1c8e680aa9834c9a50239781dc7febfdde0561c2f13d1387e37f95a18c4376a85cb9cbae33cb614dc8977dfc9f47da215 DIST ispc-1.16.1.tar.gz 19549428 BLAKE2B 742d94208d39f0560c3f2199ee06fc12f3ec2cf47c1039212219c6aa106b20cd58219e5d439c4fd1ce4a0c1a423655d0c2113a2a78152c99b4d77452171acce6 SHA512 89b844a15a888ae7074c4baa47f46d1d7176501f215c9a8c3b4bf9ad1960dc77d53f1f448d5253ad0c6a91e5088af243c3dfd148e619f9abeb6a16f715e3b463 DIST ispc-1.17.0.tar.gz 19436681 BLAKE2B 11af6e22c4c297a2fbd0ae1bfe2a37ce2f836607b2caf42634cff0b0fe1116542e71f056de12e3472724db04f1c5174c0deb47c2bd64fb756b4bdaef48935707 SHA512 b1c67381bb8b71d268c6e68c95cc5e2d64411ce351506de96d31850b879f7777fbc1cb33f3761437f84e52ae726fabbb794ebba9cf05d5200acaca07a2ebf0ac diff --git a/dev-lang/ispc/ispc-1.16.0.ebuild b/dev-lang/ispc/ispc-1.16.0.ebuild deleted file mode 100644 index 7ea24fc9ecc..00000000000 --- a/dev-lang/ispc/ispc-1.16.0.ebuild +++ /dev/null @@ -1,79 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8,9,10} ) - -inherit cmake llvm python-any-r1 - -LLVM_MAX_SLOT=12 - -DESCRIPTION="Intel SPMD Program Compiler" -HOMEPAGE="https://ispc.github.io/" - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/ispc/ispc.git" -else - SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~x86" -fi - -LICENSE="BSD BSD-2 UoI-NCSA" -SLOT="0" -IUSE="examples" - -RDEPEND="<sys-devel/clang-13:=" -DEPEND=" - ${RDEPEND} - ${PYTHON_DEPS}" -BDEPEND=" - sys-devel/bison - sys-devel/flex" - -PATCHES=( - "${FILESDIR}/${PN}-9999-llvm.patch" -) - -CMAKE_BUILD_TYPE="RelWithDebInfo" - -llvm_check_deps() { - has_version -d "sys-devel/clang:${LLVM_SLOT}" -} - -src_prepare() { - if use amd64; then - # On amd64 systems, build system enables x86/i686 build too. - # This ebuild doesn't even have multilib support, nor need it. - # https://bugs.gentoo.org/730062 - ewarn "Removing auto-x86 build on amd64" - sed -i -e 's:set(target_arch "i686"):return():' cmake/GenerateBuiltins.cmake || die - fi - - cmake_src_prepare -} - -src_configure() { - local mycmakeargs=( - -DARM_ENABLED=$(usex arm) - -DCMAKE_SKIP_RPATH=ON - -DISPC_NO_DUMPS=ON - ) - cmake_src_configure -} - -src_test() { - # Inject path to prevent using system ispc - PATH="${BUILD_DIR}/bin:${PATH}" ${EPYTHON} ./run_tests.py || die "Testing failed under ${EPYTHON}" -} - -src_install() { - dobin "${BUILD_DIR}"/bin/ispc - einstalldocs - - if use examples; then - docompress -x /usr/share/doc/${PF}/examples - dodoc -r examples - fi -} diff --git a/dev-lang/ispc/ispc-1.17.0-r1.ebuild b/dev-lang/ispc/ispc-1.17.0-r2.ebuild index 1856351fc96..b195585f3de 100644 --- a/dev-lang/ispc/ispc-1.17.0-r1.ebuild +++ b/dev-lang/ispc/ispc-1.17.0-r2.ebuild @@ -4,7 +4,7 @@ EAPI=7 PYTHON_COMPAT=( python3_{8..10} ) -LLVM_MAX_SLOT=13 +LLVM_MAX_SLOT=14 inherit cmake python-any-r1 llvm DESCRIPTION="Intel SPMD Program Compiler" @@ -15,7 +15,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/ispc/ispc.git" else SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" + KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~x86" fi LICENSE="BSD BSD-2 UoI-NCSA" diff --git a/dev-lang/ispc/ispc-9999.ebuild b/dev-lang/ispc/ispc-9999.ebuild index d71abadb585..8da425ce2b9 100644 --- a/dev-lang/ispc/ispc-9999.ebuild +++ b/dev-lang/ispc/ispc-9999.ebuild @@ -4,7 +4,7 @@ EAPI=7 PYTHON_COMPAT=( python3_{8..10} ) -LLVM_MAX_SLOT=12 +LLVM_MAX_SLOT=15 inherit cmake python-any-r1 llvm DESCRIPTION="Intel SPMD Program Compiler" diff --git a/dev-lang/janet/files/janet-1.16.1-make.patch b/dev-lang/janet/files/janet-1.16.1-make.patch deleted file mode 100644 index 09429f4ff08..00000000000 --- a/dev-lang/janet/files/janet-1.16.1-make.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/Makefile b/Makefile -index 7efef93b..12758ab0 100644 ---- a/Makefile -+++ b/Makefile -@@ -254,7 +254,7 @@ build/doc.html: $(JANET_TARGET) tools/gendoc.janet - - build/jpm: jpm $(JANET_TARGET) - $(JANET_TARGET) tools/patch-jpm.janet jpm build/jpm "--libpath=$(LIBDIR)" "--headerpath=$(INCLUDEDIR)/janet" "--binpath=$(BINDIR)" -- chmod +x build/jpm -+ chmod +x jpm - - .INTERMEDIATE: build/janet.pc - build/janet.pc: $(JANET_TARGET) diff --git a/dev-lang/jerryscript/jerryscript-2.4.0-r4.ebuild b/dev-lang/jerryscript/jerryscript-2.4.0-r4.ebuild index bc0002817e9..8d851e7d9a8 100644 --- a/dev-lang/jerryscript/jerryscript-2.4.0-r4.ebuild +++ b/dev-lang/jerryscript/jerryscript-2.4.0-r4.ebuild @@ -3,7 +3,7 @@ EAPI=7 -PYTHON_COMPAT=(python3_{7,8,9,10}) +PYTHON_COMPAT=( python3_{8..10} ) inherit cmake python-single-r1 DESCRIPTION="Ultra-lightweight JavaScript engine for the Internet of Things" diff --git a/dev-lang/jimtcl/Manifest b/dev-lang/jimtcl/Manifest index d26471fa7ad..a0a2b4b209a 100644 --- a/dev-lang/jimtcl/Manifest +++ b/dev-lang/jimtcl/Manifest @@ -1 +1,2 @@ DIST jimtcl-0.78.tar.gz 3073533 BLAKE2B f0cdaf2807c7dd0e7c64e37cbc8dd019d8460e6a0320c239b0d01549aede8c86a89d84d7a3c5200c8d8cea428dbd1038d57dc66f5b580bdea8fe39710f967bbb SHA512 2a2cff12d7fdc4cf36734e41727eef08f6d74fb13d70bb0a3e01839e66859e57dd927ddedc161a6a7928881d640bd4e20a1bb313ed24aa2bb7bcb00eaf64fbf6 +DIST jimtcl-0.81.tar.gz 3977705 BLAKE2B d58a8f9d3a632e98a9737b57f9228e35f198eae47ff51b4a0401491f394980b95606e0986d0b79c84f9a8e77d562407882668c0d108275935fa65b21ce68b329 SHA512 5f798b15fd32673e2e2769e25c4dfeee43696e5bbd2d3ec3fd2f312fa49da9ef057fb4de81a10d3812dc07fb2e40ed79924b024e537e064d3213b10e06a416b6 diff --git a/dev-lang/jimtcl/jimtcl-0.81.ebuild b/dev-lang/jimtcl/jimtcl-0.81.ebuild new file mode 100644 index 00000000000..3554df35054 --- /dev/null +++ b/dev-lang/jimtcl/jimtcl-0.81.ebuild @@ -0,0 +1,42 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +SRC_URI="https://github.com/msteveb/jimtcl/archive/${PV}.tar.gz -> ${P}.tar.gz" +KEYWORDS="~amd64 ~arm ~arm64 ~m68k ~mips ~s390 ~x86" + +DESCRIPTION="Small footprint implementation of Tcl programming language" +HOMEPAGE="http://jim.tcl.tk/" + +LICENSE="LGPL-2" +SLOT="0/${PV}" +IUSE="doc static-libs" + +RDEPEND="" +DEPEND=" + dev-lang/tcl:0 +" + +src_configure() { + CCACHE=none econf --disable-docs --shared + if use static-libs ; then + # The build does not support doing both simultaneously. + mkdir static-libs || die + cd static-libs || die + CCACHE=none ECONF_SOURCE="${S}" econf --disable-docs + fi +} + +src_compile() { + # Must build static-libs first. + use static-libs && emake -C static-libs libjim.a + emake all +} + +src_install() { + default + ln -sf libjim.so.${PV} "${ED}"/usr/$(get_libdir)/libjim.so || die + use static-libs && dolib.a static-libs/libjim.a + use doc && dodoc Tcl_shipped.html +} diff --git a/dev-lang/julia/Manifest b/dev-lang/julia/Manifest index 399954d47d5..3f0db07ad73 100644 --- a/dev-lang/julia/Manifest +++ b/dev-lang/julia/Manifest @@ -1,9 +1,5 @@ -DIST julia-1.6.3.tar.gz 7734900 BLAKE2B 679851ee159ac83f49e54f1d71068d4abde919a0da39475dccaecc97e705b87db70c38a55fbc7a0cfacc774291013b189fb516817d6c6e67ca5ccfbb515c3f90 SHA512 a622fddc9e9f3f47037053a1e722153a567c065723f99a97912f8c5a6c2a22c3be0be674325361dd1b04601bbe6c6f204c66004ce887f3f7822e8204fd6855de DIST julia-1.6.5-full.tar.gz 153795029 BLAKE2B b86d3ad8dbc4ce486cc0d5e3c25f40c0bedf38cab5b29f1aac4dd527650e78c2e0e462f4eb13fde787adf48a2de9f8eee9cfb8f4aaafbae6ee5e76d7d9608995 SHA512 f057a913f4579280d757c0a97a7cd800fb335be8ec83a27a577d2bee0c9736d49715c7861f7bc1e6461966634bd82890f1f69fd0167f21903ad614e8f70e0dcc DIST julia-1.7.1-full.tar.gz 255682275 BLAKE2B 923cd1ed735f1ff5537ff8655ba5b63cc8d27a9b36ba05f3942447bea67034ad771ca8f69192ca7718ab3aace5d12c0e08961eafead9aedb9af35e2d212e8e97 SHA512 df6c9d33ed69c1b53a7f77f95954d4ed5fadb176ebf9f490e7721bc036109edfaa5873ce9041620af1d5c3731db7acc5af932b4173ce54bcc7ae3d7c9c393638 DIST julia-1.7.1-llvm_13_compat_part_3.patch 28006 BLAKE2B b1909fd6df1ac51e7e2d16279ff5ed2febe27967832ddbb9517372dcb41597f7ba9fa6013d65fdbdaf345b5c32fdf90f60c086afcdf6b793172061fe63263b0f SHA512 d251d5fbc088aa03e2c423926fa9f82a8a29a995e20150f27bf01ea9209008259f97daf27c333686b62412190fa4077cca178ce39bb6c7bd4e3e8b4f2affa22f DIST julia-1.7.1-llvm_13_compat_part_4.patch 11421 BLAKE2B ca4f3e2c6b60462f7f04f609be07f95b81fe076350167de3354cf5c0fb98d3f1b5a5b2d275da8074a077be3edbb8544a3403a080dc1ca0dbe827dde96c61f5f2 SHA512 5cd709b24a6e00f67998efcc21d77b710399f1bf96e7656b3c90a2cc564bcf05e2e1012b788751d48ff7964fb6be2af710d850c34e83532976addecae4db1969 DIST julia-1.7.1-llvm_13_compat_part_5.patch 27094 BLAKE2B b70a96c4f897349dce04246335bc38a6726e02a43cd5a28bc31bfcb9190f5361e2e4d16a9fb5c1b3c0e53d2e59f5380b161350968f9479cdb765b4681b9f5743 SHA512 efd1029d0030417082b7d640b2e4b7bb35818d555c808bceb9a31e5d93b2f27a8ca11b9228cf4129b5bee411e1fe9e4ce4e7515226ceab905532d1875e260f7c -DIST julia-libuv-fb3e3364c33ae48c827f6b103e05c3f0e78b79a9.tar.gz 1643008 BLAKE2B b2a121e0b94cd1f5d40e292fc2356e8940bf8dfe1e6a200b50caf60def1982b705d1d42dd234e9e8b0aa70439bf34a5bce71761424623cbfcd20c9131ce09c25 SHA512 29947c236aef8931be4767df1cd8404ee9b036ee107b31cbce6fad9a97743df57d068b15bc4bd00320b9b81cd879258a9ec9dc675853e424ccdb8d6bdd226240 -DIST julia-libwhich-81e9723c0273d78493dc8c8ed570f68d9ce7e89e.tar.gz 4183 BLAKE2B c932e23b1b476d3fd16cf6f451efd5fc6d9c1ec2c53e8ac086340a100817d9b30dae3eff50b284a42c09b2bbae30b9e2fd38b2881f8cbf4974a89f3bd0c87599 SHA512 6fb77b715d70d9bc95a8546c3bf97bd3677c7ea344b88bb5bc3bbfac9dceabe8a8cde7a0f64dec884cde802e4a3000e30837d3f824b5a9242348c4fe061526a3 -DIST llvm-11.0.1.src.tar.xz 38914796 BLAKE2B ccdec0632c9cf5fae8e6947c266136e04dc8c609e2ca9c1efb1205767d9181301e0de14601d11e2f27ec0ebc0749858a5f1089d8a40a9ae3f22582cbf6abef6e SHA512 b42c67ef88e09dd94171f85cdf49a421a15cfc82ff715c7ce6de22f98cefbe6c7cdf6bf4af7ca017d56ecf6aa3e36df3d823a78cf2dd5312de4301b54b43dbe8 diff --git a/dev-lang/julia/files/julia-1.6.0-fix-hardcoded-libs.patch b/dev-lang/julia/files/julia-1.6.0-fix-hardcoded-libs.patch deleted file mode 100644 index 1d184c3dbb5..00000000000 --- a/dev-lang/julia/files/julia-1.6.0-fix-hardcoded-libs.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff --git a/stdlib/MbedTLS_jll/src/MbedTLS_jll.jl b/stdlib/MbedTLS_jll/src/MbedTLS_jll.jl -index a7ca666b23..b84a42f4e7 100644 ---- a/stdlib/MbedTLS_jll/src/MbedTLS_jll.jl -+++ b/stdlib/MbedTLS_jll/src/MbedTLS_jll.jl -@@ -31,9 +31,9 @@ elseif Sys.isapple() - const libmbedtls = "@rpath/libmbedtls.13.dylib" - const libmbedx509 = "@rpath/libmbedx509.1.dylib" - else -- const libmbedcrypto = "libmbedcrypto.so.5" -- const libmbedtls = "libmbedtls.so.13" -- const libmbedx509 = "libmbedx509.so.1" -+ const libmbedcrypto = "libmbedcrypto.so" -+ const libmbedtls = "libmbedtls.so" -+ const libmbedx509 = "libmbedx509.so" - end - - function __init__() -diff --git a/stdlib/libLLVM_jll/src/libLLVM_jll.jl b/stdlib/libLLVM_jll/src/libLLVM_jll.jl -index fa45e754e5..b51812e3a8 100644 ---- a/stdlib/libLLVM_jll/src/libLLVM_jll.jl -+++ b/stdlib/libLLVM_jll/src/libLLVM_jll.jl -@@ -23,7 +23,7 @@ if Sys.iswindows() - elseif Sys.isapple() - const libLLVM = "@rpath/libLLVM.dylib" - else -- const libLLVM = "libLLVM-11jl.so" -+ const libLLVM = "libLLVM.so" - end - - function __init__() -diff --git a/stdlib/nghttp2_jll/src/nghttp2_jll.jl b/stdlib/nghttp2_jll/src/nghttp2_jll.jl -index 8b98c76ac5..77ad9e3800 100644 ---- a/stdlib/nghttp2_jll/src/nghttp2_jll.jl -+++ b/stdlib/nghttp2_jll/src/nghttp2_jll.jl -@@ -22,7 +22,7 @@ if Sys.iswindows() - elseif Sys.isapple() - const libnghttp2 = "@rpath/libnghttp2.14.dylib" - else -- const libnghttp2 = "libnghttp2.so.14" -+ const libnghttp2 = "libnghttp2.so" - end - - function __init__() diff --git a/dev-lang/julia/files/julia-1.6.3-glibc-2.34.patch b/dev-lang/julia/files/julia-1.6.3-glibc-2.34.patch deleted file mode 100644 index 3e3146529ae..00000000000 --- a/dev-lang/julia/files/julia-1.6.3-glibc-2.34.patch +++ /dev/null @@ -1,32 +0,0 @@ -https://github.com/JuliaLang/julia/commit/09a49c6b57fbde109f0f0c2aa9aa05cef2c1dd40 -https://bugs.gentoo.org/824486 - -From: t-bltg <13423344+t-bltg@users.noreply.github.com> -Date: Thu, 12 Aug 2021 21:36:18 +0200 -Subject: [PATCH] MINSIGSTKSZ is no longer constant in glibc (#41860) - -MINSIGSTKSZ is redefined to sysconf(_SC_MINSIGSTKSZ) starting from glibc 2.34 - -Co-authored-by: t-bltg <t-bltg@users.noreply.github.com> -(cherry picked from commit f19b9a20dde2688c642b7dd709b5d9446e4df2f6) ---- a/src/task.c -+++ b/src/task.c -@@ -29,6 +29,7 @@ - #include <stdlib.h> - #include <string.h> - #include <signal.h> -+#include <unistd.h> - #include <errno.h> - #include <inttypes.h> - #include "julia.h" -@@ -75,8 +76,8 @@ static inline void tsan_switch_to_ctx(jl_ucontext_t *ctx) {} - - // empirically, jl_finish_task needs about 64k stack space to infer/run - // and additionally, gc-stack reserves 64k for the guard pages --#if defined(MINSIGSTKSZ) && MINSIGSTKSZ > 131072 --#define MINSTKSZ MINSIGSTKSZ -+#if defined(MINSIGSTKSZ) -+#define MINSTKSZ (MINSIGSTKSZ > 131072 ? MINSIGSTKSZ : 131072) - #else - #define MINSTKSZ 131072 - #endif diff --git a/dev-lang/julia/files/julia-1.6.5-libgit-1.4.patch b/dev-lang/julia/files/julia-1.6.5-libgit-1.4.patch new file mode 100644 index 00000000000..fe753c0cd0e --- /dev/null +++ b/dev-lang/julia/files/julia-1.6.5-libgit-1.4.patch @@ -0,0 +1,43 @@ +This patch comes from: + https://github.com/archlinux/svntogit-community/blob/packages/julia/trunk/julia-libgit-1.4.patch + +diff --git a/stdlib/LibGit2/src/consts.jl b/stdlib/LibGit2/src/consts.jl +index 2bc9edaf89..55887ebe2a 100644 +--- a/stdlib/LibGit2/src/consts.jl ++++ b/stdlib/LibGit2/src/consts.jl +@@ -247,6 +247,11 @@ const RESET_HARD = Cint(3) # MIXED plus changes in working tree discarded + REBASE_OPERATION_FIXUP = Cint(4), + REBASE_OPERATION_EXEC = Cint(5)) + ++# git_remote_redirect_t ++const GIT_REMOTE_REDIRECT_NONE = Cint(0) ++const GIT_REMOTE_REDIRECT_INITIAL = Cint(1) ++const GIT_REMOTE_REDIRECT_ALL = Cint(2) ++ + # fetch_prune + const FETCH_PRUNE_UNSPECIFIED = Cint(0) + const FETCH_PRUNE = Cint(1) +diff --git a/stdlib/LibGit2/src/types.jl b/stdlib/LibGit2/src/types.jl +index 9ffcaa3646..98d938df65 100644 +--- a/stdlib/LibGit2/src/types.jl ++++ b/stdlib/LibGit2/src/types.jl +@@ -343,6 +343,9 @@ The fields represent: + @static if LibGit2.VERSION >= v"0.25.0" + proxy_opts::ProxyOptions = ProxyOptions() + end ++ @static if LibGit2.VERSION >= v"1.4.0" ++ follow_redirects::Cint = Consts.GIT_REMOTE_REDIRECT_INITIAL ++ end + @static if LibGit2.VERSION >= v"0.24.0" + custom_headers::StrArrayStruct = StrArrayStruct() + end +@@ -674,6 +677,9 @@ The fields represent: + @static if LibGit2.VERSION >= v"0.25.0" + proxy_opts::ProxyOptions = ProxyOptions() + end ++ @static if LibGit2.VERSION >= v"1.4.0" ++ follow_redirects::Cint = Consts.GIT_REMOTE_REDIRECT_INITIAL ++ end + @static if LibGit2.VERSION >= v"0.24.0" + custom_headers::StrArrayStruct = StrArrayStruct() + end diff --git a/dev-lang/julia/julia-1.6.3.ebuild b/dev-lang/julia/julia-1.6.3.ebuild deleted file mode 100644 index 096876a7c5a..00000000000 --- a/dev-lang/julia/julia-1.6.3.ebuild +++ /dev/null @@ -1,178 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit llvm pax-utils toolchain-funcs - -# correct versions for stdlibs are in deps/checksums -# for everything else, run with network-sandbox and wait for the crash - -MY_LIBUV_V="fb3e3364c33ae48c827f6b103e05c3f0e78b79a9" -MY_LIBWHICH_V="81e9723c0273d78493dc8c8ed570f68d9ce7e89e" -MY_LLVM_V="11.0.1" - -DESCRIPTION="High-performance programming language for technical computing" -HOMEPAGE="https://julialang.org/" - -SRC_URI=" - https://github.com/JuliaLang/julia/releases/download/v${PV}/${P}.tar.gz - https://api.github.com/repos/JuliaLang/libuv/tarball/${MY_LIBUV_V} -> ${PN}-libuv-${MY_LIBUV_V}.tar.gz - https://api.github.com/repos/vtjnash/libwhich/tarball/${MY_LIBWHICH_V} -> ${PN}-libwhich-${MY_LIBWHICH_V}.tar.gz - !system-llvm? ( https://github.com/llvm/llvm-project/releases/download/llvmorg-${MY_LLVM_V}/llvm-${MY_LLVM_V}.src.tar.xz ) -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="+system-llvm" - -RDEPEND=" - system-llvm? ( sys-devel/llvm:11=[llvm_targets_NVPTX(-)] ) -" -LLVM_MAX_SLOT=11 - -RDEPEND+=" - app-arch/p7zip - dev-libs/gmp:0= - dev-libs/libgit2:0 - >=dev-libs/libpcre2-10.23:0=[jit,unicode] - dev-libs/mpfr:0= - dev-libs/libutf8proc:0=[-cjk] - dev-util/patchelf - >=net-libs/mbedtls-2.2 - net-misc/curl[http2,ssh] - sci-libs/amd:0= - sci-libs/arpack:0= - sci-libs/camd:0= - sci-libs/ccolamd:0= - sci-libs/cholmod:0= - sci-libs/colamd:0= - sci-libs/fftw:3.0=[threads] - sci-libs/openlibm:0= - sci-libs/spqr:0= - sci-libs/umfpack:0= - >=sci-mathematics/dsfmt-2.2.4 - >=sys-libs/libunwind-1.1:0= - sys-libs/zlib:0= - >=virtual/blas-3.6 - virtual/lapack" - -DEPEND="${RDEPEND} - dev-util/patchelf - virtual/pkgconfig - !system-llvm? ( dev-util/cmake )" - -PATCHES=( - "${FILESDIR}/${PN}"-1.1.0-fix_llvm_install.patch - "${FILESDIR}/${PN}"-1.4.0-no_symlink_llvm.patch - "${FILESDIR}/${PN}"-1.6.0-fix-hardcoded-libs.patch - "${FILESDIR}/${PN}"-1.6.3-glibc-2.34.patch -) - -pkg_setup() { - use system-llvm && llvm_pkg_setup -} - -src_unpack() { - local tounpack=(${A}) - # the main source tree, followed by deps - unpack "${tounpack[0]}" - - mkdir -p "${S}/deps/srccache/" - for i in "${tounpack[@]:1}"; do - cp "${DISTDIR}/${i}" "${S}/deps/srccache/${i#julia-}" || die - done -} - -src_prepare() { - default - - # Sledgehammer: - # - prevent fetching of bundled stuff in compile and install phase - # - respect CFLAGS - # - respect EPREFIX and Gentoo specific paths - - sed -i \ - -e "\|SHIPFLAGS :=|c\\SHIPFLAGS := ${CFLAGS}" \ - Make.inc || die - - sed -i \ - -e "s|ar -rcs|$(tc-getAR) -rcs|g" \ - src/Makefile || die - - # disable doc install starting git fetching - sed -i -e 's~install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html~install: $(build_depsbindir)/stringreplace~' Makefile || die -} - -src_configure() { - use system-llvm && ewarn "You have enabled system-llvm. This is unsupported by upstream and may not work." - - # julia does not play well with the system versions of libuv - # USE_SYSTEM_LIBM=0 implies using external openlibm - cat <<-EOF > Make.user - LOCALBASE:="${EPREFIX}/usr" - override prefix:="${EPREFIX}/usr" - override libdir:="\$(prefix)/$(get_libdir)" - override CC:=$(tc-getCC) - override CXX:=$(tc-getCXX) - override AR:=$(tc-getAR) - - BUNDLE_DEBUG_LIBS:=0 - USE_BINARYBUILDER:=0 - USE_SYSTEM_CSL:=1 - USE_SYSTEM_LLVM:=$(usex system-llvm 1 0) - USE_SYSTEM_LIBUNWIND:=1 - USE_SYSTEM_PCRE:=1 - USE_SYSTEM_LIBM:=0 - USE_SYSTEM_OPENLIBM:=1 - USE_SYSTEM_DSFMT:=1 - USE_SYSTEM_BLAS:=1 - USE_SYSTEM_LAPACK:=1 - USE_SYSTEM_GMP:=1 - USE_SYSTEM_MPFR:=1 - USE_SYSTEM_SUITESPARSE:=1 - USE_SYSTEM_LIBUV:=0 - USE_SYSTEM_UTF8PROC:=1 - USE_SYSTEM_MBEDTLS:=1 - USE_SYSTEM_LIBSSH2:=1 - USE_SYSTEM_NGHTTP2:=1 - USE_SYSTEM_CURL:=1 - USE_SYSTEM_LIBGIT2:=1 - USE_SYSTEM_PATCHELF:=1 - USE_SYSTEM_ZLIB:=1 - USE_SYSTEM_P7ZIP:=1 - VERBOSE:=1 - EOF -} - -src_compile() { - # Julia accesses /proc/self/mem on Linux - addpredict /proc/self/mem - - default - pax-mark m "$(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')" -} - -src_install() { - emake install DESTDIR="${D}" - - if ! use system-llvm ; then - local llvmslot=$(ver_cut 1 ${MY_LLVM_V}) - cp "${S}/usr/lib/libLLVM-${llvmslot}jl.so" "${ED}/usr/$(get_libdir)/julia/" || die - fi - - dodoc README.md - - mv "${ED}"/usr/etc/julia "${ED}"/etc || die - rmdir "${ED}"/usr/etc || die - mv "${ED}"/usr/share/doc/julia/html "${ED}"/usr/share/doc/"${PF}" || die - rmdir "${ED}"/usr/share/doc/julia || die - - # The appdata directory is deprecated. - mv "${ED}"/usr/share/{appdata,metainfo}/ || die -} - -pkg_postinst() { - elog "To use Plots, you will need to install sci-visualization/gr." -} diff --git a/dev-lang/julia/julia-1.6.5.ebuild b/dev-lang/julia/julia-1.6.5-r2.ebuild index 534e938e4e3..a2d6758f86d 100644 --- a/dev-lang/julia/julia-1.6.5.ebuild +++ b/dev-lang/julia/julia-1.6.5-r2.ebuild @@ -38,7 +38,7 @@ RDEPEND+=" dev-libs/libutf8proc:0=[-cjk] dev-util/patchelf >=net-libs/mbedtls-2.2 - net-misc/curl[http2,ssh] + <net-misc/curl-7.81.0[http2,ssh] sci-libs/amd:0= sci-libs/arpack:0= sci-libs/camd:0= @@ -69,6 +69,7 @@ PATCHES=( "${FILESDIR}/${PN}"-1.6.5-llvm_13_compat_part_3.patch "${FILESDIR}/${PN}"-1.6.5-llvm_13_compat_part_4.patch "${FILESDIR}/${PN}"-1.6.5-libgit-1.2.patch + "${FILESDIR}/${PN}"-1.6.5-libgit-1.4.patch "${FILESDIR}/${PN}"-1.6.5-make-install-no-build.patch "${FILESDIR}/${PN}"-1.6.5-hardcoded-libs.patch "${FILESDIR}/${PN}"-1.6.5-do_not_set_rpath.patch diff --git a/dev-lang/julia/julia-1.7.1-r2.ebuild b/dev-lang/julia/julia-1.7.1-r4.ebuild index 58f9de7db70..64c2c07f71c 100644 --- a/dev-lang/julia/julia-1.7.1-r2.ebuild +++ b/dev-lang/julia/julia-1.7.1-r4.ebuild @@ -39,7 +39,7 @@ RDEPEND+=" >=dev-libs/libutf8proc-2.6.1:0=[-cjk] >=dev-util/patchelf-0.13 >=net-libs/mbedtls-2.2 - net-misc/curl[http2,ssh] + <net-misc/curl-7.81.0[http2,ssh] sci-libs/amd:0= sci-libs/arpack:0= sci-libs/camd:0= @@ -68,6 +68,7 @@ PATCHES=( "${DISTDIR}/${PN}"-1.7.1-llvm_13_compat_part_4.patch "${DISTDIR}/${PN}"-1.7.1-llvm_13_compat_part_5.patch "${FILESDIR}/${PN}"-1.6.5-libgit-1.2.patch + "${FILESDIR}/${PN}"-1.6.5-libgit-1.4.patch "${FILESDIR}/${PN}"-1.6.5-make-install-no-build.patch "${FILESDIR}/${PN}"-1.7.1-hardcoded-libs.patch "${FILESDIR}/${PN}"-1.7.1-do_not_set_rpath.patch diff --git a/dev-lang/lazarus/Manifest b/dev-lang/lazarus/Manifest index 6f1f3a7c298..52f9514f5fb 100644 --- a/dev-lang/lazarus/Manifest +++ b/dev-lang/lazarus/Manifest @@ -1 +1,2 @@ DIST lazarus-2.0.12.tar.gz 69560778 BLAKE2B ff6c9414483b0d50dbbb30c8fbf626c81d9c71ef0329aa1d58b37aa4288a500e1ab55d06bad27f637e3f09b9d062af1896720b9cb7367b092fc872cf613f8a3d SHA512 dfd22b2b96fca9d0f672f03b9120c4294a7e640737a09b26c274d304025c61566a8504a5484638c108e42a322b21992229451d95e38d7e491a1c2f07a663483e +DIST lazarus-2.2.0-0.tar.gz 76777421 BLAKE2B 29a7ed3285e3fbb6f72fe932d72d71edfd6903a8a5eb24f9534a12a4d1ccf5e40c61ce3cc1cbd8eef6dd7700f6e29fb640e35510b23a1ca1b02f7df0a4a738cc SHA512 4ebd8b4b7c6dfea491a30b1253e604646109d208c237e59be2fd9f6be3fb1e29443dd4e482076d77100678d0e4085b998398fca0532aa6122b59db7157af0ce4 diff --git a/dev-lang/lazarus/lazarus-2.2.0.ebuild b/dev-lang/lazarus/lazarus-2.2.0.ebuild new file mode 100644 index 00000000000..878b17d9434 --- /dev/null +++ b/dev-lang/lazarus/lazarus-2.2.0.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit desktop + +# See https://wiki.freepascal.org/Lazarus_2.0_fixes_branch for notes and +# changes in FPCVER. It *does* change between minor versions of lazarus. +FPCVER="3.2.2" + +DESCRIPTION="Lazarus IDE is a feature rich visual programming environment emulating Delphi" +HOMEPAGE="https://www.lazarus-ide.org/" +SRC_URI="https://sourceforge.net/projects/${PN}/files/Lazarus%20Zip%20_%20GZip/Lazarus%20${PV}/${P}-0.tar.gz" + +LICENSE="GPL-2 LGPL-2.1-with-linking-exception" +SLOT="0" # Note: Slotting Lazarus needs slotting fpc, see DEPEND. +KEYWORDS="~amd64 ~x86" +IUSE="minimal" + +DEPEND=">=dev-lang/fpc-${FPCVER}[source] + net-misc/rsync + x11-libs/gtk+:2 + >=sys-devel/binutils-2.19.1-r1:=" +RDEPEND="${DEPEND}" + +RESTRICT="strip" #269221 + +S="${WORKDIR}/${PN}" + +PATCHES=( "${FILESDIR}"/${PN}-0.9.26-fpcsrc.patch ) + +src_prepare() { + default + # Use default configuration (minus stripping) unless specifically requested otherwise + if ! test ${PPC_CONFIG_PATH+set} ; then + local FPCVER=$(fpc -iV) + export PPC_CONFIG_PATH="${WORKDIR}" + sed -e 's/^FPBIN=/#&/' /usr/lib/fpc/${FPCVER}/samplecfg | + sh -s /usr/lib/fpc/${FPCVER} "${PPC_CONFIG_PATH}" || die + fi +} + +src_compile() { + # TODO: Change to LCL_PLATFORM=qt5? + # bug #732758 + LCL_PLATFORM=gtk2 emake \ + $(usex minimal "" "bigide") \ + -j1 +} + +src_install() { + diropts -m0755 + dodir /usr/share + # Using rsync to avoid unnecessary copies and cleaning... + # Note: *.o and *.ppu are needed + rsync -a \ + --exclude="CVS" --exclude=".cvsignore" \ + --exclude="*.ppw" --exclude="*.ppl" \ + --exclude="*.ow" --exclude="*.a"\ + --exclude="*.rst" --exclude=".#*" \ + --exclude="*.~*" --exclude="*.bak" \ + --exclude="*.orig" --exclude="*.rej" \ + --exclude=".xvpics" --exclude="*.compiled" \ + --exclude="killme*" --exclude=".gdb_hist*" \ + --exclude="debian" --exclude="COPYING*" \ + --exclude="*.app" \ + "${S}" "${ED}"/usr/share \ + || die "Unable to copy files!" + + dosym ../share/lazarus/startlazarus /usr/bin/startlazarus + dosym ../share/lazarus/startlazarus /usr/bin/lazarus + dosym ../share/lazarus/lazbuild /usr/bin/lazbuild + use minimal || dosym ../share/lazarus/components/chmhelp/lhelp/lhelp /usr/bin/lhelp + dosym ../lazarus/images/ide_icon48x48.png /usr/share/pixmaps/lazarus.png + + make_desktop_entry startlazarus "Lazarus IDE" "lazarus" +} diff --git a/dev-lang/lfe/Manifest b/dev-lang/lfe/Manifest index 3ed06fd560d..4f9e8da5644 100644 --- a/dev-lang/lfe/Manifest +++ b/dev-lang/lfe/Manifest @@ -1,2 +1,2 @@ -DIST lfe-1.3.0_p20210112.zip 447903 BLAKE2B bc63fd7f988abba77e7f4baef906c2fd4370e1aeb2bc04b019d429586cbcb91792ac0f65a3d29a904997d2488a2540411c38e904c0208e2183a8f0f8362f7c36 SHA512 ee178436ca8aea1f1001e5f679a366414229f584cc0e0a38d9749b7cb49d7378a3f8681dcb8c1d5c61e4f498aa31c575a791fe21337b3079a11b623ada363de9 +DIST lfe-2.0.1.tar.gz 351818 BLAKE2B 4f661d2d4685af420bf9b531795ffacfe9b272b6bd39c81a4f3344e4003960d2deb31618df22d8f91c74b925ab522153b732d9afdbd894c64f70a533b573989e SHA512 47d062fcd1910580ba5d84f8887a27d0717cb7aae2a90fb3a7e7411fd46886dd73e342ccd4627227c70d13dcd2c5f66077d351812e9bc0c17d64e9ef65d04f96 DIST lfe-2.0.tar.gz 351324 BLAKE2B 811bd310cf917f3e1dc456c9e7c5cd09f5099a2ab20d2bde60e2057eb94ee9125298866b01ef9b483fdaef8572cb487c0a760407c79774e915fdd2c7c129d796 SHA512 b615f28947febe034b1bd155e6c357211ebbdb63aef67645a9681a4a30b799c2019a79ab8f33cd5d3003ad5da83e10af6b3e5c1abe810def92c88812d58c0d04 diff --git a/dev-lang/lfe/lfe-1.3.0_p20210112.ebuild b/dev-lang/lfe/lfe-2.0.1.ebuild index b5acbb1dd4b..bd2582d072c 100644 --- a/dev-lang/lfe/lfe-1.3.0_p20210112.ebuild +++ b/dev-lang/lfe/lfe-2.0.1.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit elisp-common toolchain-funcs @@ -14,10 +14,8 @@ if [[ "${PV}" == *9999* ]]; then EGIT_BRANCH="develop" EGIT_REPO_URI="https://github.com/rvirding/${PN}.git" else - COMMIT_SHA="e5f20c459a13b35ed1e71b1d2667363af168e958" - SRC_URI="https://github.com/rvirding/${PN}/archive/${COMMIT_SHA}.zip -> ${P}.zip" + SRC_URI="https://github.com/rvirding/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" KEYWORDS="~amd64 ~x86" - S="${WORKDIR}/${PN}-${COMMIT_SHA}" fi RESTRICT="mirror test" diff --git a/dev-lang/lua/Manifest b/dev-lang/lua/Manifest index 142b030f57d..9c5d059a97a 100644 --- a/dev-lang/lua/Manifest +++ b/dev-lang/lua/Manifest @@ -3,3 +3,5 @@ DIST lua-5.3.4-tests.tar.gz 103438 BLAKE2B ac82708022e7729039111c3df4fe24302c8d0 DIST lua-5.3.6.tar.gz 303770 BLAKE2B 07c37c56f43095a4f6ca8eb8b3adf19afd53107c02b62b2bcb3619565cb2100d5f823493eef93092d5e312b30fc28885a6d9e8f0ba5a23b5bed86dc4515a5d61 SHA512 ccc380d5e114d54504de0bfb0321ca25ec325d6ff1bfee44b11870b660762d1a9bf120490c027a0088128b58bb6b5271bbc648400cab84d2dc22b512c4841681 DIST lua-5.4.2-tests.tar.gz 128901 BLAKE2B 10e4f0e8760f9cbd4761fa26665008ae7412539f79a6a7687029808f08f0ae4a24721e787e2e87e5080c16e9dcce8577a7a39ddc6d3e483a3cfe11756139594e SHA512 1516c59deca211c38444bbf97b18e988e939209b03915d3691d756eeed31b52e8d3a1f05b71ac0b561965274c7b6f3afc4244cd2e9069995696e737e2d9dd40b DIST lua-5.4.2.tar.gz 353472 BLAKE2B 7e0e642684df635ed1c48db45989e86a2638024e30a170addf700b0c7d32276f1eaef80898539c671039c20cb0bed4861b12c58f4b8211653a17e89bad278d87 SHA512 9454a6ffd973598f2f4a2399834c31c4d5090bd12e716776e3189aa57760319d114ee64a8338bbc2ef5e08150bf0adc2ad94a1b2677f38538a43359969d4d920 +DIST lua-5.4.4-tests.tar.gz 134094 BLAKE2B 63f5888a506f504f849fb2000cf551960df8eca3107601dcc8243e8ea5a1b13a70bff7dea4aebe3ab35b7e9df58c2ca44a7a27aa4de82240877eb8d7a017642e SHA512 08b3d764b3f362a2cddf5a23e71b16eea96a234a970fa0048bab358ebbd77f99d9bd132af12254383c5bb5426516e1ce2107e529e88d3963869255f5a41198ef +DIST lua-5.4.4.tar.gz 360876 BLAKE2B 8747ef5c83bd4c54b73eeaad6991ab5fccc54ee000973afd9cf3367b8945f03c54e843ec88c48043003cd9d3b42281c593cb485b7165add2744cfea06d8b7668 SHA512 af0c35d5ba00fecbb2dd617bd7b825edf7418a16a73076e04f2a0df58cdbf098dc3ff4402e974afd789eb5d86d2e12ec6df9c84b99b23656ea694a85f83bcd21 diff --git a/dev-lang/lua/files/lua-5.4.2-r2-make.patch b/dev-lang/lua/files/lua-5.4.2-r2-make.patch new file mode 100644 index 00000000000..d14aa40df0a --- /dev/null +++ b/dev-lang/lua/files/lua-5.4.2-r2-make.patch @@ -0,0 +1,99 @@ +diff --git a/Makefile b/Makefile +index 1797df9..90284d8 100644 +--- a/Makefile ++++ b/Makefile +@@ -10,11 +10,11 @@ PLAT= guess + # so take care if INSTALL_TOP is not an absolute path. See the local target. + # You may want to make INSTALL_LMOD and INSTALL_CMOD consistent with + # LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h. +-INSTALL_TOP= /usr/local ++INSTALL_TOP= /usr + INSTALL_BIN= $(INSTALL_TOP)/bin +-INSTALL_INC= $(INSTALL_TOP)/include ++INSTALL_INC= $(INSTALL_TOP)/include/lua$V + INSTALL_LIB= $(INSTALL_TOP)/lib +-INSTALL_MAN= $(INSTALL_TOP)/man/man1 ++INSTALL_MAN= $(INSTALL_TOP)/share/man/man1 + INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V + INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V + +@@ -104,3 +104,18 @@ pc: + .PHONY: all $(PLATS) help test clean install uninstall local dummy echo pc + + # (end of Makefile) ++ ++# Use libtool for binary installs, etc. ++ ++export V ++export LIBTOOL = libtool --quiet --tag=CC ++# See libtool manual about how to set this ++ ++gentoo_clean: ++ cd src; $(MAKE) $@ ++ ++gentoo_install: ++ mkdir -p $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) ++ cd src; $(LIBTOOL) --mode=install $(INSTALL_EXEC) lua$V luac$V $(INSTALL_BIN) ++ cd src; $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) ++ cd src; $(LIBTOOL) --mode=install $(INSTALL_DATA) liblua$V.la $(INSTALL_LIB) +diff --git a/src/Makefile b/src/Makefile +index 514593d..8af8f99 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -37,10 +37,10 @@ CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem + LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o + BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS) + +-LUA_T= lua ++LUA_T= lua$V + LUA_O= lua.o + +-LUAC_T= luac ++LUAC_T= luac$V + LUAC_O= luac.o + + ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) +@@ -60,10 +60,10 @@ $(LUA_A): $(BASE_O) + $(AR) $@ $(BASE_O) + $(RANLIB) $@ + +-$(LUA_T): $(LUA_O) $(LUA_A) ++origin$(LUA_T): $(LUA_O) $(LUA_A) + $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) + +-$(LUAC_T): $(LUAC_O) $(LUA_A) ++origin$(LUAC_T): $(LUAC_O) $(LUA_A) + $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) + + test: +@@ -218,3 +218,30 @@ lzio.o: lzio.c lprefix.h lua.h luaconf.h llimits.h lmem.h lstate.h \ + lobject.h ltm.h lzio.h + + # (end of Makefile) ++ ++export LIBTOOL = libtool --quiet --tag=CC ++export LIB_VERSION = 6:1:1 ++ ++# The following rules use libtool for compiling and linking in order to ++# provide shared library support. ++ ++LIB_NAME = liblua$V.la ++LIB_OBJS = $(CORE_O:.o=.lo) $(LIB_O:.o=.lo) ++ ++%.lo %.o: %.c ++ $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $< ++ ++$(LIB_NAME): $(LIB_OBJS) ++ $(LIBTOOL) --mode=link $(CC) -version-info $(LIB_VERSION) \ ++ -rpath $(RPATH) $(LDFLAGS) -o $(LIB_NAME) $(LIB_OBJS) $(LIB_LIBS) ++ ++$(LUA_T): $(LUA_O:.o=.lo) $(LIB_NAME) ++ $(LIBTOOL) --mode=link $(CC) -static -export-dynamic $(LDFLAGS) -o $@ $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS) ++ ++$(LUAC_T): $(LUAC_O:.o=.lo) $(LIB_NAME) ++ $(LIBTOOL) --mode=link $(CC) -static $(LDFLAGS) -o $@ $(LUAC_O:.o=.lo) $(LIB_NAME) ++ ++gentoo_clean: ++ $(LIBTOOL) --mode=clean $(RM) $(ALL_O:.o=.lo) $(LIB_NAME) lua$V luac$V ++ ++gentoo_all: $(LIB_NAME) $(LUA_T) $(LUAC_T) diff --git a/dev-lang/lua/lua-5.1.5-r107.ebuild b/dev-lang/lua/lua-5.1.5-r107.ebuild new file mode 100644 index 00000000000..26750ca944e --- /dev/null +++ b/dev-lang/lua/lua-5.1.5-r107.ebuild @@ -0,0 +1,157 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit multilib multilib-minimal portability toolchain-funcs + +DESCRIPTION="A powerful light-weight programming language designed for extending applications" +HOMEPAGE="https://www.lua.org/" +SRC_URI="https://www.lua.org/ftp/${P}.tar.gz" + +LICENSE="MIT" +SLOT="5.1" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="+deprecated readline" + +COMMON_DEPEND=" + >=app-eselect/eselect-lua-3 + readline? ( >=sys-libs/readline-6.2_p5-r1:0=[${MULTILIB_USEDEP}] ) + !dev-lang/lua:0" +# Cross-compiling note: +# Must use libtool from the target system (DEPEND) because +# libtool from the build system (BDEPEND) is for building +# native binaries. +DEPEND=" + ${COMMON_DEPEND} + sys-devel/libtool" +RDEPEND="${COMMON_DEPEND}" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/lua${SLOT}/luaconf.h +) + +src_prepare() { + PATCHES=( + "${FILESDIR}/lua-5.1.5-make.patch" + "${FILESDIR}/${PN}-$(ver_cut 1-2)-module_paths.patch" + ) + if ! use deprecated ; then + # patches from 5.1.4 still apply + PATCHES+=( + "${FILESDIR}"/${PN}-5.1.4-deprecated.patch + "${FILESDIR}"/${PN}-5.1.4-test.patch + ) + fi + if ! use readline ; then + PATCHES+=( + "${FILESDIR}"/${PN}-$(ver_cut 1-2)-readline.patch + ) + fi + + default + + # use glibtool on Darwin (versus Apple libtool) + if [[ ${CHOST} == *-darwin* ]] ; then + sed -i -e '/LIBTOOL = /s:libtool:glibtool:' \ + Makefile src/Makefile || die + fi + + # correct lua versioning + sed -i -e 's/\(LIB_VERSION = \)6:1:1/\16:5:1/' src/Makefile + + sed -i -e 's:\(/README\)\("\):\1.gz\2:g' doc/readme.html + + # Using dynamic linked lua is not recommended for performance + # reasons. http://article.gmane.org/gmane.comp.lang.lua.general/18519 + # Mainly, this is of concern if your arch is poor with GPRs, like x86 + # Note that this only affects the interpreter binary (named lua), not the lua + # compiler (built statically) nor the lua libraries. + + # A slotted Lua uses different directories for headers & names for + # libraries, and pkgconfig should reflect that. + sed -r -i \ + -e "/^INSTALL_INC=/s,(/include)$,\1/lua${SLOT}," \ + -e "/^includedir=/s,(/include)$,\1/lua${SLOT}," \ + -e "/^Libs:/s,((-llua)($| )),\2${SLOT}\3," \ + "${S}"/etc/lua.pc + + # custom Makefiles + multilib_copy_sources +} + +multilib_src_configure() { + # We want packages to find our things... + sed -i \ + -e 's:/usr/local:'${EPREFIX}'/usr:' \ + -e "s:\([/\"]\)\<lib\>:\1$(get_libdir):g" \ + etc/lua.pc src/luaconf.h || die +} + +multilib_src_compile() { + tc-export CC + myflags= + # what to link to liblua + liblibs="-lm" + liblibs="${liblibs} $(dlopen_lib)" + + # what to link to the executables + mylibs= + if use readline; then + mylibs="-lreadline" + fi + + cd src + emake CC="${CC}" CFLAGS="-DLUA_USE_LINUX ${CFLAGS}" \ + RPATH="${EPREFIX}/usr/$(get_libdir)/" \ + LUA_LIBS="${mylibs}" \ + LIB_LIBS="${liblibs}" \ + V=$(ver_cut 1-2) \ + LIBTOOL="${ESYSROOT}/usr/bin/libtool" \ + gentoo_all + + mv lua_test ../test/lua.static +} + +multilib_src_install() { + emake INSTALL_TOP="${ED}/usr" INSTALL_LIB="${ED}/usr/$(get_libdir)" \ + V=${SLOT} gentoo_install + + insinto /usr/$(get_libdir)/pkgconfig + newins etc/lua.pc lua${SLOT}.pc +} + +multilib_src_install_all() { + DOCS="HISTORY README" + HTML_DOCS="doc/*.html doc/*.png doc/*.css doc/*.gif" + einstalldocs + newman doc/lua.1 lua${SLOT}.1 + newman doc/luac.1 luac${SLOT}.1 + find "${ED}" -name '*.la' -delete || die + find "${ED}" -name 'liblua*.a' -delete || die +} + +multilib_src_test() { + local positive="bisect cf echo env factorial fib fibfor hello printf sieve + sort trace-calls trace-globals" + local negative="readonly" + local test + + cd "${BUILD_DIR}" || die + for test in ${positive}; do + test/lua.static test/${test}.lua || die "test $test failed" + done + + for test in ${negative}; do + test/lua.static test/${test}.lua && die "test $test failed" + done +} + +pkg_postinst() { + eselect lua set --if-unset "${PN}${SLOT}" + + if has_version "app-editor/emacs"; then + if ! has_version "app-emacs/lua-mode"; then + einfo "Install app-emacs/lua-mode for lua support for emacs" + fi + fi +} diff --git a/dev-lang/lua/lua-5.3.6-r3.ebuild b/dev-lang/lua/lua-5.3.6-r3.ebuild new file mode 100644 index 00000000000..ff9e739e5cc --- /dev/null +++ b/dev-lang/lua/lua-5.3.6-r3.ebuild @@ -0,0 +1,206 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit autotools multilib multilib-minimal portability toolchain-funcs + +DESCRIPTION="A powerful light-weight programming language designed for extending applications" +HOMEPAGE="https://www.lua.org/" +TEST_PV="5.3.4" +TEST_P="${PN}-${TEST_PV}-tests" +SRC_URI=" + https://www.lua.org/ftp/${P}.tar.gz + test? ( https://www.lua.org/tests/${TEST_P}.tar.gz )" + +LICENSE="MIT" +SLOT="5.3" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="+deprecated readline test test-complete" + +COMMON_DEPEND=" + >=app-eselect/eselect-lua-3 + readline? ( sys-libs/readline:0= ) + !dev-lang/lua:0" +# Cross-compiling note: +# Must use libtool from the target system (DEPEND) because +# libtool from the build system (BDEPEND) is for building +# native binaries. +DEPEND=" + ${COMMON_DEPEND} + sys-devel/libtool" +RDEPEND="${COMMON_DEPEND}" + +RESTRICT="!test? ( test )" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/lua${SLOT}/luaconf.h +) + +PATCHES=( + "${FILESDIR}/lua-5.3.6-make.patch" +) + +src_prepare() { + default + # use glibtool on Darwin (versus Apple libtool) + if [[ ${CHOST} == *-darwin* ]] ; then + sed -i -e '/LIBTOOL = /s:/libtool:/glibtool:' \ + Makefile src/Makefile || die + fi + + # correct lua versioning + sed -i -e 's/\(LIB_VERSION = \)6:1:1/\10:0:0/' src/Makefile || die + + sed -i -e 's:\(/README\)\("\):\1.gz\2:g' doc/readme.html || die + + if ! use readline ; then + sed -i -e '/#define LUA_USE_READLINE/d' src/luaconf.h || die + fi + + # Using dynamic linked lua is not recommended for performance + # reasons. http://article.gmane.org/gmane.comp.lang.lua.general/18519 + # Mainly, this is of concern if your arch is poor with GPRs, like x86 + # Note that this only affects the interpreter binary (named lua), not the lua + # compiler (built statically) nor the lua libraries. + + # upstream does not use libtool, but we do (see bug #336167) + cp "${FILESDIR}/configure.in" "${S}/configure.ac" || die + eautoreconf + + # custom Makefiles + multilib_copy_sources +} + +multilib_src_configure() { + sed -i \ + -e 's:\(define LUA_ROOT\s*\).*:\1"'${EPREFIX}'/usr/":' \ + -e "s:\(define LUA_CDIR\s*LUA_ROOT \"\)lib:\1$(get_libdir):" \ + src/luaconf.h \ + || die "failed patching luaconf.h" + + econf +} + +multilib_src_compile() { + tc-export CC + + # what to link to liblua + liblibs="-lm" + liblibs="${liblibs} $(dlopen_lib)" + + # what to link to the executables + mylibs= + use readline && mylibs="-lreadline" + + cd src + + local myCFLAGS="" + use deprecated && myCFLAGS="-DLUA_COMPAT_5_1 -DLUA_COMPAT_5_2" + + case "${CHOST}" in + *-mingw*) : ;; + *) myCFLAGS+=" -DLUA_USE_LINUX" ;; + esac + + emake CC="${CC}" CFLAGS="${myCFLAGS} ${CFLAGS}" \ + SYSLDFLAGS="${LDFLAGS}" \ + RPATH="${EPREFIX}/usr/$(get_libdir)/" \ + LUA_LIBS="${mylibs}" \ + LIB_LIBS="${liblibs}" \ + V=$(ver_cut 1-2) \ + LIBTOOL="${ESYSROOT}/usr/bin/libtool" \ + gentoo_all +} + +multilib_src_install() { + emake INSTALL_TOP="${ED}/usr" INSTALL_LIB="${ED}/usr/$(get_libdir)" \ + V=${SLOT} gentoo_install + + case $SLOT in + 0) + LIBNAME="lua" + INCLUDEDIR_SUFFIX='' + ;; + *) LIBNAME="lua${SLOT}" + INCLUDEDIR_SUFFIX="/lua${SLOT}" + ;; + esac + + # We want packages to find our things... + # A slotted Lua uses different directories for headers & names for + # libraries, and pkgconfig should reflect that. + local PATCH_PV=$(ver_cut 1-2) + cp "${FILESDIR}/lua.pc" "${WORKDIR}" || die + sed -r -i \ + -e "/^INSTALL_INC=/s,(/include)$,\1/lua${SLOT}," \ + -e "s:^prefix= :prefix= ${EPREFIX}:" \ + -e "s:^V=.*:V= ${PATCH_PV}:" \ + -e "s:^R=.*:R= ${PV}:" \ + -e "s:/,lib,:/$(get_libdir):g" \ + -e "/^Libs:/s:( )(-llua)($| ):\1-l${LIBNAME}\3:" \ + -e "/^includedir=/s:include$:include${INCLUDEDIR_SUFFIX}:" \ + "${WORKDIR}/lua.pc" || die + + insinto "/usr/$(get_libdir)/pkgconfig" + newins "${WORKDIR}/lua.pc" "lua${SLOT}.pc" + # Copy Debian's symlink support: + # https://salsa.debian.org/lua-team/lua5.3/blob/master/debian/rules#L19 + # FreeBSD calls the pkgconfig 'lua-5.3.pc' + # Older systems called it 'lua53.pc' + dosym "lua${SLOT}.pc" "/usr/$(get_libdir)/pkgconfig/lua-${SLOT}.pc" + dosym "lua${SLOT}.pc" "/usr/$(get_libdir)/pkgconfig/lua${SLOT/.}.pc" +} + +multilib_src_install_all() { + DOCS="README" + HTML_DOCS="doc/*.html doc/*.png doc/*.css doc/*.gif" + einstalldocs + newman doc/lua.1 lua${SLOT}.1 + newman doc/luac.1 luac${SLOT}.1 + find "${ED}" -name '*.la' -delete || die + find "${ED}" -name 'liblua*.a' -delete || die +} + +# Makefile contains a dummy target that doesn't do tests +# but causes issues with slotted lua (bug #510360) +src_test() { + debug-print-function ${FUNCNAME} "$@" + cd "${WORKDIR}/lua-${TEST_PV}-tests" || die + # https://www.lua.org/tests/ + # There are two sets: + # basic + # complete. + # + # The basic subset is selected by passing -e'_U=true' + # The complete set is noted to contain tests that may consume too much memory or have non-portable tests. + # attrib.lua for example needs some multilib customization (have to compile the stuff in libs/ for each ABI) + TEST_OPTS="$(usex test-complete '' '-e_U=true')" + TEST_MARKER="${T}/test.failed" + rm -f "${TEST_MARKER}" + + # If we are failing, set the marker file, and only check it after done all ABIs + abi_src_test() { + debug-print-function ${FUNCNAME} "$@" + TEST_LOG="${T}/test.${MULTIBUILD_ID}.log" + eval "${BUILD_DIR}"/src/lua${SLOT} ${TEST_OPTS} all.lua 2>&1 | tee "${TEST_LOG}" || die + grep -sq -e "final OK" "${TEST_LOG}" || echo "FAIL ${MULTIBUILD_ID}" >>"${TEST_MARKER}" + return 0 + } + + multilib_foreach_abi abi_src_test + + if [ -e "${TEST_MARKER}" ]; then + cat "${TEST_MARKER}" + die "Tests failed" + fi +} + +pkg_postinst() { + eselect lua set --if-unset "${PN}${SLOT}" + + if has_version "app-editor/emacs"; then + if ! has_version "app-emacs/lua-mode"; then + einfo "Install app-emacs/lua-mode for lua support for emacs" + fi + fi +} diff --git a/dev-lang/lua/lua-5.4.2-r2.ebuild b/dev-lang/lua/lua-5.4.2-r2.ebuild new file mode 100644 index 00000000000..d3ea0294a6c --- /dev/null +++ b/dev-lang/lua/lua-5.4.2-r2.ebuild @@ -0,0 +1,203 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit autotools multilib multilib-minimal portability toolchain-funcs + +DESCRIPTION="A powerful light-weight programming language designed for extending applications" +HOMEPAGE="https://www.lua.org/" +TEST_PV="5.4.2" +TEST_P="${PN}-${TEST_PV}-tests" +SRC_URI=" + https://www.lua.org/ftp/${P}.tar.gz + test? ( https://www.lua.org/tests/${TEST_P}.tar.gz )" + +LICENSE="MIT" +SLOT="5.4" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="+deprecated readline test test-complete" + +COMMON_DEPEND=" + >=app-eselect/eselect-lua-3 + readline? ( sys-libs/readline:0= ) + !dev-lang/lua:0" +# Cross-compiling note: +# Must use libtool from the target system (DEPEND) because +# libtool from the build system (BDEPEND) is for building +# native binaries. +DEPEND=" + ${COMMON_DEPEND} + sys-devel/libtool" +RDEPEND="${COMMON_DEPEND}" + +RESTRICT="!test? ( test )" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/lua${SLOT}/luaconf.h +) + +PATCHES=( + "${FILESDIR}"/lua-5.4.2-r2-make.patch +) + +src_prepare() { + default + # use glibtool on Darwin (versus Apple libtool) + if [[ ${CHOST} == *-darwin* ]] ; then + sed -i -e '/LIBTOOL = /s:/libtool:/glibtool:' \ + Makefile src/Makefile || die + fi + + # correct lua versioning + sed -i -e 's/\(LIB_VERSION = \)6:1:1/\10:0:0/' src/Makefile || die + + sed -i -e 's:\(/README\)\("\):\1.gz\2:g' doc/readme.html || die + + # Using dynamic linked lua is not recommended for performance + # reasons. http://article.gmane.org/gmane.comp.lang.lua.general/18519 + # Mainly, this is of concern if your arch is poor with GPRs, like x86 + # Note that this only affects the interpreter binary (named lua), not the lua + # compiler (built statically) nor the lua libraries. + + # upstream does not use libtool, but we do (see bug #336167) + cp "${FILESDIR}/configure.in" "${S}/configure.ac" || die + eautoreconf + + # custom Makefiles + multilib_copy_sources +} + +multilib_src_configure() { + sed -i \ + -e 's:\(define LUA_ROOT\s*\).*:\1"'${EPREFIX}'/usr/":' \ + -e "s:\(define LUA_CDIR\s*LUA_ROOT \"\)lib:\1$(get_libdir):" \ + src/luaconf.h \ + || die "failed patching luaconf.h" + + econf +} + +multilib_src_compile() { + tc-export CC + + # what to link to liblua + liblibs="-lm" + liblibs="${liblibs} $(dlopen_lib)" + + # what to link to the executables + mylibs= + use readline && mylibs="-lreadline" + + cd src + + local myCFLAGS="" + use deprecated && myCFLAGS+="-DLUA_COMPAT_5_3 " + use readline && myCFLAGS+="-DLUA_USE_READLINE " + + case "${CHOST}" in + *-mingw*) : ;; + *) myCFLAGS+="-DLUA_USE_LINUX " ;; + esac + + emake CC="${CC}" CFLAGS="${myCFLAGS} ${CFLAGS}" \ + SYSLDFLAGS="${LDFLAGS}" \ + RPATH="${EPREFIX}/usr/$(get_libdir)/" \ + LUA_LIBS="${mylibs}" \ + LIB_LIBS="${liblibs}" \ + V=$(ver_cut 1-2) \ + LIBTOOL="${ESYSROOT}/usr/bin/libtool" \ + gentoo_all +} + +multilib_src_install() { + emake INSTALL_TOP="${ED}/usr" INSTALL_LIB="${ED}/usr/$(get_libdir)" \ + V=${SLOT} gentoo_install + + case $SLOT in + 0) + LIBNAME="lua" + INCLUDEDIR_SUFFIX='' + ;; + *) LIBNAME="lua${SLOT}" + INCLUDEDIR_SUFFIX="/lua${SLOT}" + ;; + esac + + # We want packages to find our things... + # A slotted Lua uses different directories for headers & names for + # libraries, and pkgconfig should reflect that. + local PATCH_PV=$(ver_cut 1-2) + cp "${FILESDIR}/lua.pc" "${WORKDIR}" || die + sed -r -i \ + -e "/^INSTALL_INC=/s,(/include)$,\1/lua${SLOT}," \ + -e "s:^prefix= :prefix= ${EPREFIX}:" \ + -e "s:^V=.*:V= ${PATCH_PV}:" \ + -e "s:^R=.*:R= ${PV}:" \ + -e "s:/,lib,:/$(get_libdir):g" \ + -e "/^Libs:/s:( )(-llua)($| ):\1-l${LIBNAME}\3:" \ + -e "/^includedir=/s:include$:include${INCLUDEDIR_SUFFIX}:" \ + "${WORKDIR}/lua.pc" || die + + insinto "/usr/$(get_libdir)/pkgconfig" + newins "${WORKDIR}/lua.pc" "lua${SLOT}.pc" + # Copy Debian's symlink support: + # https://salsa.debian.org/lua-team/lua5.3/blob/master/debian/rules#L19 + # FreeBSD calls the pkgconfig 'lua-5.3.pc' + # Older systems called it 'lua53.pc' + dosym "lua${SLOT}.pc" "/usr/$(get_libdir)/pkgconfig/lua-${SLOT}.pc" + dosym "lua${SLOT}.pc" "/usr/$(get_libdir)/pkgconfig/lua${SLOT/.}.pc" +} + +multilib_src_install_all() { + DOCS="README" + HTML_DOCS="doc/*.html doc/*.png doc/*.css doc/*.gif" + einstalldocs + newman doc/lua.1 lua${SLOT}.1 + newman doc/luac.1 luac${SLOT}.1 + find "${ED}" -name '*.la' -delete || die + find "${ED}" -name 'liblua*.a' -delete || die +} + +# Makefile contains a dummy target that doesn't do tests +# but causes issues with slotted lua (bug #510360) +src_test() { + debug-print-function ${FUNCNAME} "$@" + cd "${WORKDIR}/lua-${TEST_PV}-tests" || die + # https://www.lua.org/tests/ + # There are two sets: + # basic + # complete. + # + # The basic subset is selected by passing -e'_U=true' + # The complete set is noted to contain tests that may consume too much memory or have non-portable tests. + # attrib.lua for example needs some multilib customization (have to compile the stuff in libs/ for each ABI) + TEST_OPTS="$(usex test-complete '' '-e_U=true')" + TEST_MARKER="${T}/test.failed" + rm -f "${TEST_MARKER}" + + # If we are failing, set the marker file, and only check it after done all ABIs + abi_src_test() { + debug-print-function ${FUNCNAME} "$@" + TEST_LOG="${T}/test.${MULTIBUILD_ID}.log" + eval "${BUILD_DIR}"/src/lua${SLOT} ${TEST_OPTS} all.lua 2>&1 | tee "${TEST_LOG}" || die + grep -sq -e "final OK" "${TEST_LOG}" || echo "FAIL ${MULTIBUILD_ID}" >>"${TEST_MARKER}" + return 0 + } + + multilib_foreach_abi abi_src_test + + if [ -e "${TEST_MARKER}" ]; then + cat "${TEST_MARKER}" + die "Tests failed" + fi +} + +pkg_postinst() { + eselect lua set --if-unset "${PN}${SLOT}" + + if has_version "app-editor/emacs"; then + if ! has_version "app-emacs/lua-mode"; then + einfo "Install app-emacs/lua-mode for lua support for emacs" + fi + fi +} diff --git a/dev-lang/lua/lua-5.4.4.ebuild b/dev-lang/lua/lua-5.4.4.ebuild new file mode 100644 index 00000000000..52f54f4b306 --- /dev/null +++ b/dev-lang/lua/lua-5.4.4.ebuild @@ -0,0 +1,203 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit autotools multilib multilib-minimal portability toolchain-funcs + +DESCRIPTION="A powerful light-weight programming language designed for extending applications" +HOMEPAGE="https://www.lua.org/" +TEST_PV="5.4.4" +TEST_P="${PN}-${TEST_PV}-tests" +SRC_URI=" + https://www.lua.org/ftp/${P}.tar.gz + test? ( https://www.lua.org/tests/${TEST_P}.tar.gz )" + +LICENSE="MIT" +SLOT="5.4" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="+deprecated readline test test-complete" + +COMMON_DEPEND=" + >=app-eselect/eselect-lua-3 + readline? ( sys-libs/readline:0= ) + !dev-lang/lua:0" +# Cross-compiling note: +# Must use libtool from the target system (DEPEND) because +# libtool from the build system (BDEPEND) is for building +# native binaries. +DEPEND=" + ${COMMON_DEPEND} + sys-devel/libtool" +RDEPEND="${COMMON_DEPEND}" + +RESTRICT="!test? ( test )" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/lua${SLOT}/luaconf.h +) + +PATCHES=( + "${FILESDIR}"/lua-5.4.2-r2-make.patch +) + +src_prepare() { + default + # use glibtool on Darwin (versus Apple libtool) + if [[ ${CHOST} == *-darwin* ]] ; then + sed -i -e '/LIBTOOL = /s:/libtool:/glibtool:' \ + Makefile src/Makefile || die + fi + + # correct lua versioning + sed -i -e 's/\(LIB_VERSION = \)6:1:1/\10:0:0/' src/Makefile || die + + sed -i -e 's:\(/README\)\("\):\1.gz\2:g' doc/readme.html || die + + # Using dynamic linked lua is not recommended for performance + # reasons. http://article.gmane.org/gmane.comp.lang.lua.general/18519 + # Mainly, this is of concern if your arch is poor with GPRs, like x86 + # Note that this only affects the interpreter binary (named lua), not the lua + # compiler (built statically) nor the lua libraries. + + # upstream does not use libtool, but we do (see bug #336167) + cp "${FILESDIR}/configure.in" "${S}/configure.ac" || die + eautoreconf + + # custom Makefiles + multilib_copy_sources +} + +multilib_src_configure() { + sed -i \ + -e 's:\(define LUA_ROOT\s*\).*:\1"'${EPREFIX}'/usr/":' \ + -e "s:\(define LUA_CDIR\s*LUA_ROOT \"\)lib:\1$(get_libdir):" \ + src/luaconf.h \ + || die "failed patching luaconf.h" + + econf +} + +multilib_src_compile() { + tc-export CC + + # what to link to liblua + liblibs="-lm" + liblibs="${liblibs} $(dlopen_lib)" + + # what to link to the executables + mylibs= + use readline && mylibs="-lreadline" + + cd src + + local myCFLAGS="" + use deprecated && myCFLAGS+="-DLUA_COMPAT_5_3 " + use readline && myCFLAGS+="-DLUA_USE_READLINE " + + case "${CHOST}" in + *-mingw*) : ;; + *) myCFLAGS+="-DLUA_USE_LINUX " ;; + esac + + emake CC="${CC}" CFLAGS="${myCFLAGS} ${CFLAGS}" \ + SYSLDFLAGS="${LDFLAGS}" \ + RPATH="${EPREFIX}/usr/$(get_libdir)/" \ + LUA_LIBS="${mylibs}" \ + LIB_LIBS="${liblibs}" \ + V=$(ver_cut 1-2) \ + LIBTOOL="${ESYSROOT}/usr/bin/libtool" \ + gentoo_all +} + +multilib_src_install() { + emake INSTALL_TOP="${ED}/usr" INSTALL_LIB="${ED}/usr/$(get_libdir)" \ + V=${SLOT} gentoo_install + + case $SLOT in + 0) + LIBNAME="lua" + INCLUDEDIR_SUFFIX='' + ;; + *) LIBNAME="lua${SLOT}" + INCLUDEDIR_SUFFIX="/lua${SLOT}" + ;; + esac + + # We want packages to find our things... + # A slotted Lua uses different directories for headers & names for + # libraries, and pkgconfig should reflect that. + local PATCH_PV=$(ver_cut 1-2) + cp "${FILESDIR}/lua.pc" "${WORKDIR}" || die + sed -r -i \ + -e "/^INSTALL_INC=/s,(/include)$,\1/lua${SLOT}," \ + -e "s:^prefix= :prefix= ${EPREFIX}:" \ + -e "s:^V=.*:V= ${PATCH_PV}:" \ + -e "s:^R=.*:R= ${PV}:" \ + -e "s:/,lib,:/$(get_libdir):g" \ + -e "/^Libs:/s:( )(-llua)($| ):\1-l${LIBNAME}\3:" \ + -e "/^includedir=/s:include$:include${INCLUDEDIR_SUFFIX}:" \ + "${WORKDIR}/lua.pc" || die + + insinto "/usr/$(get_libdir)/pkgconfig" + newins "${WORKDIR}/lua.pc" "lua${SLOT}.pc" + # Copy Debian's symlink support: + # https://salsa.debian.org/lua-team/lua5.3/blob/master/debian/rules#L19 + # FreeBSD calls the pkgconfig 'lua-5.3.pc' + # Older systems called it 'lua53.pc' + dosym "lua${SLOT}.pc" "/usr/$(get_libdir)/pkgconfig/lua-${SLOT}.pc" + dosym "lua${SLOT}.pc" "/usr/$(get_libdir)/pkgconfig/lua${SLOT/.}.pc" +} + +multilib_src_install_all() { + DOCS="README" + HTML_DOCS="doc/*.html doc/*.png doc/*.css doc/*.gif" + einstalldocs + newman doc/lua.1 lua${SLOT}.1 + newman doc/luac.1 luac${SLOT}.1 + find "${ED}" -name '*.la' -delete || die + find "${ED}" -name 'liblua*.a' -delete || die +} + +# Makefile contains a dummy target that doesn't do tests +# but causes issues with slotted lua (bug #510360) +src_test() { + debug-print-function ${FUNCNAME} "$@" + cd "${WORKDIR}/lua-${TEST_PV}-tests" || die + # https://www.lua.org/tests/ + # There are two sets: + # basic + # complete. + # + # The basic subset is selected by passing -e'_U=true' + # The complete set is noted to contain tests that may consume too much memory or have non-portable tests. + # attrib.lua for example needs some multilib customization (have to compile the stuff in libs/ for each ABI) + TEST_OPTS="$(usex test-complete '' '-e_U=true')" + TEST_MARKER="${T}/test.failed" + rm -f "${TEST_MARKER}" + + # If we are failing, set the marker file, and only check it after done all ABIs + abi_src_test() { + debug-print-function ${FUNCNAME} "$@" + TEST_LOG="${T}/test.${MULTIBUILD_ID}.log" + eval "${BUILD_DIR}"/src/lua${SLOT} ${TEST_OPTS} all.lua 2>&1 | tee "${TEST_LOG}" || die + grep -sq -e "final OK" "${TEST_LOG}" || echo "FAIL ${MULTIBUILD_ID}" >>"${TEST_MARKER}" + return 0 + } + + multilib_foreach_abi abi_src_test + + if [ -e "${TEST_MARKER}" ]; then + cat "${TEST_MARKER}" + die "Tests failed" + fi +} + +pkg_postinst() { + eselect lua set --if-unset "${PN}${SLOT}" + + if has_version "app-editor/emacs"; then + if ! has_version "app-emacs/lua-mode"; then + einfo "Install app-emacs/lua-mode for lua support for emacs" + fi + fi +} diff --git a/dev-lang/luajit/Manifest b/dev-lang/luajit/Manifest index 4941ba698e3..08aac0e839e 100644 --- a/dev-lang/luajit/Manifest +++ b/dev-lang/luajit/Manifest @@ -1,2 +1,3 @@ DIST LuaJIT-2.0.5.tar.gz 849845 BLAKE2B 961c8622e19b0e66a76a875cb46ad149cb2559b5af41f360dc41dd0d6bb924583e6477dd1329f67c2ac6ea4b8dc42c5e2f4d63ea49400aba4d9e7c7e85e4b085 SHA512 2636675602b4a060b0571c05220db2061dd2f38568e35b2be346a0f5e3128d87057d11d3d0d7567d8cc4e0817b5e4cf2c52a17a48065520962b157816465a9fe DIST LuaJIT-2.1.0-beta3.tar.gz 1025180 BLAKE2B ac3d12e25bd9946ba41aed6672c66884e7256e6be99d7ee8d1260d697453c966b24d60387f278f47233bad44cda61085c9059e6f62c0bc7cfdaaefde282346c5 SHA512 c44e967a0f671ed32b55aee810bc8b3b63737a2d7363b8984ae1949b24f98dbb3f9be7c1e10239fdeb96a3e3c836f606342cbd61838cf9bcadb077443eb5bc12 +DIST luajit-2.1.0_beta3_p20220127.tar.gz 1072282 BLAKE2B e1d4834683b9ec16f0567f5de486262d84af145e3e27724d343c130288e90abff089fd5c7ff1275f9dde3cb5ae4f818f710020bd708c599972a14f1671381c2a SHA512 4c6ae7173bb91dc2d4d425da4afdab2520078e15ae4471c0cb99a255dd7544d6900b333efbbfc8f26ffbc4fcd8f1d2daf65671c59b5cafd6b0d53cb07b49d4ff diff --git a/dev-lang/luajit/luajit-2.1.0_beta3-r2.ebuild b/dev-lang/luajit/luajit-2.1.0_beta3-r2.ebuild index b3ec32e091b..139c920dcc0 100644 --- a/dev-lang/luajit/luajit-2.1.0_beta3-r2.ebuild +++ b/dev-lang/luajit/luajit-2.1.0_beta3-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -16,7 +16,7 @@ SRC_URI="https://luajit.org/download/${MY_P}.tar.gz" LICENSE="MIT" # this should probably be pkgmoved to 2.0 for sake of consistency. SLOT="2" -KEYWORDS="~arm64 -hppa -riscv -sparc" +KEYWORDS="arm64 -hppa -riscv -sparc" IUSE="lua52compat static-libs" PATCHES=( diff --git a/dev-lang/luajit/luajit-2.1.0_beta3_p20220127-r1.ebuild b/dev-lang/luajit/luajit-2.1.0_beta3_p20220127-r1.ebuild new file mode 100644 index 00000000000..804ab4ffd9d --- /dev/null +++ b/dev-lang/luajit/luajit-2.1.0_beta3_p20220127-r1.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +GIT_COMMIT=1d7b5029c5ba36870d25c67524034d452b761d27 + +inherit pax-utils toolchain-funcs + +MY_PV="$(ver_cut 1-5)" +MY_PV="${MY_PV/_beta/-beta}" +MY_P="LuaJIT-${MY_PV}" + +DESCRIPTION="Just-In-Time Compiler for the Lua programming language" +HOMEPAGE="https://luajit.org/" +SRC_URI="https://luajit.org/download/${MY_P}.tar.gz" +SRC_URI="https://github.com/LuaJIT/LuaJIT/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz" + +LICENSE="MIT" +# this should probably be pkgmoved to 2.0 for sake of consistency. +SLOT="2" +KEYWORDS="~amd64 ~arm ~arm64 -hppa ~ppc -riscv -sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="lua52compat static-libs" + +PATCHES=( +) + +S="${WORKDIR}/LuaJIT-${GIT_COMMIT}" + +_emake() { + emake \ + Q= \ + PREFIX="${EPREFIX}/usr" \ + MULTILIB="$(get_libdir)" \ + DESTDIR="${D}" \ + CFLAGS="" \ + LDFLAGS="" \ + HOST_CC="$(tc-getBUILD_CC)" \ + HOST_CFLAGS="${BUILD_CPPFLAGS} ${BUILD_CFLAGS}" \ + HOST_LDFLAGS="${BUILD_LDFLAGS}" \ + STATIC_CC="$(tc-getCC)" \ + DYNAMIC_CC="$(tc-getCC) -fPIC" \ + TARGET_LD="$(tc-getCC)" \ + TARGET_CFLAGS="${CPPFLAGS} ${CFLAGS}" \ + TARGET_LDFLAGS="${LDFLAGS}" \ + TARGET_AR="$(tc-getAR) rcus" \ + BUILDMODE="$(usex static-libs mixed dynamic)" \ + TARGET_STRIP="true" \ + INSTALL_LIB="${ED}/usr/$(get_libdir)" \ + "$@" +} + +src_compile() { + tc-export_build_env + _emake XCFLAGS="$(usex lua52compat "-DLUAJIT_ENABLE_LUA52COMPAT" "")" +} + +src_install() { + _emake install +dosym luajit-2.1.0-beta3 /usr/bin/luajit + pax-mark m "${ED}/usr/bin/luajit-${MY_PV}" + + HTML_DOCS="doc/." einstalldocs +} diff --git a/dev-lang/mercury-extras/Manifest b/dev-lang/mercury-extras/Manifest index f58135466d9..7fd31befe52 100644 --- a/dev-lang/mercury-extras/Manifest +++ b/dev-lang/mercury-extras/Manifest @@ -1,4 +1,8 @@ DIST mercury-extras-20.06-gentoo-patchset-0.tar.gz 1093 BLAKE2B cd0087a7a878c303a610e0007b352deec2e54b8223af1fbdcdd5e1fec0a7d6b4533895ba4ec01d4f90734349535a4c16c69f4ec60495f5a7888f99e4580e3ce3 SHA512 abd74dee931a01085a75f45d2793109737662345bdc68f4cf25dd874b59726da6a5ec8acd84cc8f0957052eeb9e5a9e3502090a0688fbea817d05c6948728ecb DIST mercury-extras-20.06.1-gentoo-patchset-0.tar.gz 617 BLAKE2B e16a3887bd0927911e2062befa38119d0347e01eae08d21dcf185942648ce52a94890c26059d39b096f69d19227c2ed22e2d3ded0cc762ebfd1bcb702810f5ea SHA512 1274c08c7c02f6f5fa5183f42e958a8e469df38d8e693722134a24aa846d4f3a74dafa0dd4f9d11fbca58497ff6d714aa7456dc2fd516d8961bc1ba43f3b3b8c +DIST mercury-extras-22.01-gentoo-patchset-0.tar.gz 436 BLAKE2B 2c1ff61b87e04777f3d3b66e7a6ae1c8e82e7caec413e2ed51eeb785b5dd8bc1773aa065219ccc58833b1c2aae3d481f531b94a48c215ce7eea2e0762948f946 SHA512 eac4615c951665150c6e6d2cc317d68be8e510aa9be663cadfe04b55d30fe8a0d17fae93a19d1e54556179618262ea4fdb6381e05aca278c4c516bc1f52656bd +DIST mercury-extras-22.01.1-gentoo-patchset-1.tar.gz 824 BLAKE2B 677ab82f668f2e35cccf6eff0fc453fb5483941b5315891b1b02a2afb3216b59c86aa3712cdbc7382aa604ce7d1ac7cd8e32bb25c7643b8a3786bae09e987dbb SHA512 bb6ca63a9d4ceb71f7e2c07540301ca319a0163414b5d005251de4b8d4948fcd551b892e1520be0e95c845c31fd6953f2293f5fe52990af680b5bf9117a22e69 DIST mercury-srcdist-20.06.1.tar.gz 47796261 BLAKE2B f282c6edb78e9090eb451585c65c9214927b94eaa5fcdf6f674aef6beb62eb65179f998bcc2e56c3c93b73dd1dc94973084eb8363bc05e334384096c9520d478 SHA512 94e901e5d3db39e3342bf2d6a2a74556a7b18b295c7e02669b487a81d41c72e572046ce1133d670ca6c1b8e246dd277439087efe8fb99b979a73555a101aa9a8 DIST mercury-srcdist-20.06.tar.gz 47768559 BLAKE2B f242aa2ef7da53aa2dfa054e4fee8646434d276f0748b014e33ea52d22f2a8a37e6fecaa20617f4943c4c1e7d8c179ed0603a344fde2dd58da98b2bacadf1a71 SHA512 b76bd22d8eb16242c68b614ff122ed7ee7535efef6c0ceb8cc798fee4c550bc41b6faff2135cea43b24c652b654bb35ae049656585d8e7bf3a1122d07cb1ecf4 +DIST mercury-srcdist-22.01.1.tar.gz 48956249 BLAKE2B 0f5a7662327f27c27a4d9e421f71afa58920f6232093452781124817ce5c34d1953a80a08b75e95101a7e2e88159b7d4ead08d25c67a99abcb908a9582af2bab SHA512 5fa49640307233ea0f641488e5ea526385e52833007a31469e083711b63925ca7568d7ad6e09301ddf7816384a080546bc4cf46b1422f974e008917d1aa4f37a +DIST mercury-srcdist-22.01.tar.gz 48960609 BLAKE2B 4ac45251bc098c1465f4bc418501db152bfcf36a2e04bb9153a44c44ff2dff300545103c29551818e773728c5a61947c019997fcc2cb64900e538d5ef64c1b39 SHA512 35b3b1e9fd85062edea5263b304bfc965382d04353e5548d59211519ee222bb6a8e8c95cb03faa089062e39c90b2d1c4af7ca0d9eabbf3bb44872d461e10ff2d diff --git a/dev-lang/mercury-extras/mercury-extras-22.01.1.ebuild b/dev-lang/mercury-extras/mercury-extras-22.01.1.ebuild new file mode 100644 index 00000000000..6ab5fe3c945 --- /dev/null +++ b/dev-lang/mercury-extras/mercury-extras-22.01.1.ebuild @@ -0,0 +1,298 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit eutils multilib vcs-clean + +PATCHSET_VER="1" +MY_P=mercury-srcdist-${PV} + +DESCRIPTION="Additional libraries and tools that are not part of the Mercury standard library" +HOMEPAGE="https://www.mercurylang.org/index.html" +SRC_URI="https://dl.mercurylang.org/release/${MY_P}.tar.gz + https://dev.gentoo.org/~keri/distfiles/mercury-extras/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz" + +LICENSE="GPL-2 LGPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +IUSE="cairo examples glut gmp iodbc ncurses odbc opengl ssl tk tommath X xml" +REQUIRED_USE="?? ( odbc iodbc )" + +RDEPEND=" + ~dev-lang/mercury-${PV} + cairo? ( >=x11-libs/cairo-1.10.0 ) + gmp? ( dev-libs/gmp:0 ) + glut? ( media-libs/freeglut ) + odbc? ( dev-db/unixODBC ) + iodbc? ( dev-db/libiodbc ) + tommath? ( dev-libs/libtommath ) + ncurses? ( sys-libs/ncurses:= ) + opengl? ( + virtual/opengl + virtual/glu + ) + tk? ( + dev-lang/tcl:0 + dev-lang/tk:0 + ) + X? ( x11-libs/libX11 )" + +DEPEND="${RDEPEND}" + +S="${WORKDIR}"/${MY_P}/extras + +mercury_pkgs() { + echo " + align_right/align_right:bin: + base64/mercury_base64:lib: + cgi/mercury_www:lib: + complex_numbers/complex_numbers:lib: + $(use ncurses && echo \ + curs/curs:lib:ncurses,panel curses/mcurses:lib:ncurses) + dynamic_linking/dl:lib: + error/error:bin: + fixed/fixed:lib: + $(use gmp && echo gmp_int/gmp_int:lib:) + $(use tommath && echo mp_int/mp_int:lib:libtommath) + $(use X && echo graphics/easyx/easyx:lib:x11) + $(use cairo && echo graphics/mercury_cairo/mercury_cairo:lib:cairo) + $(use glut && echo graphics/mercury_glut/mercury_glut:lib:freeglut) + $(use opengl && echo graphics/mercury_opengl/mercury_opengl:lib:gl,glu) + $(use tk && echo graphics/mercury_tcltk/mercury_tcltk:lib:tk) + lex/lex:lib: + lex/regex:lib: + moose/moose:bin: + net/net:lib: + net/echo:bin: + $(use ssl && echo mopenssl/mopenssl:lib:openssl) + $(use odbc && echo odbc/odbc:lib:odbc) + $(use iodbc && echo odbc/odbc:lib:libiodbc) + posix/posix:lib: + $(has_version dev-lang/mercury[trail] && echo \ + references/global:lib:) + show_ops/show_ops:bin: + solver_types/library/any:lib: + $(use xml && echo xml/xml:lib:)" +} + +mercury_pkg_setup() { + mercury_pkg=${1%%:*} + mercury_pkg_dir=${mercury_pkg%/*} + mercury_pkg_name=${mercury_pkg##*/} + + mercury_pkg_atts=${1#*:} + mercury_pkg_type=${mercury_pkg_atts%%:*} + mercury_pkg_deps=${mercury_pkg_atts#*:} + + cd "${S}"/${mercury_pkg_dir} || die + + echo ">> Preparing Mercury package: ${mercury_pkg}" + + echo "MCFLAGS += --libgrades-exclude java" \ + >> "${S}"/${mercury_pkg_dir}/Mercury.options + echo "MCFLAGS += --libgrades-exclude csharp" \ + >> "${S}"/${mercury_pkg_dir}/Mercury.options + + if test -n "$mercury_pkg_deps"; then + echo "EXTRA_CFLAGS += $(pkg-config --cflags ${mercury_pkg_deps/,/ })" \ + >> "${S}"/${mercury_pkg_dir}/Mercury.options + echo "EXTRA_LDFLAGS += $(pkg-config --libs ${mercury_pkg_deps/,/ })" \ + >> "${S}"/${mercury_pkg_dir}/Mercury.options + fi + + if test ${mercury_pkg_name} = dl; then + echo "EXTRA_LDFLAGS += -ldl" >> "${S}"/${mercury_pkg_dir}/Mercury.options + elif test ${mercury_pkg_name} = gmp_int; then + echo "EXTRA_LDFLAGS += -lgmp" >> "${S}"/${mercury_pkg_dir}/Mercury.options + elif test ${mercury_pkg_name} = mercury_tcltk; then + echo "EXTRA_CFLAGS += -DUSE_INTERP_RESULT" \ + >> "${S}"/${mercury_pkg_dir}/Mercury.options + elif test ${mercury_pkg_name} = odbc && use odbc; then + echo "EXTRA_CFLAGS += -DMODBC_UNIX -DMODBC_MYSQL" \ + >> "${S}"/${mercury_pkg_dir}/Mercury.options + elif test ${mercury_pkg_name} = odbc && use iodbc; then + echo "EXTRA_CFLAGS += -DMODBC_IODBC -DMODBC_MYSQL" \ + >> "${S}"/${mercury_pkg_dir}/Mercury.options + fi +} + +mercury_pkg_compile() { + mercury_pkg=${1%%:*} + mercury_pkg_dir=${mercury_pkg%/*} + mercury_pkg_name=${mercury_pkg##*/} + + mercury_pkg_atts=${1#*:} + mercury_pkg_type=${mercury_pkg_atts%:*} + + cd "${S}"/${mercury_pkg_dir} || die + + echo ">> Compiling Mercury package: ${mercury_pkg}" + + if test "${mercury_pkg_type}" = "bin"; then + mercury_mmc_target=${mercury_pkg_name} + else + mercury_mmc_target=lib${mercury_pkg_name} + fi + + mmc -f *.m || die "mmc -f .m failed" + + mmc \ + --make \ + --verbose-commands \ + --no-strip \ + --cflags "${CFLAGS}" \ + --ld-flags "${LDFLAGS}" \ + --ld-libflags "${LDFLAGS}" \ + ${mercury_mmc_target} || die "mmc ${mercury_mmc_target} failed" +} + +mercury_pkg_install() { + mercury_pkg=${1%%:*} + mercury_pkg_dir=${mercury_pkg%/*} + mercury_pkg_name=${mercury_pkg##*/} + + mercury_pkg_atts=${1#*:} + mercury_pkg_type=${mercury_pkg_atts%:*} + + cd "${S}"/${mercury_pkg_dir} || die + + echo ">> Installing Mercury package: ${mercury_pkg}" + + if test "${mercury_pkg_type}" = "bin"; then + into /usr/$(get_libdir)/mercury/extras + dobin ${mercury_pkg_name} + else + mmc \ + --make \ + --verbose-commands \ + --no-strip \ + --cflags "${CFLAGS}" \ + --ld-flags "${LDFLAGS}" \ + --ld-libflags "${LDFLAGS}" \ + --install-prefix "${D}/usr/$(get_libdir)/mercury/extras" \ + lib${mercury_pkg_name}.install || die "mmc lib${mercury_pkg_name}.install failed" + fi +} + +src_prepare() { + cd "${WORKDIR}"/${MY_P} + if [[ -d "${WORKDIR}"/${PV} ]] ; then + eapply "${WORKDIR}"/${PV} + fi + eapply_user + + cd "${S}" + for mercury_pkg in $(mercury_pkgs); do + mercury_pkg_setup ${mercury_pkg} + done + + cp "${S}"/net/*.m "${S}"/mopenssl/ || die +} + +src_compile() { + for mercury_pkg in $(mercury_pkgs); do + mercury_pkg_compile ${mercury_pkg} + done +} + +src_install() { + for mercury_pkg in $(mercury_pkgs); do + mercury_pkg_install ${mercury_pkg} + done + + cd "${S}" + dodoc README.md + + if use examples; then + docinto samples/cgi + dodoc cgi/form_test.m + + docinto samples/complex_numbers + dodoc complex_numbers/samples/*.m + + if use ncurses; then + docinto samples/curs + dodoc curs/samples/*.m + + docinto samples/curses + dodoc curses/sample/*.m + fi + + docinto samples/dynamic_linking + dodoc dynamic_linking/{hello,dl_test}.m + + docinto samples/gator + dodoc -r gator/* + + if use gmp; then + docinto samples/gmp_int + dodoc gmp_int/gmp_int_test.m + fi + + if use tommath; then + docinto samples/mp_int + dodoc mp_int/mp_int_test.m + fi + + if use X; then + docinto samples/graphics + dodoc graphics/easyx/samples/*.m + fi + + if use glut && use opengl; then + docinto samples/graphics + dodoc graphics/samples/gears/*.m + dodoc graphics/samples/maze/*.m + fi + + if use tk; then + docinto samples/graphics + dodoc graphics/samples/calc/*.m + fi + + docinto samples/lex + dodoc lex/samples/*.m + + docinto samples/log4m + dodoc log4m/*.m + + docinto samples/monte + dodoc monte/*.m + + docinto samples/moose + dodoc moose/samples/* + + docinto samples/net + dodoc net/test_lookups.m + + if use odbc || use iodbc; then + docinto samples/odbc + dodoc odbc/odbc_test.m + fi + + docinto samples/posix + dodoc posix/samples/*.m + + docinto samples/random + dodoc random/*.m + + if has_version dev-lang/mercury[trail]; then + docinto samples/references + dodoc references/samples/*.m + + docinto samples/trail + dodoc trail/*.m + fi + + if use xml; then + docinto samples/xml + dodoc xml/tryit.m + dodoc xml/samples/* + dodoc xml_stylesheets/*.xsl + fi + + ecvs_clean + fi +} diff --git a/dev-lang/mercury-extras/mercury-extras-22.01.ebuild b/dev-lang/mercury-extras/mercury-extras-22.01.ebuild new file mode 100644 index 00000000000..c90f5ea06af --- /dev/null +++ b/dev-lang/mercury-extras/mercury-extras-22.01.ebuild @@ -0,0 +1,298 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit eutils multilib vcs-clean + +PATCHSET_VER="0" +MY_P=mercury-srcdist-${PV} + +DESCRIPTION="Additional libraries and tools that are not part of the Mercury standard library" +HOMEPAGE="https://www.mercurylang.org/index.html" +SRC_URI="https://dl.mercurylang.org/release/${MY_P}.tar.gz + https://dev.gentoo.org/~keri/distfiles/mercury-extras/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz" + +LICENSE="GPL-2 LGPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +IUSE="cairo examples glut gmp iodbc ncurses odbc opengl ssl tk tommath X xml" +REQUIRED_USE="?? ( odbc iodbc )" + +RDEPEND=" + ~dev-lang/mercury-${PV} + cairo? ( >=x11-libs/cairo-1.10.0 ) + gmp? ( dev-libs/gmp:0 ) + glut? ( media-libs/freeglut ) + odbc? ( dev-db/unixODBC ) + iodbc? ( dev-db/libiodbc ) + tommath? ( dev-libs/libtommath ) + ncurses? ( sys-libs/ncurses:= ) + opengl? ( + virtual/opengl + virtual/glu + ) + tk? ( + dev-lang/tcl:0 + dev-lang/tk:0 + ) + X? ( x11-libs/libX11 )" + +DEPEND="${RDEPEND}" + +S="${WORKDIR}"/${MY_P}/extras + +mercury_pkgs() { + echo " + align_right/align_right:bin: + base64/mercury_base64:lib: + cgi/mercury_www:lib: + complex_numbers/complex_numbers:lib: + $(use ncurses && echo \ + curs/curs:lib:ncurses,panel curses/mcurses:lib:ncurses) + dynamic_linking/dl:lib: + error/error:bin: + fixed/fixed:lib: + $(use gmp && echo gmp_int/gmp_int:lib:) + $(use tommath && echo mp_int/mp_int:lib:libtommath) + $(use X && echo graphics/easyx/easyx:lib:x11) + $(use cairo && echo graphics/mercury_cairo/mercury_cairo:lib:cairo) + $(use glut && echo graphics/mercury_glut/mercury_glut:lib:freeglut) + $(use opengl && echo graphics/mercury_opengl/mercury_opengl:lib:gl,glu) + $(use tk && echo graphics/mercury_tcltk/mercury_tcltk:lib:tk) + lex/lex:lib: + lex/regex:lib: + moose/moose:bin: + net/net:lib: + net/echo:bin: + $(use ssl && echo mopenssl/mopenssl:lib:openssl) + $(use odbc && echo odbc/odbc:lib:odbc) + $(use iodbc && echo odbc/odbc:lib:libiodbc) + posix/posix:lib: + $(has_version dev-lang/mercury[trail] && echo \ + references/global:lib:) + show_ops/show_ops:bin: + solver_types/library/any:lib: + $(use xml && echo xml/xml:lib:)" +} + +mercury_pkg_setup() { + mercury_pkg=${1%%:*} + mercury_pkg_dir=${mercury_pkg%/*} + mercury_pkg_name=${mercury_pkg##*/} + + mercury_pkg_atts=${1#*:} + mercury_pkg_type=${mercury_pkg_atts%%:*} + mercury_pkg_deps=${mercury_pkg_atts#*:} + + cd "${S}"/${mercury_pkg_dir} || die + + echo ">> Preparing Mercury package: ${mercury_pkg}" + + echo "MCFLAGS += --libgrades-exclude java" \ + >> "${S}"/${mercury_pkg_dir}/Mercury.options + echo "MCFLAGS += --libgrades-exclude csharp" \ + >> "${S}"/${mercury_pkg_dir}/Mercury.options + + if test -n "$mercury_pkg_deps"; then + echo "EXTRA_CFLAGS += $(pkg-config --cflags ${mercury_pkg_deps/,/ })" \ + >> "${S}"/${mercury_pkg_dir}/Mercury.options + echo "EXTRA_LDFLAGS += $(pkg-config --libs ${mercury_pkg_deps/,/ })" \ + >> "${S}"/${mercury_pkg_dir}/Mercury.options + fi + + if test ${mercury_pkg_name} = dl; then + echo "EXTRA_LDFLAGS += -ldl" >> "${S}"/${mercury_pkg_dir}/Mercury.options + elif test ${mercury_pkg_name} = gmp_int; then + echo "EXTRA_LDFLAGS += -lgmp" >> "${S}"/${mercury_pkg_dir}/Mercury.options + elif test ${mercury_pkg_name} = mercury_tcltk; then + echo "EXTRA_CFLAGS += -DUSE_INTERP_RESULT" \ + >> "${S}"/${mercury_pkg_dir}/Mercury.options + elif test ${mercury_pkg_name} = odbc && use odbc; then + echo "EXTRA_CFLAGS += -DMODBC_UNIX -DMODBC_MYSQL" \ + >> "${S}"/${mercury_pkg_dir}/Mercury.options + elif test ${mercury_pkg_name} = odbc && use iodbc; then + echo "EXTRA_CFLAGS += -DMODBC_IODBC -DMODBC_MYSQL" \ + >> "${S}"/${mercury_pkg_dir}/Mercury.options + fi +} + +mercury_pkg_compile() { + mercury_pkg=${1%%:*} + mercury_pkg_dir=${mercury_pkg%/*} + mercury_pkg_name=${mercury_pkg##*/} + + mercury_pkg_atts=${1#*:} + mercury_pkg_type=${mercury_pkg_atts%:*} + + cd "${S}"/${mercury_pkg_dir} || die + + echo ">> Compiling Mercury package: ${mercury_pkg}" + + if test "${mercury_pkg_type}" = "bin"; then + mercury_mmc_target=${mercury_pkg_name} + else + mercury_mmc_target=lib${mercury_pkg_name} + fi + + mmc -f *.m || die "mmc -f .m failed" + + mmc \ + --make \ + --verbose-commands \ + --no-strip \ + --cflags "${CFLAGS}" \ + --ld-flags "${LDFLAGS}" \ + --ld-libflags "${LDFLAGS}" \ + ${mercury_mmc_target} || die "mmc ${mercury_mmc_target} failed" +} + +mercury_pkg_install() { + mercury_pkg=${1%%:*} + mercury_pkg_dir=${mercury_pkg%/*} + mercury_pkg_name=${mercury_pkg##*/} + + mercury_pkg_atts=${1#*:} + mercury_pkg_type=${mercury_pkg_atts%:*} + + cd "${S}"/${mercury_pkg_dir} || die + + echo ">> Installing Mercury package: ${mercury_pkg}" + + if test "${mercury_pkg_type}" = "bin"; then + into /usr/$(get_libdir)/mercury/extras + dobin ${mercury_pkg_name} + else + mmc \ + --make \ + --verbose-commands \ + --no-strip \ + --cflags "${CFLAGS}" \ + --ld-flags "${LDFLAGS}" \ + --ld-libflags "${LDFLAGS}" \ + --install-prefix "${D}/usr/$(get_libdir)/mercury/extras" \ + lib${mercury_pkg_name}.install || die "mmc lib${mercury_pkg_name}.install failed" + fi +} + +src_prepare() { + cd "${WORKDIR}"/${MY_P} + if [[ -d "${WORKDIR}"/${PV} ]] ; then + eapply "${WORKDIR}"/${PV} + fi + eapply_user + + cd "${S}" + for mercury_pkg in $(mercury_pkgs); do + mercury_pkg_setup ${mercury_pkg} + done + + cp "${S}"/net/*.m "${S}"/mopenssl/ || die +} + +src_compile() { + for mercury_pkg in $(mercury_pkgs); do + mercury_pkg_compile ${mercury_pkg} + done +} + +src_install() { + for mercury_pkg in $(mercury_pkgs); do + mercury_pkg_install ${mercury_pkg} + done + + cd "${S}" + dodoc README.md + + if use examples; then + docinto samples/cgi + dodoc cgi/form_test.m + + docinto samples/complex_numbers + dodoc complex_numbers/samples/*.m + + if use ncurses; then + docinto samples/curs + dodoc curs/samples/*.m + + docinto samples/curses + dodoc curses/sample/*.m + fi + + docinto samples/dynamic_linking + dodoc dynamic_linking/{hello,dl_test}.m + + docinto samples/gator + dodoc -r gator/* + + if use gmp; then + docinto samples/gmp_int + dodoc gmp_int/gmp_int_test.m + fi + + if use tommath; then + docinto samples/mp_int + dodoc mp_int/mp_int_test.m + fi + + if use X; then + docinto samples/graphics + dodoc graphics/easyx/samples/*.m + fi + + if use glut && use opengl; then + docinto samples/graphics + dodoc graphics/samples/gears/*.m + dodoc graphics/samples/maze/*.m + fi + + if use tk; then + docinto samples/graphics + dodoc graphics/samples/calc/*.m + fi + + docinto samples/lex + dodoc lex/samples/*.m + + docinto samples/log4m + dodoc log4m/*.m + + docinto samples/monte + dodoc monte/*.m + + docinto samples/moose + dodoc moose/samples/* + + docinto samples/net + dodoc net/test_lookups.m + + if use odbc || use iodbc; then + docinto samples/odbc + dodoc odbc/odbc_test.m + fi + + docinto samples/posix + dodoc posix/samples/*.m + + docinto samples/random + dodoc random/*.m + + if has_version dev-lang/mercury[trail]; then + docinto samples/references + dodoc references/samples/*.m + + docinto samples/trail + dodoc trail/*.m + fi + + if use xml; then + docinto samples/xml + dodoc xml/tryit.m + dodoc xml/samples/* + dodoc xml_stylesheets/*.xsl + fi + + ecvs_clean + fi +} diff --git a/dev-lang/mercury/Manifest b/dev-lang/mercury/Manifest index 210ada8b36b..bf943fb0c14 100644 --- a/dev-lang/mercury/Manifest +++ b/dev-lang/mercury/Manifest @@ -1,4 +1,8 @@ DIST mercury-20.06-gentoo-patchset-3.tar.gz 5265 BLAKE2B 0539611691cfb714937bca8dc967246ce32c515b7133391d81333284e6ceffe29b929c042ee0000752bd9980c2d2332de20d7c5dc4e1a6077a6421056d975808 SHA512 54595a71db4d7684071c6496c3e92fe8c9de0a29832cc85901046f2627bd453cf0760b9857e73a91e87edfddc80d384627dc5c2cb7f3bc12ea5737eb5afa4f3b DIST mercury-20.06.1-gentoo-patchset-0.tar.gz 4426 BLAKE2B df6f1a3b52b1f57f502621abba175a55342ae88ecbbe8e37d22b89a7514e0dea14299c87fb1dd47866c5fc89bbb2746a92de8dcf037c1a9d5d2ba4e2e9b8c828 SHA512 c26c209a2fc2380793373785c7a8290ea336c38fe1c243df5c71791e2d1f8b6f8d4a9452a9139181aeb0422cd538c5e6ffe40332ea5b2635cab3324dc4dc320b +DIST mercury-22.01-gentoo-patchset-0.tar.gz 4147 BLAKE2B d59f58cb8870ee3ba636f62c1df7ab54d45d23e92626e1a18717e2ef7511c8a14a63c7d9bbfbeb8ec78841f6a05311f2431c5488df9996dae1ab71ce39c99a55 SHA512 a38d524e900b1771a12921618f785436ebca6029d94c9bd7a3115682b900d688d4cab3e3167a7b110f2fc4f5e9d09c1f24dffe9e39222efd20bb17782829b4a8 +DIST mercury-22.01.1-gentoo-patchset-1.tar.gz 4292 BLAKE2B f094e6702b633f5acb1dd9ef9c56f7183ecdc162b0f9c741ceb9fdbf1e64652f5f525adeb168c0177f4d043561c797dd652eb67dbd66fba816b4d9c5151f176a SHA512 4f12079fb8392a19dcf96078222591c60f3f6724c5f0b154475665c843f9a459c5b3bbc881405d6ef0acc65d9d689aed7f41977e4d712577a9b4f2f027470baf DIST mercury-srcdist-20.06.1.tar.gz 47796261 BLAKE2B f282c6edb78e9090eb451585c65c9214927b94eaa5fcdf6f674aef6beb62eb65179f998bcc2e56c3c93b73dd1dc94973084eb8363bc05e334384096c9520d478 SHA512 94e901e5d3db39e3342bf2d6a2a74556a7b18b295c7e02669b487a81d41c72e572046ce1133d670ca6c1b8e246dd277439087efe8fb99b979a73555a101aa9a8 DIST mercury-srcdist-20.06.tar.gz 47768559 BLAKE2B f242aa2ef7da53aa2dfa054e4fee8646434d276f0748b014e33ea52d22f2a8a37e6fecaa20617f4943c4c1e7d8c179ed0603a344fde2dd58da98b2bacadf1a71 SHA512 b76bd22d8eb16242c68b614ff122ed7ee7535efef6c0ceb8cc798fee4c550bc41b6faff2135cea43b24c652b654bb35ae049656585d8e7bf3a1122d07cb1ecf4 +DIST mercury-srcdist-22.01.1.tar.gz 48956249 BLAKE2B 0f5a7662327f27c27a4d9e421f71afa58920f6232093452781124817ce5c34d1953a80a08b75e95101a7e2e88159b7d4ead08d25c67a99abcb908a9582af2bab SHA512 5fa49640307233ea0f641488e5ea526385e52833007a31469e083711b63925ca7568d7ad6e09301ddf7816384a080546bc4cf46b1422f974e008917d1aa4f37a +DIST mercury-srcdist-22.01.tar.gz 48960609 BLAKE2B 4ac45251bc098c1465f4bc418501db152bfcf36a2e04bb9153a44c44ff2dff300545103c29551818e773728c5a61947c019997fcc2cb64900e538d5ef64c1b39 SHA512 35b3b1e9fd85062edea5263b304bfc965382d04353e5548d59211519ee222bb6a8e8c95cb03faa089062e39c90b2d1c4af7ca0d9eabbf3bb44872d461e10ff2d diff --git a/dev-lang/mercury/mercury-20.06.1.ebuild b/dev-lang/mercury/mercury-20.06.1.ebuild index c8cd32155c4..ece3d848fee 100644 --- a/dev-lang/mercury/mercury-20.06.1.ebuild +++ b/dev-lang/mercury/mercury-20.06.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -63,7 +63,7 @@ src_configure() { src_compile() { # Prepare mmake flags - echo "EXTRA_CFLAGS = ${CFLAGS}" >> Mmake.params + echo "EXTRA_CFLAGS = ${CFLAGS} -Wno-error" >> Mmake.params echo "EXTRA_LDFLAGS = ${LDFLAGS}" >> Mmake.params echo "EXTRA_LD_LIBFLAGS = ${LDFLAGS}" >> Mmake.params echo "EXTRA_MLFLAGS = --no-strip" >> Mmake.params diff --git a/dev-lang/mercury/mercury-22.01.1.ebuild b/dev-lang/mercury/mercury-22.01.1.ebuild new file mode 100644 index 00000000000..d1c1fc3cff2 --- /dev/null +++ b/dev-lang/mercury/mercury-22.01.1.ebuild @@ -0,0 +1,204 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools elisp-common flag-o-matic java-pkg-opt-2 multilib vcs-clean xdg-utils + +PATCHSET_VER="1" +MY_P=${PN}-srcdist-${PV} + +DESCRIPTION="Mercury is a modern general-purpose logic/functional programming language" +HOMEPAGE="https://www.mercurylang.org/index.html" +SRC_URI="https://dl.mercurylang.org/release/${MY_P}.tar.gz + https://dev.gentoo.org/~keri/distfiles/mercury/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz" + +LICENSE="GPL-2 LGPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +IUSE="debug doc emacs examples java mono profile readline test threads trail" +RESTRICT="!test? ( test )" + +DEPEND="net-libs/libnsl:0= + readline? ( sys-libs/readline:= ) + java? ( >=virtual/jdk-1.8:* ) + mono? ( dev-lang/mono ) + doc? ( sys-apps/texinfo )" + +RDEPEND="${DEPEND} + emacs? ( >=app-editors/emacs-23.1:* )" + +BDEPEND="test? ( sys-libs/timezone-data )" + +S="${WORKDIR}"/${MY_P} + +SITEFILE=50${PN}-gentoo.el + +src_prepare() { + if [[ -d "${WORKDIR}"/${PV} ]] ; then + eapply "${WORKDIR}"/${PV} + fi + eapply_user + + AT_M4DIR=m4 eautoreconf + + xdg_environment_reset +} + +src_configure() { + strip-flags + + local myconf + myconf="--libdir=/usr/$(get_libdir) \ + $(use_enable mono csharp-grade) \ + $(use_enable java java-grade) \ + $(use_enable debug debug-grades) \ + $(use_enable profile prof-grades) \ + $(use_enable threads par-grades) \ + $(use_enable trail trail-grades) \ + $(use_with readline)" + + econf ${myconf} +} + +src_compile() { + # Prepare mmake flags + echo "EXTRA_CFLAGS = ${CFLAGS} -Wno-error" >> Mmake.params + echo "EXTRA_LDFLAGS = ${LDFLAGS}" >> Mmake.params + echo "EXTRA_LD_LIBFLAGS = ${LDFLAGS}" >> Mmake.params + echo "EXTRA_MLFLAGS = --no-strip" >> Mmake.params + + if use trail; then + echo "CFLAGS-int = -O0" >> Mmake.params + echo "CFLAGS-uint = -O0" >> Mmake.params + fi + + echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libgc.so" >> boehm_gc/Mmake.boehm_gc.params + echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libmer_rt.so" >> runtime/Mmake.runtime.params + echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libmer_std.so" >> library/Mmake.library.params + + # Build Mercury using bootstrap grade + emake \ + PARALLEL="'${MAKEOPTS}'" \ + TEXI2DVI="" PDFTEX="" + + # We can now patch .m Mercury compiler files since we + # have just built mercury_compiler. + if [[ -d "${WORKDIR}"/${PV}-mmc ]] ; then + eapply "${WORKDIR}"/${PV}-mmc + fi + + # Rebuild Mercury compiler using the just built mercury_compiler + emake \ + PARALLEL="'${MAKEOPTS}'" \ + MERCURY_COMPILER="${S}"/compiler/mercury_compile \ + TEXI2DVI="" PDFTEX="" + + # The default Mercury grade may not be the same as the bootstrap + # grade. Since src_test() is run before src_install() we compile + # the default grade now + emake \ + PARALLEL="'${MAKEOPTS}'" \ + MERCURY_COMPILER="${S}"/compiler/mercury_compile \ + TEXI2DVI="" PDFTEX="" \ + default_grade +} + +src_test() { + TEST_GRADE=$(scripts/ml --print-grade) + if [ -d "${S}"/install_grade_dir.${TEST_GRADE} ] ; then + TWS="${S}"/install_grade_dir.${TEST_GRADE} + cp runtime/mer_rt.init "${TWS}"/runtime/ + cp mdbcomp/mer_mdbcomp.init "${TWS}"/mdbcomp/ + cp browser/mer_browser.init "${TWS}"/browser/ + else + TWS="${S}" + fi + + cd "${S}"/tests || die + sed -e "s:@WORKSPACE@:${TWS}:" \ + < WS_FLAGS.ws \ + > WS_FLAGS \ + || die "sed WORKSPACE failed" + sed -e "s:@WORKSPACE@:${TWS}:" \ + < .mgnuc_copts.ws \ + > .mgnuc_copts \ + || die "sed WORKSPACE failed" + find . -mindepth 1 -type d -exec cp .mgnuc_opts {} \; + find . -mindepth 1 -type d -exec cp .mgnuc_copts {} \; + + # Mercury tests must be run in C locale since Mercury output is + # compared to hard-coded warnings/errors + LC_ALL="C" \ + PATH="${TWS}"/scripts:"${TWS}"/util:"${S}"/slice:"${PATH}" \ + TERM="" \ + WORKSPACE="${TWS}" \ + WORKSPACE_FLAGS=yes \ + MERCURY_COMPILER="${TWS}"/compiler/mercury_compile \ + MMAKE_DIR="${TWS}"/scripts \ + MERCURY_SUPPRESS_STACK_TRACE=yes \ + GRADE=${TEST_GRADE} \ + mmake || die "mmake test failed" +} + +src_install() { + emake \ + PARALLEL="'${MAKEOPTS}'" \ + MERCURY_COMPILER="${S}"/compiler/mercury_compile \ + TEXI2DVI="" PDFTEX="" \ + DESTDIR="${D}" \ + INSTALL_ELISP_DIR="${D}/${SITELISP}"/${PN} \ + install + + if use java; then + keepdir /usr/$(get_libdir)/mercury/modules/java + fi + + if use mono; then + keepdir /usr/$(get_libdir)/mercury/modules/csharp + fi + + if use emacs; then + elisp-site-file-install "${FILESDIR}/${SITEFILE}" \ + || die "elisp-site-file-install failed" + fi + + dodoc \ + BUGS HISTORY LIMITATIONS.md NEWS README README.md \ + README.Linux README.Linux-m68k README.Linux-PPC \ + RELEASE_NOTES VERSION || die + + if use java; then + dodoc README.Java + fi + + if use mono; then + dodoc README.CSharp + fi + + if use examples; then + docinto samples + dodoc samples/{*.m,README,Mmakefile} + dodoc -r samples/c_interface \ + samples/diff \ + samples/muz \ + samples/rot13 \ + samples/solutions \ + samples/solver_types + + if use java; then + dodoc -r samples/java_interface + fi + + ecvs_clean "${D}"/usr/share/doc/${PF}/samples + fi +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-lang/mercury/mercury-22.01.ebuild b/dev-lang/mercury/mercury-22.01.ebuild new file mode 100644 index 00000000000..3524e6009a3 --- /dev/null +++ b/dev-lang/mercury/mercury-22.01.ebuild @@ -0,0 +1,201 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools elisp-common flag-o-matic java-pkg-opt-2 multilib vcs-clean xdg-utils + +PATCHSET_VER="0" +MY_P=${PN}-srcdist-${PV} + +DESCRIPTION="Mercury is a modern general-purpose logic/functional programming language" +HOMEPAGE="https://www.mercurylang.org/index.html" +SRC_URI="https://dl.mercurylang.org/release/${MY_P}.tar.gz + https://dev.gentoo.org/~keri/distfiles/mercury/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz" + +LICENSE="GPL-2 LGPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +IUSE="debug doc emacs examples java mono profile readline threads trail" + +DEPEND="net-libs/libnsl:0= + readline? ( sys-libs/readline:= ) + java? ( >=virtual/jdk-1.8:* ) + mono? ( dev-lang/mono ) + doc? ( sys-apps/texinfo )" + +RDEPEND="${DEPEND} + emacs? ( >=app-editors/emacs-23.1:* )" + +S="${WORKDIR}"/${MY_P} + +SITEFILE=50${PN}-gentoo.el + +src_prepare() { + if [[ -d "${WORKDIR}"/${PV} ]] ; then + eapply "${WORKDIR}"/${PV} + fi + eapply_user + + AT_M4DIR=m4 eautoreconf + + xdg_environment_reset +} + +src_configure() { + strip-flags + + local myconf + myconf="--libdir=/usr/$(get_libdir) \ + $(use_enable mono csharp-grade) \ + $(use_enable java java-grade) \ + $(use_enable debug debug-grades) \ + $(use_enable profile prof-grades) \ + $(use_enable threads par-grades) \ + $(use_enable trail trail-grades) \ + $(use_with readline)" + + econf ${myconf} +} + +src_compile() { + # Prepare mmake flags + echo "EXTRA_CFLAGS = ${CFLAGS} -Wno-error" >> Mmake.params + echo "EXTRA_LDFLAGS = ${LDFLAGS}" >> Mmake.params + echo "EXTRA_LD_LIBFLAGS = ${LDFLAGS}" >> Mmake.params + echo "EXTRA_MLFLAGS = --no-strip" >> Mmake.params + + if use trail; then + echo "CFLAGS-int = -O0" >> Mmake.params + echo "CFLAGS-uint = -O0" >> Mmake.params + fi + + echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libgc.so" >> boehm_gc/Mmake.boehm_gc.params + echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libmer_rt.so" >> runtime/Mmake.runtime.params + echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libmer_std.so" >> library/Mmake.library.params + + # Build Mercury using bootstrap grade + emake \ + PARALLEL="'${MAKEOPTS}'" \ + TEXI2DVI="" PDFTEX="" + + # We can now patch .m Mercury compiler files since we + # have just built mercury_compiler. + if [[ -d "${WORKDIR}"/${PV}-mmc ]] ; then + eapply "${WORKDIR}"/${PV}-mmc + fi + + # Rebuild Mercury compiler using the just built mercury_compiler + emake \ + PARALLEL="'${MAKEOPTS}'" \ + MERCURY_COMPILER="${S}"/compiler/mercury_compile \ + TEXI2DVI="" PDFTEX="" + + # The default Mercury grade may not be the same as the bootstrap + # grade. Since src_test() is run before src_install() we compile + # the default grade now + emake \ + PARALLEL="'${MAKEOPTS}'" \ + MERCURY_COMPILER="${S}"/compiler/mercury_compile \ + TEXI2DVI="" PDFTEX="" \ + default_grade +} + +src_test() { + TEST_GRADE=$(scripts/ml --print-grade) + if [ -d "${S}"/install_grade_dir.${TEST_GRADE} ] ; then + TWS="${S}"/install_grade_dir.${TEST_GRADE} + cp runtime/mer_rt.init "${TWS}"/runtime/ + cp mdbcomp/mer_mdbcomp.init "${TWS}"/mdbcomp/ + cp browser/mer_browser.init "${TWS}"/browser/ + else + TWS="${S}" + fi + + cd "${S}"/tests || die + sed -e "s:@WORKSPACE@:${TWS}:" \ + < WS_FLAGS.ws \ + > WS_FLAGS \ + || die "sed WORKSPACE failed" + sed -e "s:@WORKSPACE@:${TWS}:" \ + < .mgnuc_copts.ws \ + > .mgnuc_copts \ + || die "sed WORKSPACE failed" + find . -mindepth 1 -type d -exec cp .mgnuc_opts {} \; + find . -mindepth 1 -type d -exec cp .mgnuc_copts {} \; + + # Mercury tests must be run in C locale since Mercury output is + # compared to hard-coded warnings/errors + LC_ALL="C" \ + PATH="${TWS}"/scripts:"${TWS}"/util:"${S}"/slice:"${PATH}" \ + TERM="" \ + WORKSPACE="${TWS}" \ + WORKSPACE_FLAGS=yes \ + MERCURY_COMPILER="${TWS}"/compiler/mercury_compile \ + MMAKE_DIR="${TWS}"/scripts \ + MERCURY_SUPPRESS_STACK_TRACE=yes \ + GRADE=${TEST_GRADE} \ + mmake || die "mmake test failed" +} + +src_install() { + emake \ + PARALLEL="'${MAKEOPTS}'" \ + MERCURY_COMPILER="${S}"/compiler/mercury_compile \ + TEXI2DVI="" PDFTEX="" \ + DESTDIR="${D}" \ + INSTALL_ELISP_DIR="${D}/${SITELISP}"/${PN} \ + install + + if use java; then + keepdir /usr/$(get_libdir)/mercury/modules/java + fi + + if use mono; then + keepdir /usr/$(get_libdir)/mercury/modules/csharp + fi + + if use emacs; then + elisp-site-file-install "${FILESDIR}/${SITEFILE}" \ + || die "elisp-site-file-install failed" + fi + + dodoc \ + BUGS HISTORY LIMITATIONS.md NEWS README README.md \ + README.Linux README.Linux-m68k README.Linux-PPC \ + RELEASE_NOTES VERSION || die + + if use java; then + dodoc README.Java + fi + + if use mono; then + dodoc README.CSharp + fi + + if use examples; then + docinto samples + dodoc samples/{*.m,README,Mmakefile} + dodoc -r samples/c_interface \ + samples/diff \ + samples/muz \ + samples/rot13 \ + samples/solutions \ + samples/solver_types + + if use java; then + dodoc -r samples/java_interface + fi + + ecvs_clean "${D}"/usr/share/doc/${PF}/samples + fi +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-lang/mmix/mmix-20160804-r1.ebuild b/dev-lang/mmix/mmix-20160804-r1.ebuild index 620b0c7c3b4..174120e453d 100644 --- a/dev-lang/mmix/mmix-20160804-r1.ebuild +++ b/dev-lang/mmix/mmix-20160804-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -15,7 +15,7 @@ DEPEND="virtual/tex-base RDEPEND="!!media-sound/mmix" SLOT="0" -LICENSE="${PN}" +LICENSE="mmix" KEYWORDS="amd64 x86" IUSE="doc" diff --git a/dev-lang/moarvm/Manifest b/dev-lang/moarvm/Manifest index 7a5bed108b0..fb3885880a3 100644 --- a/dev-lang/moarvm/Manifest +++ b/dev-lang/moarvm/Manifest @@ -1,3 +1,4 @@ DIST MoarVM-2021.06.tar.gz 5449936 BLAKE2B 2bf6fc2e1a4dd0741819305e506945b09ed2a0fc1348ff98565cae397e76044176f05e87faeed1f52d5efadccb6d44edcb987553f5e164417153a8f23ba09493 SHA512 b23e20ed3e0830395ac09bd84a33ea3ab7ba52bce835c67b1feec45823ca2f0c9d04957d1f1b48b400fc30a48db37c5f89c3975b0273f684d9677145e2296f2c DIST MoarVM-2021.08.tar.gz 13643526 BLAKE2B 433cfaaad4138d8b98fc4bacd5495281f2a8da5195aa74aded118126afdf11cdf0175fd033472e951e91ab3c1eb11877ab039cd24d911553d5854be18021a87e SHA512 6199871f51a4998e1b5260ba833e3bf09c6115e12334a94de5aa4135b93f8dc754967712ce8e092a36b4940368433be840cbf1a8ce7aec52219f768acd90078d DIST MoarVM-2021.10.tar.gz 13711924 BLAKE2B 18e0c8b5429242f7588dc5ad47d92a46146223e8dc7dcef93e2cb3332c2400b29754f1f03ceb9016665771554940667e1373a48c96921922834fd103a73d985a SHA512 a376d0388d9e53b9f07a960ab23ddf8e35379a6dff168d2f726c0f05431804bf4e09b0a2a0eab9a39b9df493030e384e9680a7654bdf9e5c129a6c70aead833d +DIST MoarVM-2022.02.tar.gz 14640429 BLAKE2B 5e64855514c33d97408353756ba88f29bfd2da39d8d2aa03b8c096645ca7dc680df47a246d224920aa466b76005c1be9d6e7096933046e0fa0caf836cfd09eb2 SHA512 12385cc6cfc5308240d841842ac1b2ff880e786c9724dc6c7fa776c1c6422b345e1f4ab870579b7051726b2655668caed33e1bbb75a7201948431a7b2897e9f7 diff --git a/dev-lang/moarvm/moarvm-2022.02.ebuild b/dev-lang/moarvm/moarvm-2022.02.ebuild new file mode 100644 index 00000000000..5ba74d4a28f --- /dev/null +++ b/dev-lang/moarvm/moarvm-2022.02.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit flag-o-matic + +MY_PN="MoarVM" +if [[ ${PV} == "9999" ]]; then + EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git" + inherit git-r3 + S="${WORKDIR}/${P}" +else + SRC_URI="http://moarvm.org/releases/${MY_PN}-${PV}.tar.gz" + KEYWORDS="~amd64 ~x86" + S="${WORKDIR}/${MY_PN}-${PV}" +fi + +DESCRIPTION="A 6model-based VM for NQP and Raku" +HOMEPAGE="http://moarvm.org" +LICENSE="Artistic-2" +SLOT="0" + +IUSE="asan clang debug doc +jit optimize static-libs ubsan" + +RDEPEND="dev-libs/libatomic_ops + >=dev-libs/libuv-1.26:= + dev-libs/libffi:=" +DEPEND="${RDEPEND} + clang? ( >=sys-devel/clang-3.1 ) + dev-lang/perl" + +DOCS=( CREDITS README.markdown ) + +# Tests are conducted via nqp +RESTRICT=test + +src_configure() { + MAKEOPTS+=" NOISY=1" + use doc && DOCS+=( docs/* ) + local prefix="${EPREFIX}/usr" + local libdir="${EPREFIX}/usr/$(get_libdir)" + einfo "--prefix '${prefix}'" + einfo "--libdir '${libdir}'" + local myconfigargs=( + "--prefix" "${prefix}" + "--has-libuv" + "--has-libatomic_ops" + "--has-libffi" + "--libdir" "${libdir}" + "--compiler" "$(usex clang clang gcc)" + "$(usex asan --asan)" + "$(usex debug --debug --no-debug)" + "$(usex optimize --optimize= --no-optimize)" + "$(usex static-libs --static)" + "$(usex ubsan --ubsan)" + ) + + perl Configure.pl "${myconfigargs[@]}" moarshared || die +} diff --git a/dev-lang/mujs/mujs-1.2.0.ebuild b/dev-lang/mujs/mujs-1.2.0.ebuild index 53c9edbaa46..c610487d892 100644 --- a/dev-lang/mujs/mujs-1.2.0.ebuild +++ b/dev-lang/mujs/mujs-1.2.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -12,7 +12,7 @@ SRC_URI="https://mujs.com/downloads/${P}.tar.xz" LICENSE="ISC" # The subslot matches the SONAME SLOT="0/${PV}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~ppc-macos ~x64-macos" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~ppc-macos ~x64-macos" RDEPEND="sys-libs/readline:=" DEPEND="${RDEPEND}" diff --git a/dev-lang/nasm/metadata.xml b/dev-lang/nasm/metadata.xml index 58fb5e05c1f..af856ea306f 100644 --- a/dev-lang/nasm/metadata.xml +++ b/dev-lang/nasm/metadata.xml @@ -1,13 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person" proxied="yes"> - <email>matt@offtopica.uk</email> - <name>Matt Smith</name> - </maintainer> - <maintainer type="project" proxied="proxy"> - <email>proxy-maint@gentoo.org</email> - <name>Proxy Maintainers</name> + <maintainer type="person"> + <email>matthew@gentoo.org</email> + <name>Matthew Smith</name> </maintainer> <longdescription> The Netwide Assembler, NASM, is an 80x86 assembler designed for portability diff --git a/dev-lang/nim/Manifest b/dev-lang/nim/Manifest index 51a84293db2..f0404f56327 100644 --- a/dev-lang/nim/Manifest +++ b/dev-lang/nim/Manifest @@ -1,2 +1,4 @@ DIST nim-1.4.8.tar.xz 4786360 BLAKE2B 961b38275c4f9de87ac522c5b47368ce7f5543811a2dfd7b4f3fd79a104bcd0458caaaaab1705f99eb42c64735ca5f71d5018f8a8275a430d883233b28b1d412 SHA512 e6b245271495880f0eea271c46b4f5ce9168a421716a9a22367b6be3c2a9822937aad1f48eb61c151b040ac961728a89c8a6d143c8300057c0d8c1f2d66f3dd3 DIST nim-1.6.2.tar.xz 5181616 BLAKE2B adedbcaad1b135b6f99459894856190103e2d2b678849e0418f77c02a54fde44224456ea13949f3fe9f5f020a90adde46593497895674bd9ae892b17708df292 SHA512 052b62c987035f7633f965356993cd4eec686f4f4f5c675cf966d82cb30fcf574045887a4402bcc20e487299fb5e8f65a921951c2dc21ac334e695e31d95d992 +DIST nim-1.6.4.tar.xz 5130208 BLAKE2B d0f297581677bbb9fb185a8b4198f48bb58efe81a1624f62051bc1e0a93f879a0cec172f11a41784ca715ba3c151dc5307e96c15c54908aa40df406040891d6c SHA512 f4d082f37f0e675e8cdb4340d67f2e58b5e6ac5bb51dab1ded5417097f3b86d71fa585ef12ee1c3cd5b17285589cbe9d5658fcb29c98547f7967a1b6f0cb4646 +DIST nim-1.6.6.tar.xz 5149956 BLAKE2B 2fd1b40f1ecc1200255052d9e013c55287d3e01337146d0b1386d0f3fc9c14fda1e8e82ee289e782c77a573c1ae0985ea7f900f61e6b9824a9eb4b5c803c7f71 SHA512 6ea8d3f61adae48184dd0e3ac393296fd3bd5ead818e7dee949f43eccbd0b6229ebfc474353ddd63cc734f82c3247998fbfe88362061983f978ad8d0ab7fa677 diff --git a/dev-lang/nim/nim-1.4.8.ebuild b/dev-lang/nim/nim-1.4.8.ebuild index 512bc61b2ef..d0ec48b68ee 100644 --- a/dev-lang/nim/nim-1.4.8.ebuild +++ b/dev-lang/nim/nim-1.4.8.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -20,7 +20,7 @@ RDEPEND=" readline? ( sys-libs/readline:0= ) " DEPEND=" - ${DEPEND} + ${RDEPEND} test? ( net-libs/nodejs ) " diff --git a/dev-lang/nim/nim-1.6.2.ebuild b/dev-lang/nim/nim-1.6.2.ebuild index 51069ac3166..28eae69957a 100644 --- a/dev-lang/nim/nim-1.6.2.ebuild +++ b/dev-lang/nim/nim-1.6.2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -16,7 +16,7 @@ IUSE="debug +readline" RESTRICT="test" # need to sort out depends and numerous failures RDEPEND="readline? ( sys-libs/readline:0= )" -DEPEND="${DEPEND}" +DEPEND="${RDEPEND}" # test? ( net-libs/nodejs ) PATCHES=( "${FILESDIR}"/${PN}-0.20.0-paths.patch ) diff --git a/dev-lang/nim/nim-1.6.4.ebuild b/dev-lang/nim/nim-1.6.4.ebuild new file mode 100644 index 00000000000..11af93abf30 --- /dev/null +++ b/dev-lang/nim/nim-1.6.4.ebuild @@ -0,0 +1,92 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit bash-completion-r1 multiprocessing toolchain-funcs + +DESCRIPTION="compiled, garbage-collected systems programming language" +HOMEPAGE="https://nim-lang.org/" +SRC_URI="https://nim-lang.org/download/${P}.tar.xz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~x86" +IUSE="debug +readline" +RESTRICT="test" # need to sort out depends and numerous failures + +RDEPEND="readline? ( sys-libs/readline:0= )" +DEPEND="${RDEPEND}" +# BDEPEND="test? ( net-libs/nodejs )" + +PATCHES=( "${FILESDIR}"/${PN}-0.20.0-paths.patch ) + +# Generated by nim +QA_FLAGS_IGNORED=" +usr/bin/atlas +usr/bin/nim +usr/bin/nim_dbg +usr/bin/nimble +usr/bin/nimgrep +usr/bin/nimpretty +usr/bin/nimsuggest +usr/bin/testament +" + +_run() { + echo "Running: ${@}" + PATH="${S}/bin:${PATH}" "${@}" || die "Failed: \"${*}\"" +} + +nim_use_enable() { + [[ -z "${2}" ]] && die "usage: nim_use_enable <USE flag> <compiler flag>" + use "${1}" && echo "-d:${2}" +} + +src_configure() { + export XDG_CACHE_HOME="${T}/cache" # 667182 + unset NIMBLE_DIR + tc-export CC CXX LD + + local build_type + if use debug ; then + build_type="debug" + else + build_type="release" + fi + export NIM_OPTS=( --parallelBuild:$(makeopts_jobs) -d:${build_type} ) + + # Override defaults + echo "gcc.exe = \"$(tc-getCC)\"" >> config/nim.cfg || die + echo "gcc.linkerexe = \"$(tc-getCC)\"" >> config/nim.cfg || die + echo "gcc.cpp.exe = \"$(tc-getCXX)\"" >> config/nim.cfg || die + echo "gcc.cpp.linkerexe = \"$(tc-getCXX)\"" >> config/nim.cfg || die +} + +src_compile() { + _run bash ./build.sh + + _run ./bin/nim ${NIM_OPTS[@]} compile koch + _run ./koch boot ${NIM_OPTS[@]} $(nim_use_enable readline useGnuReadline) + _run ./koch tools ${NIM_OPTS[@]} +} + +src_test() { + _run ./koch test +} + +src_install() { + _run ./koch install "${ED}" + + # "./koch install" installs only "nim" binary + # but not the rest + exeinto /usr/bin + local exe + for exe in bin/* ; do + [[ "${exe}" == bin/nim ]] && continue + doexe "${exe}" + done + + newbashcomp tools/nim.bash-completion nim + newbashcomp dist/nimble/nimble.bash-completion nimble +} diff --git a/dev-lang/nim/nim-1.6.6.ebuild b/dev-lang/nim/nim-1.6.6.ebuild new file mode 100644 index 00000000000..11af93abf30 --- /dev/null +++ b/dev-lang/nim/nim-1.6.6.ebuild @@ -0,0 +1,92 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit bash-completion-r1 multiprocessing toolchain-funcs + +DESCRIPTION="compiled, garbage-collected systems programming language" +HOMEPAGE="https://nim-lang.org/" +SRC_URI="https://nim-lang.org/download/${P}.tar.xz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~x86" +IUSE="debug +readline" +RESTRICT="test" # need to sort out depends and numerous failures + +RDEPEND="readline? ( sys-libs/readline:0= )" +DEPEND="${RDEPEND}" +# BDEPEND="test? ( net-libs/nodejs )" + +PATCHES=( "${FILESDIR}"/${PN}-0.20.0-paths.patch ) + +# Generated by nim +QA_FLAGS_IGNORED=" +usr/bin/atlas +usr/bin/nim +usr/bin/nim_dbg +usr/bin/nimble +usr/bin/nimgrep +usr/bin/nimpretty +usr/bin/nimsuggest +usr/bin/testament +" + +_run() { + echo "Running: ${@}" + PATH="${S}/bin:${PATH}" "${@}" || die "Failed: \"${*}\"" +} + +nim_use_enable() { + [[ -z "${2}" ]] && die "usage: nim_use_enable <USE flag> <compiler flag>" + use "${1}" && echo "-d:${2}" +} + +src_configure() { + export XDG_CACHE_HOME="${T}/cache" # 667182 + unset NIMBLE_DIR + tc-export CC CXX LD + + local build_type + if use debug ; then + build_type="debug" + else + build_type="release" + fi + export NIM_OPTS=( --parallelBuild:$(makeopts_jobs) -d:${build_type} ) + + # Override defaults + echo "gcc.exe = \"$(tc-getCC)\"" >> config/nim.cfg || die + echo "gcc.linkerexe = \"$(tc-getCC)\"" >> config/nim.cfg || die + echo "gcc.cpp.exe = \"$(tc-getCXX)\"" >> config/nim.cfg || die + echo "gcc.cpp.linkerexe = \"$(tc-getCXX)\"" >> config/nim.cfg || die +} + +src_compile() { + _run bash ./build.sh + + _run ./bin/nim ${NIM_OPTS[@]} compile koch + _run ./koch boot ${NIM_OPTS[@]} $(nim_use_enable readline useGnuReadline) + _run ./koch tools ${NIM_OPTS[@]} +} + +src_test() { + _run ./koch test +} + +src_install() { + _run ./koch install "${ED}" + + # "./koch install" installs only "nim" binary + # but not the rest + exeinto /usr/bin + local exe + for exe in bin/* ; do + [[ "${exe}" == bin/nim ]] && continue + doexe "${exe}" + done + + newbashcomp tools/nim.bash-completion nim + newbashcomp dist/nimble/nimble.bash-completion nimble +} diff --git a/dev-lang/nqp/Manifest b/dev-lang/nqp/Manifest index 0a23db8e033..fa55375efff 100644 --- a/dev-lang/nqp/Manifest +++ b/dev-lang/nqp/Manifest @@ -1,3 +1,4 @@ DIST nqp-2021.06.tar.gz 5208065 BLAKE2B 7314f425e418161befc55f9490453a3a4c3caa0ddf13e2b3bbcc9a20a6204aba9517885b6ecccddbbaf078b60c74be90fe556bf99dcc6014e57a7c873e96381d SHA512 482ec4a99d09b3660f03fd3c822a2f8c72dbdfeda1bcfdac0b4bcfa364ec57cbfdebf3b2872f8649c86d3d2d7603961d75e00d73dc417e5ac2a32f643bcfcabe DIST nqp-2021.08.tar.gz 5208527 BLAKE2B 1f2e454e63484a8a636f61c9110b4a20775ec59dd7734fe32a93b01aaad5ea977ea74678085a66d9f072234de5768d8023182d6df56a448f2a0aa0fd3c1c76c3 SHA512 fca1dc8c36f914304f97330cb33be3a94c539f3cb6cc80d898c734dcf04b12b8be30ffce358a0a5320c6ea56afd627f792b4a8fa3f94134776922ae088b92814 DIST nqp-2021.10.tar.gz 5207621 BLAKE2B 85b6627bc843d211ef8c296e63a97b0f80e019f89080f7c94b1e55767e4fab430c426c77aea741d601e75f6fb354a1f8b6c6077c70ab5cbfd2edef1621137af3 SHA512 d308045cc8a01298bcc544e8fd27752d1fc28e421b1cd24f1d5675333ba8cd71cb946e760ba485710456aebf21eeab1d2f85abffe49336471f1148071df6aa98 +DIST nqp-2022.02.tar.gz 5220819 BLAKE2B eba57834cc883e5bab26d0496df5bb059cc31f893e25833ada26cfa4796b9f822d1bb17e6ac0eb2474238e78565cf1da3be6f82d34a82bb4ac70cc19e03e11aa SHA512 0a51eb96486a254543ffbc2dac5d32a2b218a7fd774ccd3c8d4ba23f33dacbebdc0190e7cc919103f57573ea74ff8592200759c9768485044a4433647958ba8f diff --git a/dev-lang/nqp/nqp-2022.02.ebuild b/dev-lang/nqp/nqp-2022.02.ebuild new file mode 100644 index 00000000000..6b6f6e70f12 --- /dev/null +++ b/dev-lang/nqp/nqp-2022.02.ebuild @@ -0,0 +1,147 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit java-pkg-opt-2 multibuild + +if [[ ${PV} == "9999" ]]; then + EGIT_REPO_URI="https://github.com/perl6/${PN}.git" + inherit git-r3 +else + SRC_URI="https://github.com/perl6/${PN}/releases/download/${PV}/${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi + +DESCRIPTION="Not Quite Perl, a Raku bootstrapping compiler" +HOMEPAGE="https://rakudo.org" + +LICENSE="Artistic-2" +SLOT="0" +IUSE="doc clang java +moar test" +RESTRICT="!test? ( test )" +REQUIRED_USE="|| ( java moar )" + +CDEPEND="java? ( + dev-java/asm:4 + dev-java/jna:4 + ) + moar? ( ~dev-lang/moarvm-${PV}[clang=] )" +RDEPEND="${CDEPEND} + java? ( >=virtual/jre-1.9 )" +DEPEND="${CDEPEND}" +BDEPEND="${CDEPEND} + clang? ( sys-devel/clang ) + java? ( >=virtual/jdk-1.9 ) + dev-lang/perl" + +pkg_pretend() { + if has_version dev-lang/rakudo || has_version dev-lang/nqp; then + ewarn "NQP is known to fail compilation/installation with Rakudo and/or NQP" + ewarn "already being installed. So if it fails, try uninstalling both" + ewarn "dev-lang/nqp and dev-lang/rakudo, then do a new installation." + ewarn "(see Bug #584394)" + fi +} + +src_prepare() { + MULTIBUILD_VARIANTS=() + use moar && MULTIBUILD_VARIANTS+=( moar ) + use java && MULTIBUILD_VARIANTS+=( jvm ) + + multibuild_copy_sources + + # This will pull in conditional java_prepare + default +} + +nqp_configure() { + pushd "${BUILD_DIR}" > /dev/null || die + local myconfargs=( + "--backend=${MULTIBUILD_VARIANT}" + "--prefix=${EPREFIX}/usr" ) + + perl Configure.pl "${myconfargs[@]}" || die + popd || die +} + +nqp_compile() { + if [[ "${MULTIBUILD_VARIANT}" = jvm ]]; then + emake -j1 \ + -C "${BUILD_DIR}" \ + JAVAC="$(java-pkg_get-javac) $(java-pkg_javac-args)" + elif [[ "${MULTIBUILD_VARIANT}" = moar ]]; then + emake -j1 \ + -C "${BUILD_DIR}" + fi +} + +nqp_test() { + emake -j1 \ + -C "${BUILD_DIR}" \ + test +} + +nqp_install() { + # This is the actual reason we need multibuild.eclass. + # We need to distinguish the install procedure for MoarVM and JVM backends. + case "${MULTIBUILD_VARIANT}" in + moar) + emake \ + DESTDIR="${ED}" \ + -C "${BUILD_DIR}" \ + install + ;; + jvm) + pushd "${BUILD_DIR}" > /dev/null || die + # Set JAVA_PKG_JARDEST early. + java-pkg_init_paths_ + + # Upstream sets the classpath to this location. Perhaps it's + # used to locate the additional libraries? + java-pkg_addcp "${JAVA_PKG_JARDEST}" + + insinto "${JAVA_PKG_JARDEST}" + local jar + + for jar in *.jar; do + if has ${jar} ${PN}.jar ${PN}-runtime.jar; then + # jars for NQP itself. + java-pkg_dojar ${jar} + else + # jars used by NQP. + doins ${jar} + fi + done + + # Upstream uses -Xbootclasspath/a, which is faster due to lack + # of verification, but gjl isn't flexible enough yet. :( + java-pkg_dolauncher ${PN}-j --main ${PN} + dosym ${PN}-j /usr/bin/${PN} + dobin tools/jvm/eval-client.pl + popd > /dev/null || die + ;; + *) + die "Unknown MULTIBUILD_VARIANT ${MULTIBUILD_VARIANT}." + ;; + esac +} + +src_configure() { + multibuild_foreach_variant nqp_configure +} + +src_compile() { + multibuild_foreach_variant nqp_compile +} + +src_test() { + multibuild_foreach_variant nqp_test +} + +src_install() { + multibuild_foreach_variant nqp_install + + dodoc CREDITS README.pod + use doc && dodoc -r docs/* +} diff --git a/dev-lang/ocaml/Manifest b/dev-lang/ocaml/Manifest index eda27fba03d..edc6337be4c 100644 --- a/dev-lang/ocaml/Manifest +++ b/dev-lang/ocaml/Manifest @@ -1,7 +1,11 @@ +DIST ocaml-4.05.0-patches-1.tar.bz2 4009 BLAKE2B 052c3a6859a942f2993d0b06ab57ca8f7469650c096f20bff7ff7cf5c2842e8d5019d595a4eca0dc1a4e5feda2db8a831a6917b3b6d9f39166c8ae7af1e894e7 SHA512 b349e6613201d9400f736c5b2d0ede01e7e113524cbc6989999a71fb97cb1eb67f90af8c2fbd3fd8abeccf3193e317cdd8258aee328c3e078634385c21558619 DIST ocaml-4.05.0.tar.gz 4431750 BLAKE2B c2ab003a13e0a581ebd0e1c96eeb8a9baea9bfe6bee08823b0e4541819201ec109f1846e13fc1aefa51a001eefbb8f73320ba854d41975fc68cef41bc75b1ecc SHA512 9a060ae4b741e1687277403e5bdb8f6eda2e2ebf6c45f7c0149b66ea1213cb26d13febfbb3f11c12543e244cfdd053b786b09c4145e2348e5d89a7206f7de225 +DIST ocaml-4.09.0-patches-1.tar.bz2 3300 BLAKE2B ef710ea5ed5a243ae684f68b7f203ba454192c9f8f19c32697d336bf18cf2a0e8ea08df232b0fd8e2475a000758a5ba95b3794096ec7d0d1b292a715ab3de86f SHA512 94096b99fd58b32232e418c5736203f08ab3c1558154ed00d4290730bd4db849bc60dfae6160f344acce63bbb8eaceecee25cf836bb73fa419d7bbf4eac433f1 DIST ocaml-4.09.0.tar.gz 4838748 BLAKE2B 80f29d535c64bf2371b480217723ed20b2b21cfd93ce31366a7b91e7ddffdf68db4e88d085288b7e21efee567a13f42ecff24c3a0115507b006acf844239cefd SHA512 dc0271e591bf929b751705835790949a9d741e12d085c8b207c3689b5838a02ea8de80da8b2605d2e6744f2f541b0d1694ffafff9509e99ce01f3a391f6ef2ae +DIST ocaml-4.10.2-patches-1.tar.bz2 3180 BLAKE2B 474471e10c4525e4da730fcf8602fddf5209f7d8eb15bd76894ed2bc22213a6e61aa7f52b1b67dff6c8bf04eac7d759ada28f1783c83a075cc65e7e5caadc715 SHA512 1456f90c0c833461eb9d1c140ba1a7358aa9351f6303e83b0e19bb8688dcb17bdad211f4cec1281a47180bbdddcfdbf44367b47a6b301d2ea41fa9d926bd03a5 DIST ocaml-4.10.2.tar.gz 4933135 BLAKE2B ec5e92adb23c28a254247182c79ab555fd82603e02f24799049b8057abf869d18234302408c8ae89b9997a2b210ed6965e45c2c03e4f0cab34262ad3f6ebb528 SHA512 1dd827da07f01e815fd74dd7ee84db0900f24782f8f7fd426e2d71b9fb03c7b8045f22e018120a0446c362315751365d1bd8c1724edef2b182394e76eb0a07b2 DIST ocaml-4.11.2.tar.gz 5075323 BLAKE2B bdc503d9a8d0e39dd11060febcd0287657b460e50ed81e55578a3e778af990ca5d4ef9011753eee4e1a144da33eb76c95b1672dc99b76e65a2e107eee472fe06 SHA512 03d8a9f6e130142c121ff2eb3d54f584f1e7c8475f066a5803bb0edd2fa172ca06a56a3ec548b225f5c8b12112d7a68511b1e16f3ade075b5f02610d4247bbb3 DIST ocaml-4.12.1.tar.gz 5181696 BLAKE2B 9d21438e09b1a9680eabb65f5c78d9fe84459592ef7bb797a1933e5383f7b6d5cefffa8cdc184abc102417f5dbc0fca8ef624c9b560f89eaff6537544b5b395f SHA512 e942e5cf5530804690ec45c40936ad2acbb60e11279fc676e0f04181fe1855f84ee5c3cb9c337fc5d01f6ee0e7b2251a6c04f7de56d99c20bb62026dff6c5671 DIST ocaml-4.13.1.tar.gz 5323203 BLAKE2B f1dcb1601ebfa2a37351e3a466a7ca601518c2da403b01aeb182738a54d5887523ab554d747d6591cb09b07b417865e20907f7877117b2d2d069ef6c9edc0fae SHA512 da3434177438c852da53c0fda7bc2519adcda6384d97d45e44137ed0fd384ffb3da61958a7b51296edb3f88f5a5310ca71b6862f6d756aaa4012d1f54e5955f6 +DIST ocaml-4.14.0.tar.gz 5494844 BLAKE2B f2f9142a95722c7fc5fda205ea6b951939f7d285963b8aa14dc157ac10202ef9d00c7590beabdc97ed83548d61e5ef28b60a360f1a492420a54f4e26dfbf89f0 SHA512 3c5e5b9f00bb109dd99b5f7b0078cf8663d4247e548f3e601d6b2a55582e04bb20f6de85005c4cf2f78ae9aaa449f5ca6f2bab2f6ce83eeb3aeb386e3f2fcc32 DIST ocaml-patches-9.tar.bz2 1700 BLAKE2B 4e46b8fb490db28f815414e285f54e251394ea53e1d25c529bbea9f03e426fd19132b1e2c7c2be7d14983fceb4cad073d191b001f6da522fee4226371d4a2eca SHA512 cc19f9104fac69aecc5effa8cb772342e1fb61cdcd38ba0176efe04cf3d710b1c56d5178748f3bd29099af91fa684da432a8ef8d42de76dbd1b6954a255ea6c0 diff --git a/dev-lang/ocaml/files/ocaml-4.05.0-CVE-2018-9838.patch b/dev-lang/ocaml/files/ocaml-4.05.0-CVE-2018-9838.patch deleted file mode 100644 index cfe3ff636c2..00000000000 --- a/dev-lang/ocaml/files/ocaml-4.05.0-CVE-2018-9838.patch +++ /dev/null @@ -1,70 +0,0 @@ -https://bugs.gentoo.org/755257 - -Needed for both fixing the CVE + compatibility with Debian for e.g. -Unison. - -From c6ca3afc78b75d7748e4e09e56c6b020418be06e Mon Sep 17 00:00:00 2001 -From: Stephane Glondu <steph@glondu.net> -Date: Fri, 25 Jan 2019 14:34:23 +0100 -Subject: [PATCH] Fix integer overflows when unmarshaling a bigarray - -Malicious or corrupted marshaled data can result in a bigarray -with impossibly large dimensions that cause overflow when computing -the in-memory size of the bigarray. Disaster ensues when the data -is read in a too small memory area. This commit checks for overflows -when computing the in-memory size of the bigarray. - -This patch is based on one by Xavier Leroy and has been modified to -use caml_ba_multov instead of caml_umul_overflow which is unavailable -in OCaml 4.05.0. - -The original commit hash is 85162eee9d4072fa9c2f498f03cd94e357033eec. - -Origin: https://github.com/ocaml/ocaml/pull/1718 -Bug: https://github.com/ocaml/ocaml/issues/7765 -Bug-Debian: https://bugs.debian.org/895472 -Bug-CVE: CVE-2018-9838 ---- a/otherlibs/bigarray/bigarray_stubs.c -+++ b/otherlibs/bigarray/bigarray_stubs.c -@@ -966,22 +966,34 @@ static void caml_ba_deserialize_longarray(void * dest, intnat num_elts) - uintnat caml_ba_deserialize(void * dst) - { - struct caml_ba_array * b = dst; -- int i, elt_size; -- uintnat num_elts; -+ int i; -+ uintnat num_elts, size; -+ int overflow; - - /* Read back header information */ - b->num_dims = caml_deserialize_uint_4(); -+ if (b->num_dims < 0 || b->num_dims > CAML_BA_MAX_NUM_DIMS) -+ caml_deserialize_error("input_value: wrong number of bigarray dimensions"); - b->flags = caml_deserialize_uint_4() | CAML_BA_MANAGED; - b->proxy = NULL; - for (i = 0; i < b->num_dims; i++) b->dim[i] = caml_deserialize_uint_4(); -- /* Compute total number of elements */ -- num_elts = caml_ba_num_elts(b); -- /* Determine element size in bytes */ -+ /* Compute total number of elements. Watch out for overflows (MPR#7765). */ -+ num_elts = 1; -+ for (i = 0; i < b->num_dims; i++) { -+ overflow = 0; -+ num_elts = caml_ba_multov(num_elts, b->dim[i], &overflow); -+ if (overflow) -+ caml_deserialize_error("input_value: size overflow for bigarray"); -+ } -+ /* Determine array size in bytes. Watch out for overflows (MPR#7765). */ - if ((b->flags & CAML_BA_KIND_MASK) > CAML_BA_CHAR) - caml_deserialize_error("input_value: bad bigarray kind"); -- elt_size = caml_ba_element_size[b->flags & CAML_BA_KIND_MASK]; -+ overflow = 0; -+ size = caml_ba_multov(num_elts, caml_ba_element_size[b->flags & CAML_BA_KIND_MASK], &overflow); -+ if (overflow) -+ caml_deserialize_error("input_value: size overflow for bigarray"); - /* Allocate room for data */ -- b->data = malloc(elt_size * num_elts); -+ b->data = malloc(size); - if (b->data == NULL) - caml_deserialize_error("input_value: out of memory for bigarray"); - /* Read data */ diff --git a/dev-lang/ocaml/files/ocaml-4.05.0-gcc10.patch b/dev-lang/ocaml/files/ocaml-4.05.0-gcc10.patch deleted file mode 100644 index a0c67da534a..00000000000 --- a/dev-lang/ocaml/files/ocaml-4.05.0-gcc10.patch +++ /dev/null @@ -1,59 +0,0 @@ ---- a/byterun/caml/intext.h 2021-01-28 22:46:20.400224678 +0100 -+++ b/byterun/caml/intext.h 2021-01-28 22:46:49.312751054 +0100 -@@ -196,7 +196,7 @@ - - CAMLextern struct code_fragment * caml_extern_find_code(char *addr); - --struct ext_table caml_code_fragments_table; -+extern struct ext_table caml_code_fragments_table; - - #endif /* CAML_INTERNALS */ - ---- a/byterun/caml/major_gc.h 2021-01-28 22:44:12.193323457 +0100 -+++ b/byterun/caml/major_gc.h 2021-01-28 22:45:20.918198701 +0100 -@@ -64,9 +64,9 @@ - extern char *caml_gc_sweep_hp; - - extern int caml_major_window; --double caml_major_ring[Max_major_window]; --int caml_major_ring_index; --double caml_major_work_credit; -+extern double caml_major_ring[Max_major_window]; -+extern int caml_major_ring_index; -+extern double caml_major_work_credit; - extern double caml_gc_clock; - - /* [caml_major_gc_hook] is called just between the end of the mark ---- a/byterun/meta.c 2021-01-28 22:47:34.148016359 +0100 -+++ b/byterun/meta.c 2021-01-28 22:47:56.048657393 +0100 -@@ -32,6 +32,8 @@ - #include "caml/prims.h" - #include "caml/stacks.h" - -+struct ext_table caml_code_fragments_table; -+ - #ifndef NATIVE_CODE - - CAMLprim value caml_get_global_data(value unit) ---- a/byterun/backtrace.c 2021-01-28 22:50:25.275226598 +0100 -+++ b/byterun/backtrace.c 2021-01-28 22:50:37.541027290 +0100 -@@ -28,7 +28,7 @@ - #include "caml/fail.h" - - /* The table of debug information fragments */ --struct ext_table caml_debug_info; -+extern struct ext_table caml_debug_info; - - CAMLexport int32_t caml_backtrace_active = 0; - CAMLexport int32_t caml_backtrace_pos = 0; ---- a/asmrun/startup.c 2021-01-28 23:02:50.526072662 +0100 -+++ b/asmrun/startup.c 2021-01-28 23:03:09.977754311 +0100 -@@ -44,7 +44,7 @@ - #endif - - extern int caml_parser_trace; --CAMLexport header_t caml_atom_table[256]; -+CAMLextern header_t caml_atom_table[256]; - char * caml_code_area_start, * caml_code_area_end; - - /* Initialize the atom table and the static data and code area limits. */ diff --git a/dev-lang/ocaml/files/ocaml-4.09.0-cflags.patch b/dev-lang/ocaml/files/ocaml-4.09.0-cflags.patch deleted file mode 100644 index 8d2391407a3..00000000000 --- a/dev-lang/ocaml/files/ocaml-4.09.0-cflags.patch +++ /dev/null @@ -1,65 +0,0 @@ ---- a/runtime/Makefile 2022-01-22 19:49:32.914213696 +0100 -+++ b/runtime/Makefile 2022-01-22 19:50:03.765640701 +0100 -@@ -335,7 +335,7 @@ - # (without the extension, which is added by the macro) - define COMPILE_C_FILE - $(1).$(O): %.c -- $$(CC) -c $$(OC_CFLAGS) $$(OC_CPPFLAGS) $$(OUTPUTOBJ)$$@ $$< -+ $$(CC) -c $$(OC_CFLAGS) $(CFLAGS) $$(OC_CPPFLAGS) $$(OUTPUTOBJ)$$@ $$< - endef - - object_types := % %_b %_bd %_bi %_bpic %_n %_nd %_ni %_np %_npic ---- a/yacc/Makefile 2022-01-22 20:02:56.510340885 +0100 -+++ b/yacc/Makefile 2022-01-22 20:03:14.998000508 +0100 -@@ -63,4 +63,4 @@ - # also works for .obj files. - - %.$(O): %.c -- $(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $< -+ $(CC) -c $(OC_CFLAGS) $(CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $< ---- a/otherlibs/Makefile.otherlibs.common 2022-01-22 20:24:15.316779625 +0100 -+++ b/otherlibs/Makefile.otherlibs.common 2022-01-22 20:24:50.730126701 +0100 -@@ -138,4 +138,4 @@ - $(CAMLOPT) -c $(COMPFLAGS) $(OPTCOMPFLAGS) $< - - .c.$(O): -- $(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $< -+ $(CC) -c $(OC_CFLAGS) $(CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $< ---- a/ocamltest/Makefile 2022-01-22 20:30:22.454009704 +0100 -+++ b/ocamltest/Makefile 2022-01-22 20:30:33.845799603 +0100 -@@ -221,7 +221,7 @@ - $(ocamllex) -q $< - - %.$(O): %.c -- $(CC) $(OC_CFLAGS) $(OC_CPPFLAGS) -c $< -+ $(CC) $(OC_CFLAGS) $(CFLAGS) $(OC_CPPFLAGS) -c $< - - ocamltest_config.ml: ocamltest_config.ml.in Makefile ../Makefile.config - sed \ ---- a/otherlibs/systhreads/Makefile 2022-01-22 20:42:17.647349876 +0100 -+++ b/otherlibs/systhreads/Makefile 2022-01-22 20:43:29.766086103 +0100 -@@ -93,11 +93,11 @@ - # twice, each time with different options). - - st_stubs_b.$(O): st_stubs.c $(HEADER) -- $(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) -I$(ROOTDIR)/runtime \ -+ $(CC) -c $(OC_CFLAGS) $(CFLAGS) $(OC_CPPFLAGS) -I$(ROOTDIR)/runtime \ - $(SHAREDLIB_CFLAGS) $(OUTPUTOBJ)$@ $< - - st_stubs_n.$(O): st_stubs.c $(HEADER) -- $(CC) $(OC_CFLAGS) $(OC_CPPFLAGS) \ -+ $(CC) $(OC_CFLAGS) $(CFLAGS) $(OC_CPPFLAGS) \ - -I$(ROOTDIR)/runtime $(SHAREDLIB_CFLAGS) -DNATIVE_CODE \ - -DTARGET_$(ARCH) -DMODEL_$(MODEL) -DSYS_$(SYSTEM) \ - $(OUTPUTOBJ)$@ -c $< ---- a/tools/Makefile 2022-01-23 09:57:00.788877931 +0100 -+++ b/tools/Makefile 2022-01-23 09:57:21.735516656 +0100 -@@ -322,7 +322,7 @@ - endif - - objinfo_helper$(EXE): objinfo_helper.c $(ROOTDIR)/runtime/caml/s.h -- $(CC) $(OC_CFLAGS) $(OC_CPPFLAGS) -I$(ROOTDIR)/runtime $(OUTPUTEXE)$@ \ -+ $(CC) $(OC_CFLAGS) $(CFLAGS) $(OC_CPPFLAGS) -I$(ROOTDIR)/runtime $(OUTPUTEXE)$@ \ - $(DEF_SYMBOL_PREFIX) $(LIBBFD_INCLUDE) $< $(LIBBFD_LINK) - - OBJINFO=$(ROOTDIR)/compilerlibs/ocamlcommon.cma \ diff --git a/dev-lang/ocaml/files/ocaml-4.09.0-gcc-10.patch b/dev-lang/ocaml/files/ocaml-4.09.0-gcc-10.patch deleted file mode 100644 index e25d55a5f66..00000000000 --- a/dev-lang/ocaml/files/ocaml-4.09.0-gcc-10.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- a/runtime/backtrace.c -+++ b/runtime/backtrace.c -@@ -28,7 +28,7 @@ - #include "caml/fail.h" - - /* The table of debug information fragments */ --struct ext_table caml_debug_info; -+extern struct ext_table caml_debug_info; - - CAMLexport int32_t caml_backtrace_active = 0; - CAMLexport int32_t caml_backtrace_pos = 0; ---- a/runtime/startup_nat.c -+++ b/runtime/startup_nat.c -@@ -44,7 +44,6 @@ - #endif - - extern int caml_parser_trace; --CAMLexport header_t caml_atom_table[256]; - char * caml_code_area_start, * caml_code_area_end; - struct ext_table caml_code_fragments_table; - diff --git a/dev-lang/ocaml/files/ocaml-4.10.2-cflags.patch b/dev-lang/ocaml/files/ocaml-4.11.2-cflags.patch index 01117c39887..7adb1ea0768 100644 --- a/dev-lang/ocaml/files/ocaml-4.10.2-cflags.patch +++ b/dev-lang/ocaml/files/ocaml-4.11.2-cflags.patch @@ -1,5 +1,5 @@ ---- a/runtime/Makefile 2022-01-22 19:49:32.914213696 +0100 -+++ b/runtime/Makefile 2022-01-22 19:50:03.765640701 +0100 +--- a/runtime/Makefile ++++ b/runtime/Makefile @@ -335,7 +335,7 @@ # (without the extension, which is added by the macro) define COMPILE_C_FILE @@ -9,16 +9,16 @@ endef object_types := % %_b %_bd %_bi %_bpic %_n %_nd %_ni %_np %_npic ---- a/otherlibs/Makefile.otherlibs.common 2022-01-22 20:24:15.316779625 +0100 -+++ b/otherlibs/Makefile.otherlibs.common 2022-01-22 20:24:50.730126701 +0100 +--- a/otherlibs/Makefile.otherlibs.common ++++ b/otherlibs/Makefile.otherlibs.common @@ -138,4 +138,4 @@ $(CAMLOPT) -c $(COMPFLAGS) $(OPTCOMPFLAGS) $< .c.$(O): - $(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $< + $(CC) -c $(OC_CFLAGS) $(CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $< ---- a/otherlibs/systhreads/Makefile 2022-01-22 20:42:17.647349876 +0100 -+++ b/otherlibs/systhreads/Makefile 2022-01-22 20:43:29.766086103 +0100 +--- a/otherlibs/systhreads/Makefile ++++ b/otherlibs/systhreads/Makefile @@ -102,10 +102,10 @@ st_stubs_n.$(O): OC_CPPFLAGS += $(NATIVE_CPPFLAGS) @@ -32,8 +32,8 @@ partialclean: rm -f *.cm* ---- a/Makefile.common.in 2022-01-23 18:05:04.192323554 +0100 -+++ b/Makefile.common.in 2022-01-23 18:05:17.211122643 +0100 +--- a/Makefile.common.in ++++ b/Makefile.common.in @@ -79,4 +79,4 @@ # general (it supports both .o and .obj) diff --git a/dev-lang/ocaml/files/ocaml-4.12.1-fix-textrel-riscv.patch b/dev-lang/ocaml/files/ocaml-4.12.1-fix-textrel-riscv.patch new file mode 100644 index 00000000000..5ba8582d3a6 --- /dev/null +++ b/dev-lang/ocaml/files/ocaml-4.12.1-fix-textrel-riscv.patch @@ -0,0 +1,46 @@ +From ddf99786f8229c8282905af5c7c74360d4f2fbd0 Mon Sep 17 00:00:00 2001 +From: Alex Fan <alex.fan.q@gmail.com> +Date: Tue, 22 Feb 2022 19:28:30 +1100 +Subject: [PATCH] riscv: Generate frametable in data section to improve code + relocatability (#11042) + +Similar to what PowerPC and System-Z have done in commit 24980d3fd9848e281761ef2b8fe383e71261789b + +With this commit ocamlopt produces .so shared libraries and PIE relocatable +executables that contain no relocations in the text segment. + +Upstream status: merged in 4.14 and 5.x +--- + Changes | 5 +++++ + asmcomp/riscv/emit.mlp | 2 +- + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/Changes b/Changes +index 4898e9d69fc..2bec76daac6 100644 +--- a/Changes ++++ b/Changes +@@ -477,6 +477,11 @@ OCaml 4.14.0 + - #10907, #10959: Wrong type inferred from existential types + (Jacques Garrigue and Gabriel Scherer, report by @dyzsr, review by Leo White) + ++- #10688: Move frame descriptor table from `rodata` to `data` section on ++ RISC-V. Improves support for building DLLs and PIEs. In particular, this ++ applies to all binaries in distributions that build PIEs by default (eg ++ Gentoo and Alpine). ++ (Alex Fan, review by Gabriel Scherer) + + OCaml 4.13 maintenance branch + ----------------------------- +diff --git a/asmcomp/riscv/emit.mlp b/asmcomp/riscv/emit.mlp +index 474a3c6857a..b36aa0ea38c 100644 +--- a/asmcomp/riscv/emit.mlp ++++ b/asmcomp/riscv/emit.mlp +@@ -645,7 +645,7 @@ let end_assembly() = + `{emit_symbol lbl_end}:\n`; + ` .quad 0\n`; + (* Emit the frame descriptors *) +- ` {emit_string rodata_space}\n`; ++ ` {emit_string data_space}\n`; (* not rodata because relocations inside *) + let lbl = Compilenv.make_symbol (Some "frametable") in + declare_global_data lbl; + `{emit_symbol lbl}:\n`; diff --git a/dev-lang/ocaml/files/ocaml-4.14.0-clang.patch b/dev-lang/ocaml/files/ocaml-4.14.0-clang.patch new file mode 100644 index 00000000000..cd3c042f263 --- /dev/null +++ b/dev-lang/ocaml/files/ocaml-4.14.0-clang.patch @@ -0,0 +1,132 @@ +commit 28b553622bd0f168411d86ddcfba1adab0d87b92 +Author: Yawar Amin <yawar.amin@gmail.com> +Date: Mon Nov 15 22:40:43 2021 -0500 + + Fix ranlib error + + - Always pass ranlib one file argument at a time to avoid error 'Exactly + one archive should be specified' + - Call ranlib without cd'ing into the library's directory + - Use Makefile functionality to simplify recipes + +diff --git a/Makefile b/Makefile +index c2522c775..2e4e44faa 100644 +--- a/Makefile ++++ b/Makefile +@@ -549,6 +549,8 @@ else + endif + $(MAKE) -C tools installopt + ++LIBRARIES = $(addsuffix .$(A), ocamlcommon ocamlbytecomp ocamloptcomp) ++ + .PHONY: installoptopt + installoptopt: + $(INSTALL_PROG) ocamlc.opt$(EXE) "$(INSTALL_BINDIR)" +@@ -585,8 +587,11 @@ endif + ifeq "$(INSTALL_OCAMLNAT)" "true" + $(INSTALL_PROG) ocamlnat$(EXE) "$(INSTALL_BINDIR)" + endif +- cd "$(INSTALL_COMPLIBDIR)" && \ +- $(RANLIB) ocamlcommon.$(A) ocamlbytecomp.$(A) ocamloptcomp.$(A) ++# Some versions of ranlib do not support multiple archives ++ for library in $(LIBRARIES); \ ++ do \ ++ $(RANLIB) "$(INSTALL_COMPLIBDIR)/$$library"; \ ++ done + + # Installation of the *.ml sources of compiler-libs + .PHONY: install-compiler-sources +diff --git a/otherlibs/Makefile.otherlibs.common b/otherlibs/Makefile.otherlibs.common +index 95ff4d58f..6a4451e47 100644 +--- a/otherlibs/Makefile.otherlibs.common ++++ b/otherlibs/Makefile.otherlibs.common +@@ -95,7 +95,7 @@ install:: + fi + ifneq "$(STUBSLIB)" "" + $(INSTALL_DATA) $(STUBSLIB) "$(INSTALL_LIBDIR)/" +- cd "$(INSTALL_LIBDIR)"; $(RANLIB) lib$(CLIBNAME).$(A) ++ $(RANLIB) "$(INSTALL_LIBDIR)/lib$(CLIBNAME).$(A)" + endif + + $(INSTALL_DATA) \ +@@ -104,7 +104,7 @@ endif + ifeq "$(INSTALL_SOURCE_ARTIFACTS)" "true" + $(INSTALL_DATA) \ + $(CMIFILES:.cmi=.mli) \ +- $(CMIFILES:.cmi=.cmti) \ ++ $(CMIFILES:.cmi=.cmti) \ + "$(INSTALL_LIBDIR)/" + endif + if test -n "$(HEADERS)"; then \ +@@ -115,7 +115,7 @@ installopt: + $(INSTALL_DATA) \ + $(CAMLOBJS_NAT) $(LIBNAME).cmxa $(LIBNAME).$(A) \ + "$(INSTALL_LIBDIR)/" +- cd "$(INSTALL_LIBDIR)"; $(RANLIB) $(LIBNAME).a ++ $(RANLIB) "$(INSTALL_LIBDIR)/$(LIBNAME).$(A)" + if test -f $(LIBNAME).cmxs; then \ + $(INSTALL_PROG) $(LIBNAME).cmxs "$(INSTALL_LIBDIR)"; \ + fi +diff --git a/otherlibs/dynlink/Makefile b/otherlibs/dynlink/Makefile +index 6b02dc197..dccc45103 100644 +--- a/otherlibs/dynlink/Makefile ++++ b/otherlibs/dynlink/Makefile +@@ -249,12 +249,12 @@ ifeq "$(INSTALL_SOURCE_ARTIFACTS)" "true" + endif + + installopt: +- if $(NATDYNLINK); then \ +- $(INSTALL_DATA) \ +- $(NATOBJS) dynlink.cmxa dynlink.$(A) \ +- "$(INSTALL_LIBDIR)" && \ +- cd "$(INSTALL_LIBDIR)" && $(RANLIB) dynlink.$(A); \ +- fi ++ifeq "$(NATDYNLINK)" "true" ++ $(INSTALL_DATA) \ ++ $(NATOBJS) dynlink.cmxa dynlink.$(A) \ ++ "$(INSTALL_LIBDIR)" ++ $(RANLIB) "$(INSTALL_LIBDIR)/dynlink.$(A)" ++endif + + partialclean: + rm -f $(extract_crc) *.cm[ioaxt] *.cmti *.cmxa \ +diff --git a/otherlibs/systhreads/Makefile b/otherlibs/systhreads/Makefile +index 8fc1bdb92..379c530fa 100644 +--- a/otherlibs/systhreads/Makefile ++++ b/otherlibs/systhreads/Makefile +@@ -121,7 +121,7 @@ install: + $(INSTALL_PROG) dllthreads$(EXT_DLL) "$(INSTALL_STUBLIBDIR)"; \ + fi + $(INSTALL_DATA) libthreads.$(A) "$(INSTALL_LIBDIR)" +- cd "$(INSTALL_LIBDIR)"; $(RANLIB) libthreads.$(A) ++ $(RANLIB) "$(INSTALL_LIBDIR)/libthreads.$(A)" + mkdir -p "$(INSTALL_THREADSLIBDIR)" + $(INSTALL_DATA) \ + $(CMIFILES) threads.cma \ +@@ -136,11 +136,11 @@ endif + + installopt: + $(INSTALL_DATA) libthreadsnat.$(A) "$(INSTALL_LIBDIR)" +- cd "$(INSTALL_LIBDIR)"; $(RANLIB) libthreadsnat.$(A) ++ $(RANLIB) "$(INSTALL_LIBDIR)/libthreadsnat.$(A)" + $(INSTALL_DATA) \ + $(THREADS_NCOBJS) threads.cmxa threads.$(A) \ + "$(INSTALL_THREADSLIBDIR)" +- cd "$(INSTALL_THREADSLIBDIR)" && $(RANLIB) threads.$(A) ++ $(RANLIB) "$(INSTALL_THREADSLIBDIR)/threads.$(A)" + + %.cmi: %.mli + $(CAMLC) -c $(COMPFLAGS) $< +diff --git a/stdlib/Makefile b/stdlib/Makefile +index df34bc2d4..32c5dab56 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -105,7 +105,7 @@ installopt-default:: + $(INSTALL_DATA) \ + stdlib.cmxa stdlib.$(A) std_exit.$(O) *.cmx \ + "$(INSTALL_LIBDIR)" +- cd "$(INSTALL_LIBDIR)"; $(RANLIB) stdlib.$(A) ++ $(RANLIB) "$(INSTALL_LIBDIR)/stdlib.$(A)" + + ifeq "$(UNIX_OR_WIN32)" "unix" + HEADERPROGRAM = header diff --git a/dev-lang/ocaml/ocaml-4.05.0-r7.ebuild b/dev-lang/ocaml/ocaml-4.05.0-r7.ebuild deleted file mode 100644 index 8f3bd8015bf..00000000000 --- a/dev-lang/ocaml/ocaml-4.05.0-r7.ebuild +++ /dev/null @@ -1,155 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit flag-o-matic toolchain-funcs - -PATCHLEVEL="9" -MY_P="${P/_/-}" -DESCRIPTION="Type-inferring functional programming language descended from the ML family" -HOMEPAGE="https://ocaml.org" -SRC_URI="https://github.com/ocaml/ocaml/archive/${PV/_/+}.tar.gz -> ${MY_P}.tar.gz - mirror://gentoo/${PN}-patches-${PATCHLEVEL}.tar.bz2" - -LICENSE="QPL-1.0 LGPL-2" -# Everytime ocaml is updated to a new version, everything ocaml must be rebuilt, -# so here we go with the subslot. -SLOT="0/$(ver_cut 1-2)" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris" -IUSE="emacs flambda latex ncurses +ocamlopt spacetime X xemacs" - -RDEPEND=" - sys-libs/binutils-libs:= - ncurses? ( sys-libs/ncurses:0= ) - spacetime? ( sys-libs/libunwind:= ) - X? ( x11-libs/libX11 ) - !dev-ml/num" -BDEPEND="${RDEPEND} - virtual/pkgconfig" -PDEPEND="emacs? ( app-emacs/ocaml-mode ) - xemacs? ( app-xemacs/ocaml )" - -QA_FLAGS_IGNORED='/usr/lib.*/ocaml/raw_spacetime_lib.cmxs' - -S="${WORKDIR}/${MY_P}" - -PATCHES=( - "${FILESDIR}/${PN}-4.04.2-tinfo.patch" #459512 - "${FILESDIR}"/${P}-gcc10.patch -) - -pkg_setup() { - # dev-lang/ocaml creates its own objects but calls gcc for linking, which will - # results in relocations if gcc wants to create a PIE executable - if gcc-specs-pie ; then - append-ldflags -nopie - ewarn "Ocaml generates its own native asm, you're using a PIE compiler" - ewarn "We have appended -nopie to ocaml build options" - ewarn "because linking an executable with pie while the objects are not pic will not work" - fi -} - -src_prepare() { - EPATCH_SUFFIX="patch" eapply "${WORKDIR}/patches" - - cp "${FILESDIR}"/ocaml.conf "${T}" || die - - default -} - -src_configure() { - export LC_ALL=C - local myconf="" - - # Causes build failures because it builds some programs with -pg, - # bug #270920 - filter-flags -fomit-frame-pointer - # Bug #285993 - filter-mfpmath sse - - # Broken until 4.12 - # bug #818445 - filter-flags '-flto*' - append-flags -fno-strict-aliasing - - # -ggdb3 & co makes it behave weirdly, breaks sexplib - replace-flags -ggdb* -ggdb - - # OCaml generates textrels on 32-bit arches - # We can't do anything about it, but disabling it means that tests - # for OCaml-based packages won't fail on unexpected output - # bug #773226 - if use arm || use ppc || use x86 ; then - append-ldflags "-Wl,-z,notext" - fi - - # It doesn't compile on alpha without this LDFLAGS - use alpha && append-ldflags "-Wl,--no-relax" - - use ncurses || myconf="${myconf} -no-curses" - use X || myconf="${myconf} -no-graph" - use flambda && myconf="${myconf} -flambda" - use spacetime && myconf="${myconf} -spacetime" - - # ocaml uses a home-brewn configure script, preventing it to use econf. - RAW_LDFLAGS="$(raw-ldflags)" ./configure \ - --prefix "${EPREFIX}"/usr \ - --bindir "${EPREFIX}"/usr/bin \ - --target-bindir "${EPREFIX}"/usr/bin \ - --libdir "${EPREFIX}"/usr/$(get_libdir)/ocaml \ - --mandir "${EPREFIX}"/usr/share/man \ - -target "${CHOST}" \ - -host "${CBUILD}" \ - -cc "$(tc-getCC)" \ - -as "$(tc-getAS)" \ - -aspp "$(tc-getCC) -c" \ - -partialld "$(tc-getLD) -r" \ - --with-pthread ${myconf} || die "configure failed!" - - # http://caml.inria.fr/mantis/view.php?id=4698 - export CCLINKFLAGS="${LDFLAGS}" -} - -src_compile() { - emake world - - # Native code generation can be disabled now - if use ocamlopt ; then - # bug #279968 - emake opt - emake -j1 opt.opt - fi -} - -src_test() { - if use ocamlopt ; then - emake -j1 tests - else - ewarn "${PN} was built without 'ocamlopt' USE flag; skipping tests." - fi -} - -src_install() { - emake BINDIR="${ED}"/usr/bin \ - LIBDIR="${ED}"/usr/$(get_libdir)/ocaml \ - MANDIR="${ED}"/usr/share/man \ - install - - # Symlink the headers to the right place - dodir /usr/include - # Create symlink for header files - dosym "../$(get_libdir)/ocaml/caml" /usr/include/caml - dodoc Changes README.adoc - # Create envd entry for latex input files - if use latex ; then - echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}"/99ocamldoc || die - doenvd "${T}/99ocamldoc" - fi - - sed -i -e "s:lib:$(get_libdir):" "${T}"/ocaml.conf || die - - # Install ocaml-rebuild portage set - insinto /usr/share/portage/config/sets - doins "${T}"/ocaml.conf -} diff --git a/dev-lang/ocaml/ocaml-4.05.0-r8.ebuild b/dev-lang/ocaml/ocaml-4.05.0-r9.ebuild index 58ae1dde82d..836f967b59c 100644 --- a/dev-lang/ocaml/ocaml-4.05.0-r8.ebuild +++ b/dev-lang/ocaml/ocaml-4.05.0-r9.ebuild @@ -10,7 +10,8 @@ MY_P="${P/_/-}" DESCRIPTION="Type-inferring functional programming language descended from the ML family" HOMEPAGE="https://ocaml.org" SRC_URI="https://github.com/ocaml/ocaml/archive/${PV/_/+}.tar.gz -> ${MY_P}.tar.gz - mirror://gentoo/${PN}-patches-${PATCHLEVEL}.tar.bz2" + mirror://gentoo/${PN}-patches-${PATCHLEVEL}.tar.bz2 + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-patches-1.tar.bz2" LICENSE="QPL-1.0 LGPL-2" # Everytime ocaml is updated to a new version, everything ocaml must be rebuilt, @@ -30,14 +31,13 @@ BDEPEND="${RDEPEND} PDEPEND="emacs? ( app-emacs/ocaml-mode ) xemacs? ( app-xemacs/ocaml )" -QA_FLAGS_IGNORED='/usr/lib.*/ocaml/raw_spacetime_lib.cmxs' +QA_FLAGS_IGNORED='usr/lib.*/ocaml/raw_spacetime_lib.cmxs' S="${WORKDIR}/${MY_P}" PATCHES=( "${FILESDIR}"/${PN}-4.04.2-tinfo.patch #459512 - "${FILESDIR}"/${P}-gcc10.patch - "${FILESDIR}"/${P}-CVE-2018-9838.patch + "${WORKDIR}"/${P}-patches-1/ ) pkg_setup() { diff --git a/dev-lang/ocaml/ocaml-4.09.0-r2.ebuild b/dev-lang/ocaml/ocaml-4.09.0-r3.ebuild index ef5e9bedc94..7a37a7cf052 100644 --- a/dev-lang/ocaml/ocaml-4.09.0-r2.ebuild +++ b/dev-lang/ocaml/ocaml-4.09.0-r3.ebuild @@ -5,13 +5,14 @@ EAPI=7 inherit flag-o-matic -HOMEPAGE="https://ocaml.org/" -SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz" DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles" +HOMEPAGE="https://ocaml.org/" +SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-patches-1.tar.bz2" LICENSE="LGPL-2.1" SLOT="0/$(ver_cut 1-2)" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ~ppc ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris" IUSE="emacs flambda latex +ocamlopt spacetime xemacs" RDEPEND="sys-libs/binutils-libs:= @@ -21,11 +22,10 @@ BDEPEND="${RDEPEND} PDEPEND="emacs? ( app-emacs/ocaml-mode ) xemacs? ( app-xemacs/ocaml )" -QA_FLAGS_IGNORED='/usr/lib.*/ocaml/bigarray.cmxs' +QA_FLAGS_IGNORED='usr/lib.*/ocaml/bigarray.cmxs' PATCHES=( - "${FILESDIR}"/${PN}-4.09.0-gcc-10.patch - "${FILESDIR}"/${P}-cflags.patch + "${WORKDIR}"/${P}-patches-1/ ) src_prepare() { @@ -64,7 +64,8 @@ src_configure() { $(use_enable flambda) $(use_enable spacetime) ) - econf ${opt[@]} + + econf "${opt[@]}" } src_compile() { diff --git a/dev-lang/ocaml/ocaml-4.10.2-r2.ebuild b/dev-lang/ocaml/ocaml-4.10.2-r3.ebuild index fbf4e4c204b..b0b37115a35 100644 --- a/dev-lang/ocaml/ocaml-4.10.2-r2.ebuild +++ b/dev-lang/ocaml/ocaml-4.10.2-r3.ebuild @@ -5,9 +5,10 @@ EAPI=7 inherit flag-o-matic -HOMEPAGE="https://ocaml.org/" -SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz" DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles" +HOMEPAGE="https://ocaml.org/" +SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-patches-1.tar.bz2" LICENSE="LGPL-2.1" SLOT="0/$(ver_cut 1-2)" @@ -21,10 +22,10 @@ BDEPEND="${RDEPEND} PDEPEND="emacs? ( app-emacs/ocaml-mode ) xemacs? ( app-xemacs/ocaml )" -QA_FLAGS_IGNORED='/usr/lib.*/ocaml/bigarray.cmxs' +QA_FLAGS_IGNORED='usr/lib.*/ocaml/bigarray.cmxs' PATCHES=( - "${FILESDIR}"/${P}-cflags.patch + "${WORKDIR}"/${P}-patches-1/ ) src_prepare() { @@ -63,7 +64,8 @@ src_configure() { $(use_enable flambda) $(use_enable spacetime) ) - econf ${opt[@]} + + econf "${opt[@]}" } src_compile() { diff --git a/dev-lang/ocaml/ocaml-4.11.2-r2.ebuild b/dev-lang/ocaml/ocaml-4.11.2-r2.ebuild index 666f43b938b..95b42d8a1a6 100644 --- a/dev-lang/ocaml/ocaml-4.11.2-r2.ebuild +++ b/dev-lang/ocaml/ocaml-4.11.2-r2.ebuild @@ -11,7 +11,7 @@ DESCRIPTION="Programming language supporting functional, imperative & object-ori LICENSE="QPL-1.0 LGPL-2" SLOT="0/$(ver_cut 1-2)" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ~ppc ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris" IUSE="emacs flambda latex +ocamlopt spacetime xemacs" RDEPEND="sys-libs/binutils-libs:= @@ -25,7 +25,7 @@ QA_FLAGS_IGNORED='/usr/lib.*/ocaml/bigarray.cmxs' PATCHES=( "${FILESDIR}"/${PN}-4.11.2-glibc-2.34.patch - "${FILESDIR}"/${PN}-4.10.2-cflags.patch + "${FILESDIR}"/${PN}-4.11.2-cflags.patch ) src_prepare() { diff --git a/dev-lang/ocaml/ocaml-4.12.1.ebuild b/dev-lang/ocaml/ocaml-4.12.1.ebuild index fd6cae2fff2..70049fcc0ae 100644 --- a/dev-lang/ocaml/ocaml-4.12.1.ebuild +++ b/dev-lang/ocaml/ocaml-4.12.1.ebuild @@ -24,6 +24,7 @@ QA_FLAGS_IGNORED='/usr/lib.*/ocaml/bigarray.cmxs' PATCHES=( "${FILESDIR}"/${PN}-4.12.0-glibc-2.34.patch + "${FILESDIR}"/${P}-fix-textrel-riscv.patch ) src_prepare() { diff --git a/dev-lang/ocaml/ocaml-4.13.1.ebuild b/dev-lang/ocaml/ocaml-4.13.1.ebuild index 1765de6905c..97958416704 100644 --- a/dev-lang/ocaml/ocaml-4.13.1.ebuild +++ b/dev-lang/ocaml/ocaml-4.13.1.ebuild @@ -22,6 +22,10 @@ PDEPEND="emacs? ( app-emacs/ocaml-mode ) QA_FLAGS_IGNORED='/usr/lib.*/ocaml/bigarray.cmxs' +PATCHES=( + "${FILESDIR}"/${PN}-4.12.1-fix-textrel-riscv.patch +) + src_prepare() { default diff --git a/dev-lang/ocaml/ocaml-4.14.0.ebuild b/dev-lang/ocaml/ocaml-4.14.0.ebuild new file mode 100644 index 00000000000..b68dee9dfba --- /dev/null +++ b/dev-lang/ocaml/ocaml-4.14.0.ebuild @@ -0,0 +1,103 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic + +HOMEPAGE="https://ocaml.org/" +SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz" +DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles" + +LICENSE="QPL-1.0 LGPL-2" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris" +IUSE="emacs flambda latex +ocamlopt xemacs" + +RDEPEND="sys-libs/binutils-libs:=" +BDEPEND="${RDEPEND} + virtual/pkgconfig" +PDEPEND="emacs? ( app-emacs/ocaml-mode ) + xemacs? ( app-xemacs/ocaml )" + +QA_FLAGS_IGNORED='/usr/lib.*/ocaml/bigarray.cmxs' + +PATCHES=( + "${FILESDIR}"/${PN}-4.14.0-clang.patch +) + +src_prepare() { + default + + cp "${FILESDIR}"/ocaml.conf "${T}" || die + + # OCaml generates textrels on 32-bit arches + # We can't do anything about it, but disabling it means that tests + # for OCaml-based packages won't fail on unexpected output + # bug #773226 + if use arm || use ppc || use x86 ; then + append-ldflags "-Wl,-z,notext" + fi + + # Upstream build ignores LDFLAGS in several places. + sed -i -e 's/\(^MKDLL=.*\)/\1 $(LDFLAGS)/' \ + -e 's/\(^OC_CFLAGS=.*\)/\1 $(LDFLAGS)/' \ + -e 's/\(^OC_LDFLAGS=.*\)/\1 $(LDFLAGS)/' \ + Makefile.config.in || die "LDFLAGS fix failed" +} + +src_configure() { + local opt=( + --bindir="${EPREFIX}/usr/bin" + --libdir="${EPREFIX}/usr/$(get_libdir)/ocaml" + --mandir="${EPREFIX}/usr/share/man" + --prefix="${EPREFIX}/usr" + $(use_enable flambda) + ) + + econf "${opt[@]}" +} + +src_compile() { + env -u P emake world + + if use ocamlopt ; then + env -u P emake opt + env -u P emake opt.opt + fi +} + +src_test() { + emake -j + + # OCaml tests only work when run sequentially + if use ocamlopt ; then + emake -j1 ocamltest.opt + else + emake -j1 ocamltest + #ewarn "${PN} was built without 'ocamlopt' USE flag; skipping tests." + fi + + emake -j1 tests +} + +src_install() { + default + + dodir /usr/include + # Create symlink for header files + dosym "../$(get_libdir)/ocaml/caml" /usr/include/caml + dodoc Changes README.adoc + + # Create envd entry for latex input files + if use latex ; then + echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}"/99ocamldoc || die + doenvd "${T}"/99ocamldoc + fi + + sed -i -e "s:lib:$(get_libdir):" "${T}"/ocaml.conf || die + + # Install ocaml-rebuild portage set + insinto /usr/share/portage/config/sets + doins "${T}"/ocaml.conf +} diff --git a/dev-lang/orc/Manifest b/dev-lang/orc/Manifest index a0ffc682c76..ca74330ac24 100644 --- a/dev-lang/orc/Manifest +++ b/dev-lang/orc/Manifest @@ -1 +1,2 @@ DIST orc-0.4.31.tar.xz 177768 BLAKE2B f06fd6be70063ebc82b45c1801a53aab66b5fc8a85c33991602488ec8ed29f2271df20c3780655953cabe33e865530b1218aafa0592261bcc5dccc4a4b3945e7 SHA512 4e97597e70982dbfc239d1ef9a8913b0155e5aaac15d91162d7f73a1095bd944e27fbe6d6194b9f74af07b985a44b1d9dddbe917425e1ad9e8da17ce86495696 +DIST orc-0.4.32.tar.xz 180340 BLAKE2B fca41f0fc46bb6a841eb37f0f403afd0850053f93d34d50ba61c2e50c5029be7cb4fa0ba03828d87275aae1b4be2d968c32318d5d895ca7adf0f5edaf1f89efd SHA512 63e2ab05bc23e07cd5c1ed3192515ec3b1f666abb4f9ea5de4bd72461f3a5d7066860e2ad38f35d0acd81fadfa06f2a18d61838eae89c74dec6a78099a343567 diff --git a/dev-lang/orc/orc-0.4.31.ebuild b/dev-lang/orc/orc-0.4.31.ebuild index 349b3c1a308..ac1bd42ea96 100644 --- a/dev-lang/orc/orc-0.4.31.ebuild +++ b/dev-lang/orc/orc-0.4.31.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://gstreamer.freedesktop.org/src/${PN}/${P}.tar.xz" LICENSE="BSD BSD-2" SLOT="0" -KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" RESTRICT="!test? ( test )" IUSE="gtk-doc static-libs test" diff --git a/dev-lang/orc/orc-0.4.32.ebuild b/dev-lang/orc/orc-0.4.32.ebuild new file mode 100644 index 00000000000..235a03aab3b --- /dev/null +++ b/dev-lang/orc/orc-0.4.32.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit meson-multilib + +DESCRIPTION="The Oil Runtime Compiler, a just-in-time compiler for array operations" +HOMEPAGE="https://gstreamer.freedesktop.org/" +SRC_URI="https://gstreamer.freedesktop.org/src/${PN}/${P}.tar.xz" + +LICENSE="BSD BSD-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +RESTRICT="!test? ( test )" +IUSE="gtk-doc static-libs test" + +DEPEND="" +RDEPEND="" +BDEPEND=" + gtk-doc? ( + dev-util/gtk-doc + app-text/docbook-xml-dtd:4.1.2 + app-text/docbook-xml-dtd:4.3 ) +" + +multilib_src_configure() { + # FIXME: handle backends per arch? What about cross-compiling for the other arches? + local emesonargs=( + -Ddefault_library=$(usex static-libs both shared) + -Dorc-backend=all + -Dorc-test=enabled # FIXME: always installs static library, bug 645232 + -Dbenchmarks=disabled + -Dexamples=disabled + $(meson_native_use_feature gtk-doc gtk_doc) + $(meson_feature test tests) + -Dtools=enabled # requires orc-test + ) + meson_src_configure +} diff --git a/dev-lang/perl/Manifest b/dev-lang/perl/Manifest index 6954c4ae4de..b94e06c89a8 100644 --- a/dev-lang/perl/Manifest +++ b/dev-lang/perl/Manifest @@ -1,3 +1,9 @@ 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-5.34.1-zlib-1.2.12-encrypt-standard.zip.bin 207 BLAKE2B b52e1322930d5f7b8d6e3a319d24322b5dffb2313bdc757c0c8eb8713fd03adace199c8449ccc306e49b5b71e3c1b9786b2acb0ab8780a09d718a1c54f653226 SHA512 5a7e0950f0f94bd961fa9cf3e4ab5dd30006bee0f4553da755688a32d0411a4a850a28d4f998b36e7177dcf3aba192b899ca4138e84452baffef1a0b2ed1fb7b +DIST perl-5.34.1-zlib-1.2.12.patch.xz 180480 BLAKE2B 39da5c1ef406d018f73e641d86ff81d5257cf1f7d6c1b0caac9651a546d70a2e0fff53bf0fc584907e792cb681a961c8442ab355f8f0c2cfffbb26c997cdbac0 SHA512 b32b57721b10943e21003429b42c535f7833e450f097855162241775a161a557fe0ea86ce615d6a9c885f165f45438cabba5580f9b299796d3a3da5ea720f1ff +DIST perl-5.34.1.tar.xz 12760168 BLAKE2B 3768e55f66551c83295153e91d25d568b7b8638789141f7fcd5a304509cb391cb9ad0232ba6ac70113bb0881ddb00ca5b19c53aa01e1e206c44401dad60d8942 SHA512 9261958291b49eea30c120a89e5ee32dc6a5fd46de4869c89c3d6a4c1162d6cf192ebe429d01a293eda93d8680ce15294af27717fd4ec4c75f511c1fa820fdac +DIST perl-5.36.0-RC3.tar.xz 13059260 BLAKE2B 35e079c139c09e0b47117400917afe30ab738cf11af32651d0191e68089aac8d9d9c0159970b564727e9abda55d415d0d36863d53dea5fc5719db3dc0cb91e49 SHA512 b00721d15042519902483951801601c5cac9576f2e78f0d3b1fb6467c473314dbba415a92530f70bcbc6eb796c0b5c5fae9d1b2b8163596f2c672562f4375041 +DIST perl-5.36.0-patches-1.tar.xz 20352 BLAKE2B f5413c75c5bbced230ad7fa692998caef8e4041f3394ae5212dc2aaee465de619b56cf07551be1bb36f2e06b9ed7d0ddda31ad4a7ec81d5c0c64b698ddd80379 SHA512 ab24577b6d71a13d9ccf272efa0881b29933b6a39532ca0d71d4c9a134f451bbe5f3d87c6c851f26114702ac3f92af5c5a72129a458ebee31e372106955eb157 DIST perl-cross-1.3.6.tar.gz 110210 BLAKE2B 39074d6f4a526f59de2b1c40432936552e625a5a4e44fbb7ce3c1c3828b12c5298d1ab49b7d34ea92e2a4c8c88f8bbef8cc0c582a3fbbed975cf46d331e89c08 SHA512 d394fbd75d890442aa599eae8893a26540c8b7af966583ad1c3213c3fe0e074415cfed8814de8f397830833fd78267bdc55adc5267168198f269634c2ef3b982 +DIST perl-cross-1.3.7.tar.gz 118291 BLAKE2B dc9c060857d6905c817e91c3f5b1f546b76e02c6de02dc260185e0de8628a5ead3a557501da75549e2585cd30879190558740e697b1c78a69fa08ccb5649efcd SHA512 1111274f34f8b46e9f418883e9b1652ba4a5a9b4a5880a9a5b38bc8aeb5d75a9f4943233870f5ebf5fbcdc0c30b2983ace11ad051b55d3283327d8f2c15e172c diff --git a/dev-lang/perl/metadata.xml b/dev-lang/perl/metadata.xml index 85752872812..4105918061b 100644 --- a/dev-lang/perl/metadata.xml +++ b/dev-lang/perl/metadata.xml @@ -7,6 +7,7 @@ </maintainer> <use> <flag name="ithreads">Enable Perl threads, has some compatibility problems</flag> + <flag name="quadmath">Enable 128bit floating point arithmetic via libquadmath</flag> </use> <upstream> <remote-id type="github">arsv/perl-cross</remote-id> diff --git a/dev-lang/perl/perl-5.34.0-r3.ebuild b/dev-lang/perl/perl-5.34.0-r10.ebuild index 8f3eb1ad8b3..b94dfcf6d2c 100644 --- a/dev-lang/perl/perl-5.34.0-r3.ebuild +++ b/dev-lang/perl/perl-5.34.0-r10.ebuild @@ -14,18 +14,16 @@ 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 +# BIN_OLDVERSEN 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 @@ -33,6 +31,7 @@ if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then else SUBSLOT="${DIST_VERSION%.*}" fi + # Used only in tar paths MY_P="perl-${DIST_VERSION}" # Used in library paths @@ -53,10 +52,10 @@ 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="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~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" +IUSE="berkdb debug doc gdbm ithreads minimal quadmath" RDEPEND=" berkdb? ( sys-libs/db:= ) @@ -71,6 +70,7 @@ BDEPEND="${RDEPEND}" PDEPEND=" !minimal? ( >=app-admin/perl-cleaner-2.5 + >=virtual/perl-CPAN-2.290.0 >=virtual/perl-Encode-3.120.0 >=virtual/perl-File-Temp-0.230.400-r2 >=virtual/perl-Data-Dumper-2.154.0 @@ -126,13 +126,16 @@ check_rebuild() { return 0; # Reinstall w/ USE Change - elif ( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \ + elif + ( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \ ( ! use ithreads && has_version dev-lang/perl[ithreads] ) || \ + ( use quadmath && ! has_version dev-lang/perl[quadmath] ) || \ + ( ! use quadmath && has_version dev-lang/perl[quadmath] ) || \ ( 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 changed one of the use-flags ithreads, quadmath, or debug." ewarn "You must rebuild all perl-modules installed." ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl" fi @@ -154,6 +157,9 @@ pkg_setup() { if use debug ; then myarch+="-debug" fi + if use quadmath ; then + myarch+="-quadmath" + fi if use ithreads ; then mythreading="-multi" myarch+="-thread" @@ -165,24 +171,12 @@ pkg_setup() { 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 + 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 } @@ -264,6 +258,7 @@ src_prepare_perlcross() { MAKEOPTS+=" -j1" export MAKEOPTS } + src_prepare_dynamic() { ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die ln -s ${LIBPERL} libperl$(get_libname ) || die @@ -292,9 +287,10 @@ add_patch() { 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 *-darwin-Use-CC* # rm_patch() { local patchdir="${WORKDIR}/patches" @@ -307,6 +303,7 @@ rm_patch() { 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 @@ -388,6 +385,7 @@ apply_patchdir() { printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST" } + src_prepare() { local patchdir="${WORKDIR}/patches" @@ -402,6 +400,12 @@ src_prepare() { "Fix GDBM_File to compile with version 1.20 and earlier"\ "https://bugs.gentoo.org/802945" + if use prefix ; then + add_patch "${FILESDIR}/${P}"-fallback-getcwd-pwd.patch "0102-5.34.0-fallback-get-cwd-pwd.patch"\ + "Fix installation during Prefix bootstrap (finding 'pwd' from coreutils)"\ + "https://bugs.gentoo.org/818172" + fi + if [[ ${CHOST} == *-solaris* ]] ; then # do NOT mess with nsl, on Solaris this is always necessary, # when -lsocket is used e.g. to get h_errno @@ -432,6 +436,12 @@ src_prepare() { if [[ ${CHOST} == *-darwin* ]] ; then # fix install_name (soname) not to reference $D sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die + + # fix environ linkage absence (only a real issue on Darwin9) + if [[ ${CHOST##*-darwin} -le 9 ]] ; then + sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \ + Makefile.SH || die + fi fi default @@ -448,16 +458,10 @@ myconf() { # /usr/local/lib64/perl5/<NUMBER> # /usr/lib64/perl5/vendor_perl/<NUMBER> # -# 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" +# All values of NUMBER must be like "5.x.y" or 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 regex='.*/5[.][0-9]+\([.][0-9]+\|\)$' local dirs=( "${EROOT}${PRIV_BASE}" "${EROOT}${SITE_BASE}" @@ -481,13 +485,11 @@ find_candidate_inc_versions() { 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 + local vexclude="${SUBSLOT}" einfo "Normalizing/Sorting candidate list: $*" einfo " to remove '${vexclude}'" # Note, general numeric sort has to be used @@ -499,22 +501,18 @@ sanitize_inc_versions() { } versions_to_inclist() { - local oldv="${PERL_BIN_OLDVERSEN}" - if [[ ! -z "${PERL_SINGLE_SLOT}" ]]; then - oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}" - fi + 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="${PERL_BIN_OLDVERSEN}" + local oldv="${DIST_VERSION%-RC} ${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}" @@ -581,6 +579,8 @@ src_configure() { use ithreads && myconf -Dusethreads + use quadmath && myconf -Dusequadmath + if use debug ; then append-cflags "-g" myconf -DDEBUGGING @@ -628,9 +628,11 @@ src_configure() { 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 + # using c89 mode as injected by cflags.SH, in addition, we override + # cflags, so we loose PERL_DARWIN which enables compat code that + # apparently on more recent macOS releases is no longer necessary [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \ - append-cflags -Dinline=__inline__ + append-cflags -Dinline=__inline__ -DPERL_DARWIN # flock on 32-bit sparc Solaris is broken, fall back to fcntl [[ ${CHOST} == sparc-*-solaris* ]] && \ @@ -680,6 +682,7 @@ src_configure() { -Dnm="$(tc-getNM)" \ -Dcpp="$(tc-getCPP)" \ -Dranlib="$(tc-getRANLIB)" \ + -Dccflags="${CFLAGS}" \ -Doptimize="${CFLAGS}" \ -Dldflags="${LDFLAGS}" \ -Dprefix="${EPREFIX}"'/usr' \ @@ -712,7 +715,6 @@ src_configure() { -Dsh="${EPREFIX}"/bin/sh \ -Dtargetsh="${EPREFIX}"/bin/sh \ -Uusenm \ - "${myconf[@]}" \ "${EXTRA_ECONF[@]}" if tc-is-cross-compiler; then @@ -799,7 +801,7 @@ pkg_preinst() { pkg_postinst() { dual_scripts - if [[ "${ROOT}" = "/" ]] ; then + if [[ -z "${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" diff --git a/dev-lang/perl/perl-5.34.0-r5.ebuild b/dev-lang/perl/perl-5.34.0-r11.ebuild index effe3c01df9..23b0a697df8 100644 --- a/dev-lang/perl/perl-5.34.0-r5.ebuild +++ b/dev-lang/perl/perl-5.34.0-r11.ebuild @@ -55,7 +55,7 @@ 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" +IUSE="berkdb debug doc gdbm ithreads minimal quadmath" RDEPEND=" berkdb? ( sys-libs/db:= ) @@ -70,6 +70,7 @@ BDEPEND="${RDEPEND}" PDEPEND=" !minimal? ( >=app-admin/perl-cleaner-2.5 + >=virtual/perl-CPAN-2.290.0 >=virtual/perl-Encode-3.120.0 >=virtual/perl-File-Temp-0.230.400-r2 >=virtual/perl-Data-Dumper-2.154.0 @@ -125,13 +126,16 @@ check_rebuild() { return 0; # Reinstall w/ USE Change - elif ( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \ + elif + ( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \ ( ! use ithreads && has_version dev-lang/perl[ithreads] ) || \ + ( use quadmath && ! has_version dev-lang/perl[quadmath] ) || \ + ( ! use quadmath && has_version dev-lang/perl[quadmath] ) || \ ( 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 changed one of the use-flags ithreads, quadmath, or debug." ewarn "You must rebuild all perl-modules installed." ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl" fi @@ -153,6 +157,9 @@ pkg_setup() { if use debug ; then myarch+="-debug" fi + if use quadmath ; then + myarch+="-quadmath" + fi if use ithreads ; then mythreading="-multi" myarch+="-thread" @@ -429,6 +436,12 @@ src_prepare() { if [[ ${CHOST} == *-darwin* ]] ; then # fix install_name (soname) not to reference $D sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die + + # fix environ linkage absence (only a real issue on Darwin9) + if [[ ${CHOST##*-darwin} -le 9 ]] ; then + sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \ + Makefile.SH || die + fi fi default @@ -566,6 +579,8 @@ src_configure() { use ithreads && myconf -Dusethreads + use quadmath && myconf -Dusequadmath + if use debug ; then append-cflags "-g" myconf -DDEBUGGING @@ -613,9 +628,11 @@ src_configure() { 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 + # using c89 mode as injected by cflags.SH, in addition, we override + # cflags, so we loose PERL_DARWIN which enables compat code that + # apparently on more recent macOS releases is no longer necessary [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \ - append-cflags -Dinline=__inline__ + append-cflags -Dinline=__inline__ -DPERL_DARWIN # flock on 32-bit sparc Solaris is broken, fall back to fcntl [[ ${CHOST} == sparc-*-solaris* ]] && \ @@ -665,7 +682,7 @@ src_configure() { -Dnm="$(tc-getNM)" \ -Dcpp="$(tc-getCPP)" \ -Dranlib="$(tc-getRANLIB)" \ - -Dccflags="${CFLAGS}" \ + -Accflags="${CFLAGS}" \ -Doptimize="${CFLAGS}" \ -Dldflags="${LDFLAGS}" \ -Dprefix="${EPREFIX}"'/usr' \ @@ -784,7 +801,7 @@ pkg_preinst() { pkg_postinst() { dual_scripts - if [[ "${ROOT}" = "/" ]] ; then + if [[ -z "${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" diff --git a/dev-lang/perl/perl-5.34.0-r6.ebuild b/dev-lang/perl/perl-5.34.0-r9.ebuild index c4bc6a0a3d0..ba13129590c 100644 --- a/dev-lang/perl/perl-5.34.0-r6.ebuild +++ b/dev-lang/perl/perl-5.34.0-r9.ebuild @@ -52,7 +52,7 @@ LICENSE="|| ( Artistic GPL-1+ )" SLOT="0/${SUBSLOT}" if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv 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" @@ -793,7 +793,7 @@ pkg_preinst() { pkg_postinst() { dual_scripts - if [[ "${ROOT}" = "/" ]] ; then + if [[ -z "${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" diff --git a/dev-lang/perl/perl-5.34.1-r2.ebuild b/dev-lang/perl/perl-5.34.1-r2.ebuild new file mode 100644 index 00000000000..2d2c3d383cf --- /dev/null +++ b/dev-lang/perl/perl-5.34.1-r2.ebuild @@ -0,0 +1,824 @@ +# Copyright 1999-2022 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.7 +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" +fi + +IUSE="berkdb debug doc gdbm ithreads minimal quadmath" + +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-CPAN-2.290.0 + >=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.100_rc 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.203.130 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 quadmath && ! has_version dev-lang/perl[quadmath] ) || \ + ( ! use quadmath && has_version dev-lang/perl[quadmath] ) || \ + ( 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, quadmath, 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 quadmath ; then + myarch+="-quadmath" + 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" + + if use prefix ; then + add_patch "${FILESDIR}/${PN}"-5.34.0-fallback-getcwd-pwd.patch "0102-5.34.0-fallback-get-cwd-pwd.patch"\ + "Fix installation during Prefix bootstrap (finding 'pwd' from coreutils)"\ + "https://bugs.gentoo.org/818172" + fi + + if [[ ${CHOST} == *-solaris* ]] ; then + # do NOT mess with nsl, on Solaris this is always necessary, + # when -lsocket is used e.g. to get h_errno + 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 + + # fix environ linkage absence (only a real issue on Darwin9) + if [[ ${CHOST##*-darwin} -le 9 ]] ; then + sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \ + Makefile.SH || die + fi + 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/<NUMBER> +# /usr/local/lib64/perl5/<NUMBER> +# /usr/lib64/perl5/vendor_perl/<NUMBER> +# +# 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 + replace-flags "-Os" "-O2" + + # xlocale.h is going away in glibc-2.26, so it's counterproductive + # if we use it and include it in CORE/perl.h ... Perl builds just + # fine with glibc and locale.h only. + # However, the darwin prefix people have no locale.h ... + use elibc_glibc && myconf -Ui_xlocale + + # This flag makes compiling crash in interesting ways + filter-flags "-malign-double" + + # Generic LTO broken since 5.28, triggers EUMM failures + filter-flags "-flto" + + use sparc && myconf -Ud_longdbl + + export BUILD_BZIP2=0 + export BZIP2_INCLUDE=${EROOT}/usr/include + export BZIP2_LIB=${EROOT}/usr/$(get_libdir) + + export BUILD_ZLIB=False + export ZLIB_INCLUDE=${EROOT}/usr/include + export ZLIB_LIB=${EROOT}/usr/$(get_libdir) + + # allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1 + myndbm='U' + mygdbm='U' + mydb='U' + if use gdbm ; then + mygdbm='D' + if use berkdb ; then + myndbm='D' + fi + fi + if use berkdb ; then + mydb='D' + has_version '=sys-libs/db-1*' && myndbm='D' + fi + + myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db" + + if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then + ewarn "Perl will not be built with berkdb support, use gcc if you needed it..." + myconf -Ui_db -Ui_ndbm + fi + + use ithreads && myconf -Dusethreads + + use quadmath && myconf -Dusequadmath + + 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, in addition, we override + # cflags, so we loose PERL_DARWIN which enables compat code that + # apparently on more recent macOS releases is no longer necessary + [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \ + append-cflags -Dinline=__inline__ -DPERL_DARWIN + + # 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)" \ + -Accflags="${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 + 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 [[ -z "${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.1-r3.ebuild b/dev-lang/perl/perl-5.34.1-r3.ebuild new file mode 100644 index 00000000000..7bd25bfbcca --- /dev/null +++ b/dev-lang/perl/perl-5.34.1-r3.ebuild @@ -0,0 +1,836 @@ +# Copyright 1999-2022 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.7 +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 +" + +SRC_URI+=" + https://dev.gentoo.org/~dilfridge/distfiles/perl-5.34.1-zlib-1.2.12.patch.xz + https://dev.gentoo.org/~dilfridge/distfiles/perl-5.34.1-zlib-1.2.12-encrypt-standard.zip.bin +" + +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 ~loong ~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 quadmath" + +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-CPAN-2.290.0 + >=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.100_rc 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.103.0 zipdetails + src_remove_dual perl-core/JSON-PP 4.60.0 json_pp + src_remove_dual perl-core/Module-CoreList 5.202.203.130 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 quadmath && ! has_version dev-lang/perl[quadmath] ) || \ + ( ! use quadmath && has_version dev-lang/perl[quadmath] ) || \ + ( 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, quadmath, 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 quadmath ; then + myarch+="-quadmath" + 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 "${WORKDIR}/perl-5.34.1-zlib-1.2.12.patch" "0501-5.34.1-zlib-1.2.12.patch"\ + "Update IO-Compress, Compress-Raw-* to 2.103"\ + "https://bugs.gentoo.org/837176" + # this is the binary chunk that gnu patch can't do + cp "${DISTDIR}/perl-5.34.1-zlib-1.2.12-encrypt-standard.zip.bin" "${S}/cpan/IO-Compress/t/files/encrypt-standard.zip" || die + + if use prefix ; then + add_patch "${FILESDIR}/${PN}"-5.34.0-fallback-getcwd-pwd.patch "0102-5.34.0-fallback-get-cwd-pwd.patch"\ + "Fix installation during Prefix bootstrap (finding 'pwd' from coreutils)"\ + "https://bugs.gentoo.org/818172" + fi + + if [[ ${CHOST} == *-solaris* ]] ; then + # do NOT mess with nsl, on Solaris this is always necessary, + # when -lsocket is used e.g. to get h_errno + 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 + + # fix environ linkage absence (only a real issue on Darwin9) + if [[ ${CHOST##*-darwin} -le 9 ]] ; then + sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \ + Makefile.SH || die + fi + 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/<NUMBER> +# /usr/local/lib64/perl5/<NUMBER> +# /usr/lib64/perl5/vendor_perl/<NUMBER> +# +# 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 + replace-flags "-Os" "-O2" + + # xlocale.h is going away in glibc-2.26, so it's counterproductive + # if we use it and include it in CORE/perl.h ... Perl builds just + # fine with glibc and locale.h only. + # However, the darwin prefix people have no locale.h ... + use elibc_glibc && myconf -Ui_xlocale + + # This flag makes compiling crash in interesting ways + filter-flags "-malign-double" + + # Generic LTO broken since 5.28, triggers EUMM failures + filter-flags "-flto" + + use sparc && myconf -Ud_longdbl + + export BUILD_BZIP2=0 + export BZIP2_INCLUDE=${EROOT}/usr/include + export BZIP2_LIB=${EROOT}/usr/$(get_libdir) + + export BUILD_ZLIB=False + export ZLIB_INCLUDE=${EROOT}/usr/include + export ZLIB_LIB=${EROOT}/usr/$(get_libdir) + + # allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1 + myndbm='U' + mygdbm='U' + mydb='U' + if use gdbm ; then + mygdbm='D' + if use berkdb ; then + myndbm='D' + fi + fi + if use berkdb ; then + mydb='D' + has_version '=sys-libs/db-1*' && myndbm='D' + fi + + myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db" + + if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then + ewarn "Perl will not be built with berkdb support, use gcc if you needed it..." + myconf -Ui_db -Ui_ndbm + fi + + use ithreads && myconf -Dusethreads + + use quadmath && myconf -Dusequadmath + + 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, in addition, we override + # cflags, so we loose PERL_DARWIN which enables compat code that + # apparently on more recent macOS releases is no longer necessary + [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \ + append-cflags -Dinline=__inline__ -DPERL_DARWIN + + # 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)" \ + -Accflags="${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 + 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 [[ -z "${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.36.0_rc3.ebuild b/dev-lang/perl/perl-5.36.0_rc3.ebuild new file mode 100644 index 00000000000..a7a15e1d3f7 --- /dev/null +++ b/dev-lang/perl/perl-5.36.0_rc3.ebuild @@ -0,0 +1,825 @@ +# Copyright 1999-2022 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.7 +PATCH_BASE="perl-5.36.0-patches-${PATCH_VER}" +PATCH_DEV=dilfridge + +DIST_AUTHOR=RJBS + +# 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 ~loong ~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 quadmath" + +RDEPEND=" + berkdb? ( sys-libs/db:= ) + gdbm? ( >=sys-libs/gdbm-1.8.3:= ) + app-arch/bzip2 + >=sys-libs/zlib-1.2.12 + virtual/libcrypt:= +" +DEPEND="${RDEPEND}" +BDEPEND="${RDEPEND}" + +PDEPEND=" + !minimal? ( + >=app-admin/perl-cleaner-2.5 + >=virtual/perl-CPAN-2.290.0 + >=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.400.0 ptar ptardiff ptargrep + src_remove_dual perl-core/CPAN 2.330.0 cpan + src_remove_dual perl-core/Digest-SHA 6.20.0 shasum + src_remove_dual perl-core/Encode 3.170.0 enc2xs piconv + src_remove_dual perl-core/ExtUtils-MakeMaker 7.640.0 instmodsh + src_remove_dual perl-core/ExtUtils-ParseXS 3.450.0 xsubpp + src_remove_dual perl-core/IO-Compress 2.106.0 zipdetails + src_remove_dual perl-core/JSON-PP 4.70.0 json_pp + src_remove_dual perl-core/Module-CoreList 5.202.205.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.440.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 quadmath && ! has_version dev-lang/perl[quadmath] ) || \ + ( ! use quadmath && has_version dev-lang/perl[quadmath] ) || \ + ( 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, quadmath, 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 quadmath ; then + myarch+="-quadmath" + 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" + + if use prefix ; then + add_patch "${FILESDIR}/${PN}"-5.34.0-fallback-getcwd-pwd.patch "0102-5.34.0-fallback-get-cwd-pwd.patch"\ + "Fix installation during Prefix bootstrap (finding 'pwd' from coreutils)"\ + "https://bugs.gentoo.org/818172" + fi + + if [[ ${CHOST} == *-solaris* ]] ; then + # do NOT mess with nsl, on Solaris this is always necessary, + # when -lsocket is used e.g. to get h_errno + 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 + + # fix environ linkage absence (only a real issue on Darwin9) + if [[ ${CHOST##*-darwin} -le 9 ]] ; then + sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \ + Makefile.SH || die + fi + 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/<NUMBER> +# /usr/local/lib64/perl5/<NUMBER> +# /usr/lib64/perl5/vendor_perl/<NUMBER> +# +# 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 + replace-flags "-Os" "-O2" + + # xlocale.h is going away in glibc-2.26, so it's counterproductive + # if we use it and include it in CORE/perl.h ... Perl builds just + # fine with glibc and locale.h only. + # However, the darwin prefix people have no locale.h ... + use elibc_glibc && myconf -Ui_xlocale + + # This flag makes compiling crash in interesting ways + filter-flags "-malign-double" + + # Generic LTO broken since 5.28, triggers EUMM failures + filter-flags "-flto" + + use sparc && myconf -Ud_longdbl + + export BUILD_BZIP2=0 + export BZIP2_INCLUDE=${EROOT}/usr/include + export BZIP2_LIB=${EROOT}/usr/$(get_libdir) + + export BUILD_ZLIB=False + export ZLIB_INCLUDE=${EROOT}/usr/include + export ZLIB_LIB=${EROOT}/usr/$(get_libdir) + + # allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1 + myndbm='U' + mygdbm='U' + mydb='U' + if use gdbm ; then + mygdbm='D' + if use berkdb ; then + myndbm='D' + fi + fi + if use berkdb ; then + mydb='D' + has_version '=sys-libs/db-1*' && myndbm='D' + fi + + myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db" + + if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then + ewarn "Perl will not be built with berkdb support, use gcc if you needed it..." + myconf -Ui_db -Ui_ndbm + fi + + use ithreads && myconf -Dusethreads + + use quadmath && myconf -Dusequadmath + + 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, in addition, we override + # cflags, so we loose PERL_DARWIN which enables compat code that + # apparently on more recent macOS releases is no longer necessary + [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \ + append-cflags -Dinline=__inline__ -DPERL_DARWIN + + # 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)" \ + -Accflags="${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 + 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 [[ -z "${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 c2a8b81d857..5c9c1ea0647 100644 --- a/dev-lang/php/Manifest +++ b/dev-lang/php/Manifest @@ -1,9 +1,6 @@ -DIST php-7.3.32.tar.xz 12142436 BLAKE2B 375092f7fade8b93d2fbf409552cda42a685267248e3bce373913eeae5f133e7773554c2302b12bf09588d74a76898b138c47287f7d9a721f294635799ca46f6 SHA512 afed20a90aa7d207f9b409fb2066789a637b24d6c6874fc5733bbe6e9972616b387669ce40cba16b606893d88572f398e34aff7a36626308e3ede312f09fcc56 -DIST php-7.3.33.tar.xz 12143820 BLAKE2B 77b5ada50169b308b42dbf2c69b5aebd6e9ab9663be8de5bd26391e42015d856631f12b0268b98889f2c3058564a6c71ad298b725b8afff920e277aa3e787422 SHA512 b05edb3e87775c0b2d7bd5990e47751279076e6ef2356f59dc917f4a1447d95894f596cd8de711f03278650ff74ff9f2687ed96cec69d2d669a6af563a455e25 -DIST php-7.4.25.tar.xz 10376304 BLAKE2B 75682840a9e978d2ce350892bb8d743238f1ca86d4e1bb549637ad259541264c911128d3fbb2a89768acaa366eac91e66b26f8411f6b9f6d55475b139f5ae95a SHA512 7fcb236f6d2a92514059b2e107c2b592e6139e3c65046566ae98fb9d2c09eb3e9ca1a41ea6535fc814bc7127d8fd9f8bb5a80bd86eec32120eb150a34b9b5c34 -DIST php-7.4.26.tar.xz 10420236 BLAKE2B d4675ecf3632bb63e24d2f3cdef10c01fbf4a7a28384abc1e2eeb9ae7dc4ecfe341b95d946e182647837f4e082f0261e2ba921822ec5844b7fe833bf639197b7 SHA512 36cd493c9c95aabb1ee47e82cb0c20b2be99fe7ebd98743355139064590d0b9a1746d71e31dd47f164df34ebe3f8366a75f3efc149262e1391b43d83d3045c6e -DIST php-7.4.27.tar.xz 10419380 BLAKE2B e62218f54f0455377f085499b3fa75d9d9a33c81d621ac4303cee59e70565a3cd9bfa6372ebb3492a4093eb22bf101653b6e8b3804cb8795db5d5ac2845de2f5 SHA512 2401f19d738a511c20efdf199fed7a6bdd02b51d91abf68a410f760cf846df87fce4bbf71acdf209926877cf3e8f8f39f045f1f03755862d09491f6ab6c9cfc8 -DIST php-8.0.12.tar.xz 10713980 BLAKE2B ce8ca0d671e8613a81744a55cf94ff43254482a08dec365c05eb4ca22c1b31732e5ef93a51d383d2e8daf0cf332ed7946e79ba3b385386ca0773fc673fe58307 SHA512 927b15c4443f3741a5325ec7bf387987b405cd5e64e40fd81f1945bf073adda30eeede8e1f98185f505cb61f969cf1abe05b8dad57a3c4e87971e8037bb16b23 -DIST php-8.0.14.tar.xz 10860176 BLAKE2B e63e8e4446c1e1ee0bdf6faf38ce95a793107e582bd74677555d6f3576184af73d454111f14cd680086b11f288222d1ad5fb0e5ee38df53cd476fab6015b7fa7 SHA512 1fb96dd7e229dd71d0e872c8450e18bdefadebaf0b6b6429bd5d054be1b940cd2d53f132ba2d166d454b89374e79e4ea02d483320792e983d572df68ef769788 -DIST php-8.0.15.tar.xz 10764936 BLAKE2B f7bdc42dd3c9e9b58744dba644720fd5dfe581442f522759cd48b94a30c3fc65167f2b0e670bbbe5d5524ec3a6704e3b432e5af2dc07c6944a93adc52e527e98 SHA512 e6ac50b2e38d6d02cf84ce388826438bb7d339b54d2038ca071874b90c65f80c5c5e0c69f870edd7450d2de8f83788c8855eeb983d0d4528d44e31679caf404f -DIST php-8.1.2.tar.xz 11681132 BLAKE2B e693237b76d94cd4a50c3df68289d4c2f070c40cc52c099fd91134331377115b7e7df509e5d6cdfc7742da3ae7b27d3cbe7015acc3825b887ba0d7d690663dd4 SHA512 ec68587fc14d4e5aaa19d4a189c74b85e67b8ab4d5a15ef36115b564fc9e2f2b63bd608ea8c0e4a99615a24f38711b233f4e65b3672c3bfb69e1ab9d554a88cd +DIST php-7.4.28.tar.xz 10418352 BLAKE2B 27673b5a891723a4c20a19fa22708f733b8ff12e16e5bbd727ed841845bcb8802ea98e8c2a4936b184704cde96f8725a2c338470ba573e8d3a0732a3f449e7e5 SHA512 e7fa281a3be9ec46b7fa69619fd417fc04200dc64fd153f9670184d84b0aa3d5f3698536cf18476a96d8a42ba40b856ff57ab18e8e8a485dd9b95467d1952fa8 +DIST php-8.0.16.tar.xz 10864076 BLAKE2B e5820ecd40632e458a0ada1d1886cd054520ab7f1492766fd8d5c3561977359abddd886b47f7d7255bcc80d00c96afeceb5cbd515eb779ed4ac15db9e01f1fe3 SHA512 68952638f2965752be26dc0a49f938eb4f251f2d5a7b309a2983c4f9bc064738c9da2e8015ec9b2ecc0dc06e014ace3c0348222166b898a4a38c31ab8b0fd139 +DIST php-8.0.18.tar.xz 10871224 BLAKE2B 89477d4b93de93fe9ad9a0c90864381038d93967018f8452cbc5a56b8ca11972976447a8fcd75368b8991cd2dfffaa392cb8962dc4d5b2dc184c3a6ed87277aa SHA512 fda43f5bcb2aba7c2777331b41d2d8bb35c0b8508feef1a2fbff15105acfd7a41e0a4f1f9111e5cf1091e5df04ac4c737ec939c5bd5d85535b3b3ebb0450bc21 +DIST php-8.0.19.tar.xz 10778992 BLAKE2B 346632113cdb10f7e21df803240f3ee683ec2976386d7dded2702b8185ff7964313a344c999af02444b07f80de9effa8ff1272b2dfd80db2122128223a5aa57b SHA512 106aa7c9f4804b8ce3518d7e6da4dc8f2a4df2f0b5d7369776737e0b13d4cd6be375694b78271fd1d007d4e0892009dc2a7214c1652462ebf128b74f845787e8 +DIST php-8.1.5.tar.xz 11752684 BLAKE2B b81dcad2fb188cbae261af83ffea764826bd12ec59e888a735102f491c53545aafbf9d85fa3c7d9277d15474c5bcf0e888d584f83ecc82d607fe969c7b15e73e SHA512 184d3738dbd8207a84cfb11dcc1edf352c57da49f484fe791d8c786ab8921189fdaf459b98e3bd6a5f73ae968510e8a8566f41a69640c74adb35363d6c07c439 +DIST php-8.1.6.tar.xz 11708824 BLAKE2B 61420753dae098cfd40a916f3a05b123462dbd5e7d08be6e8cbce8ec559b0538d3d5cb3f137b13326d6fba2c87a932cced0728341f8ba916f6cecf98add4fd1e SHA512 df5ab8e90aced1cc904c6abd25f42b0c59a327fe4f7b518591c23820e711952f3b1e70b31a1c2e90282621891400b492fb099cbadafcd0ef7991ccc2962156de diff --git a/dev-lang/php/files/20php5-envd b/dev-lang/php/files/20php5-envd index f6033ae517c..2a7cb1bd34b 100644 --- a/dev-lang/php/files/20php5-envd +++ b/dev-lang/php/files/20php5-envd @@ -1,2 +1,2 @@ MANPATH="/usr/lib/php5/man/" -CONFIG_PROTECT_MASK="/etc/php/cli-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/apache2-php5/ext-active/" +CONFIG_PROTECT_MASK="/etc/php/cli-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/apache2-php5/ext-active/ /etc/php/fpm-php5/ext-active/ /etc/php/phpdbg-php5/ext-active/" diff --git a/dev-lang/php/files/php-freetype-2.9.1.patch b/dev-lang/php/files/php-freetype-2.9.1.patch deleted file mode 100644 index 02dfd9ce3cd..00000000000 --- a/dev-lang/php/files/php-freetype-2.9.1.patch +++ /dev/null @@ -1,233 +0,0 @@ ---- a/ext/gd/config.m4 2018-04-24 11:09:54.000000000 -0400 -+++ b/ext/gd/config.m4 2018-05-04 15:18:49.867283889 -0400 -@@ -186,21 +186,36 @@ - AC_DEFUN([PHP_GD_FREETYPE2],[ - if test "$PHP_FREETYPE_DIR" != "no"; then - -- for i in $PHP_FREETYPE_DIR /usr/local /usr; do -- if test -f "$i/bin/freetype-config"; then -- FREETYPE2_DIR=$i -- FREETYPE2_CONFIG="$i/bin/freetype-config" -- break -+ AC_PATH_PROG(PKG_CONFIG, pkg-config, no) -+ AC_MSG_CHECKING(for freetype2) -+ -+ if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then -+ -+ FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2` -+ FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2` -+ FREETYPE2_VERSION=`$PKG_CONFIG --modversion freetype2` -+ FREETYPE2_DIR="found" -+ -+ AC_MSG_RESULT(from pkgconfig: version $FREETYPE2_VERSION found) -+ else -+ -+ for i in $PHP_FREETYPE_DIR /usr/local /usr; do -+ if test -f "$i/bin/freetype-config"; then -+ FREETYPE2_DIR=$i -+ FREETYPE2_CONFIG="$i/bin/freetype-config" -+ break -+ fi -+ done -+ -+ if test -z "$FREETYPE2_DIR"; then -+ AC_MSG_ERROR([freetype-config not found.]) - fi -- done - -- if test -z "$FREETYPE2_DIR"; then -- AC_MSG_ERROR([freetype-config not found.]) -+ FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags` -+ FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs` -+ AC_MSG_RESULT(found via freetype-config) - fi - -- FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags` -- FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs` -- - PHP_EVAL_INCLINE($FREETYPE2_CFLAGS) - PHP_EVAL_LIBLINE($FREETYPE2_LIBS, GD_SHARED_LIBADD) - AC_DEFINE(HAVE_LIBFREETYPE,1,[ ]) ---- a/configure 2018-04-24 11:10:05.000000000 -0400 -+++ b/configure 2018-05-04 15:18:45.626367913 -0400 -@@ -34348,21 +34348,79 @@ - - if test "$PHP_FREETYPE_DIR" != "no"; then - -- for i in $PHP_FREETYPE_DIR /usr/local /usr; do -- if test -f "$i/bin/freetype-config"; then -- FREETYPE2_DIR=$i -- FREETYPE2_CONFIG="$i/bin/freetype-config" -- break -+ # Extract the first word of "pkg-config", so it can be a program name with args. -+set dummy pkg-config; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if ${ac_cv_path_PKG_CONFIG+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $PKG_CONFIG in -+ [\\/]* | ?:[\\/]*) -+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. -+ ;; -+ *) -+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" -+ ;; -+esac -+fi -+PKG_CONFIG=$ac_cv_path_PKG_CONFIG -+if test -n "$PKG_CONFIG"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -+$as_echo "$PKG_CONFIG" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype2" >&5 -+$as_echo_n "checking for freetype2... " >&6; } -+ -+ -+ if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then -+ -+ FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2` -+ FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2` -+ FREETYPE2_VERSION=`$PKG_CONFIG --modversion freetype2` -+ FREETYPE2_DIR="found" -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: from pkgconfig: version $FREETYPE2_VERSION found" >&5 -+$as_echo "from pkgconfig: version $FREETYPE2_VERSION found" >&6; } -+ else -+ -+ for i in $PHP_FREETYPE_DIR /usr/local /usr; do -+ if test -f "$i/bin/freetype-config"; then -+ FREETYPE2_DIR=$i -+ FREETYPE2_CONFIG="$i/bin/freetype-config" -+ break -+ fi -+ done -+ -+ if test -z "$FREETYPE2_DIR"; then -+ as_fn_error $? "freetype-config not found." "$LINENO" 5 - fi -- done - -- if test -z "$FREETYPE2_DIR"; then -- as_fn_error $? "freetype-config not found." "$LINENO" 5 -+ FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags` -+ FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs` -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found via freetype-config" >&5 -+$as_echo "found via freetype-config" >&6; } - fi - -- FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags` -- FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs` -- - - for ac_i in $FREETYPE2_CFLAGS; do - case $ac_i in -@@ -36019,21 +36076,78 @@ - - if test "$PHP_FREETYPE_DIR" != "no"; then - -- for i in $PHP_FREETYPE_DIR /usr/local /usr; do -- if test -f "$i/bin/freetype-config"; then -- FREETYPE2_DIR=$i -- FREETYPE2_CONFIG="$i/bin/freetype-config" -- break -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype2" >&5 -+$as_echo_n "checking for freetype2... " >&6; } -+ # Extract the first word of "pkg-config", so it can be a program name with args. -+set dummy pkg-config; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if ${ac_cv_path_PKG_CONFIG+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $PKG_CONFIG in -+ [\\/]* | ?:[\\/]*) -+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. -+ ;; -+ *) -+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" -+ ;; -+esac -+fi -+PKG_CONFIG=$ac_cv_path_PKG_CONFIG -+if test -n "$PKG_CONFIG"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -+$as_echo "$PKG_CONFIG" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+ -+ if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then -+ -+ FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2` -+ FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2` -+ FREETYPE2_VERSION=`$PKG_CONFIG --modversion freetype2` -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: from pkgconfig: version $FREETYPE_VERSON found" >&5 -+$as_echo "from pkgconfig: version $FREETYPE_VERSON found" >&6; } -+ else -+ -+ for i in $PHP_FREETYPE_DIR /usr/local /usr; do -+ if test -f "$i/bin/freetype-config"; then -+ FREETYPE2_DIR=$i -+ FREETYPE2_CONFIG="$i/bin/freetype-config" -+ break -+ fi -+ done -+ -+ if test -z "$FREETYPE2_DIR"; then -+ as_fn_error $? "freetype-config not found." "$LINENO" 5 - fi -- done - -- if test -z "$FREETYPE2_DIR"; then -- as_fn_error $? "freetype-config not found." "$LINENO" 5 -+ FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags` -+ FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs` -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found via freetype-config" >&5 -+$as_echo "found via freetype-config" >&6; } - fi - -- FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags` -- FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs` -- - - for ac_i in $FREETYPE2_CFLAGS; do - case $ac_i in diff --git a/dev-lang/php/files/php-icu-70.patch b/dev-lang/php/files/php-icu-70.patch deleted file mode 100644 index 63bcb8533f7..00000000000 --- a/dev-lang/php/files/php-icu-70.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff --git a/ext/intl/locale/locale_methods.c b/ext/intl/locale/locale_methods.c -index 1c4ba327bd83..1bdfb27b7e2e 100644 ---- a/ext/intl/locale/locale_methods.c -+++ b/ext/intl/locale/locale_methods.c -@@ -1326,7 +1326,7 @@ PHP_FUNCTION(locale_filter_matches) - if( token && (token==cur_lang_tag) ){ - /* check if the char. after match is SEPARATOR */ - chrcheck = token + (strlen(cur_loc_range)); -- if( isIDSeparator(*chrcheck) || isEndOfTag(*chrcheck) ){ -+ if( isIDSeparator(*chrcheck) || isKeywordSeparator(*chrcheck) || isEndOfTag(*chrcheck) ){ - efree( cur_lang_tag ); - efree( cur_loc_range ); - if( can_lang_tag){ -diff --git a/ext/intl/breakiterator/codepointiterator_internal.cpp b/ext/intl/breakiterator/codepointiterator_internal.cpp -index bf44678efc06..143c181590e9 100644 ---- a/ext/intl/breakiterator/codepointiterator_internal.cpp -+++ b/ext/intl/breakiterator/codepointiterator_internal.cpp -@@ -75,7 +75,11 @@ CodePointBreakIterator::~CodePointBreakIterator() - clearCurrentCharIter(); - } - -+#if U_ICU_VERSION_MAJOR_NUM >= 70 -+bool CodePointBreakIterator::operator==(const BreakIterator& that) const -+#else - UBool CodePointBreakIterator::operator==(const BreakIterator& that) const -+#endif - { - if (typeid(*this) != typeid(that)) { - return FALSE; -diff --git a/ext/intl/breakiterator/codepointiterator_internal.h b/ext/intl/breakiterator/codepointiterator_internal.h -index 7ecf12deb5ae..0baf607782d0 100644 ---- a/ext/intl/breakiterator/codepointiterator_internal.h -+++ b/ext/intl/breakiterator/codepointiterator_internal.h -@@ -39,7 +39,11 @@ namespace PHP { - - virtual ~CodePointBreakIterator(); - -+#if U_ICU_VERSION_MAJOR_NUM >= 70 -+ virtual bool operator==(const BreakIterator& that) const; -+#else - virtual UBool operator==(const BreakIterator& that) const; -+#endif - - virtual CodePointBreakIterator* clone(void) const; - diff --git a/dev-lang/php/metadata.xml b/dev-lang/php/metadata.xml index e15db3b8a1d..9bdbd6a158a 100644 --- a/dev-lang/php/metadata.xml +++ b/dev-lang/php/metadata.xml @@ -27,7 +27,6 @@ <flag name="flatfile">Add dbm support for flat files</flag> <flag name="fpm">Enable the FastCGI Process Manager SAPI</flag> <flag name="gd">Adds support for gd (bundled with PHP)</flag> - <flag name="hash">Enable the hash extension</flag> <flag name="inifile">Add dbm support for .ini files</flag> <flag name="jit">Enable PCRE JIT support</flag> <flag name="json">Enable JSON support</flag> @@ -64,8 +63,6 @@ <flag name="xmlreader">Enable XMLReader support</flag> <flag name="xmlwriter">Enable XMLWriter support</flag> <flag name="xslt">Enable the XSL extension</flag> - <flag name="wddx">Add support for Web Distributed Data eXchange</flag> <flag name="webp">Enable webp support for GD in php-7.x</flag> - <flag name="zip-encryption">Enable ZIP file encryption from <pkg>dev-libs/libzip</pkg></flag> </use> </pkgmetadata> diff --git a/dev-lang/php/php-7.3.32.ebuild b/dev-lang/php/php-7.3.32.ebuild deleted file mode 100644 index e4451e5cc63..00000000000 --- a/dev-lang/php/php-7.3.32.ebuild +++ /dev/null @@ -1,754 +0,0 @@ -# Copyright 1999-2022 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? ( <app-text/enchant-2.0:0 ) - firebird? ( dev-db/firebird ) - gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= >=sys-libs/zlib-1.2.0.4 ) - gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) - gmp? ( dev-libs/gmp:0= ) - iconv? ( virtual/libiconv ) - imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] ) - intl? ( dev-libs/icu:= ) - iodbc? ( dev-db/libiodbc ) - kerberos? ( virtual/krb5 ) - ldap? ( >=net-nds/openldap-1.2.11 ) - ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 ) - libedit? ( dev-libs/libedit ) - lmdb? ( dev-db/lmdb:= ) - mssql? ( dev-db/freetds[mssql] ) - nls? ( sys-devel/gettext ) - oci8-instant-client? ( dev-db/oracle-instantclient[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/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}/php-icu-70.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 || 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.3.33.ebuild b/dev-lang/php/php-7.3.33.ebuild deleted file mode 100644 index 8877e1d31eb..00000000000 --- a/dev-lang/php/php-7.3.33.ebuild +++ /dev/null @@ -1,754 +0,0 @@ -# Copyright 1999-2022 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? ( <app-text/enchant-2.0:0 ) - firebird? ( dev-db/firebird ) - gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= >=sys-libs/zlib-1.2.0.4 ) - gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) - gmp? ( dev-libs/gmp:0= ) - iconv? ( virtual/libiconv ) - imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] ) - intl? ( dev-libs/icu:= ) - iodbc? ( dev-db/libiodbc ) - kerberos? ( virtual/krb5 ) - ldap? ( >=net-nds/openldap-1.2.11 ) - ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 ) - libedit? ( dev-libs/libedit ) - lmdb? ( dev-db/lmdb:= ) - mssql? ( dev-db/freetds[mssql] ) - nls? ( sys-devel/gettext ) - oci8-instant-client? ( dev-db/oracle-instantclient[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/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}/php-icu-70.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 || 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.26.ebuild b/dev-lang/php/php-7.4.26.ebuild deleted file mode 100644 index cee27f7d413..00000000000 --- a/dev-lang/php/php-7.4.26.ebuild +++ /dev/null @@ -1,745 +0,0 @@ -# Copyright 1999-2022 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? ( <app-text/enchant-2.0:0 ) - ffi? ( >=dev-libs/libffi-3.0.11:= ) - firebird? ( dev-db/firebird ) - gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= ) - gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) - gmp? ( dev-libs/gmp:0= ) - iconv? ( virtual/libiconv ) - imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] ) - intl? ( dev-libs/icu:= ) - kerberos? ( virtual/krb5 ) - ldap? ( >=net-nds/openldap-1.2.11 ) - ldap-sasl? ( dev-libs/cyrus-sasl ) - libedit? ( dev-libs/libedit ) - lmdb? ( dev-db/lmdb:= ) - mssql? ( dev-db/freetds[mssql] ) - nls? ( sys-devel/gettext ) - oci8-instant-client? ( dev-db/oracle-instantclient[sdk] ) - odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) ) - postgres? ( dev-db/postgresql:* ) - qdbm? ( dev-db/qdbm ) - readline? ( sys-libs/readline:0= ) - session-mm? ( dev-libs/mm ) - snmp? ( >=net-analyzer/net-snmp-5.2 ) - sodium? ( dev-libs/libsodium:=[-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/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 || 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-7.4.27-r1.ebuild b/dev-lang/php/php-7.4.27-r1.ebuild deleted file mode 100644 index 9925c752752..00000000000 --- a/dev-lang/php/php-7.4.27-r1.ebuild +++ /dev/null @@ -1,746 +0,0 @@ -# Copyright 1999-2022 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? ( <app-text/enchant-2.0:0 ) - ffi? ( >=dev-libs/libffi-3.0.11:= ) - firebird? ( dev-db/firebird ) - gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= ) - gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) - gmp? ( dev-libs/gmp:0= ) - iconv? ( virtual/libiconv ) - imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] ) - intl? ( dev-libs/icu:= ) - kerberos? ( virtual/krb5 ) - ldap? ( >=net-nds/openldap-1.2.11 ) - ldap-sasl? ( dev-libs/cyrus-sasl ) - libedit? ( dev-libs/libedit ) - lmdb? ( dev-db/lmdb:= ) - mssql? ( dev-db/freetds[mssql] ) - nls? ( sys-devel/gettext ) - oci8-instant-client? ( dev-db/oracle-instantclient[sdk] ) - odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) ) - postgres? ( dev-db/postgresql:* ) - qdbm? ( dev-db/qdbm ) - readline? ( sys-libs/readline:0= ) - session-mm? ( dev-libs/mm ) - snmp? ( >=net-analyzer/net-snmp-5.2 ) - sodium? ( dev-libs/libsodium:=[-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/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 - "${FILESDIR}"/bug81656-gcc-11.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 || 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-7.4.27.ebuild b/dev-lang/php/php-7.4.27.ebuild deleted file mode 100644 index cee27f7d413..00000000000 --- a/dev-lang/php/php-7.4.27.ebuild +++ /dev/null @@ -1,745 +0,0 @@ -# Copyright 1999-2022 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? ( <app-text/enchant-2.0:0 ) - ffi? ( >=dev-libs/libffi-3.0.11:= ) - firebird? ( dev-db/firebird ) - gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= ) - gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) - gmp? ( dev-libs/gmp:0= ) - iconv? ( virtual/libiconv ) - imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] ) - intl? ( dev-libs/icu:= ) - kerberos? ( virtual/krb5 ) - ldap? ( >=net-nds/openldap-1.2.11 ) - ldap-sasl? ( dev-libs/cyrus-sasl ) - libedit? ( dev-libs/libedit ) - lmdb? ( dev-db/lmdb:= ) - mssql? ( dev-db/freetds[mssql] ) - nls? ( sys-devel/gettext ) - oci8-instant-client? ( dev-db/oracle-instantclient[sdk] ) - odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) ) - postgres? ( dev-db/postgresql:* ) - qdbm? ( dev-db/qdbm ) - readline? ( sys-libs/readline:0= ) - session-mm? ( dev-libs/mm ) - snmp? ( >=net-analyzer/net-snmp-5.2 ) - sodium? ( dev-libs/libsodium:=[-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/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 || 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-7.4.25.ebuild b/dev-lang/php/php-7.4.28-r1.ebuild index 2cc434eedb4..e0fc215450d 100644 --- a/dev-lang/php/php-7.4.25.ebuild +++ b/dev-lang/php/php-7.4.28-r1.ebuild @@ -98,7 +98,7 @@ COMMON_DEPEND=" imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] ) intl? ( dev-libs/icu:= ) kerberos? ( virtual/krb5 ) - ldap? ( >=net-nds/openldap-1.2.11 ) + ldap? ( >=net-nds/openldap-1.2.11:= ) ldap-sasl? ( dev-libs/cyrus-sasl ) libedit? ( dev-libs/libedit ) lmdb? ( dev-db/lmdb:= ) @@ -146,7 +146,7 @@ PHP_MV="$(ver_cut 1)" PATCHES=( "${FILESDIR}"/php-iodbc-header-location.patch - "${FILESDIR}/php-icu-70.patch" + "${FILESDIR}"/bug81656-gcc-11.patch ) php_install_ini() { diff --git a/dev-lang/php/php-8.0.12.ebuild b/dev-lang/php/php-8.0.16-r1.ebuild index 44a21e55277..16fe8103e9b 100644 --- a/dev-lang/php/php-8.0.12.ebuild +++ b/dev-lang/php/php-8.0.16-r1.ebuild @@ -97,7 +97,7 @@ COMMON_DEPEND=" imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] ) intl? ( dev-libs/icu:= ) kerberos? ( virtual/krb5 ) - ldap? ( >=net-nds/openldap-1.2.11 ) + ldap? ( >=net-nds/openldap-1.2.11:= ) ldap-sasl? ( dev-libs/cyrus-sasl ) libedit? ( dev-libs/libedit ) lmdb? ( dev-db/lmdb:= ) @@ -146,7 +146,6 @@ PHP_MV="$(ver_cut 1)" PATCHES=( "${FILESDIR}/php-iodbc-header-location.patch" "${FILESDIR}/php80-firebird-warnings.patch" - "${FILESDIR}/php-icu-70.patch" ) php_install_ini() { @@ -222,6 +221,20 @@ src_prepare() { configure main/php_config.h.in || die eautoconf --force eautoheader + + # Remove false positive test failures + # stream_isatty fails due to portage redirects + # curl tests here fail for network sandbox issues + # session tests here fail because we set the session directory to $T + rm tests/output/stream_isatty_err.phpt \ + tests/output/stream_isatty_out-err.phpt \ + tests/output/stream_isatty_out.phpt \ + ext/curl/tests/bug76675.phpt \ + ext/curl/tests/bug77535.phpt \ + ext/curl/tests/curl_error_basic.phpt \ + ext/session/tests/bug74514.phpt \ + ext/session/tests/bug74936.phpt || die + } src_configure() { diff --git a/dev-lang/php/php-8.0.14.ebuild b/dev-lang/php/php-8.0.18.ebuild index 76be376118a..e748ac33a46 100644 --- a/dev-lang/php/php-8.0.14.ebuild +++ b/dev-lang/php/php-8.0.18.ebuild @@ -97,7 +97,7 @@ COMMON_DEPEND=" imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] ) intl? ( dev-libs/icu:= ) kerberos? ( virtual/krb5 ) - ldap? ( >=net-nds/openldap-1.2.11 ) + ldap? ( >=net-nds/openldap-1.2.11:= ) ldap-sasl? ( dev-libs/cyrus-sasl ) libedit? ( dev-libs/libedit ) lmdb? ( dev-db/lmdb:= ) @@ -647,7 +647,7 @@ src_test() { export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" fi - REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \ + SKIP_ONLINE_TESTS=1 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}" diff --git a/dev-lang/php/php-8.0.15.ebuild b/dev-lang/php/php-8.0.19.ebuild index 76be376118a..e748ac33a46 100644 --- a/dev-lang/php/php-8.0.15.ebuild +++ b/dev-lang/php/php-8.0.19.ebuild @@ -97,7 +97,7 @@ COMMON_DEPEND=" imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] ) intl? ( dev-libs/icu:= ) kerberos? ( virtual/krb5 ) - ldap? ( >=net-nds/openldap-1.2.11 ) + ldap? ( >=net-nds/openldap-1.2.11:= ) ldap-sasl? ( dev-libs/cyrus-sasl ) libedit? ( dev-libs/libedit ) lmdb? ( dev-db/lmdb:= ) @@ -647,7 +647,7 @@ src_test() { export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" fi - REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \ + SKIP_ONLINE_TESTS=1 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}" diff --git a/dev-lang/php/php-8.1.2.ebuild b/dev-lang/php/php-8.1.5.ebuild index 423e9f80668..046471497e0 100644 --- a/dev-lang/php/php-8.1.2.ebuild +++ b/dev-lang/php/php-8.1.5.ebuild @@ -97,7 +97,7 @@ COMMON_DEPEND=" imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] ) intl? ( dev-libs/icu:= ) kerberos? ( virtual/krb5 ) - ldap? ( >=net-nds/openldap-1.2.11 ) + ldap? ( >=net-nds/openldap-1.2.11:= ) ldap-sasl? ( dev-libs/cyrus-sasl ) libedit? ( dev-libs/libedit ) lmdb? ( dev-db/lmdb:= ) @@ -648,7 +648,7 @@ src_test() { export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" fi - REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \ + SKIP_ONLINE_TESTS=1 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}" diff --git a/dev-lang/php/php-8.1.6.ebuild b/dev-lang/php/php-8.1.6.ebuild new file mode 100644 index 00000000000..046471497e0 --- /dev/null +++ b/dev-lang/php/php-8.1.6.ebuild @@ -0,0 +1,759 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +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.2:0= ) + tidy? ( 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= ) +" + +IDEPEND=">=app-eselect/eselect-php-0.9.7[apache2?,fpm?]" + +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 + + # Remove false positive test failures + # stream_isatty fails due to portage redirects + # curl tests here fail for network sandbox issues + # session tests here fail because we set the session directory to $T + rm tests/output/stream_isatty_err.phpt \ + tests/output/stream_isatty_out-err.phpt \ + tests/output/stream_isatty_out.phpt \ + ext/curl/tests/bug76675.phpt \ + ext/curl/tests/bug77535.phpt \ + ext/curl/tests/curl_error_basic.phpt \ + ext/session/tests/bug74514.phpt \ + ext/session/tests/bug74936.phpt || die + +} + +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 || 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 + + SKIP_ONLINE_TESTS=1 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/pico8/Manifest b/dev-lang/pico8/Manifest new file mode 100644 index 00000000000..4dfc49ba115 --- /dev/null +++ b/dev-lang/pico8/Manifest @@ -0,0 +1,3 @@ +DIST pico-8_0.2.4c_amd64.zip 10503440 BLAKE2B 0bb2997c56ed80385a2d69e24416c969ed33c122a0c751a41eeea8569817e393e9a7b6290caf2a560665121b18c6d00a948e946ef5b20570fe49d34f34697049 SHA512 451d72988c4c0af01ad6298ee02e0f18584076e2df2b00b72de63ea517129cf4bc613b1be67c533fb328bf9d3aa66f3c4ca86d03c5561438d3555688a05ef508 +DIST pico-8_0.2.4c_i386.zip 9806731 BLAKE2B 60b1fe0adb00d524bc67cbf42ff56ebf656c8d4c8ac6440aa924723862a988d86346ea978741a56b221352f16bc88b551149d9fe85e6924901d81f1bb1e8094a SHA512 2d96494054e786ab2638e06da5e861ab8a4bfae6608811da481aa05d720807e620cb2059633f4c4194e3c2cd6a5a22c4ba2b9257e4d1712c1842e0dff5b1c203 +DIST pico-8_0.2.4c_raspi.zip 14027914 BLAKE2B c32be57ce016cd13f7a6fcfacc185665af5d741ceb3886eb8bd66620ff48d084994f708ba7b6e9c51d8e58461cc839667c1bf912209bd4b9613d26ccc98f28bc SHA512 f7c3185dd58ea00a761ddf632ade3fc8c19bc6251bd1c4ba02e6e07cb02fc0fa22e394a398377fde01d77a655350f8cdcdac3390218a9e0e9d78baf4fb2fa313 diff --git a/dev-lang/pico8/metadata.xml b/dev-lang/pico8/metadata.xml new file mode 100644 index 00000000000..c2eb12510ae --- /dev/null +++ b/dev-lang/pico8/metadata.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>chewi@gentoo.org</email> + <name>James Le Cuirot</name> + </maintainer> + <longdescription> + PICO-8 is a fantasy console for making, sharing and playing tiny games + and other computer programs. When you turn it on, the machine greets you + with a shell for typing in Lua programs and provides simple built-in + tools for creating sprites, maps and sound. + + The harsh limitations of PICO-8 are carefully chosen to be fun to work + with, encourage small but expressive designs and hopefully to give + PICO-8 cartridges their own particular look and feel. + </longdescription> +</pkgmetadata> diff --git a/dev-lang/pico8/pico8-0.2.4c.ebuild b/dev-lang/pico8/pico8-0.2.4c.ebuild new file mode 100644 index 00000000000..86749facb14 --- /dev/null +++ b/dev-lang/pico8/pico8-0.2.4c.ebuild @@ -0,0 +1,57 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit desktop xdg + +MY_PN="pico-8" +DESCRIPTION="Fantasy console for making and playing tiny games and other computer programs" +HOMEPAGE="https://www.lexaloffle.com/pico-8.php" +SRC_URI=" + amd64? ( ${MY_PN}_${PV}_amd64.zip ) + arm? ( ${MY_PN}_${PV}_raspi.zip ) + arm64? ( ${MY_PN}_${PV}_raspi.zip ) + x86? ( ${MY_PN}_${PV}_i386.zip ) +" +LICENSE="PICO-8 MIT BSD-2" +SLOT="0" +KEYWORDS="-* ~amd64 ~arm ~arm64 ~x86" +RESTRICT="bindist fetch" + +RDEPEND=" + media-libs/libsdl2[haptic,joystick,sound,video] + net-misc/wget +" + +BDEPEND="app-arch/unzip" + +S="${WORKDIR}/${MY_PN}" + +DIR="/opt/${PN}" +QA_PREBUILT="${DIR}/${PN}" + +pkg_nofetch() { + einfo "Please buy and download ${A} from one of:" + einfo " ${HOMEPAGE}" + einfo " https://lexaloffle.itch.io/${MY_PN}" + einfo "and move it to your distfiles directory." +} + +src_install() { + exeinto "${DIR}" + insinto "${DIR}" + + case ${ARCH} in + amd64|arm) newexe ${PN}_dyn ${PN} ;; + arm64) newexe ${PN}_64 ${PN} ;; + x86) newexe ${PN}_32bit_dyn ${PN} ;; + esac + + doins ${PN}.dat + dodoc ${MY_PN}_manual.txt + + dosym ../..${DIR}/${PN} /usr/bin/${PN} + doicon -s 128 lexaloffle-${PN}.png + make_desktop_entry ${PN} ${MY_PN^^} lexaloffle-${PN} +} diff --git a/dev-lang/python-exec-conf/python-exec-conf-2.4.6.ebuild b/dev-lang/python-exec-conf/python-exec-conf-2.4.6.ebuild index 24af3f9bf9b..4ffdc9faba3 100644 --- a/dev-lang/python-exec-conf/python-exec-conf-2.4.6.ebuild +++ b/dev-lang/python-exec-conf/python-exec-conf-2.4.6.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -13,7 +13,7 @@ S=${WORKDIR}/${MY_P} LICENSE="BSD-2" SLOT="2" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" # Internal Python project hack. Do not copy it. Ever. IUSE="${_PYTHON_ALL_IMPLS[@]/#/python_targets_}" diff --git a/dev-lang/python-exec/Manifest b/dev-lang/python-exec/Manifest index c858cde41c4..9e854122c4e 100644 --- a/dev-lang/python-exec/Manifest +++ b/dev-lang/python-exec/Manifest @@ -1 +1,2 @@ DIST python-exec-2.4.8.tar.bz2 82671 BLAKE2B ac85f3dd6da3d1c535ad56a25edbbcb1d0e75b91e3567b80f27fd01d32a199a713909a8552dffaacbe96c43bca491f31c3f0c7f1a618fb9144814365686715cf SHA512 d6dabab217dc2f1817e2f4d159102a9467f51b26b91f4ae7fb7e4930d30334f74bd8a5f37cc60d58c6e1e61e89a3b4d2e1bd17413493ba86f38fa71250cf5ac1 +DIST python-exec-2.4.9.tar.bz2 84300 BLAKE2B 77ad193f2602db392830eb4e2632562cfa1ca09bdc710e35dc141a036230ac21e63a51d297184740d85e6c3be8cb4b7ffefef270e51533ff15250f474437a52e SHA512 ad520dc7724bc71629e238226cd795214860e0a090a065dc85f782e6bd86c30ba46d58cb80d46221f4ff4a146332244b6670335a8f31f630088f477588ed8293 diff --git a/dev-lang/python-exec/python-exec-2.4.8.ebuild b/dev-lang/python-exec/python-exec-2.4.8.ebuild index 39e408c1489..4fd31fa5060 100644 --- a/dev-lang/python-exec/python-exec-2.4.8.ebuild +++ b/dev-lang/python-exec/python-exec-2.4.8.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 -PYTHON_COMPAT=( python3_{8..10} pypy3 ) +PYTHON_COMPAT=( python3_{8..11} pypy3 ) inherit python-any-r1 DESCRIPTION="Python script wrapper" @@ -12,7 +12,7 @@ SRC_URI="https://github.com/mgorny/python-exec/releases/download/v${PV}/${P}.tar LICENSE="BSD-2" SLOT="2" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" # Internal Python project hack. Do not copy it. Ever. IUSE="${_PYTHON_ALL_IMPLS[@]/#/python_targets_} +native-symlinks test" RESTRICT="!test? ( test )" diff --git a/dev-lang/python-exec/python-exec-2.4.9.ebuild b/dev-lang/python-exec/python-exec-2.4.9.ebuild new file mode 100644 index 00000000000..d85ad8f0df6 --- /dev/null +++ b/dev-lang/python-exec/python-exec-2.4.9.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8..10} pypy3 ) +inherit python-any-r1 + +DESCRIPTION="Python script wrapper" +HOMEPAGE="https://github.com/mgorny/python-exec/" +SRC_URI="https://github.com/mgorny/python-exec/releases/download/v${PV}/${P}.tar.bz2" + +LICENSE="BSD-2" +SLOT="2" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +# Internal Python project hack. Do not copy it. Ever. +IUSE="${_PYTHON_ALL_IMPLS[@]/#/python_targets_} +native-symlinks test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-lang/python-exec-conf + !<=dev-lang/python-2.7.18-r3:2.7" +BDEPEND=" + test? ( + $(python_gen_any_dep 'dev-python/pytest[${PYTHON_USEDEP}]') + )" + +python_check_deps() { + has_version -b "dev-python/pytest[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +src_configure() { + local pyimpls=() i EPYTHON + for i in "${_PYTHON_ALL_IMPLS[@]}"; do + if use "python_targets_${i}"; then + _python_export "${i}" EPYTHON + pyimpls+=( "${EPYTHON}" ) + fi + done + + local myconf=( + --with-fallback-path="${EPREFIX}/usr/local/sbin:${EPREFIX}/usr/local/bin:${EPREFIX}/usr/sbin:${EPREFIX}/usr/bin:${EPREFIX}/sbin:${EPREFIX}/bin" + --with-python-impls="${pyimpls[*]}" + ) + + econf "${myconf[@]}" +} + +src_install() { + default + + if use native-symlinks; then + local programs=( python python3 ) + local scripts=( python-config python3-config 2to3 idle pydoc pyvenv ) + + local f + for f in "${programs[@]}"; do + # symlink the |