diff options
Diffstat (limited to 'dev-lang')
234 files changed, 12700 insertions, 9554 deletions
diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz Binary files differindex cafa9b103613..59b7c83c9807 100644 --- a/dev-lang/Manifest.gz +++ b/dev-lang/Manifest.gz diff --git a/dev-lang/R/Manifest b/dev-lang/R/Manifest index 171d3a4796d8..9f671c5a87d9 100644 --- a/dev-lang/R/Manifest +++ b/dev-lang/R/Manifest @@ -1,13 +1,11 @@ AUX R-4.3.0-no-LDFLAGS-in-libR-pkg-config.patch 380 BLAKE2B db9fcf9d0c73aa5352110bc27f5881db4f793c963e8f9d46b8681101eb7e062f5f1bf50fd06c53aa392994cd455f6d8cffc680f81a06487694c860297e5e06b6 SHA512 380c6489520c60016cef730822ff973a63460b40726b6c84a9c4ba69d75f93bc8eeb6c45dbb64bcb3277fe2ffd8b1d1fcc40ae668d77269acb4fbc5babdb686e AUX R-4.3.0-no-gzip-doc.patch 354 BLAKE2B 81f20b830ac99494a921b635a0d280dd90045c7dd3d1ed02f1fbf46a717ec3b13e7c730c9d4c87dd8d55d5f366db1a60671718511852d134f8dc91fddfbb8505 SHA512 f3f7bd438eac7637b969206c5134f0638ca79c862a6d432545b126422903248e5badde5ff893b4f44e14104734419372c2414380034d17748001f0dfadb5c7b0 AUX R-4.3.0-parallel.patch 415 BLAKE2B e996c72c167b529765c82c8880bc3ea704d3c6e34b7fe09dff4fa93a8e42f8551dc723f44e0ab0638de84ce0f7fa60d4476e297d06eb3d6070d8daf5f79b9dba SHA512 6d36a2eb5df1ec8fa4230bfbc693cf53c95b41bb9269cfa473cfaa6dc8a42681e81a006f03278b86e8636e904bba188f2475d27d06599fdab86de8743401f5be -DIST R-4.3.1.tar.gz 34899964 BLAKE2B 7aaacad01ce59e2faa46c4b830c10d2df8e4a3a1d4f11cf2aa622ceb53876f1e702dff94a820ca954ec29f53d58fa7e135ef15e8257602c50f2642b0a0c0a86a SHA512 f571c378dbdd675e267ef4419bb1141198924dadc08297c93c8dff58504994604918b3e045bb7139ba473972a063a68ed1c7426f37d4e8208b79358561d34d77 -DIST R-4.3.2.tar.gz 35039225 BLAKE2B 2de3af9013c8648c118a1efe673b618aef84a694c6865657faef5b0ca5f780ef5273bb00b607f587219ee30a11f01ccc3b730b9124847242b9d9550de471f58c SHA512 125114357f20d4a3248aee86727768d1dc15e07e44353f8a68fe2ef1fedae508e85d944301d00c0edd61e8b012b0b3cdcde53ac60be903713f96542d83ad5b1d DIST R-4.4.1.tar.gz 37353459 BLAKE2B 2c44fcab719cc2a2cef4566fd4e6c22386f02827a41045ffa074ca2a6883089275354644bce47c9978ef5c96e7b9b21576e946500746c27dc00946ef3cde4fce SHA512 cc30172227b7d89a9d6e9d65c8622b2042bcbbf3f1b5e36c7460f60958a1a0589980a1867ec9989df2589c1618233f3382d4732700b147361ace3be6680b5643 DIST R-4.4.2.tar.gz 37582785 BLAKE2B bda7e3d49c63095830d12d77bb91946c2e7b657895f3388b892ca29091dc6c23b42a6b7822910d6889f69715c3ad58f8031ab7a811f34efe0b352232e5135175 SHA512 b29d82242f70487f52849a5726610c03dffa4e54f1a32a9f3f76784fcf61f91d5c40cddee1029eeb9c9837ff26f382f348e8518dd68c84e9fc2192b981013d9a +DIST R-4.4.3.tar.gz 40234425 BLAKE2B 2a7efdf1841c7bae66a0e8aef07b9e79dec9d2f1b4c32f12640eaf84f99b05ca2846eaf10a5d03e0a7fb6d0a4f00ab16cd84a618ebef7bec29c31bc04458f0db SHA512 2a1d1e5ee2e18c928e2b3e58df372083b4bbd0822863a8441404999209035436e236c8ffe3970827fbf3d765157365800ebb0bb46f361c6abe473ddec30be06f DIST R-78d6830e28ea90a046da79a9b4f70c39594bb6d6.bash_completion 13596 BLAKE2B 53338e4a1c4f68beb69247216e553dbcac47f660fbf032bfebf7a660e32d2cff5b11ed35411c52de7e1fd6e00bbf5b5ea19369a325fa0a38bd93d63dc3288cbd SHA512 9ccd19bb1b0c18a2f13035ccd6809447429e197e298fb4d1df808ef345d723b42f75a1b91c349f6dbb46e4a82e59ef33e11300c495d79b63d670d0c0f2b16a06 -EBUILD R-4.3.1-r1.ebuild 7139 BLAKE2B 6ad669bf41cbef1e56cd10728fa2390043cd7ddde0c095f917f0779b625fbe92c4176a17e60cd0fcd23e0106a28bdf739a311c01768a4ba12a70fc238153af6d SHA512 96c50da1fbebfcf22a3cf9a558cba9df0e655f1456986a806dfd6d2362560a1cde8d922dca02cdcdd67279fe1e4191d74892b6dc1a9194399632642d3ec9adf1 -EBUILD R-4.3.2-r1.ebuild 7142 BLAKE2B 076b384f913f4f3c3dc311b1fb18c21e1bb34bf22c0b9ee3cd178f45737b37efcfa962e0f08caa844f2c84fe742a5a0bb0a1918d50ae8887b37bdac81f249718 SHA512 7aa832f3be64244db12e6ad2a875491b07c9b476f7cf549ca3c77a4597113cbef9b3daac76b29f1c4d15ee15170664bdf29e6a814fe9f3e4cbe6cfe41f820859 EBUILD R-4.4.1.ebuild 7249 BLAKE2B bac9534523954fcb65e21dbda6e5e76d4824a55ff169de79bcdbfbe8c23f186a90e7773a92b08260c48083a736f5ebbc7621a76abb1bcd2ef17f3c23fa08bb84 SHA512 0bbb5f9113ff876f79ce0bb88d821bae3812442b087bc00b6fff5c90b6422d198e44ed6e437467a2558af8645f6ac12e347afefd3f9385c29032e876ca412db0 EBUILD R-4.4.2.ebuild 7321 BLAKE2B ab811639add4d10d3344ee972eca5eedeb7c17920cdf150018c20c8d137ced6957db9187062c8059bde3597110c4889c823a00591232f000ea3f3571dfb1b2ba SHA512 39a75a9893f5771c85fe064fa112924a1859b2d43736983be6159f81c2bf5874d4c12a8789a15405f8eaa808ce2cf8f05b79929e039ca10b3e5fadeda8287fc2 +EBUILD R-4.4.3.ebuild 7321 BLAKE2B 80af26b37391baca4d718c36b62fda41f6fb36451e176cee0ed870157c9c4835c647c46f4d7e309dd52d935e045653989acfefbb1e05ceb710137586eb306b39 SHA512 c3d20847f5702da99f7aaccd1b524bd8fcb682d6ee91c0b4c6a0bbd071adc5fadafda0fe2564945cfed5a97693490069543b82eb40dab7db6e04854bf4b820fe MISC metadata.xml 1359 BLAKE2B 9cfca4def686f457622427e067bffba74608366f21125a167aa6efba5013db0c6c3e6d83d5b7012f436a7db44f4578061ce8c8673c8be95b417f52d66787f664 SHA512 1884aad4c68ddf884838c02f5e078966fcd932a7f2b1eac8298d895b4fb632bbc4abf7a849fdd870e0db7136c6642a4c3b1ccd5360e9f3253919b3a0b25a8555 diff --git a/dev-lang/R/R-4.3.1-r1.ebuild b/dev-lang/R/R-4.3.1-r1.ebuild deleted file mode 100644 index 4a5751c35f33..000000000000 --- a/dev-lang/R/R-4.3.1-r1.ebuild +++ /dev/null @@ -1,246 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit bash-completion-r1 autotools flag-o-matic fortran-2 toolchain-funcs - -# latest git commit for R bash completion: -# https://github.com/deepayan/rcompletion -BCPV=78d6830e28ea90a046da79a9b4f70c39594bb6d6 - -DESCRIPTION="Language and environment for statistical computing and graphics" -HOMEPAGE="https://www.r-project.org/" -SRC_URI=" - https://cran.r-project.org/src/base/R-4/${P}.tar.gz - https://raw.githubusercontent.com/deepayan/rcompletion/${BCPV}/bash_completion/R -> ${PN}-${BCPV}.bash_completion" - -LICENSE="|| ( GPL-2 GPL-3 ) LGPL-2.1" -SLOT="0" -KEYWORDS="amd64 arm64 ~hppa ~loong sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" -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 ) ) - jpeg? ( || ( 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). -DEPEND=" - app-arch/bzip2 - app-arch/xz-utils - app-text/ghostscript-gpl - dev-libs/libpcre2:= - >=dev-libs/tre-0.8.0_p20210321[approx] - net-misc/curl - virtual/blas - sys-libs/zlib[minizip] - sys-apps/coreutils - cairo? ( - x11-libs/cairo:=[X=] - x11-libs/pango:= - ) - icu? ( dev-libs/icu:= ) - jpeg? ( media-libs/libjpeg-turbo:= ) - kernel_linux? ( net-libs/libtirpc ) - lapack? ( virtual/lapack ) - perl? ( dev-lang/perl ) - png? ( media-libs/libpng:= ) - readline? ( sys-libs/readline:= ) - tiff? ( media-libs/tiff:= ) - tk? ( dev-lang/tk:= ) - X? ( - x11-libs/libXmu - x11-libs/libXt - )" -RDEPEND="${DEPEND} - java? ( >=virtual/jre-1.8:* )" -BDEPEND=" - sys-apps/which - virtual/pkgconfig - doc? ( - virtual/latex-base - dev-texlive/texlive-fontsrecommended - ) - test? ( virtual/latex-base )" - -PATCHES=( - "${FILESDIR}"/R-4.3.0-parallel.patch - "${FILESDIR}"/R-4.3.0-no-LDFLAGS-in-libR-pkg-config.patch - "${FILESDIR}"/R-4.3.0-no-gzip-doc.patch -) - -# false positive, the linking step fails (as it should) -QA_CONFIG_IMPL_DECL_SKIP=( iconvlist ) - -pkg_pretend() { - [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] && use openmp; then - tc-check-openmp - FORTRAN_NEED_OPENMP=1 - fi - - fortran-2_pkg_setup - - # avoid using existing R installation - unset R_HOME -} - -src_prepare() { - default - - # fix packages.html for doc (gentoo bug #205103) - sed -e "s:../../../library:../../../../$(get_libdir)/R/library:g" \ - -i src/library/tools/R/Rd.R || die - - # fix Rscript path when installed (gentoo bug #221061) - sed -e "s:-DR_HOME='\"\$(rhome)\"':-DR_HOME='\"${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" - - use lapack && - export LAPACK_LIBS="$($(tc-getPKG_CONFIG) --libs lapack)" - - use perl && - export PERL5LIB="${S}/share/perl:${PERL5LIB:+:}${PERL5LIB}" - - # don't search /usr/local - sed -i -e '/FLAGS=.*\/local\//c\: # removed by ebuild' configure.ac || die - - # Fix for Darwin (macOS) - if use prefix; then - if [[ ${CHOST} == *-darwin* ]] ; then - sed -e 's:-install_name libR.dylib:-install_name ${libdir}/R/lib/libR.dylib:' \ - -e 's:-install_name libRlapack.dylib:-install_name ${libdir}/R/lib/libRlapack.dylib:' \ - -e 's:-install_name libRblas.dylib:-install_name ${libdir}/R/lib/libRblas.dylib:' \ - -e "/SHLIB_EXT/s/\.so/.dylib/" \ - -i configure.ac || die - # sort of "undo" 2.14.1-rmath-shared.patch - sed -e "s:-Wl,-soname=libRmath.so:-install_name ${EPREFIX}/usr/$(get_libdir)/libRmath.dylib:" \ - -i src/nmath/standalone/Makefile.in || die - else - append-ldflags -Wl,-rpath="${EPREFIX}/usr/$(get_libdir)/R/lib" - fi - fi - - AT_M4DIR=m4 eautoreconf -} - -src_configure() { - 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 \ - --without-aqua \ - $(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_with cairo) \ - $(use_with icu ICU) \ - $(use_with jpeg jpeglib) \ - $(use_with lapack) \ - $(use_with !minimal recommended-packages) \ - $(use_with png libpng) \ - $(use_with readline) \ - $(use_with tiff libtiff) \ - $(use_with tk tcltk) \ - $(use_with tk tk-config "${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 - emake AR="$(tc-getAR)" - emake -C src/nmath/standalone shared AR="$(tc-getAR)" - use doc && emake info pdf -} - -src_install() { - default - emake -C src/nmath/standalone DESTDIR="${D}" install - - if use doc; then - emake DESTDIR="${D}" install-info install-pdf - dosym ../manual /usr/share/doc/${PF}/html/manual - fi - - 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 - # objects (all modules) get an incorrect install_name. Fixing the build - # system here is not really trivial. - if [[ ${CHOST} == *-darwin* ]] ; then - local mod - pushd "${ED}"/usr/$(get_libdir)/R >/dev/null || 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 || die - fi - - # Users are encouraged to access some of the the R documentation - # interactively, through functions like "contributors()" that - # tries to open the "AUTHORS" file. Other files can be accessed - # by name with RShowDoc(), and the documentation for e.g. license() - # and RShowDoc() suggests a few of these names. Here we try to - # collect as many names as possible that a user might actually - # try to view through R, because if we don't decompress them, - # then R doesn't know what to do with 'em. Bug #556706. - local INTERACTIVE_DOCS=( - AUTHORS - COPYING - FAQ - NEWS - THANKS - ) - - # Other data sources that are shipped as "documentation," but which - # need to be accessible via their original unmolested filenames. - local INTERACTIVE_DATA=( - BioC_mirrors.csv - CRAN_mirrors.csv - KEYWORDS.db - NEWS.rds - ) - - 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() { - if use java; then - einfo "Re-initializing java paths for ${P}" - R CMD javareconf - fi -} diff --git a/dev-lang/R/R-4.3.2-r1.ebuild b/dev-lang/R/R-4.4.3.ebuild index 24fefe89c155..8be7dc789db0 100644 --- a/dev-lang/R/R-4.3.2-r1.ebuild +++ b/dev-lang/R/R-4.4.3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -18,7 +18,7 @@ SRC_URI=" LICENSE="|| ( GPL-2 GPL-3 ) LGPL-2.1" SLOT="0" KEYWORDS="~amd64 ~arm64 ~hppa ~loong ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" -IUSE="cairo doc icu java jpeg lapack lto minimal nls openmp perl png prefix profile readline test tiff tk X" +IUSE="cairo doc icu java jpeg +libdeflate lto minimal nls openmp perl png prefix profile readline test tiff tk X" REQUIRED_USE=" png? ( || ( cairo X ) ) @@ -37,23 +37,26 @@ DEPEND=" dev-libs/libpcre2:= >=dev-libs/tre-0.8.0_p20210321[approx] net-misc/curl - virtual/blas sys-libs/zlib[minizip] sys-apps/coreutils + sys-libs/timezone-data + virtual/blas + virtual/lapack cairo? ( x11-libs/cairo:=[X=] x11-libs/pango:= ) icu? ( dev-libs/icu:= ) jpeg? ( media-libs/libjpeg-turbo:= ) - kernel_linux? ( net-libs/libtirpc ) - lapack? ( virtual/lapack ) + kernel_linux? ( net-libs/libtirpc:= ) + libdeflate? ( app-arch/libdeflate ) perl? ( dev-lang/perl ) png? ( media-libs/libpng:= ) readline? ( sys-libs/readline:= ) tiff? ( media-libs/tiff:= ) tk? ( dev-lang/tk:= ) X? ( + x11-libs/libX11 x11-libs/libXmu x11-libs/libXt )" @@ -108,9 +111,6 @@ src_prepare() { sed -e 's:\.\./manual/:manual/:g' \ -i $(grep -Flr ../manual/ doc) || die "sed for HTML links failed" - use lapack && - export LAPACK_LIBS="$($(tc-getPKG_CONFIG) --libs lapack)" - use perl && export PERL5LIB="${S}/share/perl:${PERL5LIB:+:}${PERL5LIB}" @@ -137,6 +137,9 @@ src_prepare() { } src_configure() { + # bug #944066 (try reomving after 4.4.2) + append-cflags -std=gnu17 + filter-ldflags -Wl,-Bdirect -Bdirect econf \ @@ -145,9 +148,11 @@ src_configure() { --disable-R-framework \ --disable-R-static-lib \ --with-blas="$($(tc-getPKG_CONFIG) --libs blas)" \ + --with-lapack="$($(tc-getPKG_CONFIG) --libs lapack)" \ rdocdir="${EPREFIX}/usr/share/doc/${PF}" \ --with-system-tre \ --without-aqua \ + --without-newAccelerate \ $(use_enable java) \ $(use_enable lto lto R) \ $(use_enable nls) \ @@ -157,7 +162,7 @@ src_configure() { $(use_with cairo) \ $(use_with icu ICU) \ $(use_with jpeg jpeglib) \ - $(use_with lapack) \ + $(use_with libdeflate libdeflate-compression) \ $(use_with !minimal recommended-packages) \ $(use_with png libpng) \ $(use_with readline) \ diff --git a/dev-lang/algol68g/Manifest b/dev-lang/algol68g/Manifest index 3651d034ea96..5cadb700f23c 100644 --- a/dev-lang/algol68g/Manifest +++ b/dev-lang/algol68g/Manifest @@ -1,8 +1,4 @@ AUX algol68g-3.3.21-configure-implicit.patch 236 BLAKE2B e59d1e65f6d1b83ac1bb43f00614d44ca13b0b2ad77fbc2da944b163487f679302e73d23bbe7d4adeb9a3168466bf38e53a38a3001b2e64725682f7e0edbbeac SHA512 11d9d38d98e210a2b20ef464ae365b4a1eab72befdb5daae15ad031cfda0d65f5d7134fe2c9c26d2929c172ebfef3acafd9072977c68a383784f2ccdefc41ff1 -DIST algol68g-3.5.10.tar.gz 662366 BLAKE2B 74adac724abb49dd2a418687b428d945741c9ec3ae47f742f9f2baafcbc9545226ceb18963a2fd65c8dd1496ab6ae935ef398cadfb119a58c89785c7d905301c SHA512 d0103e0c5bcb1723ac8a4d4550d1257c352feeba6f8e9717f6119df31f51769ff983198955dd84fb14fb114cdfd93f8c258f4a7e19d17f2766f9fc0f8940e83b -DIST algol68g-3.5.11.tar.gz 662345 BLAKE2B 67eca74972539071eda7e8dc5d3667b64d2ff6b7f37f03db4b28d5f38b968461babf6e8e4fb770c63f7faab219bf38275ba09dcc9b931863a77d3cdf3113caa5 SHA512 63c539b4003b893166f70fa59787c6c899402e0d2387bc1a8c206097011d6e38130f1273f1a0344dcbf67bd0a87594ab654ae00756ae7f0b1903f239e783f5ce DIST algol68g-3.5.12.tar.gz 662372 BLAKE2B 52d855b4dce6ddefcba5013a0c66a84c4c86109b5cf63cb806f26fef1a165f4383bfd29bfed37460e332874eb1754900a3b6ad8b816970410911b67a5573145c SHA512 f6dcde81376b8150c763c449fa9ad5a58607e5f9d1d5a85f2095cd66433b686e18c6c4a6ab18b2c9144ecc98bf677abb33113962861b8e3b6c7efccba9f4b001 -EBUILD algol68g-3.5.10.ebuild 946 BLAKE2B 367040f0b742d6374bc889448698f008a5b6aedebd5520371386e3f1db6ba4ac11d813cecfa979194cf59eb7a029a5051242adb50326793d3352a9fbf4241e19 SHA512 8f27f1e5dca69e89e9c5ebdd8f09c6db13f7a241d3dd8862ac7f59964265f77367b52d7b3f86a8b09fc55fb2354dbc4728f421b50ab1873c5279c67444b0e202 -EBUILD algol68g-3.5.11.ebuild 947 BLAKE2B 93ee95aa832af217345027acefc5ea9491e71ff2cde134321fb090b51fb754d6c693623ac11d4983d47f3cfc69e74f805e66a7137d7522f5e16701aeee906626 SHA512 d0882449b545d799ea5bc8b5939b68ec5bb1c0aec04dd84111dbb190d76ae554e73c40689b76a0e58b60e3b5d534fd5fc88f85ec6e69e5fb31133119ba64e7a4 -EBUILD algol68g-3.5.12.ebuild 947 BLAKE2B 93ee95aa832af217345027acefc5ea9491e71ff2cde134321fb090b51fb754d6c693623ac11d4983d47f3cfc69e74f805e66a7137d7522f5e16701aeee906626 SHA512 d0882449b545d799ea5bc8b5939b68ec5bb1c0aec04dd84111dbb190d76ae554e73c40689b76a0e58b60e3b5d534fd5fc88f85ec6e69e5fb31133119ba64e7a4 +EBUILD algol68g-3.5.12.ebuild 946 BLAKE2B 367040f0b742d6374bc889448698f008a5b6aedebd5520371386e3f1db6ba4ac11d813cecfa979194cf59eb7a029a5051242adb50326793d3352a9fbf4241e19 SHA512 8f27f1e5dca69e89e9c5ebdd8f09c6db13f7a241d3dd8862ac7f59964265f77367b52d7b3f86a8b09fc55fb2354dbc4728f421b50ab1873c5279c67444b0e202 MISC metadata.xml 665 BLAKE2B 2b9b283f86666d64dd77164c5afb0d76403c63f9f0dfac3170eb2ade95bcc382b09d14248cb720edf7c1b055e78ca5ca0017b6784caf4381d970a011301058bd SHA512 b3171d505f9f9e4dcdd5b5a0c6d302849fa017538402832dd3db205c48c68a39867089aae4d1f3c158a45bfc170b21f83789cba16511f251d70300020e102b0a diff --git a/dev-lang/algol68g/algol68g-3.5.10.ebuild b/dev-lang/algol68g/algol68g-3.5.10.ebuild deleted file mode 100644 index baaebe185afe..000000000000 --- a/dev-lang/algol68g/algol68g-3.5.10.ebuild +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DESCRIPTION="Algol 68 Genie compiler-interpreter" -HOMEPAGE="https://jmvdveer.home.xs4all.nl/en.algol-68-genie.html" -SRC_URI="https://jmvdveer.home.xs4all.nl/${P}.tar.gz" - -LICENSE="GPL-3+" -SLOT="0" -KEYWORDS="amd64 ~x86" -IUSE="+curl +gsl +mpfr +ncurses plotutils postgres +readline" - -RDEPEND=" - curl? ( net-misc/curl ) - gsl? ( sci-libs/gsl:= ) - mpfr? ( dev-libs/mpfr:= ) - plotutils? ( media-libs/plotutils ) - postgres? ( dev-db/postgresql:* ) - readline? ( sys-libs/readline:= ) -" -DEPEND=" - ${RDEPEND} -" - -PATCHES=( "${FILESDIR}/${PN}-3.3.21-configure-implicit.patch" ) - -src_configure() { - local -a myconf=( - $(use_enable curl) - $(use_enable gsl) - $(use_enable mpfr) - $(use_enable ncurses curses) - $(use_enable plotutils) - $(use_enable postgres postgresql) - $(use_enable readline) - $(use_with ncurses) - ) - econf "${myconf[@]}" -} diff --git a/dev-lang/algol68g/algol68g-3.5.11.ebuild b/dev-lang/algol68g/algol68g-3.5.11.ebuild deleted file mode 100644 index 703e6c6c442f..000000000000 --- a/dev-lang/algol68g/algol68g-3.5.11.ebuild +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DESCRIPTION="Algol 68 Genie compiler-interpreter" -HOMEPAGE="https://jmvdveer.home.xs4all.nl/en.algol-68-genie.html" -SRC_URI="https://jmvdveer.home.xs4all.nl/${P}.tar.gz" - -LICENSE="GPL-3+" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="+curl +gsl +mpfr +ncurses plotutils postgres +readline" - -RDEPEND=" - curl? ( net-misc/curl ) - gsl? ( sci-libs/gsl:= ) - mpfr? ( dev-libs/mpfr:= ) - plotutils? ( media-libs/plotutils ) - postgres? ( dev-db/postgresql:* ) - readline? ( sys-libs/readline:= ) -" -DEPEND=" - ${RDEPEND} -" - -PATCHES=( "${FILESDIR}/${PN}-3.3.21-configure-implicit.patch" ) - -src_configure() { - local -a myconf=( - $(use_enable curl) - $(use_enable gsl) - $(use_enable mpfr) - $(use_enable ncurses curses) - $(use_enable plotutils) - $(use_enable postgres postgresql) - $(use_enable readline) - $(use_with ncurses) - ) - econf "${myconf[@]}" -} diff --git a/dev-lang/algol68g/algol68g-3.5.12.ebuild b/dev-lang/algol68g/algol68g-3.5.12.ebuild index 703e6c6c442f..baaebe185afe 100644 --- a/dev-lang/algol68g/algol68g-3.5.12.ebuild +++ b/dev-lang/algol68g/algol68g-3.5.12.ebuild @@ -9,7 +9,7 @@ SRC_URI="https://jmvdveer.home.xs4all.nl/${P}.tar.gz" LICENSE="GPL-3+" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="amd64 ~x86" IUSE="+curl +gsl +mpfr +ncurses plotutils postgres +readline" RDEPEND=" diff --git a/dev-lang/ammonite-repl-bin/Manifest b/dev-lang/ammonite-repl-bin/Manifest index 212f461c7217..b30cbe91e496 100644 --- a/dev-lang/ammonite-repl-bin/Manifest +++ b/dev-lang/ammonite-repl-bin/Manifest @@ -2,14 +2,9 @@ DIST ammonite-repl-bin-2.5.11-2.13 57685676 BLAKE2B f9f9ad1840303c09eb918a85274d DIST ammonite-repl-bin-2.5.11-3.0 62566811 BLAKE2B face638e4b8ea67f8d2791c7e10360866baea3ce271a048cea3ed4daf0e8f1af64248fe1ec34c8106c31af94ee29b100311c947e45106505bc1652ad073bed22 SHA512 a3cb044c9c170e0f0616af9e404db5389b79604fe11bb77d7a3ef0db34e05610460df5036a256826d2ae424fee307b969c6b7d02e22f420122cb362a906907a9 DIST ammonite-repl-bin-2.5.11-3.1 63649297 BLAKE2B 4757f908b439bb2e3a69641e866d0283aef2860784bf38ae8a554b64567f96a87d5998b9629d728360ae0ee6fe6bc803d19d6ce76da563e624947dcb28aa86f0 SHA512 b3eee4852f4788b093654d6bf371393cbfd0d38bf35e70cf3e9a3ff6f75f4b58a6c2e4ca29ef1303ec698c82aece58680f7b4862b2b1d9a692cb840eb45f9a78 DIST ammonite-repl-bin-2.5.11-3.2 64675864 BLAKE2B c9e3dce79af79e75afa9085b039b8ef6e1ef78f9c25eeeaa09a430df90c474681a1742ef723c2e4c31ef0dbad4304d1a3c3249fa77fe5c27a23da04fae02eca5 SHA512 dbf4bcd584df1b223f55b5647edff976f4f916c03528e19ad9240ccecf30d602dc3b73a03b9c08fc773cc28737a27fe5f18507b6e3f77f950c651eaf9ace16dc -DIST ammonite-repl-bin-2.5.9-2.13 56786192 BLAKE2B e63264b1735132cdb22626d35a0a8c484a26676618cf2369a56bc46d789009b27fd68b475b363959bbfd937388918a310c61ed5188885fdb18d6c7c011f21ec4 SHA512 5ba118d5ff96bf9a50ddff3420d47dc14ab14a4f53ef715c63ab002e5487d698871afbea0392e7b8c036c48a33833faa2eecc86919a1b42bb2dfd6b70fb44bb9 -DIST ammonite-repl-bin-2.5.9-3.0 61696887 BLAKE2B fc7afabf3fc6129ea8da03cfb03da7cee10889ed4ceffe08e965b6f27649af6daf1db5e6bfb12871ac2fd5fe5b74cc27e1e467c25f3b5a4a7b9662943c4ef7fa SHA512 b33aebc31b5b54739389212533780b99145aaf74905532c1de55ee8e79dc1e12e217968f6f0a5f39fb6ffeb87f70792dcef98c0f75f3fe81a96f2c4adbc9f066 -DIST ammonite-repl-bin-2.5.9-3.1 62779382 BLAKE2B 0136efb63727ba47ddac62671a510b0742a1b3f888ced421518b052fd95dabc15cf20626e0b4692a936df468cc6c96b16a486ea847973ed9ab5d7c8dce52481c SHA512 3e422d9402a4a8a71c77b4c8bdcc980f19274938a122a57ce712709961fd3d6c7417b3e85fff414863c84f412c183b7a5bd92882348161d55be8c48a98ea2e3b -DIST ammonite-repl-bin-2.5.9-3.2 63805907 BLAKE2B cc9329f0f7e91675838b2735a38dda16e934ec3c7c3be827af4ae56d7f67e632e6a26866cffa6f4bf4e08b955fe608dbfed540f8ea34901cdab6acef41ee2e8e SHA512 f57fa352fc4d074e5f482c1b4e0593154943e81e722d0b5f9c4a9059c07bf2774d5c03bca192e5d66cd6c078c7978d323059606d41268f9f56903550fce9e2f8 DIST ammonite-repl-bin-3.0.0-2.13 52789295 BLAKE2B f743c6214daefeb6b65f06e5dfd23c69a3dc91b5fe0af954e290866bef764c7bed7822f757017dc09a38239683d27ec9f6a35882ce20766a11e80a565134e528 SHA512 8f67073db56f88895902ff86fb902af06d017a4c0d75ad3435d97b66480baf8961b1b041b76ed19b8e5f87aac4604a2de7aa97b44f3261fd92e3c5928458a8f4 DIST ammonite-repl-bin-3.0.0-3.3 58494899 BLAKE2B bab9c523dc9fe5621ee67a50685fb4d1b6995f2b7a8a5bd5e25cff6fe55e8763d48f62144b24d73213c41ce6c2967144488dbbed33cdf62a8922ee6c191794b8 SHA512 2bb8e3baa20f545babb6b570c203329d7df5dcdae030d1fbc439721376a45643c9bdd5323dbc67ee98592ed1fb88bb0853eae9f558919ca10374e57e2ca62bc4 DIST ammonite-repl-bin-3.0.0-3.5 59873934 BLAKE2B 80e802090b6185f19fd9073b54379a7fdbe633101594a59ab766b08ced98c5db0d9f8b34d685ed4d9e32cc62b8f4dc272208fd95b5fcd2f0b31666de6ae0de0d SHA512 4ffe5a16922a17228164a8ddd68ad06c2f0d20bd0cb69fa40799bca61c57fbf5d0f484cc2a2b27929666590617bffb5654ae6b7f42d07ebee89d840b645b80ee EBUILD ammonite-repl-bin-2.5.11.ebuild 1184 BLAKE2B 46def29c850aa604c2d459dee32e7bd3ed7bb38bee8e3345fe184dcf44f41ea2c4e660119e1fe5fed43ef239292ec976f44266244fa7592b19845868b8b58a7d SHA512 9de63ce3f6ede7b217d80632f651d2c0a58aa01d84aaa73bc7f558449957e95e0a55d0ef23f28aec03b0299589e2ecf940e2edd04dd637760b87a0a4cd76ea9f -EBUILD ammonite-repl-bin-2.5.9.ebuild 1177 BLAKE2B b290ddddc962753fc72893ec458b270b2d286a92e6c5e7787b32bc0e1bf6ad75b12336c980abe13f686fdd8aff26d5b89c2a4c32ac7c6a746871ad49347dfb34 SHA512 c366beaeff9e51e69e2fa720d9a44426eb5099547437fc75448ca08f6eec4de388d402e5d85dccb4f72f0233d77db68035425dc27b606fea230a07f47ffbccec -EBUILD ammonite-repl-bin-3.0.0.ebuild 1135 BLAKE2B 13b04b76173e66a1853308bdbf84cc0fe1856346d6ad6bfd1a1cb057d0a3ce4e560946407d4dc1bca317e2a1aab35d0b6c26cbc2cb53f5e8a2a23b047bd56ad8 SHA512 eec34bc17ac24720eb840e101a07e173f6543947466bea93863ef9d976c8f058d9709c00027e639b7a0a71a8780bd4cb5fef499cadf2a5471c812efee55bbab5 +EBUILD ammonite-repl-bin-3.0.0.ebuild 1134 BLAKE2B ab38baa0558c24b95b1c15cdff45e36803cd069fbf2dffc8d6e45f8a5690ab7d1f71e44fe7b83adb6436b8778811a43f1a2c248608c643d9d719485c0470e57b SHA512 166c4517b512fd2fcbf2cbe0b11ae464ccfc876386fb2c77870fd02e14cae88f77127631755ffbd6cefc1c3382ff7790495f78f131b0fd17109f1055a74e8159 MISC metadata.xml 996 BLAKE2B 73e744123c74fcd6a9878b4f49cb4000265d6718e92e7644967b1195d5a7b7b520f016dfbad8e420e5a6620c23041b3618d7ae1a8ed48a6170f27ce23f191176 SHA512 0cae75b802af4fbbaf22850186308eb47e07fd456ef8056722315a033aadbd381cf42bbfcd672eafc7b37061bdb70254a08ab16b26d17a0fc13c429a16aea9de diff --git a/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.9.ebuild b/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.9.ebuild deleted file mode 100644 index 0d90057e1403..000000000000 --- a/dev-lang/ammonite-repl-bin/ammonite-repl-bin-2.5.9.ebuild +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DESCRIPTION="Scala language-based scripting and REPL" -HOMEPAGE="https://ammonite.io/" - -SRC_URI=" - scala2-13? ( https://github.com/com-lihaoyi/Ammonite/releases/download/${PV}/2.13-${PV} -> ${P}-2.13 ) - scala3-0? ( https://github.com/com-lihaoyi/Ammonite/releases/download/${PV}/3.0-${PV} -> ${P}-3.0 ) - scala3-1? ( https://github.com/com-lihaoyi/Ammonite/releases/download/${PV}/3.1-${PV} -> ${P}-3.1 ) - scala3-2? ( https://github.com/com-lihaoyi/Ammonite/releases/download/${PV}/3.2-${PV} -> ${P}-3.2 ) -" - -KEYWORDS="amd64 ~x86" -LICENSE="MIT" -SLOT="0" - -S="${WORKDIR}" - -RDEPEND=">=virtual/jre-1.8:*" - -IUSE="+scala2-13 scala3-0 scala3-1 +scala3-2" - -src_unpack() { - : -} - -src_install() { - local last_amm - local scala_versions=(2.13 3.{0,1,2}) - local scala_version - for scala_version in ${scala_versions[@]}; do - local use_flag=scala${scala_version/./-} - - if ! use ${use_flag}; then - continue - fi - - local amm_bin - amm_bin="amm-${scala_version}" - - newbin "${DISTDIR}/${P}-${scala_version}" ${amm_bin} - last_amm=${amm_bin} - done - - dosym $last_amm /usr/bin/amm -} diff --git a/dev-lang/ammonite-repl-bin/ammonite-repl-bin-3.0.0.ebuild b/dev-lang/ammonite-repl-bin/ammonite-repl-bin-3.0.0.ebuild index 46dbf882faac..100be5f72252 100644 --- a/dev-lang/ammonite-repl-bin/ammonite-repl-bin-3.0.0.ebuild +++ b/dev-lang/ammonite-repl-bin/ammonite-repl-bin-3.0.0.ebuild @@ -18,7 +18,7 @@ S="${WORKDIR}" LICENSE="MIT" SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86" +KEYWORDS="amd64 ~arm64 ~x86" RDEPEND=">=virtual/jre-1.8:*" diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest index a107aa8cf01a..21fd3717f610 100644 --- a/dev-lang/crystal/Manifest +++ b/dev-lang/crystal/Manifest @@ -1,14 +1,10 @@ AUX crystal-0.27.0-gentoo-tests-long-unix-2.patch 469 BLAKE2B 66bcc1d0dd9582cac4ba89a2ccc2c7a2ac3ff4994cd687191470f2d481f9a6e3a91aaaf705f92f7600118a9cda015a9554056520502df7ae6462e111665c7330 SHA512 d840ac343ef566e404dc84e908bead5a020dfd88b8c0432f17bceea8d710d435626dc72b4be6622dbcd683a149bca16e781320cf74fc3f2598f84d169c6f7faa AUX crystal-0.27.0-gentoo-tests-long-unix.patch 3317 BLAKE2B df1040abdb587ac3fffb8129d4f1bafc492e38ad5dcfdea5cfbf4426849b099c4d94dac61c93ae7fcae46b60dea1809f52ad373efcd89796a3c1f119614063c1 SHA512 a9ed819a864465e062b4d6a568f14fbb8adc1db01071c79164dede8b2b8d83e07b785cd8196826097de5119e0bdc7d6e194cf4e10cc677bd2bdf158d124c2ad2 AUX crystal-1.15.0-remove-enviroment-clearing-tests.patch 936 BLAKE2B e9d3f2384c79eb17a52b71636147ac97aada9a7ddccc619fd0a5ccd2c89d3e7f135d9526931557f4bd15eef5232e0cb469715568d8d07b7e5530947720f67921 SHA512 e0e48d65098d07511238b4be0c1daa8c8d9aec42148a5115526431f1f507425160324e98d2ca647fb135b3a0b534cf0b376ae7563bd6c9046ea1264b860f44ad -AUX crystal-1.7.2-extra-spec-flags.patch 1080 BLAKE2B 3054e38d4e7d114f1b0a08b367f9a5b366bbe269c75b9195abf9dc39231b32428a108c4254abd0bdb29b2ac6a94d6d256eccc68ca69f80a273cd17e0c0115fc7 SHA512 3c3fd6a42b291a42f76ec76101d669011eb02d4d17f35c8ad31c5a49aa3655a2315999e2401af7f3bc26445f74f432430a44b021846238d345d9c14b1009fdc5 -DIST crystal-1.14.0-1-linux-x86_64.tar.gz 51712092 BLAKE2B 25281d0488ce84b278005e918fd7ae893ec690d50b01c65f06370e24d3ef6548a3ff823c0ce1903fc3d6d0c4108ab8c72365ce51f1ebb64519e0076cc5df9dff SHA512 ff7839166ebe0217149d0185c27fa0d48cd7322ddca3492e3bbbfaf505696994ce04a86eb1f51f6c0633892ebc4b82bac53ec9cb26c0a9c588c5002a984f0038 -DIST crystal-1.14.0.tar.gz 3726474 BLAKE2B 97efe777790b4d2330f6891bbe91a709fb0aacf7989a60b70c3d22c2735e83b9315899ad529f4605eed7dc4b4eed14f4d51ccd8a47dfc55057f15acd62c8c10d SHA512 561e14212b8f3e2841739408870e70a79cbc11097070760e75e4013a030082db050f6615453da54adceae3f0de12af43498f33fab9b7f4ecfa6860d582dec095 -DIST crystal-1.14.1-3-linux-x86_64.tar.gz 51717984 BLAKE2B da2f977d8a81abb6085ea7d43dff4f3f9120d7e54bf374157e742e8516ff067db95b8f8578d31c6f57ac9116553a945b9e78a9ceefbc66157f321cfab29b96d7 SHA512 9b2fb8cab095041938f5088f9b136cda66b978e3f5c1245cff2d3966faaf18b5b899461cef60723c860afeb7ec5710880cc675d483a92db7b238b286bf9ad69d -DIST crystal-1.14.1.tar.gz 3726868 BLAKE2B add2e478c3dbb5f8fce77c8dfb781858a1074e411f6899997052fd5f037fc6dcb86dd4f2aba432301912cac645dfaad4e916112c4d47c8247a9ea681270f945d SHA512 f16ba4e2b41ee9c1a4ef98bd026d843e7c8f831c592a919d79b3addea4647eea0eefefc8e964e1e187b8bfb0aed0829e2f5f5b120e3116a359616c0c043f9d3c DIST crystal-1.15.0-1-linux-x86_64.tar.gz 51497623 BLAKE2B 03059b38b1df3a035c82472f0691c3b37d9b82ae90e0cae922a36c069750e5d00444dc5759fd5cefee294fbde20b17aac233323067256caf161ef542d27e51d5 SHA512 ee0a85d98fd1170c97380184bd845cafd426765bf633d0d26885e970a5e15241d76a93a11c1a207ddedef9a1d76978e5f32be17b074cd3c03c3f5cc5b7e064b9 DIST crystal-1.15.0.gh.tar.gz 3812860 BLAKE2B a6b52007d6a4975d2011104f65cec932300bb6f84f497bfda138d987e844cb025d4690b0f74335aff42295c5d355ac73371cab86db87ca9819c1885d98f76bd8 SHA512 ea07de4b9c6c46e96f05d816d0504f8b0206e89fe7e4236038dc3b0875e52e89c711cc798b8fc30f66b02dd48cec70e0ea76160f14447577761411a41f1b28fa -EBUILD crystal-1.14.0.ebuild 2632 BLAKE2B 6284e97c98096fd14101a4308d2db3eb265d26241f181658ee24615622ef3686c4a79b47d58536b127c035dece0e63f1ae35f6605af7b73f362a166307810f80 SHA512 e27bb51f2dd874cb8633ed0ad594aaa512676d841a9d1fd991169a54595c73ee4ff40f665df0b5d4a012a43f85ad5a90480e59b547ae42a77a204be545716579 -EBUILD crystal-1.14.1.ebuild 2633 BLAKE2B 1945457158a0d549f5be113342d47b3919af5bd80030f8ac3b4a0279a1054c11b440aa130e616eb6fde27b9217dc453623d2b1e32f2e0abe0997a15564dd3a6f SHA512 61d9dba45711ccbadf279d53923c6c543d01ca6d2d3c5fa13cf105d16ab9d67e64a44fc9f609106eac0b470dd0ff263ad8eff1b90f30e4de2e7d354ead4ceb20 -EBUILD crystal-1.15.0-r1.ebuild 2785 BLAKE2B cf0495de84b1af4d292bd05c153db8a1412dcfed2a4bef00abd4c6b984d368b822f162c09ab0177f0b070e39aae2cbfc3582630c51f6f7bfe4a9c6efa83b406e SHA512 5333b4f5456ab7a58c3df1669627dae50e9a82ab71c77ddf564fba73e3d182c29721a7ac624b3e1ab0584f79097d6ca37f0c313b420d29507aedafb4c1de7b94 +DIST crystal-1.15.1-1-linux-x86_64.tar.gz 51499223 BLAKE2B 11f94a67c97215f410c4a5987abaaa34d1264cdb4340a34223843e33152697125de05acc1a47604bb85456e1fd507fc854f38498adcc7b19492cb87c160184db SHA512 94faf3859212f0b9b80b4f2ce46bfa8a90cbf9d2c71f0127453baeff6ca8d1d76cde36d9af2c7bb6019e809de08e8eafdc39cc2621695d05c612d2fc8765f303 +DIST crystal-1.15.1.gh.tar.gz 3814922 BLAKE2B 0667e93e3c2b7b80d44347377303195161bfee1709fa64e78fd978cc3409813836542642ac04054d94bf280828a29e592af6db8fdbd4a7bf8f04e8ef62ca209e SHA512 3c552bf4acb06a5e0e3adae2a22cc42c8a003b91a3c9f2ce4cc80d790f5981e94178ad0667504f4d709dfa3f1bc9505ef8ae42b8eb79489f4d1396bd9fc456ff +EBUILD crystal-1.15.0-r1.ebuild 2784 BLAKE2B cff25e85a08daf3126d27420128d048e82f56086f7777d678ced3a4c208f654be13d4c88722e115078fd12764b6d467faeefa2eafea26b44e3068f5d4a8f2875 SHA512 d8cb55ed0837398f12b336175686d889682f83271819d8b74602349ce63d4f5427cac3a244ba01c14b9034122a8ce5905066889de0742f6672fd1e0c2cb2703c +EBUILD crystal-1.15.1.ebuild 2785 BLAKE2B cf0495de84b1af4d292bd05c153db8a1412dcfed2a4bef00abd4c6b984d368b822f162c09ab0177f0b070e39aae2cbfc3582630c51f6f7bfe4a9c6efa83b406e SHA512 5333b4f5456ab7a58c3df1669627dae50e9a82ab71c77ddf564fba73e3d182c29721a7ac624b3e1ab0584f79097d6ca37f0c313b420d29507aedafb4c1de7b94 MISC metadata.xml 762 BLAKE2B 591f38c882318a6564501cc61abe6222264b65adeaffaf3b23d959ee86b83bae33eaf99029229705f92070fa539fd6d63d8242afc38475904483a9a0b997effd SHA512 ea223d568a3c336a43b183efc61bd1f1a9d1e5e0e8d963275e0b23ee879551bc7d8aae797b1e2edba49d119ad306692599eb535c5d164ebee0c6721dfeab78dc diff --git a/dev-lang/crystal/crystal-1.14.0.ebuild b/dev-lang/crystal/crystal-1.14.0.ebuild deleted file mode 100644 index 65646c0e7128..000000000000 --- a/dev-lang/crystal/crystal-1.14.0.ebuild +++ /dev/null @@ -1,122 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -BV="${PV}-1" -BV_AMD64="${BV}-linux-x86_64" - -LLVM_COMPAT=( {16..18} ) - -inherit bash-completion-r1 llvm-r1 multiprocessing toolchain-funcs - -DESCRIPTION="The Crystal Programming Language" -HOMEPAGE="https://crystal-lang.org/ - https://github.com/crystal-lang/crystal/" -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 - ) -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64" -IUSE="doc debug llvm-libunwind" - -# Upstream test suite not reliable -RESTRICT="test" - -DEPEND=" - dev-libs/boehm-gc:=[threads] - dev-libs/gmp:= - dev-libs/libatomic_ops:= - dev-libs/libevent:= - dev-libs/libpcre2:=[unicode] - dev-libs/pcl:= - $(llvm_gen_dep ' - llvm-core/llvm:${LLVM_SLOT}= - ') - llvm-libunwind? ( - llvm-runtimes/libunwind:= - ) - !llvm-libunwind? ( - sys-libs/libunwind:= - ) -" -RDEPEND=" - ${DEPEND} - dev-libs/libxml2 - dev-libs/libyaml -" - -PATCHES=( - "${FILESDIR}/${PN}-1.7.2-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 - - # crystal uses 'LLVM_TARGETS' to override default list of targets - unset LLVM_TARGETS - - MY_EMAKE_COMMON_ARGS=( - PATH="${bootstrap_path}:${PATH}" - - CRYSTAL_CONFIG_VERSION="${PV}" - CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal" - - $(usex debug "" release=1) - progress=true - stats=1 - threads="$(makeopts_jobs)" - verbose=1 - - AR="$(tc-getAR)" - CC="$(tc-getCC)" - CXX="$(tc-getCXX)" - LLVM_CONFIG="$(get_llvm_prefix -d)/bin/llvm-config" - ) -} - -src_compile() { - emake "${MY_EMAKE_COMMON_ARGS[@]}" - - use doc && emake docs "${MY_EMAKE_COMMON_ARGS[@]}" -} - -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/. - - exeinto /usr/bin - doexe .build/crystal - - insinto /usr/share/zsh/site-functions - newins etc/completion.zsh _crystal - - dodoc -r samples - doman "man/${PN}.1" - newbashcomp etc/completion.bash "${PN}" - - if use doc ; then - docinto api - dodoc -r docs/. - fi -} diff --git a/dev-lang/crystal/crystal-1.15.0-r1.ebuild b/dev-lang/crystal/crystal-1.15.0-r1.ebuild index 573dc999fa39..6b61638ca307 100644 --- a/dev-lang/crystal/crystal-1.15.0-r1.ebuild +++ b/dev-lang/crystal/crystal-1.15.0-r1.ebuild @@ -23,7 +23,7 @@ SRC_URI=" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~amd64" +KEYWORDS="amd64" IUSE="doc debug llvm-libunwind" RESTRICT="test" # Upstream test suite not reliable. diff --git a/dev-lang/crystal/crystal-1.14.1.ebuild b/dev-lang/crystal/crystal-1.15.1.ebuild index 3d3cb3b00293..573dc999fa39 100644 --- a/dev-lang/crystal/crystal-1.14.1.ebuild +++ b/dev-lang/crystal/crystal-1.15.1.ebuild @@ -3,19 +3,19 @@ EAPI=8 -BV="${PV}-3" +BV="${PV}-1" BV_AMD64="${BV}-linux-x86_64" LLVM_COMPAT=( {18..19} ) -inherit bash-completion-r1 llvm-r1 multiprocessing toolchain-funcs +inherit llvm-r1 multiprocessing shell-completion toolchain-funcs DESCRIPTION="The Crystal Programming Language" HOMEPAGE="https://crystal-lang.org/ https://github.com/crystal-lang/crystal/" SRC_URI=" https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz - -> ${P}.tar.gz + -> ${P}.gh.tar.gz amd64? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_AMD64}.tar.gz ) @@ -25,7 +25,7 @@ LICENSE="Apache-2.0" SLOT="0" KEYWORDS="~amd64" IUSE="doc debug llvm-libunwind" -RESTRICT="test" # Upstream test suite not reliable +RESTRICT="test" # Upstream test suite not reliable. DEPEND=" dev-libs/boehm-gc:=[threads] @@ -51,11 +51,20 @@ RDEPEND=" " PATCHES=( - "${FILESDIR}/${PN}-1.7.2-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" + "${FILESDIR}/${PN}-1.15.0-remove-enviroment-clearing-tests.patch" ) +src_prepare() { + default + + # Link against system boehm-gc instead of upstream prebuilt static library + # bug #929123, #929989 and #931100 + # https://github.com/crystal-lang/crystal/issues/12035#issuecomment-2522606612 + rm "${WORKDIR}/crystal-${BV}"/lib/crystal/libgc.a || die +} + src_configure() { local bootstrap_path="${WORKDIR}/${PN}-${BV}/bin" if [[ ! -d "${bootstrap_path}" ]] ; then @@ -77,6 +86,7 @@ src_configure() { stats=1 threads="$(makeopts_jobs)" verbose=1 + check_lld= # disable opportunistic lld AR="$(tc-getAR)" CC="$(tc-getCC)" @@ -92,11 +102,7 @@ src_compile() { } 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}" + emake std_spec "${MY_EMAKE_COMMON_ARGS[@]}" } src_install() { @@ -106,8 +112,8 @@ src_install() { exeinto /usr/bin doexe .build/crystal - insinto /usr/share/zsh/site-functions - newins etc/completion.zsh _crystal + newzshcomp etc/completion.zsh _crystal + newfishcomp etc/completion.fish crystal.fish dodoc -r samples doman "man/${PN}.1" diff --git a/dev-lang/crystal/files/crystal-1.7.2-extra-spec-flags.patch b/dev-lang/crystal/files/crystal-1.7.2-extra-spec-flags.patch deleted file mode 100644 index cc9e21abcbd6..000000000000 --- a/dev-lang/crystal/files/crystal-1.7.2-extra-spec-flags.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/Makefile -+++ b/Makefile -@@ -33,7 +33,7 @@ SOURCES := $(shell find src -name '*.cr') - SPEC_SOURCES := $(shell find spec -name '*.cr') - override FLAGS += -D strict_multi_assign -D preview_overload_order $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(static),--static )$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )$(if $(target),--cross-compile --target $(target) )$(if $(interpreter),,-Dwithout_interpreter ) - SPEC_WARNINGS_OFF := --exclude-warnings spec/std --exclude-warnings spec/compiler --exclude-warnings spec/primitives --SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )$(if $(order),--order=$(order) ) -+SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )$(if $(order),--order=$(order) )$(EXTRA_SPEC_FLAGS) - CRYSTAL_CONFIG_LIBRARY_PATH := '$$ORIGIN/../lib/crystal' - CRYSTAL_CONFIG_BUILD_COMMIT := $(shell git rev-parse --short HEAD 2> /dev/null) - CRYSTAL_CONFIG_PATH := '$$ORIGIN/../share/crystal/src' diff --git a/dev-lang/dafny-bin/Manifest b/dev-lang/dafny-bin/Manifest index c91834ffb765..80658abee0d5 100644 --- a/dev-lang/dafny-bin/Manifest +++ b/dev-lang/dafny-bin/Manifest @@ -1,5 +1,5 @@ -DIST dafny-4.9.0-x64-ubuntu-20.04.zip 60772912 BLAKE2B 5904811590362705183e05e38c5f67a98b1601c28b4776faf3f33ac87d527e2c91493a0a693fd635799b8f416344acab2ed8c2897f3d1f07827e34565e8d720e SHA512 f44b94abf4fb9b42ee7b7fab584d1b6d65a90bdc515b2b4fc398762bcc33a759bbe2e22ff0c9fc556ca1794707cd7ca440e414c51be10ecd87a5b470df661bbf +DIST dafny-4.10.0-x64-ubuntu-20.04.zip 61352501 BLAKE2B 68227a1566e49a52b9159ab0d7ceaa4369fe0a2a18d97495b865b5d25507399a1e9753244fba19035231e4e0dd130881b0854479944479b8bed32c959c38a4ed SHA512 51929386f27841b4302b1e00865986b4aeea6205852ce7c90398a71a820dd334d3f71cf26255daf3a9a75fb4cc1bb84491165c77fd10ffaa35a267942294fd4b DIST dafny-4.9.1-x64-ubuntu-20.04.zip 60815385 BLAKE2B 76e4b7cf6bfea6f97bb04b77c034cf62732cc9fcadf1893f4783cf9e44cffc81f4067bbc001474b3b0a92f699b329f87ec77a2e34747a945d7786a33e6fff5b6 SHA512 37fdc7ab2f3feab6cce86103d57248e671daca91aead6588cb9f8de34e4b229178cb2da8bcc5bc26a45b85b76bb445c4c87c440d6e6a84409e2a3fdf7d34765f -EBUILD dafny-bin-4.9.0.ebuild 1276 BLAKE2B f37bffa5af5c63da4b94e5ae203e46673fcc3797b12d60396981ef986d3a1d3b24df58ea5ce9a044613a6d0db4c8bce0282cc3a46f7f0355a4a610876a12de3d SHA512 35d347e45e9fca8bc06868284a48a9d38fb91ff3a8febe57b75c974869c67a6f75a3543ccf6d7a07503a374566b1c9a134abcf794aff783fb85cd24a078cb7d9 -EBUILD dafny-bin-4.9.1.ebuild 1277 BLAKE2B 7b7b9ed62e8030776ffc5d11154069e35653b4809cb9d7463e8081d22ea9170dd8d657fade500796411bb6158c05d73d3d626a71d2dd9c1524df5740a736fb1b SHA512 4dccece78502cd9c3b99e32fe6ff1043fe9f6139bb497fb4872fd0740e950d259ea5aee285941c1b59b9490e789ff3a670c517dea81a48820eac8ebd89e927fd +EBUILD dafny-bin-4.10.0.ebuild 1277 BLAKE2B 0f203acdb3866c53bb5f73bd4c380358e89561c1f7ce9bf42df9b451835b10923627e70f2d6e9060a4312ec3c685533a97cd0d8ebefe2a0752ac5e1de40c364b SHA512 7220680382c8e9cae4a237d728f50af4f154934521e1a56277688c71abd75df460473d5b8b042efc2f51f12e97952972c6367a837842f2685190cf6ffc0f4938 +EBUILD dafny-bin-4.9.1.ebuild 1276 BLAKE2B 657a4ad09b816aba6bfbe81806d6c8f264c9f9edb0101148080eeae033c2987657932229f2871e863c02ce8da2cdbc4c266a8bda00765f7eab6a6741ab9114cc SHA512 68d0b40cc62464fb2e027e7981e09a7750d8aa5eaf4061e0cae67ae86550ab5b7102f3f74cd6de3bcc14072834abbc3d088cc7fea7354e86b4621a4f3f1a664f MISC metadata.xml 1826 BLAKE2B 66f000cee8fbf3bcae05da9249d5bc3388f9c05f32c45e96dd51b035aea220a9d49af25cb89b8b8a64a691408373c1ea02d0f345f9a4a554565f708a894664d5 SHA512 0cc12d9c49360bbc08bb8eccd3f7139ec149a9b731f0283b0f95a8506dd93458eb93f3347a978e55a86279ad85ee3233c1b87bfee36f22c9e40bdd14c0aef6c5 diff --git a/dev-lang/dafny-bin/dafny-bin-4.9.0.ebuild b/dev-lang/dafny-bin/dafny-bin-4.10.0.ebuild index a3a1cdb6523a..fa0411a41e93 100644 --- a/dev-lang/dafny-bin/dafny-bin-4.9.0.ebuild +++ b/dev-lang/dafny-bin/dafny-bin-4.10.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -11,7 +11,7 @@ S="${WORKDIR}/dafny" LICENSE="MIT" SLOT="0" -KEYWORDS="-* amd64" +KEYWORDS="-* ~amd64" REQUIRED_USE="elibc_glibc" RESTRICT="strip" diff --git a/dev-lang/dafny-bin/dafny-bin-4.9.1.ebuild b/dev-lang/dafny-bin/dafny-bin-4.9.1.ebuild index 2907f72117f4..2e67e92be0df 100644 --- a/dev-lang/dafny-bin/dafny-bin-4.9.1.ebuild +++ b/dev-lang/dafny-bin/dafny-bin-4.9.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -11,7 +11,7 @@ S="${WORKDIR}/dafny" LICENSE="MIT" SLOT="0" -KEYWORDS="-* ~amd64" +KEYWORDS="-* amd64" REQUIRED_USE="elibc_glibc" RESTRICT="strip" diff --git a/dev-lang/dafny/Manifest b/dev-lang/dafny/Manifest index 4d97ff4ef4ef..a2345506d69c 100644 --- a/dev-lang/dafny/Manifest +++ b/dev-lang/dafny/Manifest @@ -58,6 +58,7 @@ DIST castle.core.4.4.0.nupkg 916004 BLAKE2B 7404f946c140bc4c22132282a4a12694328b DIST commandlineparser.2.8.0.nupkg 475554 BLAKE2B e55eda3a96441169220e5b081f432d8445d719cbcf8e86527920d44085e6e97934e20aa0266bc5dbdc16ba1a6daa6ece55bc2c63266c9d733ab4992f2fe3e0a1 SHA512 8c276513dfe91e5bc72cfb3b96a0d24411ee3bd2e9832d423f6ade3f3964a011dbb977ca90601750fa133a0a25fe72f66955be7f69a72f5d6b73c7f313094b5f DIST commandlineparser.2.9.1.nupkg 496069 BLAKE2B e2c4b38841f83d6bc10432b8055af90369f1fe0a10105a58b51b44cd48e5d84cb0b5e4b19f444d8c81b38646a62c7c4d11cbd710e92fea68be3ebea6ab98e3f1 SHA512 4f364e45c9668c7e7cc6a922b488f3fa523033c20d7a432694f0a6af05ce528ea0481d8375e2f4f1032c6990347b4803ce9a0e48068c6fe15ec46fb1254f085d DIST coverlet.collector.3.2.0.nupkg 2209480 BLAKE2B 175bcfcb9d6e5177d44f2d607f2411cbe77d6009d096bbc84372e33d7be972d3e39ec39d7f2669b4b91f4bcf44f6ddd46bc91541c0cc4843426e2dd1073bf5c2 SHA512 b63d02a5d3233805b42f0b8cc76f40c8d9f5a0117beb6bdb2ab147f5521bb99919b29d51ff91767ce0bfcab92d25fc8fe794133cadc60da3e009ae18d10fc920 +DIST dafny-4.10.0.tar.gz 6815686 BLAKE2B e6054cd38cbc4edcdb2e6848efd6f09df6b5be7abb22bd9e47d35c71a6d046aee4a10bdefe840d883151b66b4d8075053ba14b5f038d7b1b8104bf40ccc56791 SHA512 fcd3499e4a626db638d2cb1d9c3ed221b559d339171f316c937298ed4c916ddf548ec3a0168b85fbb442e51406040b084799f9770b85c5b836d925568e272cad DIST dafny-4.8.0.tar.gz 6615281 BLAKE2B d891a1955554b194e7af231eff9368549bd2686b43dc1aca8034df4502b7b57297a8384db990ca3268bf992ce2ea562d02d936617b0788a58705d2b0cd91aa98 SHA512 8194f2544b411e00874b174ae4036d6ff21e516e342b3ddd9bc00e70a8140037e5a35f10ef797336b1d4f471ea1596829f0d5446d6a93e436690753dc9b19a31 DIST dafny-4.8.1.tar.gz 6693520 BLAKE2B 4cceaba7aec5809c6f714bc5f79fd92656ec0c30e9188aecb5d153575ab06a244fbc248f91ae64e2e1e9ea15914ebc408ebf2ce197edeac8e021770499d3779f SHA512 cfbeb9d36ee9f63c703048fb8497a54df040d96a3e9d5ee208bb2f6a0795416e49b34ec08052f568b7c50d0a892dc6139c01a2310adbd63d347ddec61c79b56b DIST dafny-4.9.0.tar.gz 6733045 BLAKE2B a13eb0716eb6449c8145b25261d97539b04a6310ba24f3dba30938adc46da99b52016e44683bd7521a66cb11e03b92972dee3da6377bc13c6f519f44a91d6c81 SHA512 3d7493467db5006df02fb912d562a7109b225e7eb33e36b02fcb4ddca8cb4353464f668d578017226a22ffed7dac10424dc8fbd73ee13c8108e3bde219562884 @@ -376,6 +377,7 @@ DIST system.xml.xdocument.4.0.11.nupkg 591353 BLAKE2B 8373fa19c6aafbe6e347db7bb1 DIST system.xml.xdocument.4.3.0.nupkg 591350 BLAKE2B 86f910cef36c056f4a9ea9dc26eea6e01070467d27ac80fb8a0af5e1a572ad5d2169e4f1297cd362fddc9e0309458dbd413fca85ef8e56f97781c218e594604a SHA512 c2d9236a696daf23a29b530b9aa510fb813041685a1bb9a95845a51e61d870a0615e988b150f5be0d0896ef94b123e97f96c8a43ee815cf5b9897593986b1113 DIST system.xml.xmldocument.4.3.0.nupkg 285212 BLAKE2B 0d96ca356543e8e915597e0624dca42f0c7032a2ae9e380a6fba3fbee0dacb9e5f06017893b2b7a8b937dbb4de7d5665fa6648e3bf8df12e0d34e4075c125109 SHA512 22251b3f16de9aa06e091b24baea1b8c95752f0d22266faf34e1fb76b347b23f7910cdaf567058e23d06b7079961090ca70805070a2491add5da4d0271afd133 DIST tomlyn.0.16.2.nupkg 146842 BLAKE2B 5292d6abae6eb514d6a0cf7b69e9ab47599fc1540c83a9861985293267c8137f856a1ec573d7f3b327c9a383905de4572f54d03c889951227549cc1bb8979f78 SHA512 69a4f67cd9a9cf593f79fd8cc0530a030a24a9a04e5b67ba39460668e5125d6859f54f3a3d485ec1e8d0be996f14ef14fb9e380e63c6e648bd1141dc31c58141 +DIST tomlyn.0.17.0.nupkg 147066 BLAKE2B d5507882a8e5f7bd7f2e30c3a4aab342046c0339b884b6527a9e616cd48c603aa97ed411a63cf1e92852994c9dc2768f35edb5854aa5b21f865b17783fc43ba5 SHA512 0dd5717101262fd7833cbb74ab5b95f0f39e39d2b32c90775d6e54359643d17d5c1675b9ef65260b01f5b89c81c3d446ae3bffd598b0a53e6b3a10149f9e01fb DIST validation.2.4.18.nupkg 90984 BLAKE2B 3f319bd60a0b1d6b6d08188b1132c01fd417d7e205bc587edd7ffa0dfba4dc01b9e956df46ef03b0f909ff5b9a859a9620d1ededd8eef21fb6522aab2f12f1f2 SHA512 b49e4b992b40bb656821a7a6dd67fe464af14f0781cf677f58412d108678963f9f9347bd2e1091343c1aa522148ea187a25b45ef0eae5e7ffeb8f833396fcff2 DIST xunit.2.4.1.nupkg 20733 BLAKE2B ee83156610dc4ade1f15c05d97725e1913a9dde04e474c11fe396c37df5d438ab934776e4660d3d139fe34949eb890dae67c0145d3815a8a25cc976b9d2cca7b SHA512 3b0061a5ecfd49166f123aa27375956c00aedb0b22f6ee6a8be629cd583a0532f7476e51ffacad3385245139f1f9d4990c9dc850fc7ef7d097fd85e7c6b40058 DIST xunit.2.4.2.nupkg 25547 BLAKE2B bc9bc5049e9feaa9b658ff11ad3ed277c43089b5c341768425d401b98f5ca212d3f3828232a58716f7ea75e39007fb8ee04498208afed60d28e91ecfff31f1d6 SHA512 f57b8d3bbd04cc285c7913b5697a1b00cf0d6f2c70e35a592d61c8c866d79f3f6a913fa933b39224484bba439e6eee0ab917bf66cd19cbcb1dc3731437556c48 @@ -397,8 +399,9 @@ DIST xunit.extensibility.execution.2.4.2.nupkg 353652 BLAKE2B f10e20d43b8030f51c DIST xunit.runner.visualstudio.2.4.3.nupkg 809588 BLAKE2B ce18ac895657d1efa9752e44148812a452401fa06eba913dad716cfd6743d85a09ffbc0be52276a4b90d039ab76077cca7ab5316b73009aeff2b2fe77dc465f1 SHA512 d8b0d124425db24f98335b332fe55e1a08b39af55d8834dd4a2717fd4be45f3a06ae6cb16427a17adfb31e215dab622856152bb2da715acb1946ec9e935299f4 DIST xunit.runner.visualstudio.2.5.1.nupkg 348549 BLAKE2B 530ffc6b699a1589ad6a7fb5aa826d7238b63ea8dcd13ce5705a3d29a0ba70edeac2d9950cd1a00a13a779add761e4e14335689051a43b4cd662a330734e4df7 SHA512 0cc7887e7c7c3315db31aab79df236db9b5542e0234c27543dd5b11cf917674a8fdebc384e7331663b08d586fcf20628479a20ad7edbed4e61667903e812c6f0 DIST xunit.skippablefact.1.4.8.nupkg 44542 BLAKE2B 3c9b09d5196e8901770099b2e5078d9373e8ebc2da058a9071707d6fee56eab7c876578734f3be5b088db6ae83c8ad81a3aadfcab38e1fd2b28bd25601fe5463 SHA512 a2c680223bda4f9bfdbd751c8d6a5319e0a4611533272860ca0a396b26c473a13065301a5d8973074ea2bb5119caaeec5a67d547a96ae5d762dc09f337f51ad1 +EBUILD dafny-4.10.0.ebuild 18906 BLAKE2B 4c281146c319832cd7c917765d64fe469851bc4bc82cac1070a2687629ab025f068dcc34b8dba79347da790c567803bfdadd314dd240fa6f78082074516d60ed SHA512 005bccb059dd6a7bc0afbbdbea114fe8b01e210b9fa45fe0445cad6a0ec2e730aac9eed697224591f509a9f29047789377faece8ce7a67b4303015657544f580 EBUILD dafny-4.8.0.ebuild 21093 BLAKE2B f3bc2e1080b1a4f47d6dfcfb8ff4284f1c78b165995933058b2ab4898f414de563ffb4daf057a2abdd757f9c12cc9abb3151872c68e073f08f38d6aa73cb8bcd SHA512 0163a7991f085cae600e9c85b5b9dd2a5e48cf8f6618a334e165c4b81469f8fc747172d9b8af829b43b202f7ccdf796eb340e111f203f32d76f68a58aa45bdd9 -EBUILD dafny-4.8.1.ebuild 21158 BLAKE2B 6dca483a23d848a297a17157f8c475d9903cfaee1b3509324bdff1c65a2513b849edeeb67856fbedb7b4545541828168a49760c275672ef33cfd5b11019de56c SHA512 994ffdccde2dadd0c02d5e60c73f58e32cb5d57c547b34ee8aa1566187b914e7514b383f2997d1171a2bc672892d26c2ab5b047444ac3ea1963429ce622651d3 +EBUILD dafny-4.8.1.ebuild 21157 BLAKE2B 12ce0ba00dddf39d85c97c80bfaeed0004866fc17369aa5bd1aaab2c083199ebc2925d2df6d0af46346a6adc124aa89db059ac92a668cd1d23546d94fe274dd1 SHA512 f86332ed23ad789becefc001d873395e5cbcf01870841d5845c86e9500d85db938136218bbc1ad4dcce1a9b1265fecb4614720d90005f1650ea5383f01158b60 EBUILD dafny-4.9.0.ebuild 20390 BLAKE2B e7d426bf27fa8cd4747c6c8e838a79942b24d4ff04f5e0d8c3f64e3ea07551756f18ec465fd83da6fad8d98a47c2a2f8551557e9dbfc819b176fbb843cb889e5 SHA512 6f559f88ff05e9b09c19dd400fd9e7ed9fe675269380b5389f0414d3efd523b34fb7ec53ad597e97bf5fc54bbfc0233784326bb4613e4fd2bff5c27b41104480 -EBUILD dafny-4.9.1.ebuild 19073 BLAKE2B ca08b4357977fd8f999912e315df7d42ed7b45d33e6ab1a6bd7dc31e5ea61c947dcfb0641a30bca88d572f8ce5598cff5a4e799bb88fa135e958c4dca3117263 SHA512 1e6a97eabf7bf33801a83f22de141e03aa0b077af92a0fdd866c77ec6cf24c612d33bc3d05d46c66593ce9887b731fd9fb45d71e21a4bfb9c32df3e900c50793 +EBUILD dafny-4.9.1.ebuild 19072 BLAKE2B 5ca3c00280b18f3f8d4d16ac2497c5cfb1f6860a896f2b2661202f673b7ebc4b91de0d2525f3da5a9ccf27bf386a0acd62f2c495554cb2d2709db24e44aed4b0 SHA512 ffd12e57b9b46930c148a022749bb736bd7f8a28461b662e86064e8ac19bfd7fbb004f8ed1cfa18fe6288349948c5ee539f347be1d9ce685277cdb59f518d34a MISC metadata.xml 1884 BLAKE2B e3a53cfd90a4edf1d9fd9f567ac3c23fd88cc46602cfe6aea31ddc40585ebc89ab82833dcd21c82083671a54454d62f162f45d56d6b0ec9c202148b3d5ea2c6d SHA512 4cffb9c237ed85097ce1496a72f5aa9c5a0f5758402fe66ff745a3b1dbc3f8d9a40fecc9140ee1b9418f09b62794f7e0a47f908e6ba01b370087d4df62bfa46e diff --git a/dev-lang/dafny/dafny-4.10.0.ebuild b/dev-lang/dafny/dafny-4.10.0.ebuild new file mode 100644 index 000000000000..4943c4a1f162 --- /dev/null +++ b/dev-lang/dafny/dafny-4.10.0.ebuild @@ -0,0 +1,627 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..13} ) + +DOTNET_PKG_COMPAT="8.0" +NUGETS=" +boogie.abstractinterpretation@3.4.3 +boogie.basetypes@3.4.3 +boogie.codecontractsextender@3.4.3 +boogie.concurrency@3.4.3 +boogie.core@3.4.3 +boogie.executionengine@3.4.3 +boogie.graph@3.4.3 +boogie.houdini@3.4.3 +boogie.model@3.4.3 +boogie.provers.leanauto@3.4.3 +boogie.provers.smtlib@3.4.3 +boogie.vcexpr@3.4.3 +boogie.vcgeneration@3.4.3 +castle.core@4.4.0 +commandlineparser@2.8.0 +commandlineparser@2.9.1 +coverlet.collector@3.2.0 +diffplex@1.7.0 +humanizer.core@2.2.0 +jetbrains.annotations@2021.1.0 +mediatr@8.1.0 +microsoft.bcl.asyncinterfaces@1.1.1 +microsoft.bcl.asyncinterfaces@5.0.0 +microsoft.bcl.asyncinterfaces@6.0.0 +microsoft.build.framework@17.0.0 +microsoft.build.locator@1.4.1 +microsoft.build.tasks.core@17.0.0 +microsoft.build.utilities.core@17.0.0 +microsoft.build@17.0.0 +microsoft.codeanalysis.analyzers@3.0.0 +microsoft.codeanalysis.analyzers@3.3.2 +microsoft.codeanalysis.common@3.7.0 +microsoft.codeanalysis.common@4.0.1 +microsoft.codeanalysis.csharp.workspaces@4.0.1 +microsoft.codeanalysis.csharp@3.7.0 +microsoft.codeanalysis.csharp@4.0.1 +microsoft.codeanalysis.visualbasic.workspaces@4.0.1 +microsoft.codeanalysis.visualbasic@4.0.1 +microsoft.codeanalysis.workspaces.common@4.0.1 +microsoft.codeanalysis.workspaces.msbuild@4.0.1 +microsoft.codeanalysis@4.0.1 +microsoft.codecoverage@16.11.0 +microsoft.codecoverage@16.9.4 +microsoft.codecoverage@17.1.0 +microsoft.csharp@4.0.1 +microsoft.dotnet.platformabstractions@2.0.4 +microsoft.extensions.configuration.abstractions@2.0.0 +microsoft.extensions.configuration.abstractions@5.0.0 +microsoft.extensions.configuration.binder@2.0.0 +microsoft.extensions.configuration.binder@5.0.0 +microsoft.extensions.configuration.commandline@5.0.0 +microsoft.extensions.configuration.fileextensions@5.0.0 +microsoft.extensions.configuration.json@5.0.0 +microsoft.extensions.configuration@2.0.0 +microsoft.extensions.configuration@5.0.0 +microsoft.extensions.dependencyinjection.abstractions@2.0.0 +microsoft.extensions.dependencyinjection.abstractions@5.0.0 +microsoft.extensions.dependencyinjection@2.0.0 +microsoft.extensions.dependencyinjection@5.0.0 +microsoft.extensions.dependencymodel@2.0.4 +microsoft.extensions.fileproviders.abstractions@5.0.0 +microsoft.extensions.fileproviders.physical@5.0.0 +microsoft.extensions.filesystemglobbing@5.0.0 +microsoft.extensions.logging.abstractions@2.0.0 +microsoft.extensions.logging.abstractions@5.0.0 +microsoft.extensions.logging.configuration@5.0.0 +microsoft.extensions.logging.console@5.0.0 +microsoft.extensions.logging@2.0.0 +microsoft.extensions.logging@5.0.0 +microsoft.extensions.options.configurationextensions@2.0.0 +microsoft.extensions.options.configurationextensions@5.0.0 +microsoft.extensions.options@2.0.0 +microsoft.extensions.options@5.0.0 +microsoft.extensions.primitives@2.0.0 +microsoft.extensions.primitives@5.0.0 +microsoft.net.stringtools@1.0.0 +microsoft.net.test.sdk@16.11.0 +microsoft.net.test.sdk@16.9.4 +microsoft.net.test.sdk@17.1.0 +microsoft.netcore.platforms@1.0.1 +microsoft.netcore.platforms@1.1.0 +microsoft.netcore.platforms@2.1.2 +microsoft.netcore.platforms@3.0.0 +microsoft.netcore.platforms@3.1.0 +microsoft.netcore.targets@1.0.1 +microsoft.netcore.targets@1.1.0 +microsoft.netframework.referenceassemblies.net452@1.0.2 +microsoft.netframework.referenceassemblies.net452@1.0.3 +microsoft.netframework.referenceassemblies@1.0.2 +microsoft.netframework.referenceassemblies@1.0.3 +microsoft.testplatform.extensions.trxlogger@17.9.0 +microsoft.testplatform.objectmodel@16.11.0 +microsoft.testplatform.objectmodel@16.9.4 +microsoft.testplatform.objectmodel@17.1.0 +microsoft.testplatform.objectmodel@17.9.0 +microsoft.testplatform.testhost@16.11.0 +microsoft.testplatform.testhost@16.9.4 +microsoft.testplatform.testhost@17.1.0 +microsoft.testplatform.testhost@17.9.0 +microsoft.visualstudio.threading.analyzers@16.7.56 +microsoft.visualstudio.threading@16.7.56 +microsoft.visualstudio.validation@15.5.31 +microsoft.win32.primitives@4.3.0 +microsoft.win32.registry@4.3.0 +microsoft.win32.registry@4.6.0 +microsoft.win32.systemevents@4.7.0 +microsoft.win32.systemevents@6.0.0 +moq@4.16.1 +nerdbank.streams@2.6.81 +netstandard.library@1.6.1 +netstandard.library@2.0.3 +newtonsoft.json@11.0.2 +newtonsoft.json@13.0.1 +newtonsoft.json@9.0.1 +nuget.frameworks@5.0.0 +nuget.frameworks@5.11.0 +omnisharp.extensions.jsonrpc.generators@0.19.5 +omnisharp.extensions.jsonrpc.testing@0.19.5 +omnisharp.extensions.jsonrpc@0.19.5 +omnisharp.extensions.languageclient@0.19.5 +omnisharp.extensions.languageprotocol.testing@0.19.5 +omnisharp.extensions.languageprotocol@0.19.5 +omnisharp.extensions.languageserver.shared@0.19.5 +omnisharp.extensions.languageserver@0.19.5 +rangetree@3.0.1 +runtime.any.system.collections@4.3.0 +runtime.any.system.diagnostics.tools@4.3.0 +runtime.any.system.diagnostics.tracing@4.3.0 +runtime.any.system.globalization.calendars@4.3.0 +runtime.any.system.globalization@4.3.0 +runtime.any.system.io@4.3.0 +runtime.any.system.reflection.extensions@4.3.0 +runtime.any.system.reflection.primitives@4.3.0 +runtime.any.system.reflection@4.3.0 +runtime.any.system.resources.resourcemanager@4.3.0 +runtime.any.system.runtime.handles@4.3.0 +runtime.any.system.runtime.interopservices@4.3.0 +runtime.any.system.runtime@4.3.0 +runtime.any.system.text.encoding.extensions@4.3.0 +runtime.any.system.text.encoding@4.3.0 +runtime.any.system.threading.tasks@4.3.0 +runtime.any.system.threading.timer@4.3.0 +runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl@4.3.0 +runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl@4.3.0 +runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl@4.3.0 +runtime.native.system.io.compression@4.3.0 +runtime.native.system.net.http@4.3.0 +runtime.native.system.security.cryptography.apple@4.3.0 +runtime.native.system.security.cryptography.openssl@4.3.0 +runtime.native.system@4.0.0 +runtime.native.system@4.3.0 +runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl@4.3.0 +runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl@4.3.0 +runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple@4.3.0 +runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl@4.3.0 +runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl@4.3.0 +runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl@4.3.0 +runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl@4.3.0 +runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl@4.3.0 +runtime.unix.microsoft.win32.primitives@4.3.0 +runtime.unix.system.console@4.3.0 +runtime.unix.system.diagnostics.debug@4.3.0 +runtime.unix.system.io.filesystem@4.3.0 +runtime.unix.system.net.primitives@4.3.0 +runtime.unix.system.net.sockets@4.3.0 +runtime.unix.system.private.uri@4.3.0 +runtime.unix.system.runtime.extensions@4.3.0 +serilog.extensions.logging@3.0.1 +serilog.settings.configuration@3.1.0 +serilog.sinks.debug@2.0.0 +serilog.sinks.file@5.0.0 +serilog.sinks.inmemory@0.11.0 +serilog@2.12.0 +system.appcontext@4.1.0 +system.appcontext@4.3.0 +system.buffers@4.3.0 +system.buffers@4.4.0 +system.codedom@4.4.0 +system.collections.concurrent@4.3.0 +system.collections.immutable@1.5.0 +system.collections.immutable@1.7.0 +system.collections.immutable@1.7.1 +system.collections.immutable@5.0.0 +system.collections.nongeneric@4.3.0 +system.collections.specialized@4.3.0 +system.collections@4.0.11 +system.collections@4.3.0 +system.commandline@2.0.0-beta4.22272.1 +system.componentmodel.primitives@4.3.0 +system.componentmodel.typeconverter@4.3.0 +system.componentmodel@4.3.0 +system.composition.attributedmodel@1.0.31 +system.composition.convention@1.0.31 +system.composition.hosting@1.0.31 +system.composition.runtime@1.0.31 +system.composition.typedparts@1.0.31 +system.composition@1.0.31 +system.configuration.configurationmanager@4.7.0 +system.configuration.configurationmanager@6.0.0 +system.console@4.3.0 +system.diagnostics.debug@4.0.11 +system.diagnostics.debug@4.3.0 +system.diagnostics.diagnosticsource@4.3.0 +system.diagnostics.tools@4.0.1 +system.diagnostics.tools@4.3.0 +system.diagnostics.tracesource@4.3.0 +system.diagnostics.tracing@4.3.0 +system.drawing.common@4.7.0 +system.drawing.common@6.0.0 +system.dynamic.runtime@4.0.11 +system.dynamic.runtime@4.3.0 +system.globalization.calendars@4.3.0 +system.globalization.extensions@4.3.0 +system.globalization@4.0.11 +system.globalization@4.3.0 +system.io.compression.zipfile@4.3.0 +system.io.compression@4.3.0 +system.io.filesystem.primitives@4.0.1 +system.io.filesystem.primitives@4.3.0 +system.io.filesystem@4.0.1 +system.io.filesystem@4.3.0 +system.io.pipelines@4.7.3 +system.io.pipelines@5.0.1 +system.io@4.1.0 +system.io@4.3.0 +system.linq.async@6.0.1 +system.linq.expressions@4.1.0 +system.linq.expressions@4.3.0 +system.linq@4.1.0 +system.linq@4.3.0 +system.memory@4.5.3 +system.memory@4.5.4 +system.net.http@4.3.0 +system.net.nameresolution@4.3.0 +system.net.primitives@4.3.0 +system.net.sockets@4.3.0 +system.net.websockets@4.3.0 +system.numerics.vectors@4.4.0 +system.objectmodel@4.0.12 +system.objectmodel@4.3.0 +system.private.uri@4.3.0 +system.reactive@4.4.1 +system.reflection.emit.ilgeneration@4.0.1 +system.reflection.emit.ilgeneration@4.3.0 +system.reflection.emit.lightweight@4.0.1 +system.reflection.emit.lightweight@4.3.0 +system.reflection.emit@4.0.1 +system.reflection.emit@4.3.0 +system.reflection.extensions@4.0.1 +system.reflection.extensions@4.3.0 +system.reflection.metadata@1.6.0 +system.reflection.metadata@5.0.0 +system.reflection.primitives@4.0.1 +system.reflection.primitives@4.3.0 +system.reflection.typeextensions@4.1.0 +system.reflection.typeextensions@4.3.0 +system.reflection@4.1.0 +system.reflection@4.3.0 +system.resources.extensions@4.6.0 +system.resources.resourcemanager@4.0.1 +system.resources.resourcemanager@4.3.0 +system.runtime.caching@6.0.0 +system.runtime.compilerservices.unsafe@4.4.0 +system.runtime.compilerservices.unsafe@4.5.2 +system.runtime.compilerservices.unsafe@4.7.0 +system.runtime.compilerservices.unsafe@4.7.1 +system.runtime.compilerservices.unsafe@5.0.0 +system.runtime.extensions@4.1.0 +system.runtime.extensions@4.3.0 +system.runtime.handles@4.0.1 +system.runtime.handles@4.3.0 +system.runtime.interopservices.runtimeinformation@4.0.0 +system.runtime.interopservices.runtimeinformation@4.3.0 +system.runtime.interopservices@4.1.0 +system.runtime.interopservices@4.3.0 +system.runtime.numerics@4.3.0 +system.runtime.serialization.primitives@4.1.1 +system.runtime@4.1.0 +system.runtime@4.3.0 +system.security.accesscontrol@4.6.0 +system.security.accesscontrol@4.7.0 +system.security.accesscontrol@6.0.0 +system.security.claims@4.3.0 +system.security.cryptography.algorithms@4.3.0 +system.security.cryptography.cng@4.3.0 +system.security.cryptography.cng@4.7.0 +system.security.cryptography.csp@4.3.0 +system.security.cryptography.encoding@4.3.0 +system.security.cryptography.openssl@4.3.0 +system.security.cryptography.pkcs@4.7.0 +system.security.cryptography.primitives@4.3.0 +system.security.cryptography.protecteddata@4.7.0 +system.security.cryptography.protecteddata@6.0.0 +system.security.cryptography.x509certificates@4.3.0 +system.security.cryptography.xml@4.7.0 +system.security.permissions@4.7.0 +system.security.permissions@6.0.0 +system.security.principal.windows@4.3.0 +system.security.principal.windows@4.6.0 +system.security.principal.windows@4.7.0 +system.security.principal@4.3.0 +system.text.encoding.codepages@4.0.1 +system.text.encoding.codepages@4.5.1 +system.text.encoding.extensions@4.0.11 +system.text.encoding.extensions@4.3.0 +system.text.encoding@4.0.11 +system.text.encoding@4.3.0 +system.text.json@4.7.0 +system.text.json@5.0.2 +system.text.regularexpressions@4.1.0 +system.text.regularexpressions@4.3.0 +system.threading.channels@4.7.1 +system.threading.tasks.dataflow@4.9.0 +system.threading.tasks.extensions@4.0.0 +system.threading.tasks.extensions@4.3.0 +system.threading.tasks.extensions@4.5.3 +system.threading.tasks.extensions@4.5.4 +system.threading.tasks@4.0.11 +system.threading.tasks@4.3.0 +system.threading.threadpool@4.3.0 +system.threading.timer@4.3.0 +system.threading@4.0.11 +system.threading@4.3.0 +system.windows.extensions@4.7.0 +system.windows.extensions@6.0.0 +system.xml.readerwriter@4.0.11 +system.xml.readerwriter@4.3.0 +system.xml.xdocument@4.0.11 +system.xml.xdocument@4.3.0 +system.xml.xmldocument@4.3.0 +tomlyn@0.17.0 +validation@2.4.18 +xunit.abstractions@2.0.2 +xunit.abstractions@2.0.3 +xunit.analyzers@0.10.0 +xunit.analyzers@1.0.0 +xunit.assert@2.4.1 +xunit.assert@2.4.2 +xunit.assertmessages@2.4.0 +xunit.core@2.4.1 +xunit.core@2.4.2 +xunit.extensibility.core@2.4.0 +xunit.extensibility.core@2.4.1 +xunit.extensibility.core@2.4.2 +xunit.extensibility.execution@2.4.0 +xunit.extensibility.execution@2.4.1 +xunit.extensibility.execution@2.4.2 +xunit.runner.visualstudio@2.4.3 +xunit.runner.visualstudio@2.5.1 +xunit.skippablefact@1.4.8 +xunit@2.4.1 +xunit@2.4.2 +" + +inherit check-reqs dotnet-pkg edo java-pkg-2 multiprocessing python-any-r1 optfeature + +DESCRIPTION="Dafny is a verification-aware programming language" +HOMEPAGE="https://dafny.org/ + https://github.com/dafny-lang/dafny/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/dafny-lang/${PN}.git" +else + SRC_URI="https://github.com/dafny-lang/${PN}/archive/v${PV}.tar.gz + -> ${P}.tar.gz" + + KEYWORDS="~amd64" +fi + +SRC_URI+=" + ${NUGET_URIS} + test? ( + https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz + ) +" + +LICENSE="MIT" +SLOT="0" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + !dev-lang/dafny-bin + >=virtual/jre-1.8:* + sci-mathematics/z3 +" +DEPEND=" + >=virtual/jdk-1.8:* +" +BDEPEND=" + ${RDEPEND} + dev-dotnet/coco + test? ( + ${PYTHON_DEPS} + >=dev-lang/boogie-3.4.3 + dev-go/go-tools + dev-lang/go + dev-python/outputcheck + dev-python/lit + dev-python/psutil + net-libs/nodejs[npm] + ) +" + +CHECKREQS_DISK_BUILD="2G" +DOTNET_PKG_PROJECTS=( Source/Dafny/Dafny.csproj ) +TEST_S="${S}/Source/IntegrationTests/TestFiles/LitTests/LitTest" + +PATCHES=( + "${FILESDIR}/dafny-3.12.0-DafnyCore-csproj.patch" + "${FILESDIR}/dafny-3.12.0-DafnyRuntime-csproj.patch" + "${FILESDIR}/dafny-4.5.0-lit-config.patch" +) + +DOCS=( + CODE_OF_CONDUCT.md + CONTRIBUTING.md + NOTICES.txt + README.md + RELEASE_NOTES.md + docs/DafnyCheatsheet.pdf + docs/DafnyRef/out/DafnyRef.pdf +) + +pkg_setup() { + # Clean the environment. + unset NPM_CONFIG_USERCONFIG + + if [[ -n "${_JAVA_OPTIONS}" ]] ; then + ewarn "Cleaning _JAVA_OPTIONS because when set compile and test may fail" + + unset _JAVA_OPTIONS + fi + + check-reqs_pkg_setup + dotnet-pkg_pkg_setup + java-pkg-2_pkg_setup + + # We need to set up Python only for running test tools (called via lit). + if use test ; then + python-any-r1_pkg_setup + fi +} + +src_unpack() { + # Unpack manually to skip additional archives, eg "bignumber.js". + nuget_link-system-nugets + nuget_link-nuget-archives + + if [[ -n "${EGIT_REPO_URI}" ]] ; then + git-r3_src_unpack + else + unpack "${P}.tar.gz" + fi +} + +src_prepare() { + dotnet-pkg_src_prepare + + # Update lit's "lit.site.cfg" file. + local dotnet_exec="${DOTNET_PKG_EXECUTABLE} exec ${DOTNET_PKG_OUTPUT}" + local lit_config="${TEST_S}/lit.site.cfg" + + local -a lit_dotnet_run_opts=( + --configuration "${DOTNET_PKG_CONFIGURATION}" + --no-build + --no-restore + --no-self-contained + --runtime "${DOTNET_PKG_RUNTIME}" + ) + sed -i "${lit_config}" \ + -e "s|dotnet run |${DOTNET_PKG_EXECUTABLE} run ${lit_dotnet_run_opts[*]} |g" \ + || die "failed to update ${lit_config}" + + # Using "for-each-compiler" will fail because of Cargo requiring network access. + while read -r test_file ; do + if grep "// RUN: %testDafnyForEachCompiler" "${test_file}" >/dev/null ; then + rm "${test_file}" || die "failed to remove test ${bad_test}" + fi + done < <(find "${TEST_S}" -type f -name "*.dfy") + + # Remove bad tests (recursive). + local -a bad_tests=( + # Unsupported test build (and those that need network access): + comp/rust + + # Following tests fail: + HigherOrderIntrinsicSpecification + VSComp2010 + ast/function.dfy + auditor/TestAuditor.dfy + benchmarks + blogposts + c++ + cli + comp + concurrency + dafny{0,1,3,4} + doofiles + examples + exports + git-issues + gomodule/{multimodule,publishedruntime,singlemodule} + lambdas + metatests + printing + pythonmodule + separate-verification + server + triggers + unicodecharsFalse + verification + vstte2012 + wishlist + ) + local bad_test="" + for bad_test in "${bad_tests[@]}" ; do + if [[ -e "${TEST_S}/${bad_test}" ]] ; then + rm -r "${TEST_S}/${bad_test}" \ + || eerror "failed to remove test ${bad_test}" + else + ewarn "Test file ${bad_test} does not exist" + fi + done +} + +src_configure() { + dotnet-pkg_src_configure + + if use test ; then + dotnet-pkg-base_restore ./Source/TestDafny/TestDafny.csproj + fi +} + +src_compile () { + einfo "Building DafnyRuntimeJava JAR." + local dafny_runtime_java="${S}/Source/DafnyRuntime/DafnyRuntimeJava" + mkdir -p "${dafny_runtime_java}/build/libs/" || die + pushd "${dafny_runtime_java}/build" || die + + ejavac -d ./ $(find "${dafny_runtime_java}/src/main" -type f -name "*.java") + edob jar cvf "DafnyRuntime-${PV}.jar" dafny/* + + cp "DafnyRuntime-${PV}.jar" "${dafny_runtime_java}/build/libs/" || die + popd || die + + # Build main dotnet package. + dotnet-pkg_src_compile + + # Build "TestDafny" without saving artifacts. + if use test ; then + # This is where Dafny test suite expects to find compiled sources. + rm -r ./Binaries || die + cp -r "${DOTNET_PKG_OUTPUT}" ./Binaries || die + + local -a build_test_opts=( + --configuration "${DOTNET_PKG_CONFIGURATION}" + --no-restore + --no-self-contained + --runtime "${DOTNET_PKG_RUNTIME}" + -maxCpuCount:$(makeopts_jobs) + ) + edotnet build "${build_test_opts[@]}" ./Source/TestDafny/TestDafny.csproj + fi +} + +src_test() { + # Dafny GOLang transpiler tests need "goimports" from "/usr/lib/go/bin". + local -x PATH="${EPREFIX}/usr/lib/go/bin:${PATH}" + + einfo "Installing bignumber.js package required for tests using NodeJS." + local -a npm_opts=( + --audit false + --color false + --foreground-scripts + --offline + --progress false + --verbose + ) + edob npm "${npm_opts[@]}" install "${DISTDIR}/bignumber.js-9.1.2.tgz" + + einfo "Starting tests using the lit test tool." + local -a lit_opts=( + --order=lexical + --time-tests + --timeout 1800 # Let one test take no mere than half a hour. + --verbose + --workers="$(makeopts_jobs)" + ) + edo lit "${lit_opts[@]}" "${TEST_S}" +} + +src_install() { + dotnet-pkg-base_install + + local -a dafny_exes=( + Dafny + DafnyDriver + DafnyLanguageServer + DafnyServer + ) + local dafny_exe + for dafny_exe in "${dafny_exes[@]}" ; do + dotnet-pkg-base_dolauncher "/usr/share/${P}/${dafny_exe}" "${dafny_exe}" + done + + dosym -r /usr/bin/Dafny /usr/bin/dafny + dosym -r /usr/bin/DafnyServer /usr/bin/dafny-server + + einstalldocs +} + +pkg_postinst() { + optfeature "Dafny GO language backend" dev-go/go-tools + optfeature "Dafny Rust language backend" dev-lang/rust dev-lang/rust-bin +} diff --git a/dev-lang/dafny/dafny-4.8.1.ebuild b/dev-lang/dafny/dafny-4.8.1.ebuild index 6026ea288584..c762437bf8cf 100644 --- a/dev-lang/dafny/dafny-4.8.1.ebuild +++ b/dev-lang/dafny/dafny-4.8.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -373,7 +373,7 @@ else SRC_URI="https://github.com/dafny-lang/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64" + KEYWORDS="amd64" fi SRC_URI+=" diff --git a/dev-lang/dafny/dafny-4.9.1.ebuild b/dev-lang/dafny/dafny-4.9.1.ebuild index 895f847e745f..0002c1730a8e 100644 --- a/dev-lang/dafny/dafny-4.9.1.ebuild +++ b/dev-lang/dafny/dafny-4.9.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -375,7 +375,7 @@ else SRC_URI="https://github.com/dafny-lang/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64" + KEYWORDS="amd64" fi SRC_URI+=" diff --git a/dev-lang/eisl/Manifest b/dev-lang/eisl/Manifest index 9647ab3b155e..8321ad728320 100644 --- a/dev-lang/eisl/Manifest +++ b/dev-lang/eisl/Manifest @@ -1,10 +1,6 @@ AUX eisl-3.60-Makefile.patch 883 BLAKE2B 42419e7db0c5b960e218e821cd53d11caaa1a48d74c3e3d810c387e7e74f4fb2699d1cc54fc59c4201664a35384288c1f43e9910cabca9747f2522f2dc3aa364 SHA512 de22e920debb00b2988b8cd9d63c50c7c43d680c5b668f32dd9841a50875f7a857f5c320a00311f4d4adbff857298bf1e25f19f6a0baa7f0cba81ac63aaacd0f AUX eisl-5.41-makefile.patch 1713 BLAKE2B 9c4ea3621f3f4ae9a73c287758f50938bdfe270e68d9a68971ccacf1f8dcbdd6f916c1a43dabc1b487c167de0fc3520c589d82a610137d33f1aef44bd63467b7 SHA512 7aeedf83cb3a20fa9f95831c5a40299718cd52ace56247b86a11a0e2458b19fa08e700e95d123bf052d1fcea49e080bb0bcfb75b98c80fe16e7f69ca15dad7a7 -DIST eisl-5.39.tar.gz 3137025 BLAKE2B 1aca7df4b629b9e9b71fa8355654d65a84cf3f08a59111a978f6d3868377f2fb857041a83f2044dc3d367624b910aaee701d5a4b0dea2d4aa94c49f0aaa60ef4 SHA512 976f5ae8eab96be135ab52b2abdac36ebeef6987ff4091639f29105d9b81f2f4f092a38d60e8ad0f746a42dedc362f95e4a26a8e375bff2f3fc7f7215243dd2b -DIST eisl-5.40.tar.gz 3140344 BLAKE2B aa00ff32302a6a9f1d9772f8e9c2690e47f1d466ec433c2f4519434a599d8b6bdb923e3bbdb1a278b3aaa1274ea139ff46e1bb736f972ab495f0dfc031de1916 SHA512 44e2ca7a35c3e200e7d8b0bd948427e0bfa81e678269df81d3e36e601123c1528c25a4b2d13b5d92956378b27c5211caa5e51113763099af4b9b65bf369382fd DIST eisl-5.41.tar.gz 3140179 BLAKE2B b60ec0209313973af31b0940317fdecd8e87c9de46093830d7e3c3924bbab9ef5da638a67b43b91a3c351d3d357817fcf26a56aeb2203e3f2a1865c797c743b1 SHA512 1b87a4c16b75289a95ffee20b7182151701736c96f3ddcdf1e00ef51356b668059b43cab39e9dd3b1f193b102f1f7cd32e435c0d212342e2544fff9507dfb99a -EBUILD eisl-5.39.ebuild 1141 BLAKE2B 981c79c4e175032aad04446f902f5576da77c4bba907e7607bbc7109434fa219d88f2841241d008fde4d7c7494c14c8b1501c621cf41ac0074488dd8274a6878 SHA512 531d23a6d9f24368c919f09662e4f53fb6d21bc3d41a080b8f186deead807943121a546f5302d933f4dfa0a9e7668103dac45ccad3b3ac5e19d3b05c8101f65d -EBUILD eisl-5.40.ebuild 1142 BLAKE2B a8fc820c4882488b585a8880ebae3e28aea612fd7fba566428dbc79b07a6b1eeb6d650800e2bc1f29eaf98c9a205c3c344f470b23349f1e21525e573e6019ea2 SHA512 420028f87f5855c4332f0441124cface157b43823141f3eb84df01a369981eb7c080268d3ba133f0af99d7798611661668f8bef3d4ff73b9c3229392ecbe277f -EBUILD eisl-5.41.ebuild 1184 BLAKE2B 878e121281063a100bbbd9c5cfd065294c3cffded81f387b4e9fffb219ba91b380cfdfe73d597710b3884a627e5a0a0a6721675110ef6091a9c5cde7108e64a7 SHA512 77bd58e5efcf0c58d3428c011d241adc26998d581f23efddb6166c299d1013ec5b3abf83082eae0a5a846ee471daaceb416c73dd92a0d7ebe7d85c7a139cbc91 +EBUILD eisl-5.41.ebuild 1183 BLAKE2B d0d84738d0eefd9741335d80953191e7fec43565ce53c8f4026e94f27d2ff504ff198390675a44555bb25747fa9eba861156a2ba9c99b4bc98e17781715da018 SHA512 9166fa22cbb9eb290009d647b1738fa6bc448a5c2044f29b8c2fc9f5250697004a94b2ad4e6b60c3a874ca48db14b3cfe61746ae4765644f789e21a3d579419f EBUILD eisl-9999.ebuild 1136 BLAKE2B d00e394ed97243a579bc35bc9da5fa60ad84861ea5c41a0524b514e360d80d732da2bc733ef1edfaf843c96bf2f0543912838e102336244442a7c934ac504c1c SHA512 5e7ef191a7e978bebcc696d9274f211d67dd4d99c36bc942402f60a76439b551d839d70b66531e5f6366b700e5e094f86b072fb6108a6cf4593bac8df38361a6 MISC metadata.xml 631 BLAKE2B fd171b07cf1f7beae7be774a5da360d466c83f01a6bd52dc69af436926ae5aebec27a2723c11498be21c4f96f6b82c6aa3571f4b84e763459ef78086450252f2 SHA512 dd9e329f24ce6d3922e92e81d36234b93151f71c88d6ba4b38557565a7c1c3bc4b7172d4d55f1d2d5bd6c5cada449691067cc71abd4d456941f6a8b78fe0df87 diff --git a/dev-lang/eisl/eisl-5.39.ebuild b/dev-lang/eisl/eisl-5.39.ebuild deleted file mode 100644 index fa1972eec46a..000000000000 --- a/dev-lang/eisl/eisl-5.39.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit toolchain-funcs - -DESCRIPTION="Interpreter and compiler compatible with the ISLisp standard" -HOMEPAGE="https://github.com/sasagawa888/eisl/" - -if [[ "${PV}" == *9999* ]] ; then - inherit git-r3 - - EGIT_REPO_URI="https://github.com/sasagawa888/${PN}.git" -else - SRC_URI="https://github.com/sasagawa888/${PN}/archive/v${PV}.tar.gz - -> ${P}.tar.gz" - - KEYWORDS="amd64 ~x86" -fi - -LICENSE="BSD-2" -SLOT="0" -RESTRICT="test" # Tests run cppcheck (and fail) - -DOCS=( README{,-ja}.md documents ) - -RDEPEND=" - sys-libs/ncurses:= -" -DEPEND=" - ${RDEPEND} -" - -PATCHES=( "${FILESDIR}/${PN}-3.60-Makefile.patch" ) - -src_compile() { - # bug https://bugs.gentoo.org/939771 - # don't clean and compile in one invocation with --shuffle possible - emake CC="$(tc-getCC)" clean - emake CC="$(tc-getCC)" edlis eisl -} - -src_install() { - exeinto /usr/bin - doexe edlis eisl - - # Compilation of ISLisp files on installation fails. - # Do not compile them and mimic "make install". - insinto "/usr/share/${PN}" - doins -r library - doins fast.h ffi.h - - einstalldocs -} diff --git a/dev-lang/eisl/eisl-5.40.ebuild b/dev-lang/eisl/eisl-5.40.ebuild deleted file mode 100644 index b73ff04a67d4..000000000000 --- a/dev-lang/eisl/eisl-5.40.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit toolchain-funcs - -DESCRIPTION="Interpreter and compiler compatible with the ISLisp standard" -HOMEPAGE="https://github.com/sasagawa888/eisl/" - -if [[ "${PV}" == *9999* ]] ; then - inherit git-r3 - - EGIT_REPO_URI="https://github.com/sasagawa888/${PN}.git" -else - SRC_URI="https://github.com/sasagawa888/${PN}/archive/v${PV}.tar.gz - -> ${P}.tar.gz" - - KEYWORDS="~amd64 ~x86" -fi - -LICENSE="BSD-2" -SLOT="0" -RESTRICT="test" # Tests run cppcheck (and fail) - -DOCS=( README{,-ja}.md documents ) - -RDEPEND=" - sys-libs/ncurses:= -" -DEPEND=" - ${RDEPEND} -" - -PATCHES=( "${FILESDIR}/${PN}-3.60-Makefile.patch" ) - -src_compile() { - # bug https://bugs.gentoo.org/939771 - # don't clean and compile in one invocation with --shuffle possible - emake CC="$(tc-getCC)" clean - emake CC="$(tc-getCC)" edlis eisl -} - -src_install() { - exeinto /usr/bin - doexe edlis eisl - - # Compilation of ISLisp files on installation fails. - # Do not compile them and mimic "make install". - insinto "/usr/share/${PN}" - doins -r library - doins fast.h ffi.h - - einstalldocs -} diff --git a/dev-lang/eisl/eisl-5.41.ebuild b/dev-lang/eisl/eisl-5.41.ebuild index 0cbe742c8a06..d1f75a17570f 100644 --- a/dev-lang/eisl/eisl-5.41.ebuild +++ b/dev-lang/eisl/eisl-5.41.ebuild @@ -16,7 +16,7 @@ else SRC_URI="https://github.com/sasagawa888/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~x86" + KEYWORDS="amd64 ~x86" fi LICENSE="BSD-2" diff --git a/dev-lang/elixir/Manifest b/dev-lang/elixir/Manifest index 0f01342cb900..a12b5ca53d94 100644 --- a/dev-lang/elixir/Manifest +++ b/dev-lang/elixir/Manifest @@ -12,6 +12,7 @@ DIST elixir-1.16.3.tar.gz 3360376 BLAKE2B ac6cdc16f193560e18338bd3e45a4f88c7d439 DIST elixir-1.17.2.tar.gz 3255067 BLAKE2B b2902c41262303fe33efeb22f8fe6cf76596f7d9894b018c0d45eaf1858f7d2ffaa1481659ff290c71807b03c5f2ebb17160d7420133d440957f344df6d01126 SHA512 f9d4983c3e7bd054a76bfe0dfa4aea483a4dd84ada432ae5a144167ff8d268499077704214eaaecfda84469c2f747a3594258ca95a7955bffde0c7b0f65985f2 DIST elixir-1.17.3.tar.gz 3256595 BLAKE2B c016857f74d65de5afcef6d1284b76fc529a542e5cd0dded73701cbdad93f281529a545af1c5a905cb116a3028472703acfdc21ae070f9255bdfd6d5c09bf7a0 SHA512 084514d1362b52e85c0b4d92b8d18c6d2e9fddb4e4eaf4467f8b1c0985f9ceca1b74a0478581d91164935ae0f49610771860c674e080137e52aadc65b666911b DIST elixir-1.18.1.tar.gz 3356562 BLAKE2B bd710e847b2b52255bdcae76793f7f4570a101bd05aec89a4a5ad639febd008309d644db6799e899f46e3a7ba7d9b42e943ec7db04bf983d2c236ccb78292ecb SHA512 ea17f4cb96cab4c4302a304fa8119952ee96b85494f76a6df4e5806f72fa169a2139753600aacd1341f500587d51fabee25a1bf3deb5d838d5ef0d50f0654f76 +DIST elixir-1.18.3.tar.gz 3391654 BLAKE2B 3ada82301c882e9979196a7012dabf85cf00141792c85b7058f55f3db05edd4561bcaf98310824dc673b229246c44a963b72a869aadfcc44ca40bf4fe959eb34 SHA512 bf56c69ab7768c6d08b42bf42b062db8d7a063ec6971e5f21575f5502f7d954fe4ab77dcb83cbb4d72dcc53ec91a396e3738adabcc52e83cb375296989054df5 EBUILD elixir-1.14.5-r2.ebuild 1118 BLAKE2B 74b30f3045dc0c727661a5f876f03c1e248f7d6fd6495a69e0fca48c630337c7a197069fad6e0be8daa99726b7830e4e5f38b0202af6a444c86700a9a9b8bda3 SHA512 4ab546f1918461f7e8fce2132b49b7bf5a4f1b9646b44b96aeb2d81b43fdc67bd6f057e49114bc5aab762c85c6b7e4816b0a96489dfe01c1c4e85695b941a27f EBUILD elixir-1.15.7.ebuild 1013 BLAKE2B d3a57e16376d96cf438be208fcc63aa6713fc5c85c370765e56a56b2291477aadd73b680eff630f3ea604248ce9797d49181f2534f8f5b934e43360a21133875 SHA512 cda24844929eafabeed65b7d121eec63b1499732d631adf33b50d302ac5dbd443804dcaa90dd088f38f95fe84e69d9f6b7cf7b84aa6cf9f2cf2ab80b05654789 EBUILD elixir-1.15.8.ebuild 1016 BLAKE2B 38ed745bb173bb1cbc7a04cde4eec072618d99020f66ea624b71ed14fb58be9d5368d9aa03033c9126130626a00cf6a1f907c9e41a27147fc85c81eaff3a6ec9 SHA512 db38f2e8d9b7aff16020b1a84d4b898e4444c49b5e39d54f2f361befe17ccfabecced60323ab6bbb8b613007abdd2dd3a6a3a409f058d8f73806fc98e1daf45f @@ -20,4 +21,5 @@ EBUILD elixir-1.16.3.ebuild 1002 BLAKE2B f2b1477a5ea6b1c324c326cb576f7c82e5985bf EBUILD elixir-1.17.2.ebuild 999 BLAKE2B 6eb05e0f3ddd4db24227957791eb26a21d690cbfb5733898f49dfa549e68f356e10a230ed3c9adcd145de7632d98b24bb88521bb348a808369a9acbf5a2aa3f1 SHA512 ad871091ab8a436937a88c4ae4dc4b733571cf7c5d90e1e5bcf583cc5b6304899abb3102e43b528900a77a1bdea9d5b4240825d3a7b86e50feae45009c6071da EBUILD elixir-1.17.3.ebuild 1002 BLAKE2B c382db1d4be9ba4bb6bba5bfca16d62a57d109ad57bce94dda71fd68ada1b9cdfb2904849401c36c7b7f7e7efa2455eeab0b4d6a5069016617ccada59c7999f2 SHA512 e9d531d7f481d85c1b0a4530b5088ed608204f89fa28f4eaa0e5b0760d507b8d247606e956af347f5fb3ca6c9931697a8fdf97a30edfc0500138817fdb8da3a4 EBUILD elixir-1.18.1.ebuild 1002 BLAKE2B c382db1d4be9ba4bb6bba5bfca16d62a57d109ad57bce94dda71fd68ada1b9cdfb2904849401c36c7b7f7e7efa2455eeab0b4d6a5069016617ccada59c7999f2 SHA512 e9d531d7f481d85c1b0a4530b5088ed608204f89fa28f4eaa0e5b0760d507b8d247606e956af347f5fb3ca6c9931697a8fdf97a30edfc0500138817fdb8da3a4 +EBUILD elixir-1.18.3.ebuild 1002 BLAKE2B 18af9979c73d6294aefceb5289039a9e495c7d60ec7dab807bffd2b58d8f2d0d885e3893712362e17bfce1169b0268bac789b484de74cca5fae58346163ed454 SHA512 806e1151b009124fb52f50eb172014d05cf343cc40c7170383f185c2facb7166b74987a0c3c9b8ca5224590c899f7e30f9664eca9e65fb9d780ed953b8be2230 MISC metadata.xml 724 BLAKE2B ae59dba7153a9cdbeb0ed45acf54cf733f07ebc1b43896f88ff09686ecbdd56553e92f7733e5f556d01e622cadb85a24da879799b0f742d7e257425db1f300b4 SHA512 43cc4435aa89e2ba8edaf8f4cead814c514fac07a7c0500f3f7dfe35d2da6f75f835df0d21d862be6dcbffbd9c6e5ea32b21296048ec903c1491ccfd4854316b diff --git a/dev-lang/elixir/elixir-1.18.3.ebuild b/dev-lang/elixir/elixir-1.18.3.ebuild new file mode 100644 index 000000000000..b0636298755e --- /dev/null +++ b/dev-lang/elixir/elixir-1.18.3.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2025 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 ~ppc ~riscv ~sparc ~x86" +IUSE="test" + +RESTRICT="!test? ( test )" + +# https://hexdocs.pm/elixir/compatibility-and-deprecations.html#between-elixir-and-erlang-otp +DEPEND=" + >=dev-lang/erlang-25:0=[ssl] + <dev-lang/erlang-28 +" +# '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/execline/Manifest b/dev-lang/execline/Manifest index 92766699469a..77ad3fb506b1 100644 --- a/dev-lang/execline/Manifest +++ b/dev-lang/execline/Manifest @@ -1,5 +1,5 @@ DIST execline-2.9.6.0.tar.gz 111660 BLAKE2B 42baed36228b1e6a370d6d4c18829be7f517812ce9e3838e5b102d0fe58ac48ecd84f17caef89e9a07b3b149ed9b38b3b00f7eef810c231995c8e5ecbf07a770 SHA512 1c5233b0f17b4c92ab2e9e8700b47c8429ad97962bcb7c83190d0b3251b26584e591d77418eca77e8112cdecd24eec50aaca7da1dbb506120931bbda39f2b7cb DIST execline-2.9.6.1.tar.gz 111566 BLAKE2B 199fe6ac6a08b48537abd7868db1332b60bff8e2fa19ba697e15a6d8b0d8969908d0740fdfcf4717fbbc1a75d980a6f2844b1015e52afed26ce1eb450d4e48bb SHA512 86e20a63926cc03cb81e07c9cbea9da5d0384436a82b93e331da6b3ced33829baf5adae4286d2c053b21474d41602d53804ff0bc280da60f7bccc64cbe5f601e EBUILD execline-2.9.6.0.ebuild 1132 BLAKE2B 8ac47516f9f4d89f44a6b86988a6df1a1f5639868f24f29691a1e6f4f9c7cd1e46520e82f37577d6bf31e81200e70aee08e4cbc6966dd4274772a0e65307dd24 SHA512 97932b7287d2cd30b625425de149bb3ca701e2902637146c90cd6e6ac8251b0e533832b060d93efa5efb66415c0aa5392ddb49a17ddc200e6eab6752663578dc -EBUILD execline-2.9.6.1.ebuild 1135 BLAKE2B d772b43ae63801febe3450deca71d89e62e3195af05e569f59cb1acefd7d3b87956861d665a1e13e963d79052ed90cde92c6e40b56180fd9bf3ffbde3562546a SHA512 82f6a85dff699956ee962e0ce582b08c068de0bcdeffdc6fea36269f00fea77a9b0d82da2217641419832249228d08ac11c7a370af53aca6d3b462cf723f9607 +EBUILD execline-2.9.6.1.ebuild 1140 BLAKE2B 56b8184ffc01ecf9ddd6a1def81871fb4669a64dd42ecf8ab11069df545c494c56adb97dd9221e81f0e7b22db30f6a5bb026d1bf728c7b4d3e553f9bc092d2d7 SHA512 388ac6c69f5385c751afc97b31ebb0095a6149e6bb326727505320756e7510263b0ad8df9f20cf7d3eb89d0d506218bc182cdeb6e8a7ebd96e41b4bbb5d183d6 MISC metadata.xml 585 BLAKE2B ce0671014512c49b041f6c47002603a15f0f5d7f23c356465fff024506fb261096aa757cc1c707501f5be572cea9d925a25039d1549d31852ffaf9b2f17b5cb3 SHA512 bddd917f615e8ff772889a4da992c9201f6e32982374ffa29e7a8c3fce8d7a4f409c3b3ffe8c989e7802c2b321d6cfc5bb37017aa75dc38e3026c1de48bb0090 diff --git a/dev-lang/execline/execline-2.9.6.1.ebuild b/dev-lang/execline/execline-2.9.6.1.ebuild index 6eff46cb134a..31c5544aebf8 100644 --- a/dev-lang/execline/execline-2.9.6.1.ebuild +++ b/dev-lang/execline/execline-2.9.6.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -11,7 +11,7 @@ SRC_URI="https://www.skarnet.org/software/${PN}/${P}.tar.gz" LICENSE="ISC" SLOT="0/$(ver_cut 1-2).4" -KEYWORDS="~alpha ~amd64 ~arm ~mips ~ppc ~ppc64 ~riscv ~x86" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv x86" RDEPEND=">=dev-libs/skalibs-2.14.0.0:=" DEPEND="${RDEPEND}" diff --git a/dev-lang/fennel/Manifest b/dev-lang/fennel/Manifest index 49c79659cb0e..b8ad2f340022 100644 --- a/dev-lang/fennel/Manifest +++ b/dev-lang/fennel/Manifest @@ -1,7 +1,9 @@ DIST fennel-1.4.2.tar.gz 301195 BLAKE2B f5a124725b4d2573275f179090b0400ed07dcc50d6ae661dd588887b8774a2cb48ab9f720dfb7bc7049d1e353f430e75da48e9a08b716cc1a80e4e09bf269bc7 SHA512 13b6020314d010566c7521b85065a446e09f8a0cfec9b9cb4bc2e23fe59369d105538bcb8a3a7cd865c399742d98a1742da932f8bde993c1136422f803069071 DIST fennel-1.5.0.tar.gz 304755 BLAKE2B f7e7661b48925a40194aa8feaf2baf3209fa50ed87ae6e1c9976484682fee91206643cb7361200ca7f30f55a89e4534f1dcdf0e4a6bf73e084229e86979c5490 SHA512 64403e187cf9fa8939784cfeb518d26e52aee4eac3533592021e5c45864a16f1e1f6a7fd95838110f38ec8478eec7f78b961b70fc79c89da5959de81230b1e22 DIST fennel-1.5.1.tar.gz 306440 BLAKE2B c3c75d9ed5e0b01072e757389a7f242d04c6b1c89c8d97c24a9e17cfb2bb10bd8f28b5ddb28f3b5a37f7c7de49b8498caae96a2ff150f7293d5e7c46c49d89e9 SHA512 723f85d62ffc8fc2a958ba52ae491681274ed0b300352cf49067a3456b6f074e74e1540ae27ca102a3e7ccb47e32b3c4dbec6346ae2ede7282903246ef8c5b1d +DIST fennel-1.5.3.srht.tar.gz 309957 BLAKE2B d08458a0a5431a3d3152a59aeef5790441e222b6834f514f8cda2d75a97437a09cc16d11d70b3d776f89245d507173907c9aed2e021e5b3b1277631e0d86b7d7 SHA512 96f36e130598a14f2644f2b31f2c3d4861d498a690ee3f9a8ff3b10af4c7cbbef8b6cab448479e65eb7b3653513e3e915c6cf167d52eccb1f94300edf4c2225a EBUILD fennel-1.4.2-r1.ebuild 1090 BLAKE2B 74a02106decb97dc192f7447d83f164508d41232c74c235320cddf4bf0f3d06eea3edd36f5749bdc1fd7a725842561a4f04631cd55e43add20c9e4c612a10f60 SHA512 733d00292745a9cd078a3b56ee09ec92f7c0a46e9d075ccdb46dcff6126a9aba4e225afb23fdcb5bc2ae6ec460357aa57035d992f6a74e015e2628f2eb0b6f64 EBUILD fennel-1.5.0.ebuild 1086 BLAKE2B 7b90ba8fb917774c961ceadf3911e8b6aaee977c571d3c9381ff9de28dff52cb2b6e59bc19dd04f3bf8595f33635c7d9d8c6a98eff7417d7554e690a0736400c SHA512 76fe57a282b5251ce9d345466700dbd8957683d65e79f85d0393d43b2a46032c7c014041b20e47031a027133e5e9d9a38c08e57e1a81350842a1cd0c017d38cc EBUILD fennel-1.5.1.ebuild 1135 BLAKE2B 63aa38caa15456366a660fecf2ee24d8b97a31f4fcd3c91b4cccc4b9511feffce3fb049e74957b7770071ddd56a035b9173e35347bb30c9df0d32f890108108b SHA512 12d9df891f40d9ec860481a958201f5d36128e56acda7acef21654939f1b9e51b9a283b754d0e1f24dad9d80d5c6093ba4c161d734045388db22bf100fbc6aba +EBUILD fennel-1.5.3.ebuild 1140 BLAKE2B 631f2d2ba0a1b347a5dda21998ead977475a4bbc78d6d2f46a3e0bd77f7f78ef4e11ad4e8fa78348d2e0feee514cfd32e4eada590c95675035cfdf127ca12385 SHA512 11bd58258f2a1b3d5290660bb0e958f6fb4c0127ddf3377109f737554cb86764d5191aa7c82b3ebfcfd2e927f0a9889cb73f656a2d8645b0cd6c5166ba1e697c MISC metadata.xml 1061 BLAKE2B 49ef84fd44f2efd7526055bfc6fd1a37fa0d426a0746d769844ad6fd4ae1efc7dcc541f61fe6f3d8e0e92cb324c6bdfb061312c15ed1d696cf1985aa4cb4097d SHA512 3381a38c5c2ae6482325e6aeea556db767cc6166e89280511d0597c06fbc532a6592d526954f8b1fd40badcac7a951eece9f6aeaf18802f85ca16ccb5da4510d diff --git a/dev-lang/fennel/fennel-1.5.3.ebuild b/dev-lang/fennel/fennel-1.5.3.ebuild new file mode 100644 index 000000000000..41e1ba92efa3 --- /dev/null +++ b/dev-lang/fennel/fennel-1.5.3.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Fails to build 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/ + https://sr.ht/~technomancy/fennel/" + +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}.srht.tar.gz" + + KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86" +fi + +LICENSE="MIT" +SLOT="0/${PV}" +REQUIRED_USE="${LUA_REQUIRED_USE}" + +RDEPEND=" + ${LUA_DEPS} +" +BDEPEND=" + ${RDEPEND} +" + +src_prepare() { + default + + # Turn off failing tests. Bugs: https://bugs.gentoo.org/906351 https://bugs.gentoo.org/923281 + sed -i test/init.lua \ + -e 's|"test.failures",||' \ + -e 's|"test.repl",||' \ + -e 's|"test.macro",||' \ + || die + + # Uses network also fails either way. + echo "" > test/irc.lua || die +} + +src_test() { + emake test +} + +src_install() { + emake LUA_LIB_DIR="${ED}/$(lua_get_lmod_dir)" PREFIX="${ED}/usr" install + + dodoc *.md +} diff --git a/dev-lang/fuzion/Manifest b/dev-lang/fuzion/Manifest index c07321a13440..b85ca86cefd1 100644 --- a/dev-lang/fuzion/Manifest +++ b/dev-lang/fuzion/Manifest @@ -1,9 +1,6 @@ -DIST fuzion-0.086.tar.gz 994894 BLAKE2B e698ea7b8de215c55e84e0f55f405156d5c386c1001c7b29e0c7c49e7a7e7babf7cb64cf30726a24aa7b6ccdc0eaf01cc543867361e2554f258d76be1fc08b97 SHA512 6d2df12d1dced9c5a61bb183767fc205ddbc0d04db8cae3f5e3eabd9ab60f18b3c2b3fa8f57702dc792882b1a6f79da1cfcb7801d84ecc2cff1844a4bc226f67 -DIST fuzion-0.088.tar.gz 1123270 BLAKE2B 3d68c136a862c02955b4a15e6cfe4d41a63a106c47289f7fdfe0af2b0119ebe26cbd9c6920c8b5311c756264bdd33d46f4b1108869427f83d55a350c2ab52e6f SHA512 b0fb1ea4175912684b4759ec58a91bc25d963fa2fa6234116fa91a63d757d9af5da9e20a3fdcc340fe956c01026d4b74c7a12dac40a0b7826d74c567b4e3383a -DIST fuzion-0.089.tar.gz 1235399 BLAKE2B b6814b9032e06481c4801c4519423f5019febb46390596941d3811fd053ceab66b3612cd6185fbda71eb14a6b1299bca80b572f27f90729a3713aad3ec1f675d SHA512 4eb7389c4346f15a8a75344d448f6ec35ae91615daba57a8cc2f220a7f6827fcf1de569da2dcf573f8a645640e3f2cb8e2c2a4acd9ad83fd83deca2addd75bdc +AUX fuzion-0.092-Makefile.patch 946 BLAKE2B e538c19d6e902c8ee18ffa377b01ebd73f85459b7c70af6535530620e66c0d958bafb72d128a56a2399f0a9c27bc8a8f74fb1968051ab8324a8ac10215908ee6 SHA512 e200cf6001fd9ed06ebe59a402a707ab1456ebe5c4d7c43cf8cafa0ac0aa8d6b05b7ee480a2fd1f74ab810208be8f75596bdbad2f5d439e03b630721cc99fcd3 DIST fuzion-0.090.tar.gz 1271502 BLAKE2B 88d97759fb1213cdb2a428b6fdb4b3f2a662295530a07765b10b1308608d63d8e75ca001d10f07d92a05c0e6c8d6df491edc9f8a981727255df8cba5ca0f4ca7 SHA512 4f49c2673bfa36321688ce7b5d26f74b57b84b1b95dc5e67c9c3c526a92e6cdd6fc7777e3814117982b29198e5de500250000fa58387d91085f602fe037cf948 -EBUILD fuzion-0.086.ebuild 1494 BLAKE2B ba674aebb775f0318b932eb43ceb3221eb5ae3eb9316c607b7810a0ec64551f184fb36082d95eca9b14ae2e301f35745f684b390b68d8c1b5355be4906e081ea SHA512 d77030ab157f1654eac06d08d143091705a291f3fd58f5e7be8576bde63f76a01ded59ec2fb04997471edd1514f2eda249f8e3fbed126fe1cae01fe4d800cab6 -EBUILD fuzion-0.088.ebuild 1451 BLAKE2B 4b6444a25ef87948af012b7d3faff28e1c1f978402d2478d3df421d4428d4f3207cbde5b34961f03d94cea7157114d357d3d746657e536af71145ca8f2ce928c SHA512 1805f37a6ef9fbc783e54d4aae2379d3e2f5725139b7d07e37d0a8d6f1ece7ea81f6cb61f17aa5fc9aab582ca0b1250b2d795117218030ac3eceead662b3daf7 -EBUILD fuzion-0.089.ebuild 1677 BLAKE2B d8e72b16c4c4033026ea8fe176c92b3dc978763ff5d3b947f2c54bf2a9d2261031e3173eaa092f5f527f21a25f3134383a034b43265303b8eee90d933020d042 SHA512 2861c6070ed45dcef6a5e058cdbe3fbdd804ac335791f342223200091a6cb600fb718c478bd5e7255f4038d8ffd1628bc7f3115ba5d40dd53d1729590ddc3f5e -EBUILD fuzion-0.090.ebuild 1677 BLAKE2B d8e72b16c4c4033026ea8fe176c92b3dc978763ff5d3b947f2c54bf2a9d2261031e3173eaa092f5f527f21a25f3134383a034b43265303b8eee90d933020d042 SHA512 2861c6070ed45dcef6a5e058cdbe3fbdd804ac335791f342223200091a6cb600fb718c478bd5e7255f4038d8ffd1628bc7f3115ba5d40dd53d1729590ddc3f5e +DIST fuzion-0.092.gh.tar.gz 1385098 BLAKE2B 627bb676ccf1a26630c390d6539290591f2949683a2fb8ebd1c70922417a099371785584aa16879a4a67d7e54324722e44e1dbd1fd6f7404670873b82a6d01be SHA512 aae9c57b121275a07fa819d8ce84efb26f6068460f907353b1f3c1b9f15c844a943ff7f8db5707f6609d6b9f4f3833616e765e025da7732b5285f0a764400be5 +EBUILD fuzion-0.090.ebuild 1676 BLAKE2B dce26c72918b719d3f27bb6195dd6bbc96694c4e6fde098a6f2f59586d502bcb0f9ab31dc0d30e8ecf39d4c00cd2bc940f0f2a24759859914d437c645833e91d SHA512 f419e32143532c316e8f75efaa9788c0bac800fa2763d229675628d96c37c0c1c71eaf023f581fc0c1f46cd3835106658c581cfd5f3c8c6b0fd555eec8b29254 +EBUILD fuzion-0.092.ebuild 1882 BLAKE2B 8014e5bc9b3c2b77efcf6d2d6c00181870cbe9dbb1503549042cc25b71b6308b6ccc08a2837e492f0c2d6c13bf84603fdd3214083cda046123307a57ea9058b7 SHA512 c6a68196a8aa4b867c7afde07074f67ef1477befbce170238508ca3977040410f88c9702f6a0f440d6a9072cde3b66a7c072618feff2b7aeb354f5fe9351c4f8 MISC metadata.xml 690 BLAKE2B d4e29609d56e8784a8653d928595ee20f096c9a1e408afda2fab5a79c1be188769b84e7b69a6e0b8d5004f9c648c75ee634f2c25d8422d04b0c621079de12b92 SHA512 df41bd000885fea2428ce7c6c675c3a8c50f450902311bf36b8fc9b6ede41f6c4b070eb3c1b77dae70aa63fe13fa9c0b13f28a1481f70df0fd2d29d1c41579d2 diff --git a/dev-lang/fuzion/files/fuzion-0.092-Makefile.patch b/dev-lang/fuzion/files/fuzion-0.092-Makefile.patch new file mode 100644 index 000000000000..c64e53cd7358 --- /dev/null +++ b/dev-lang/fuzion/files/fuzion-0.092-Makefile.patch @@ -0,0 +1,28 @@ +--- a/Makefile ++++ b/Makefile +@@ -35,6 +35,9 @@ FZJAVA = $(BUILD_DIR)/bin/fzjava + CLASSES_DIR = $(BUILD_DIR)/classes + CLASSES_DIR_LOGO = $(BUILD_DIR)/classes_logo + FUZION_BIN_SH = /bin/sh ++CC := ++CFLAGS := ++LDFLAGS := + + ifeq ($(FUZION_DEBUG_SYMBOLS),true) + JAVAC += -g +@@ -1438,11 +1441,12 @@ ifeq ($(OS),Windows_NT) + -lMswsock -lAdvApi32 -lWs2_32 + touch $(FUZION_RT) + else +- clang -Wall -Werror -O3 -shared -fPIC \ ++ $(CC) -Wall -Werror -shared -fPIC \ + -DFUZION_ENABLE_THREADS \ +- -fno-trigraphs -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -std=c11 \ ++ -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -std=c11 \ ++ $(CFLAGS) $(LDFLAGS) \ + $(BUILD_DIR)/include/posix.c $(BUILD_DIR)/include/shared.c -o $(BUILD_DIR)/lib/libfuzion.so +- cp $(BUILD_DIR)/lib/libfuzion.so $(BUILD_DIR)/lib/libfuzion.dylib ++# cp $(BUILD_DIR)/lib/libfuzion.so $(BUILD_DIR)/lib/libfuzion.dylib + touch $(FUZION_RT) + endif + # NYI: eventuall link libgc diff --git a/dev-lang/fuzion/fuzion-0.086.ebuild b/dev-lang/fuzion/fuzion-0.086.ebuild deleted file mode 100644 index 58830e864440..000000000000 --- a/dev-lang/fuzion/fuzion-0.086.ebuild +++ /dev/null @@ -1,81 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit java-pkg-2 - -DESCRIPTION="A language with a focus on simplicity, safety and correctness" -HOMEPAGE="https://fuzion-lang.dev/ - https://github.com/tokiwa-software/fuzion/" - -if [[ "${PV}" == *9999* ]] ; then - inherit git-r3 - - EGIT_REPO_URI="https://github.com/tokiwa-software/${PN}.git" -else - SRC_URI="https://github.com/tokiwa-software/${PN}/archive/refs/tags/v${PV}.tar.gz - -> ${P}.tar.gz" - - KEYWORDS="amd64 ~x86" -fi - -LICENSE="GPL-3" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND=" - >=virtual/jre-17:* - dev-libs/boehm-gc -" -# jdk:17 for https://bugs.gentoo.org/916689 -DEPEND=" - virtual/jdk:17 -" -BDEPEND=" - test? ( - llvm-core/clang:* - ) -" - -DOCS=( README.md release_notes.md ) - -src_prepare() { - java-pkg-2_src_prepare - - rm -fr tests/sockets || die -} - -src_compile() { - emake -j1 -} - -src_test() { - emake -j1 run_tests_parallel -} - -src_install() { - # Remove unnecessary files from build directory. bug #893450 - local toremove - local toremove_path - for toremove in tests run_tests.{failures,results} ; do - toremove_path="${S}/build/${toremove}" - - if [[ -e "${toremove_path}" ]] ; then - rm -r "${toremove_path}" || die "failed to remove ${toremove_path}" - fi - done - - insinto "/usr/share/${PN}" - doins -r build/. - insopts -m755 - doins -r build/bin - - local exe - for exe in fz fzjava ; do - dosym -r "/usr/share/${PN}/bin/${exe}" "/usr/bin/${exe}" - done - - einstalldocs -} diff --git a/dev-lang/fuzion/fuzion-0.088.ebuild b/dev-lang/fuzion/fuzion-0.088.ebuild deleted file mode 100644 index 53f2508756d6..000000000000 --- a/dev-lang/fuzion/fuzion-0.088.ebuild +++ /dev/null @@ -1,80 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit java-pkg-2 - -DESCRIPTION="A language with a focus on simplicity, safety and correctness" -HOMEPAGE="https://fuzion-lang.dev/ - https://github.com/tokiwa-software/fuzion/" - -if [[ "${PV}" == *9999* ]] ; then - inherit git-r3 - - EGIT_REPO_URI="https://github.com/tokiwa-software/${PN}.git" -else - SRC_URI="https://github.com/tokiwa-software/${PN}/archive/refs/tags/v${PV}.tar.gz - -> ${P}.tar.gz" - - KEYWORDS="~amd64 ~x86" -fi - -LICENSE="GPL-3" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND=" - >=virtual/jre-21:* - dev-libs/boehm-gc -" -DEPEND=" - virtual/jdk:21 -" -BDEPEND=" - test? ( - llvm-core/clang:* - ) -" - -DOCS=( README.md release_notes.md ) - -src_prepare() { - java-pkg-2_src_prepare - - rm -fr tests/sockets || die -} - -src_compile() { - emake -j1 -} - -src_test() { - emake -j1 run_tests_parallel -} - -src_install() { - # Remove unnecessary files from build directory. bug #893450 - local toremove - local toremove_path - for toremove in tests run_tests.{failures,results} ; do - toremove_path="${S}/build/${toremove}" - - if [[ -e "${toremove_path}" ]] ; then - rm -r "${toremove_path}" || die "failed to remove ${toremove_path}" - fi - done - - insinto "/usr/share/${PN}" - doins -r build/. - insopts -m755 - doins -r build/bin - - local exe - for exe in fz fzjava ; do - dosym -r "/usr/share/${PN}/bin/${exe}" "/usr/bin/${exe}" - done - - einstalldocs -} diff --git a/dev-lang/fuzion/fuzion-0.090.ebuild b/dev-lang/fuzion/fuzion-0.090.ebuild index d03f017a294c..d6fcfab4654f 100644 --- a/dev-lang/fuzion/fuzion-0.090.ebuild +++ b/dev-lang/fuzion/fuzion-0.090.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -17,7 +17,7 @@ else SRC_URI="https://github.com/tokiwa-software/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~x86" + KEYWORDS="amd64 ~x86" fi LICENSE="GPL-3" diff --git a/dev-lang/fuzion/fuzion-0.089.ebuild b/dev-lang/fuzion/fuzion-0.092.ebuild index d03f017a294c..68a61542736b 100644 --- a/dev-lang/fuzion/fuzion-0.089.ebuild +++ b/dev-lang/fuzion/fuzion-0.092.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit java-pkg-2 +inherit java-pkg-2 toolchain-funcs DESCRIPTION="A language with a focus on simplicity, safety and correctness" HOMEPAGE="https://fuzion-lang.dev/ @@ -12,10 +12,10 @@ HOMEPAGE="https://fuzion-lang.dev/ if [[ "${PV}" == *9999* ]] ; then inherit git-r3 - EGIT_REPO_URI="https://github.com/tokiwa-software/${PN}.git" + EGIT_REPO_URI="https://github.com/tokiwa-software/${PN}" else SRC_URI="https://github.com/tokiwa-software/${PN}/archive/refs/tags/v${PV}.tar.gz - -> ${P}.tar.gz" + -> ${P}.gh.tar.gz" KEYWORDS="~amd64 ~x86" fi @@ -38,43 +38,47 @@ BDEPEND=" ) " +PATCHES=( "${FILESDIR}/fuzion-0.092-Makefile.patch" ) DOCS=( README.md release_notes.md ) src_prepare() { + default #780585 java-pkg-2_src_prepare # Remove bad tests. local -a bad_tests=( - basicIntegers + catch_postcondition nom onesCount process - reg_issue3178 - sockets ) - local bad_test + local bad_test="" for bad_test in "${bad_tests[@]}" ; do - rm -r "${S}/tests/${bad_test}" || die "failed to remove test ${bad_tests}" + rm -r "${S}/tests/${bad_test}" \ + || die "failed to remove test ${bad_tests}" done + + rm -rf "${S}/tests/"{compile_,reg_issue,mod_,sockets}* || die } src_compile() { - emake -j1 + emake -j1 CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" } src_test() { - emake -j1 run_tests_parallel + emake -j1 run_tests_jvm } src_install() { # Remove unnecessary files from build directory. bug #893450 - local toremove - local toremove_path + local toremove="" + local toremove_path="" for toremove in tests run_tests.{failures,results} ; do toremove_path="${S}/build/${toremove}" if [[ -e "${toremove_path}" ]] ; then - rm -r "${toremove_path}" || die "failed to remove ${toremove_path}" + rm -r "${toremove_path}" \ + || die "failed to remove ${toremove_path}" fi done @@ -83,7 +87,7 @@ src_install() { insopts -m755 doins -r build/bin - local exe + local exe="" for exe in fz fzjava ; do dosym -r "/usr/share/${PN}/bin/${exe}" "/usr/bin/${exe}" done diff --git a/dev-lang/go-bootstrap/Manifest b/dev-lang/go-bootstrap/Manifest index e0d188575039..7403cef7a9c1 100644 --- a/dev-lang/go-bootstrap/Manifest +++ b/dev-lang/go-bootstrap/Manifest @@ -1,4 +1,4 @@ -AUX make-go-bootstraps 1440 BLAKE2B 9ff79d6209a5b7b9b843e66e800155d738b8c2164af38b410ec71cc7c9b4737d2fa89be90ad122e3afe355ceb8268ca8cc82e2f615f046f77cccca894f0ed9e6 SHA512 0d815704dcda842f9873073e15f7b533741d472386e6424b0262cf010fa5ec1e03e484fffb5c400b07abf7a8f121ae900e4991d7aceb3c810e25dd3bfa9194ce +AUX make-go-bootstraps 1568 BLAKE2B 1570c17b5908c3bfaaf6fc67ef6326744f91f9cc289f1db01cb8706f8ae9e81913585ee8c507f2612cbe10f472e77ba9a55163b61ce30d7102049d65c9cbb097 SHA512 280112d98672cf0d8fea95faefd87c758ce4a6df33e3dcd3b756a0aa5c107337b136d845b63e285629ebb83661eb8f32bb0ab13c2bae8ef835e8084d0b9ddf3f DIST go-1.20.14-darwin-amd64-bootstrap.tbz 94549781 BLAKE2B 604d6b183b6be19f98f330a73fd07db1824442b14c3870447340e628b3fd13c87972d9a192f888e329b1d0337a48d66651f35c0237e4a5a609091e73385925d7 SHA512 ef2b179a096319dca8cd3907ad7c9d80bc61d409ce198a323073fbceb3b6ab3f5752eaeeb8f37f9287ba1c009f5e37da341e359228d0509ab766340f61a10c68 DIST go-1.20.14-darwin-arm64-bootstrap.tbz 92159553 BLAKE2B 28a95dafd3126e95fd997744ca20385bf634c3bc08be5698bc314c8e902e261d66ebae754492997562ba3bd2635f68ad8173cbd84aa6e59bcf38fe0c2cd35a65 SHA512 1f39a132037f9b1141cac752c20c34da0f87583dba9094965ffb7f65015d3d5273a1b63201e1f68e00d436aa1b1d79972f6f50a195a3d5799f012fb3fbaa20b6 DIST go-1.20.14-linux-386-bootstrap.tbz 96049477 BLAKE2B 63e52312a2ea5edf9fc3aa2f6dbcf7438ddaa5d41705426ee6e1060d56ff7837e6b16e74e90567aa96b1e1b90088503936614caf5d41f3a83dd278cc252975f1 SHA512 c9fc51ce495b3b48915e8da2bb404adfe59c957480dbf174491c63b528f7e0fc4bcadbfb8395a2885cc83523e9245c0e4718637313b4fbaeb53bf0f18be0c7ce @@ -15,5 +15,22 @@ DIST go-1.20.14-linux-ppc64le-bootstrap.tbz 90575770 BLAKE2B 0c76ba27d41d329a7c5 DIST go-1.20.14-linux-riscv64-bootstrap.tbz 93091456 BLAKE2B 197811a57c728ef546b9660328ab6624b87ae085e98264e5b3317fc66581fc0ee8ef95af3040c07a6cebfe30da88d209bf5bdb8ee11a647b716fa3122031724a SHA512 a3faaeaac90354a9be130d01108c8fdb178a0427d7dab0362c570428216ddd362f55044021082cbbb466f3a69458869d4978bd28652f7a4e55295d357c9c7c54 DIST go-1.20.14-linux-s390x-bootstrap.tbz 94671247 BLAKE2B 7ff60a7c1245b66cbe852662589fe3a87c4fc29a1134dd46ad76272b9bc619b7ffba823374658a0f8d54a440d808d3eb8d97788483bbe69628bda167f4377109 SHA512 bc6c7efddfcc90fe2f1bbb2dee7f4396eb5b478eee7236216ca00c5bd4ce1dc0e3315edb58bf6ef3f7a7e5c45950e6f5be9163cfffd1cf5c36004aaa4916a1b7 DIST go-1.20.14-solaris-amd64-bootstrap.tbz 95085901 BLAKE2B aed378201db555121bae1ab049d44b297dc922d7cd977c3d6f2dbff1b3cc46f59a697a211c244ed2f012d5c8ea6211501527512325188e34a3ccd2946ef6dbe8 SHA512 22a8b79ab2eb08319d1d9fb517458cdafd1a4fcbba2da70935d65ccdcc3808978ca0dbb045a7cfde2ca43eb6effd3ce687d2f99ee24dedcae9967b414fd6fe57 +DIST go-bootstrap-1.22.12-darwin-amd64.tbz 64955332 BLAKE2B 8b5f2a60f2e2d250e5e944decaafe4bbae02b989467a30ad01542b5b95820b2bd5127ce42467e82d10bcdd6985b097b2b38a6e61b19071916b8f9dfab04b8ea7 SHA512 d143031c7032620460190618ccbc0112dd0f01e2cf64c48a75b554538be0d49b979d02050189e81a50b4f172bb5ffe4db5163936c1d8a6bfc09c5e2ea12bbed8 +DIST go-bootstrap-1.22.12-darwin-arm64.tbz 62274977 BLAKE2B 2fb43878eff785652fa41edbcdb9fbb7c2d54b3f012a594a8c14d997a10b31aba347fc93a9887b39cad5b1817e9249224e22fba3a2ced90241c75f93b9eee2fa SHA512 161312a2a8ea953215b006ff73cf2e0345db4a7079429fabe022e2a0f3dfa2dba441bf05b0ef9450d39a20f4d2e5ac1a5d1dd659030551a996c869670d0e4bdc +DIST go-bootstrap-1.22.12-linux-386.tbz 61905608 BLAKE2B 036006e1d73663c9adc0746c1e6b048df0630fd6dcb35513e3085f92225e71e3e0678b551d9b6bcae8efbb71684c0718bf49d06941661c88f56c4e9473464778 SHA512 be643e1a327221ccffe6b9bdeeeea38b6bad0fcea9bd8305a774a0a93103042f3f96b2d51983d87f92971cb71d8f1817a3da57048646a8b76f83641fae94bb36 +DIST go-bootstrap-1.22.12-linux-amd64.tbz 64061301 BLAKE2B eee49d2ffe36dc50bdffad69bc2e106736f62e04d1bca3da55400f47f032f2bb79ef772eb6eac0f9fac17bc340770a6bed5c86e4968da4c8613d032bff4dd426 SHA512 3ba2083435af5be97cd02f36d27d100b62285d1f680d519309619d47e07fd0184a4dbf92c5f00b2c661b62ffc66ab03e0add0331a122730e35270a2dc9a83b5c +DIST go-bootstrap-1.22.12-linux-arm.tbz 61282567 BLAKE2B 4ca77e3d4488973f4ea190003d9ab181de0bb6a216074bbc85118e39420e03749bb83b326d1f5221a8ca117e78656af15bfde3e28b1b276d999476892ea87e59 SHA512 0d3a8fa91872c94de22bf07969573196593b556592c017dcdde794dd620cee92d1ac33a2d3505cd1d3ca55df167595b82c18991e7cb06d8399a6d25adf3bf6fd +DIST go-bootstrap-1.22.12-linux-arm64.tbz 60296549 BLAKE2B 29417911aa5c9096c1fddb6bff4684865c873a51a2acbdf8fff18556cd3d920d92bce6df8cf8401e34c187ee44dd840e521bd9457aef76ba8948170ef755e337 SHA512 7bb3a375a65eab9d5e5a66bf070948034734af245b4cb06825009fb10f122a7a41f0f718f3838e2a8d37dcf8440348c1dfbc12370f65651388c473400850e84f +DIST go-bootstrap-1.22.12-linux-loong64.tbz 60917942 BLAKE2B 59904642dcf0874afafb714dc31e2dd71920615d45f4111933661786921436a20f10bd1625e3742f040d250934b103f9ffe37f317ca1ba55dd92bd96bbb759cf SHA512 f170b92ed621a7ec0c83c77b4cdd8ce7ccac3fa05f659a40cbf729b3e28a20181dc0295464ca627100cc8141e3a3d7f05e0a811d55d7abf661020faf7511755c +DIST go-bootstrap-1.22.12-linux-mips.tbz 58135007 BLAKE2B f84fddc176549fa3b903c307c90df9b5177d79322b61b6647795fbdfc728fd9d642c7eda0634e41f6ed3563c5fdc1ce7d4d26ff179a19c60270ac9c9752cae03 SHA512 eb0642cbf7f5cef2ea40809f98fb66f882236defb948c0034deeb6e7b332ed7eabda6f4028bd417d1b6a48c06d7c970dff818f54dd9f20db3bcff9322070382a +DIST go-bootstrap-1.22.12-linux-mips64.tbz 57252236 BLAKE2B 1ef06b548fbeb7fbafde5119b62259bec42e234deedc48e7909bd5699eede30dd5ef019416879959e302775f7e685079e1f8ebc393c48c8b6321722d5ed139cc SHA512 ade5f0e2b5d9de43e09bf281b6ce83784684a03e6fde5197283efba24bdefba20d938378f0c6d7a31db74762a0542de1473f866abf41f0e6271d140f993c7b6e +DIST go-bootstrap-1.22.12-linux-mips64le.tbz 57548639 BLAKE2B edb1866b1940f3c213f3a4090086e4be814947bccf5b27b492584e241ca3a723bd5b895d87d4fb8e68cb50b7f046aeb76f734a17290e61a4cd1e1b1b9bc42238 SHA512 2956596b9ae5c98b5b78d95db68ce424857510bcdcb82682bb135606ada8c987ac888840de9b4e0b3700120734665b8e880590d459ffd249c426baef61c964ae +DIST go-bootstrap-1.22.12-linux-mipsle.tbz 58434883 BLAKE2B d926b7990b8e458bbc8f0890a29ae1959b2e1926e8e29a708a7076ceb53e02c0294f15708dcd8a99e1141d09b519dfa686a164e3e81faa793ba0b2e0a2a4b93d SHA512 ca5cf6fb254267e66d80a6a140da3bbeee532f2c8200370e81db315cd4e88837f9fc640f23286b843f6bfb432a10f7b53a63da14f0bb0538fecf7740f3657ac5 +DIST go-bootstrap-1.22.12-linux-ppc64.tbz 59542900 BLAKE2B 81ed60e3f64f76bd8f97aac7a79f4026fc7f4a644e92ed011d7b4295398ef52838dfcef2e8c9e8163bf7f2949611a77246a086bcaf713755768a147690656b2f SHA512 b6230a2dc29cd5547e15f06bcfdb5f74a6060ce5050c0ac9a4ab1ee3c4046dbea22a7f59ad8351302d2d697bccee0426edd27105b67b6c0d330e655db3ed7036 +DIST go-bootstrap-1.22.12-linux-ppc64le.tbz 60214299 BLAKE2B 9506975d7ed9170c28078d6d10bf9fcbd11040368360803964c178f015dba5fc73e3a8e69af62e00cea014a712a2dec619e39826255f7c15ecc160ce9255b97d SHA512 3c24fe4979b7c6c3eed39fd7ba477c32d68c6555126085696d54531323f6c96776f83ace18bb4b0a305827bbb5449bfabf90fe9bc4bdbf74c99392b0a69a10d6 +DIST go-bootstrap-1.22.12-linux-riscv64.tbz 61337982 BLAKE2B 04bad675e1d0bbd7578acf8ac545b09bb0542cc8336b3e7ed0d62c0a2620ab63c3d1e28644bfdce984130ef851d19e59375ab9ffe8e3cea6f9dbb8cd0ac56246 SHA512 b0002a0a1fa976b1b575920053bb88cd89fb5b76ff1e34bde1ef001cc87f70541a60f755d9dd9d898ca05bfb59a4b79e6892082f43b5cb78c62c8703b14c10d1 +DIST go-bootstrap-1.22.12-linux-s390x.tbz 62183020 BLAKE2B f6fb0f28e2e24523b49263cc5f74c7d0c54e7933ce56fd3c6774b4d003cc0d8ae774d86133f84cc475bb6270b2c3f44f6576f81689f38e8fffd679f097d0963b SHA512 34144ead46490c57b486f01ca86e78025c45b74c721128047095bab02fc9e31c7681e172f4726bb87d422889eb78b3e9762de242e7c9eb1770ac322edb1c933f +DIST go-bootstrap-1.22.12-solaris-amd64.tbz 63917252 BLAKE2B ec274db725ae7e27174e708c8e719494a2053de01d829d594c29d16c23576bd1118968855b0b9ac4e904817c3f06ce6ac49301d749f3c8c4615066d92af5f5ea SHA512 22021ce136c6885a5f90cb42a6f8683c5ad1f6dae5f2f6f0c296556ddc571ec4d5b0c200b1739dda6121d717729a1f1ab27eeac46d9589187d96105996423d0a EBUILD go-bootstrap-1.20.14.ebuild 1905 BLAKE2B fa27a4c302b5f21f27f8dda30c46d4b776452fff4d68147623beecbbf73e21ded056cebc91efd315615f765ee438405ef3fb0d1a8ae4826383922b4a758e3e2f SHA512 ae4485db8e3765d1bd9373b5f1b5ab9bef21156361bcfde98ca4fe24c589e85c1d04520de403f2a5663ca23c3ce863f32324b44304419a92c63d6de6ca0dd42c +EBUILD go-bootstrap-1.22.12.ebuild 1686 BLAKE2B 1d1b743aed78a812044e5aef122fb695dfe9dec253a72b6aa8428f972360034697237ec332bd1055cbe849ca3b734996f985a504b4437122130def46560dbc95 SHA512 f9712a8c0b5b7d6350dcf8f668f19ce1f0b36a6813649e098dc1fd3c4b01c73c36182b441e143429c8dce2c30586f7f6c87c859e32b4a68c991f5c8809295483 MISC metadata.xml 416 BLAKE2B 160ffa2aa64cbf398e08b31e47fc4d44dd4488b1f416bcdd2aa67269588c6869c3aecfa98d697c2930b1d8f7843117ff3d1e3fc665e796022276fd2e37cb6518 SHA512 8a75c24b4fc5f61c612fb297b3ff761bd30884618aba4bafedcc1bed1a091584275a03e673365cc5f91d3f7f021409528de418d4361e3a250bc67ad747f0a5fa diff --git a/dev-lang/go-bootstrap/files/make-go-bootstraps b/dev-lang/go-bootstrap/files/make-go-bootstraps index 8340dbaecfd8..6ad27296b57e 100755 --- a/dev-lang/go-bootstrap/files/make-go-bootstraps +++ b/dev-lang/go-bootstrap/files/make-go-bootstraps @@ -31,25 +31,23 @@ go_tuples=( solaris-amd64 ) -go_version=$(go version) -go_version=${go_version##*go} -go_version=${go_version%% *} +go_tag=$(go env GOVERSION) +go_version=${go_tag#go} +go_repo="https://github.com/golang/go" build_path=$(mktemp -d /tmp/go-bootstraps-XXXXXX) -pushd "${build_path}" -git clone https://github.com/golang/go.git -cd go -git checkout go"${go_version}" -cd src -for tuple in ${go_tuples[@]}; do +pushd "${build_path}" > /dev/null +git clone --depth 1 --quiet --branch "${go_tag}" "${go_repo}" "${build_path}/go" +for tuple in "${go_tuples[@]}"; do printf "Building go version %s bootstrap tarball for %s\n" "${go_version}" "${tuple}" + pushd go/src > /dev/null GO386=softfloat GOOS=${tuple%%-*} GOARCH=${tuple##*-} ./bootstrap.bash - rm -fr ../../go-${tuple}-bootstrap + git clean -d -f -x + popd > /dev/null + rm -fr "go-${tuple}-bootstrap" + mv "go-${tuple}-bootstrap.tbz" "go-bootstrap-${go_version}-${tuple}.tbz" done -cd ../.. rm -fr go -for f in *tbz; do - mv "${f}" "${f/go/go-${go_version}}" - done -popd -mv "${build_path}" "${build_path%-*}" -printf "The bootstrap tarballs are stored in %s\n" "${build_path%-*}" +popd /dev/null +final_path="${HOME}/go-bootstrap-${go_version}" +mv "${build_path}" "${final_path}" +printf "The bootstrap tarballs are stored in %s\n" "${final_path}" diff --git a/dev-lang/go-bootstrap/go-bootstrap-1.22.12.ebuild b/dev-lang/go-bootstrap/go-bootstrap-1.22.12.ebuild new file mode 100644 index 000000000000..e590f0e854ac --- /dev/null +++ b/dev-lang/go-bootstrap/go-bootstrap-1.22.12.ebuild @@ -0,0 +1,51 @@ +# Copyright 2020-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Bootstrap package for dev-lang/go" +HOMEPAGE="https://golang.org" +BOOTSTRAP_DIST="https://dev.gentoo.org/~williamh/dist" +SRC_URI=" + x64-macos? ( ${BOOTSTRAP_DIST}/${P}-darwin-amd64.tbz ) + arm64-macos? ( ${BOOTSTRAP_DIST}/${P}-darwin-arm64.tbz ) + x86? ( ${BOOTSTRAP_DIST}/${P}-linux-386.tbz ) + amd64? ( ${BOOTSTRAP_DIST}/${P}-linux-amd64.tbz ) + arm64? ( ${BOOTSTRAP_DIST}/${P}-linux-arm64.tbz ) + arm? ( ${BOOTSTRAP_DIST}/${P}-linux-arm.tbz ) + loong? ( ${BOOTSTRAP_DIST}/${P}-linux-loong64.tbz ) + mips? ( + abi_mips_n64? ( + !big-endian? ( ${BOOTSTRAP_DIST}/${P}-linux-mips64le.tbz ) + big-endian? ( ${BOOTSTRAP_DIST}/${P}-linux-mips64.tbz ) + ) + abi_mips_o32? ( + !big-endian? ( ${BOOTSTRAP_DIST}/${P}-linux-mipsle.tbz ) + big-endian? ( ${BOOTSTRAP_DIST}/${P}-linux-mips.tbz ) + ) + ) + ppc64? ( + !big-endian? ( ${BOOTSTRAP_DIST}/${P}-linux-ppc64le.tbz ) + big-endian? ( ${BOOTSTRAP_DIST}/${P}-linux-ppc64.tbz ) + ) + riscv? ( ${BOOTSTRAP_DIST}/${P}-linux-riscv64.tbz ) + s390? ( ${BOOTSTRAP_DIST}/${P}-linux-s390x.tbz ) + x64-solaris? ( ${BOOTSTRAP_DIST}/${P}-solaris-amd64.tbz ) +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="abi_mips_n64 abi_mips_o32 big-endian" +RESTRICT="strip" +QA_PREBUILT="*" + +S="${WORKDIR}" + +src_install() { + dodir /usr/lib + mv go-*-bootstrap "${ED}/usr/lib/go-bootstrap" || die + + # testdata directories are not needed on the installed system + rm -fr $(find "${ED}"/usr/lib/go-bootstrap -iname testdata -type d -print) +} diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest index add0cd8a434f..f4b099c923b9 100644 --- a/dev-lang/go/Manifest +++ b/dev-lang/go/Manifest @@ -1,8 +1,8 @@ AUX go-never-download-newer-toolchains.patch 368 BLAKE2B 0c90f46492af80622f430b2d506b143f3b553b5276085f78f41b93fee8219745179038302462603b5b1677554d92911eb4865084d0488aaa4c71ae1abc307f71 SHA512 b5acf97ccf96c6a353fcb7bd97113c38562defd82338828124fcc72c71334feda9c4e839d2aae5b66b809bc8a692eac96396c54a478e17a7ffd8d2c68fea95e6 AUX go-sets.conf 256 BLAKE2B 670afd72a2fa961e2b3882ac48d10e9d047af7a68f47bc8c8985b2de7a84022410fb1acfe2c710f8b3804ec3b043bf18c948478cf7d31c982cff47714b309cdf SHA512 028fba72c2d82ef893416970c27cb277be15f7c5c67773c0a62cd8ce2c192813ba851339596f10a6f5394c479e67b62dd4e4520379cc03f764ed4a4ab834fba6 -DIST go1.22.11.src.tar.gz 27565913 BLAKE2B d4b8f746846f0ba45307ecf732e035c2628483d59402f0868bc42a2fd1ae3447f61d9c3a6eacbc28b1f25e0b35b99ccf8831baeba4203601810b09267d8743f6 SHA512 40c133d6008df7c7cc3bb95a41c29f7442a6af2dd78b807007daf732471c88e2c641aed32878414d57be3904e5efa580d2ecd13fff5412ee668e753e50f1356e -DIST go1.23.5.src.tar.gz 28179014 BLAKE2B 6fe6101054a0c10ce415aea65367a48ef8397c88d66bad01b7c72107a6c60daf0b9a47f7c1cd6c8da9855ab04309f25941cc867e6a9f90ac51d1ab0c54662313 SHA512 b04317afeab2d0ced7c36b8682dd32ac085d95d874cf3f614daa34859d7f7f2b75138132e7a64e237c6b4d711d5b03a4d20533f92a44840915630f4ea7cfafa2 -EBUILD go-1.22.11.ebuild 4269 BLAKE2B 4f68f69cd7123c8186629bfe4e0f42e2f8d4db558e8a939aefeb2a3cbc9c7c86446800576b588453fdf46aef1e0d5e52b2fd515308229cfb659b6b6f8da6cb57 SHA512 0af5d8ff7b751548c54ddb89b2274d985d75f8c6a66753c43c5404a8571438cc7fb172739d8b87314c8a25ee70a4b33bda20e40f34e01c34b5860bee8933184d -EBUILD go-1.23.5.ebuild 4169 BLAKE2B 669634e579bebaaf2da2dd7d1538254ab3ee1040ad17ee261584beac4c08e435803f055012c7b5084cd4fe7c43d76a5d936d4d578d485b99f1b38061790108c5 SHA512 603e2ef3a0b17f80639c6e55589e3a5f25a434a1c54c4ba4eb292b5a52e3cccb586b338016c0f987f6bc45bbec8f8bca2f416262b2b692a9db0082f76fe4197d -EBUILD go-9999.ebuild 4275 BLAKE2B 999d762e2e2f5ce0586e8a43c1919f9e89925a66b04a9926715498f8dbb848ea01af63ffe81e1bf10728a69af1cfd3719d5498be9daa16d225195bc844dd6600 SHA512 892d0ac84bd6f430f9b57984973e295ac5851ff22f14e9aee33be014c642013b0dba937b2106f086684685bd2c57b923d66b725eeb9460dc69039a8bb6797cdf +DIST go1.23.6.src.tar.gz 28179132 BLAKE2B 25c988547604c35de65aedfdee5af9f35f7a1c43f634c0147373d9c86baf2bb10068463f70013ef60acd3088149eb16502958b1ca63d7cee310e32eaddf1578a SHA512 c504476d42cdbcd1b6afe53c0974e82c19eb0efac974bc06d41c1641440676891cfe6416455a0cfc81fe82902a9b82ea0a1d95089c676667d05487e45f5e04e3 +DIST go1.24.0.src.tar.gz 30663922 BLAKE2B 1a74d268ad2bcfd4773eb9d24f0618491680a5347edba60606b3f50144e2d8879509b2640046e5fa535ff126958deb49c4224443210e3bd79523e65208b616e3 SHA512 36ba9a3a541208fd33aa49b969d892578e209570541d2b6ca6ff784250d8b6777597d347b823c6026acf0c2741b4abc9012693004e623a1434b06cfecdbebaa8 +EBUILD go-1.23.6.ebuild 4175 BLAKE2B d1e34e725ea51929715268d3009f5035967231a4a35c59779c898d352d3d0d9a8a6b03fee8a847215ff2b057bdf980fb11b6b905b33ee3ccc8a215eb348d5317 SHA512 8d792f83f8abf11353fa5009fa29a946cc7e0c8a2f2df7cf90e5acae8aaa68c2cd239ef03c324a61316bb217ea14f0b6d7514101c5d158f3b3bc3beb74dade27 +EBUILD go-1.24.0.ebuild 3362 BLAKE2B 4d13c4a48301f709c139ce59240f7692fe2b81463a8366bb4675e9db4ab25fd0ca780a1a0ae87dcaa3d65254e39afb4c03f56c59446c6b515f503af8ef0e5451 SHA512 2e88b9ba06e1499f1d109aa3785aeb17d4660f7eb1726089062f992e0a9c3979ed18e930cab2732bfb159a3cf6780dd163579200c4e6966d6ca5798368d54456 +EBUILD go-9999.ebuild 3363 BLAKE2B 49672850d9c2e09b4263d4fa7211608251a080be138abeef75fd4602db68e346f7591832e18ef3248a37519af5c9126f192c908549bbcb62d1e09a764aaacd7f SHA512 99ed1c3388e560e851213dc6239a2da268818fa6fc74f068e912af05f3794b49d1bc26de8d6047a961d7596dbe46a2aaacdf97a15e792dece609bbfa9403ff19 MISC metadata.xml 589 BLAKE2B 341e4c0e91d73ca668c1795035e1223eed60f85c724afd989ef1f8fb69649f7f6eaaf8a5228f6c8f587ffcc40a438c47d332fbe6866839f5a0829872a983f642 SHA512 fe58ddddfbd4d0d060516cb035592a80c0f48e125bb59c95d3c6fac0c182271e2a9ec9bd055b9cc8e6cb8c449e6c483bff4a23c362f532c24255febfdefc273a diff --git a/dev-lang/go/go-1.23.5.ebuild b/dev-lang/go/go-1.23.6.ebuild index 7958019d7f93..8e165768f1e3 100644 --- a/dev-lang/go/go-1.23.5.ebuild +++ b/dev-lang/go/go-1.23.6.ebuild @@ -36,8 +36,8 @@ SLOT="0/${PV}" IUSE="cpu_flags_x86_sse2" RDEPEND=" -arm? ( sys-devel/binutils[gold] ) -arm64? ( sys-devel/binutils[gold] )" +arm? ( sys-devel/binutils[gold(-)] ) +arm64? ( sys-devel/binutils[gold(-)] )" BDEPEND="|| ( >=dev-lang/go-${GO_BOOTSTRAP_MIN} >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )" diff --git a/dev-lang/go/go-1.22.11.ebuild b/dev-lang/go/go-1.24.0.ebuild index bd8a9171cf67..733c24241546 100644 --- a/dev-lang/go/go-1.22.11.ebuild +++ b/dev-lang/go/go-1.24.0.ebuild @@ -7,7 +7,7 @@ export CBUILD=${CBUILD:-${CHOST}} export CTARGET=${CTARGET:-${CHOST}} # See "Bootstrap" in release notes -GO_BOOTSTRAP_MIN=1.20.14 +GO_BOOTSTRAP_MIN=1.22.12 MY_PV=${PV/_/} inherit go-env toolchain-funcs @@ -20,12 +20,8 @@ case ${PV} in *) SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz " S="${WORKDIR}"/go - case ${PV} in - *_beta*|*_rc*) ;; - *) - KEYWORDS="-* amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" - ;; - esac + KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" + ;; esac DESCRIPTION="A concurrent garbage collected and typesafe programming language" @@ -36,8 +32,8 @@ SLOT="0/${PV}" IUSE="cpu_flags_x86_sse2" RDEPEND=" -arm? ( sys-devel/binutils[gold] ) -arm64? ( sys-devel/binutils[gold] )" +arm? ( sys-devel/binutils[gold(-)] ) +arm64? ( sys-devel/binutils[gold(-)] )" BDEPEND="|| ( >=dev-lang/go-${GO_BOOTSTRAP_MIN} >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )" @@ -88,10 +84,6 @@ src_compile() { die "Should not be here, please report a bug" fi - export GOROOT_FINAL="${EPREFIX}"/usr/lib/go - export GOROOT="${PWD}" - export GOBIN="${GOROOT}/bin" - # Go's build script does not use BUILD/HOST/TARGET consistently. :( export GOHOSTARCH=$(go-env_goarch ${CBUILD}) export GOHOSTOS=$(go-env_goos ${CBUILD}) @@ -110,30 +102,22 @@ src_compile() { src_test() { go_cross_compile && return 0 - cd src - - # https://github.com/golang/go/issues/42005 - rm cmd/link/internal/ld/fallocate_test.go || die - PATH="${GOBIN}:${PATH}" \ ./run.bash -no-rebuild -k || die "tests failed" - cd .. - rm -fr pkg/*_race || die - rm -fr pkg/obj/go-build || die } src_install() { dodir /usr/lib/go # The use of cp is deliberate in order to retain permissions - cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go + cp -R . "${ED}"/usr/lib/go einstalldocs - insinto /usr/lib/go - doins go.env VERSION* - # testdata directories are not needed on the installed system - rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print) + # The other files we remove are installed by einstalldocs + rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die + rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die + rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die local bin_path if go_cross_compile; then @@ -146,21 +130,4 @@ src_install() { f=${x##*/} dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} done - - # install the @golang-rebuild set for Portage - insinto /usr/share/portage/config/sets - newins "${FILESDIR}"/go-sets.conf go.conf -} - -pkg_postinst() { - [[ -z ${REPLACING_VERSIONS} ]] && return - elog "After ${CATEGORY}/${PN} is updated it is recommended to rebuild" - elog "all packages compiled with previous versions of ${CATEGORY}/${PN}" - elog "due to the static linking nature of go." - elog "If this is not done, the packages compiled with the older" - elog "version of the compiler will not be updated until they are" - elog "updated individually, which could mean they will have" - elog "vulnerabilities." - elog "Run 'emerge @golang-rebuild' to rebuild all 'go' packages" - elog "See https://bugs.gentoo.org/752153 for more info" } diff --git a/dev-lang/go/go-9999.ebuild b/dev-lang/go/go-9999.ebuild index 485f2a1bde8d..f371daa2831b 100644 --- a/dev-lang/go/go-9999.ebuild +++ b/dev-lang/go/go-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -7,7 +7,7 @@ export CBUILD=${CBUILD:-${CHOST}} export CTARGET=${CTARGET:-${CHOST}} # See "Bootstrap" in release notes -GO_BOOTSTRAP_MIN=1.20.14 +GO_BOOTSTRAP_MIN=1.22.12 MY_PV=${PV/_/} inherit go-env toolchain-funcs @@ -20,12 +20,8 @@ case ${PV} in *) SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz " S="${WORKDIR}"/go - case ${PV} in - *_beta*|*_rc*) ;; - *) -# KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" - ;; - esac +# KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" + ;; esac DESCRIPTION="A concurrent garbage collected and typesafe programming language" @@ -36,8 +32,8 @@ SLOT="0/${PV}" IUSE="cpu_flags_x86_sse2" RDEPEND=" -arm? ( sys-devel/binutils[gold] ) -arm64? ( sys-devel/binutils[gold] )" +arm? ( sys-devel/binutils[gold(-)] ) +arm64? ( sys-devel/binutils[gold(-)] )" BDEPEND="|| ( >=dev-lang/go-${GO_BOOTSTRAP_MIN} >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )" @@ -88,10 +84,6 @@ src_compile() { die "Should not be here, please report a bug" fi - export GOROOT_FINAL="${EPREFIX}"/usr/lib/go - export GOROOT="${PWD}" - export GOBIN="${GOROOT}/bin" - # Go's build script does not use BUILD/HOST/TARGET consistently. :( export GOHOSTARCH=$(go-env_goarch ${CBUILD}) export GOHOSTOS=$(go-env_goos ${CBUILD}) @@ -110,30 +102,22 @@ src_compile() { src_test() { go_cross_compile && return 0 - cd src - - # https://github.com/golang/go/issues/42005 - rm cmd/link/internal/ld/fallocate_test.go || die - PATH="${GOBIN}:${PATH}" \ ./run.bash -no-rebuild -k || die "tests failed" - cd .. - rm -fr pkg/*_race || die - rm -fr pkg/obj/go-build || die } src_install() { dodir /usr/lib/go # The use of cp is deliberate in order to retain permissions - cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go + cp -R . "${ED}"/usr/lib/go einstalldocs - insinto /usr/lib/go - doins go.env VERSION* - # testdata directories are not needed on the installed system - rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print) + # The other files we remove are installed by einstalldocs + rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die + rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die + rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die local bin_path if go_cross_compile; then @@ -146,21 +130,4 @@ src_install() { f=${x##*/} dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} done - - # install the @golang-rebuild set for Portage - insinto /usr/share/portage/config/sets - newins "${FILESDIR}"/go-sets.conf go.conf -} - -pkg_postinst() { - [[ -z ${REPLACING_VERSIONS} ]] && return - elog "After ${CATEGORY}/${PN} is updated it is recommended to rebuild" - elog "all packages compiled with previous versions of ${CATEGORY}/${PN}" - elog "due to the static linking nature of go." - elog "If this is not done, the packages compiled with the older" - elog "version of the compiler will not be updated until they are" - elog "updated individually, which could mean they will have" - elog "vulnerabilities." - elog "Run 'emerge @golang-rebuild' to rebuild all 'go' packages" - elog "See https://bugs.gentoo.org/752153 for more info" } diff --git a/dev-lang/ispc/Manifest b/dev-lang/ispc/Manifest index fcd0a9a67233..9cad2a1d7cf0 100644 --- a/dev-lang/ispc/Manifest +++ b/dev-lang/ispc/Manifest @@ -1,3 +1,3 @@ -DIST ispc-1.25.3.gh.tar.gz 19805596 BLAKE2B 6e98d2297b2b9b7da32c74328c0b3883a7bd7dc997624ed5c5eff1193779b28a29b6e505ec09f6ba471f0b3ba4b3c603561717311a370bad5350d7e898b9d5f1 SHA512 12bbf7b15d6ec97658d46d65d1c02103bdada4101dcaa2ebb5c8477c39934a588d1035371ae09636c0fa73267f4d714579b8fffcd8690d4f3d95eb12436908ab -EBUILD ispc-1.25.3.ebuild 2085 BLAKE2B 35020de6dca6931fc0f089ad2d38017da2935094cea28070b9da0d3b6fd3ace3264f49072498f6aca4ca488cb3bd3f4915ba255824ed2c328b35b7ede1ad3462 SHA512 7959b1d591d171bf69063daa3f631fa5274c3277ccdb6e8538397c19770b94d1ecba64a1bd449e366431d276aa3ce3a9f37a8dc87aefa90f0c3d63049421b18b +DIST ispc-1.26.0.gh.tar.gz 19849065 BLAKE2B db4f287dc0e2a6292875223dfe7b799cdd020384d505b60c13811b782bafd564a2adde4a5d1ca222efac77bfa218670af57dbd129e0d47db001b2c71e5f9aa61 SHA512 bb24cab35d3463b181da2b47ebf6c0836e82a5daff18b2edfccb0d83a066d2c70c30038391b4bcade5e3177bd004068c9ae8c523f09dcecb94d02a8b9e38a2c9 +EBUILD ispc-1.26.0.ebuild 2085 BLAKE2B 1d73c4e6a27c699ee094742659f3fa943577ee121a00d43ae251bc7ef301bb5590e04947a7bc95bd14680518f24364dd205982cf453794602b34e0c54894bdd5 SHA512 8370e180ff034c9f0ae831ccfc706052c153d4d72801673969843e767b9b86fb01b5063815a6aaeff75e1b0daedf231f19382af446be97f5469a527c5ca58412 MISC metadata.xml 509 BLAKE2B b605dfbff352fab4fcc58ad46f89f97d5db8522de237a0623021c521231798ad00b2b8cd82ce6840d86cfebbe185e6e767e8d0ec276b03a68554ecad20e6b96d SHA512 eae5fcfb0d56190f969ac83012624965b00bd757d8be0bbafce74ab1ea119dc4ee0c33076dd447fabf0a6a6d5f1e2783b54f6c59ebd7aa0a35a4a27df7db01f9 diff --git a/dev-lang/ispc/ispc-1.25.3.ebuild b/dev-lang/ispc/ispc-1.26.0.ebuild index 4ead5bc63352..74dd086bd123 100644 --- a/dev-lang/ispc/ispc-1.25.3.ebuild +++ b/dev-lang/ispc/ispc-1.26.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 diff --git a/dev-lang/jsonnet/Manifest b/dev-lang/jsonnet/Manifest index 18047d90eb5e..96786b91413c 100644 --- a/dev-lang/jsonnet/Manifest +++ b/dev-lang/jsonnet/Manifest @@ -7,5 +7,5 @@ DIST jsonnet-0.19.1.tar.gz 22480685 BLAKE2B 7d86bc963f5ced622e91adf015c250b8cae2 DIST jsonnet-0.20.0.tar.gz 22481277 BLAKE2B 65d6a45a903d6f494bbb79fb92c484b2a5167fc5fc379f4acb131778e1779aa580fd249baf3309fd00fa9b2a3b129360bf9d2cb0a3a738bd03c5fcec7dc6bd32 SHA512 d46d2521d4389d05f91a16ecd9f181be1853f674a9264e9fac23e413f1084dee947e80682af59603e15e443061a0beb50a30c14c858853e10ed1ae7187d09730 EBUILD jsonnet-0.19.0-r1.ebuild 2128 BLAKE2B df21dbc4afbca5992a0a8841c155aa63ddb83eeb716c7257c185097688fa87a8a2fb706299bcc19e0235acd650249034a7e2e39b1d8ebec7987d97dee10e4ebf SHA512 b9c20cd3cb195500537c9df8c47c59c1de77e2fcad365447297651de0c787085b5d2abb132aac2407ecf8f82b63e4a7e58f3de275aaf929ff5b9fecf4bf4f678 EBUILD jsonnet-0.19.1.ebuild 2139 BLAKE2B e7190af8fbe34753a46876881b1bac40d2f1b5f221cfd039abe3438b23cad4649b8ad91581f14626b36d7b108675654e6ecdf20cb327038bcd6d8da8fbee114d SHA512 d5da70267a27785c57b7be29ff92c87d7469029e7125d08ca9eb379a8891e3886b404789b1ddfe656a5753da620b1a0122041ab047bf90511364727cf8484ffa -EBUILD jsonnet-0.20.0-r1.ebuild 2153 BLAKE2B 163c162e5d1079d3014e1066432f73f5cf9bb2dd5942581691dcf2f48ebc3fd6cc8eb6027a2ab01c1a070cf3252e127e1ae05357c0de946f4b04c4375ca9cf7c SHA512 e32c7e6f3db93bce239d4fa58e06f66b5281cee132f2d8b9a32ddc647cda77748ac90fdca64fe6d59c3998a3d7ed60ea089d89486be48302d0913dc16fbc924b +EBUILD jsonnet-0.20.0-r1.ebuild 2162 BLAKE2B 212e1ec307f24854c37a24eee607a16f7a29b2caba0a02add17df25bf4d4ee708f37fdcddabf77f638739e57f872e356490767106385ad459e48c3921b61e07b SHA512 ffe0eb7168f3f9967bd803d606d5fb1dafb292e43819b48ef36dd04189940243e41bb44216e473dee601f98e6908a5b7e7a119208ce266c7eba0eac7bea3c67c MISC metadata.xml 636 BLAKE2B b4f30bead9e90492366ba9d8fd393cfa6610efcb1dbe7cf11307445f2b7aa596585b576e550aa0df3bcfd14c7a8b068d09040ea94dc815db76d6d15e0f09fccb SHA512 a106617bce041fc24e1fab61d08add74f450742e7c1be14633cd49b5137c86cf52bd5baf9ea8f5f2f51a90619c7dfad7e6bf749894d8e4df8063857f29a0492a diff --git a/dev-lang/jsonnet/jsonnet-0.20.0-r1.ebuild b/dev-lang/jsonnet/jsonnet-0.20.0-r1.ebuild index d3e555a11be7..1e7f58c2550f 100644 --- a/dev-lang/jsonnet/jsonnet-0.20.0-r1.ebuild +++ b/dev-lang/jsonnet/jsonnet-0.20.0-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 DISTUTILS_OPTIONAL=1 DISTUTILS_USE_PEP517=setuptools DISTUTILS_EXT=1 -PYTHON_COMPAT=( pypy3 python3_{10..12} ) +PYTHON_COMPAT=( pypy3 pypy3_11 python3_{10..12} ) inherit cmake toolchain-funcs flag-o-matic distutils-r1 diff --git a/dev-lang/jwasm/Manifest b/dev-lang/jwasm/Manifest index 26ee7297df5d..762e63847d44 100644 --- a/dev-lang/jwasm/Manifest +++ b/dev-lang/jwasm/Manifest @@ -1,9 +1,9 @@ -AUX jwasm-2.11-types-test.patch 1761 BLAKE2B b719bb79504e708925bfa407e72df7a37044b834bc3118fa9baf1a0cb478a0ab852872147148462188324954ef958af30cbcbca28fc992660276a15100ecb1b6 SHA512 0a4f3e613c8e724939ce9e23f8f4ce10ca89bf6c1579929719b3ccad62ac66cceecc3f8799c20c2875b7d4dcc7390bf0e4ca64aa08aab0b39bd7a4ab381b150b AUX jwasm-2.18-makefile-dep-fix.patch 280 BLAKE2B fe4abbede4922a66adcde0296c5d2421cefc4d4c387f000b7fc0f675bc980c6f51a57aaad52b243adb88a64063c6e63e5da4b937bf7baa589b7ee98473520917 SHA512 95ac9ce92ff9ce10771f304a029073da8be48f81c5f81a269c1785a6a94e9228c9fb348750a624b969aeefe687d5ab1416967f470b762cc26719acbe2a9a8f3b +AUX jwasm-2.18-missing-includes.patch 1483 BLAKE2B 748f1c4e7fc5600270f9cfbf2f9da25b5cae1d4f59b39f38989ae8cfa6d52d098310bce865e69748d9fbe7cdf2a50b343e9b36849719e7b411a7514af8ea09c4 SHA512 47431ca5a9dc1c50dc0f8b84160d80c1fff654350893870f1a308a8b2f2401e5dde7d97bc11f31e6aceb69b134d5345c678904ca720882c6b6907bf5286ea5ff AUX jwasm-2.18-types-test.patch 1471 BLAKE2B 87c696bc22e8fb9584be5e6fde14dfaa9bf62e4e74ad2d4d542e07ac08be4591ecc920553d5b516d12518c7b35d626ef8121e0e8cd2c03e20a6ccb027e5f42b8 SHA512 ac7af52f85ebf430722d731518a6f8660369feff6d1318590c436b1080a0785b1a73e166235752e3b6631f86a9e19e8e7da76f628d2ba918bdae14db535df270 -AUX makefile-dep-fix.patch 497 BLAKE2B d0fc87c0aff19689efa2440c7d90d3f0d7c80310e40dad6f4dd938e139d5458b5e4ae72153cb38242ae683c887ce085494f358e3f67c2be028adeadf176403ac SHA512 29526a14d7a6bc775d6cd590b1c75a864eb04c365de736e93c810d715760ac4d76b6691f05f9077adec9c6938aefa8637d6efd9db67c81752e604308fffd64e6 -DIST jwasm-2.13.tar.gz 578365 BLAKE2B 8c6fbe3e6cb56c0fe8135c30c629534d2b6e2a2ed534249834e0e2674bf6635cb15ab94d4fa05c5378cb0db8569ddc3ba49d2d7c9615b7ddb769cba1a2d5b715 SHA512 03f80f4a74b39c6093f5cd5334364f7458836a52ad01279c95683e7053cb4211c40235e16f6f2ee40bc7316dcd8a4fbcb57bf3606d31249d96d01933a8aa0563 +AUX jwasm-2.19-respect-ldflags.patch 863 BLAKE2B 8a8dbd84a0d730d82d38921bbc7ff14919dbabeab90b9ec287425d235b8e243d9350f32666c32e7b6be2dc40180a76acaaf00e34ee2302a99518a4bc5f0fba18 SHA512 096db75a960767bfe9df068b90dc83c060997bbb31c7589abb0cfdf9425bf405d50b71141882c3c489f151c08e4a7a81ccd6501ed6467aeaf6d055892db68ff0 DIST jwasm-2.18.tar.gz 1169949 BLAKE2B 2a5d6c37f27dd5193390a5b5ab7d7ec260a800ead132dda4a49b16b5ae43b53ef397b663166767c8f4ce2de69dd9fa61e59e0537d837ba85da38cb17aa0da6e0 SHA512 f5ca9d2ec80b979e2acec7246861e13e11717917f59df126f28339e3c1ded3405c8a93daaef6ee817bc217d593151010bf18c85c9fc03600ff70cb18e793309c -EBUILD jwasm-2.13.ebuild 770 BLAKE2B 33703e3a7a239568439286ca9f05dc33c679bd70f7255047295cd8e883a7207efa53c5ee484e74687469ca86e743453b679e5eb35a423b46666dfbd1b2f64d5d SHA512 238fceaf1b4f2f5d27345ee462a7e174a4a345d609173d6a6202c346544482277a1e579a133f4096af419ecb94108d7496ea5e261d3f13c13e8f1ca279598445 -EBUILD jwasm-2.18.ebuild 795 BLAKE2B 5e1808902a079f9f5c140e297adc6ef5c9d28140609cef5fdf26ff40ed0a7470589dabbaa4efcaa8891df07ad6fc6354658158bde4713f16bc58de210a5e175b SHA512 b60a20031d097c233e2e71c2d8886cffd3aabc6f16ff3ac79eb18c20b894305d9d181af8dba4528e5fc0170ba7057ab1f2fa44aa3d2c72f6aff140d9c61d39d9 +DIST jwasm-2.19.tar.gz 1187558 BLAKE2B ab932d61fddcb8b422ae8b4be43bc4d7b8a3b229b4f720768c69d41302b47d1fe1cf1d2761838f97ac4241a7e5cf2ca3f8f23cc4636365caca38e3c66a38924f SHA512 0b017f0f43d36a74faab2bc2da4023cc933f3b0c81eb65c59a98d0dedee20eaf6a5979943c387f39e34a188b5a7ec787e8effc61d1e70635b795e106e52399d0 +EBUILD jwasm-2.18-r1.ebuild 989 BLAKE2B 53ae6fb3b9bcf3b36902290c9cea281294155aa3f671dabb4c964cadde6b2df87f189d384f65a031219bdb232bc96abf797f1787b15eebec653a59eff9467074 SHA512 f3ce0795d889989be346d0a32326a62a5c858ff8e9bdc645accd5ca1efc0975cf1a70c52c94a1185beef997bde5675b115977119f8eddc382111d31767331b91 +EBUILD jwasm-2.19.ebuild 949 BLAKE2B 264ea3bdd328ab323f2d74e1f5b7f0ec6dbe5c0027a906ea973cc9e7ae25c02e2f5d9d4c6387108c1df4d1da70f1c9320c9abbf38eee14439e72c34ef2423f2c SHA512 c7e0487d8d17c53ee435d141448dc0566c8b0dca8b182cc4fb0f1d990a8c1c71be0691ba45625afe5bdc7bddc2be3d4c7a0fbbdfd408b6a5d0442c9e826064a2 MISC metadata.xml 307 BLAKE2B c7eb2546ed5af50a82d536311203f569ef0d7450c7b3a40cf342ede488b4b1cf5bff66a3b54e0eb9c201e3468f1f76756a88f989a60ed9d528f3d5124abd302e SHA512 6f5dfb2ca18c019747390572a642bc7172a98ef80b9a099bbe08b561713e81c025eb8b14c391465ea2678dc0e00fc7bcda4d367ae8d27cfb65f7893f129cc907 diff --git a/dev-lang/jwasm/files/jwasm-2.11-types-test.patch b/dev-lang/jwasm/files/jwasm-2.11-types-test.patch deleted file mode 100644 index 047d1d005510..000000000000 --- a/dev-lang/jwasm/files/jwasm-2.11-types-test.patch +++ /dev/null @@ -1,58 +0,0 @@ -From b19339d4356efbd9b49f73e67ed7c09b9dad4b75 Mon Sep 17 00:00:00 2001 -From: Sergei Trofimovich <slyfox@gentoo.org> -Date: Thu, 16 May 2013 12:24:17 +0300 -Subject: [PATCH 1/2] types: add sanity tests for used sizes - -Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> ---- - GccUnix.mak | 2 +- - checks.c | 26 ++++++++++++++++++++++++++ - 2 files changed, 27 insertions(+), 1 deletion(-) - create mode 100644 checks.c - -diff --git a/gccmod.inc b/gccmod.inc -index 70f388a..86cb2bf 100644 ---- a/gccmod.inc -+++ b/gccmod.inc -@@ -6,6 +6,7 @@ $(OUTD)/atofloat.o \ - $(OUTD)/backptch.o \
- $(OUTD)/bin.o \
- $(OUTD)/branch.o \
-+$(OUTD)/checks.o \
- $(OUTD)/cmdline.o \
- $(OUTD)/codegen.o \
- $(OUTD)/coff.o \
-diff --git a/checks.c b/checks.c -new file mode 100644 -index 0000000..af8630f ---- /dev/null -+++ b/checks.c -@@ -0,0 +1,26 @@ -+/****************************************************************************
-+*
-+* This code is Public Domain.
-+*
-+* ========================================================================
-+*
-+* Description: make sure "inttype.h" filelds are of the desired size.
-+*
-+****************************************************************************/
-+
-+#include "inttype.h"
-+ -+/* fails to compile if type sizes are of unexpected size */ -+static void validate_inttype_sizes() -+{ -+/* try to create */ -+#define T_IS_SIZE(__type, __expected_size, __test_name) \ -+ char __test_name[2 * (sizeof (__type) == (__expected_size)) - 1]; -+ -+ T_IS_SIZE(uint_8, 1, size_of_uint_8_must_be_1_byte); -+ T_IS_SIZE(uint_16, 2, size_of_uint_16_must_be_2_bytes); -+ T_IS_SIZE(uint_32, 4, size_of_uint_32_must_be_4_bytes); -+ T_IS_SIZE(uint_64, 8, size_of_uint_64_must_be_8_bytes); -+ -+#undef T_IS_SIZE -+} --- -1.8.2.1 diff --git a/dev-lang/jwasm/files/jwasm-2.18-missing-includes.patch b/dev-lang/jwasm/files/jwasm-2.18-missing-includes.patch new file mode 100644 index 000000000000..08a6aa40ebd2 --- /dev/null +++ b/dev-lang/jwasm/files/jwasm-2.18-missing-includes.patch @@ -0,0 +1,56 @@ +From fa8bf4476f74679c1a5e1a4ca55bf5327b4bd558 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20Van=C4=9Bk?= <arkamar@gentoo.org> +Date: Mon, 3 Mar 2025 12:16:23 +0100 +Subject: [PATCH] add missing includes + +Several includes are missing based on linux man pages: + +- strings.h for strcasecmp +- alloca.h for alloca +- stdio.h for fileno + +The compilation with GCC 15 fails without those with implicit function +declaration error. +--- + +Upstream-PR: https://github.com/Baron-von-Riedesel/JWasm/pull/34 + +diff --git a/src/H/globals.h b/src/H/globals.h +index 2992cc7..607e5f5 100644 +--- a/src/H/globals.h ++++ b/src/H/globals.h +@@ -39,6 +39,7 @@ +
+ #if defined(__UNIX__) || defined(__CYGWIN__) || defined(__DJGPP__) /* avoid for MinGW! */
+
++#include <strings.h>
+ #define _stricmp strcasecmp
+ #ifndef __WATCOMC__
+ #define _memicmp strncasecmp
+diff --git a/src/H/memalloc.h b/src/H/memalloc.h +index d2a8460..7a4e364 100644 +--- a/src/H/memalloc.h ++++ b/src/H/memalloc.h +@@ -44,6 +44,7 @@ extern void MemFree( void *ptr ); +
+ #elif defined(__GNUC__) || defined(__TINYC__)
+
++#include <alloca.h>
+ #define myalloca alloca
+ #ifndef __FreeBSD__ /* added v2.08 */
+ #include <malloc.h> /* added v2.07 */
+diff --git a/src/omf.c b/src/omf.c +index 8d98b1f..d90afae 100644 +--- a/src/omf.c ++++ b/src/omf.c +@@ -62,6 +62,7 @@ +
+ #if TRUNCATE
+ #if defined(__UNIX__) || defined(__CYGWIN__) || defined(__DJGPP__)
++#include <stdio.h>
+ #include <unistd.h>
+ #else
+ #include <io.h>
+-- +2.45.3 + diff --git a/dev-lang/jwasm/files/jwasm-2.19-respect-ldflags.patch b/dev-lang/jwasm/files/jwasm-2.19-respect-ldflags.patch new file mode 100644 index 000000000000..5c4c2d0f7411 --- /dev/null +++ b/dev-lang/jwasm/files/jwasm-2.19-respect-ldflags.patch @@ -0,0 +1,29 @@ +From 5521f0dd6da40cc2a0325f0b2136fa066345328f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20Van=C4=9Bk?= <arkamar@gentoo.org> +Date: Mon, 3 Mar 2025 12:53:38 +0100 +Subject: [PATCH] respect LDFLAGS + +--- + GccUnix.mak | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/GccUnix.mak b/GccUnix.mak +index 5afdce2..588b155 100644 +--- a/GccUnix.mak ++++ b/GccUnix.mak +@@ -39,11 +39,7 @@ $(OUTD): + mkdir -p $(OUTD) + + $(OUTD)/$(TARGET1) : $(OUTD)/main.o $(proj_obj) +-ifeq ($(DEBUG),0) +- $(CC) $(OUTD)/main.o $(proj_obj) -s -o $@ -Wl,-Map,$(OUTD)/$(TARGET1).map +-else +- $(CC) $(OUTD)/main.o $(proj_obj) -o $@ -Wl,-Map,$(OUTD)/$(TARGET1).map +-endif ++ $(CC) $(LDFLAGS) $(OUTD)/main.o $(proj_obj) -o $@ -Wl,-Map,$(OUTD)/$(TARGET1).map + + $(OUTD)/msgtext.o: src/msgtext.c src/H/msgdef.h + $(CC) -c $(inc_dirs) $(c_flags) -o $*.o src/msgtext.c +-- +2.45.3 + diff --git a/dev-lang/jwasm/jwasm-2.13.ebuild b/dev-lang/jwasm/jwasm-2.13.ebuild deleted file mode 100644 index 2cac391deb8d..000000000000 --- a/dev-lang/jwasm/jwasm-2.13.ebuild +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit toolchain-funcs - -DESCRIPTION="MASM-compatible TASM-similar assembler (fork of Wasm)" -HOMEPAGE="https://github.com/JWasm/JWasm" -SRC_URI="https://github.com/JWasm/JWasm/archive/${PV}.tar.gz -> ${P}.tar.gz" -LICENSE="Watcom-1.0" - -SLOT="0" -KEYWORDS="amd64 ~x86" - -RDEPEND="" -DEPEND="" -BDEPEND="" - -S="${WORKDIR}/JWasm-${PV}" - -PATCHES=( - "${FILESDIR}"/${PN}-2.11-types-test.patch - "${FILESDIR}/makefile-dep-fix.patch" -) - -src_prepare() { - default - - # don't strip binary - sed -i GccUnix.mak -e 's/ -s / /g' || die -} - -src_compile() { - emake -f GccUnix.mak CC="$(tc-getCC) ${CFLAGS} ${LDFLAGS}" -} - -src_install() { - dobin GccUnixR/jwasm - dodoc *.txt Doc/*.txt -} diff --git a/dev-lang/jwasm/jwasm-2.18.ebuild b/dev-lang/jwasm/jwasm-2.18-r1.ebuild index 465a5756422b..513ad11b1401 100644 --- a/dev-lang/jwasm/jwasm-2.18.ebuild +++ b/dev-lang/jwasm/jwasm-2.18-r1.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit toolchain-funcs +inherit flag-o-matic toolchain-funcs DESCRIPTION="MASM-compatible TASM-similar assembler (fork of Wasm)" HOMEPAGE="https://github.com/Baron-von-Riedesel/JWasm" @@ -17,6 +17,7 @@ KEYWORDS="amd64 ~x86" PATCHES=( "${FILESDIR}"/${PN}-2.18-types-test.patch "${FILESDIR}"/${PN}-2.18-makefile-dep-fix.patch + "${FILESDIR}"/${PN}-2.18-missing-includes.patch #944893 ) src_prepare() { @@ -27,7 +28,9 @@ src_prepare() { } src_compile() { - emake -f GccUnix.mak CC="$(tc-getCC) ${CFLAGS} ${LDFLAGS}" + # -std=c17 and -D_POSIX_C_SOURCE=200809L are both related to bug #944893 + append-cflags -std=c17 + emake -f GccUnix.mak CC="$(tc-getCC) ${CFLAGS} -D_POSIX_C_SOURCE=200809L ${LDFLAGS}" } src_install() { diff --git a/dev-lang/jwasm/jwasm-2.19.ebuild b/dev-lang/jwasm/jwasm-2.19.ebuild new file mode 100644 index 000000000000..817473af0ee0 --- /dev/null +++ b/dev-lang/jwasm/jwasm-2.19.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic toolchain-funcs + +DESCRIPTION="MASM-compatible TASM-similar assembler (fork of Wasm)" +HOMEPAGE="https://github.com/Baron-von-Riedesel/JWasm" +SRC_URI="https://github.com/Baron-von-Riedesel/JWasm/archive/v${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/JWasm-${PV}" + +LICENSE="Watcom-1.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +PATCHES=( + "${FILESDIR}"/${PN}-2.18-types-test.patch + "${FILESDIR}"/${PN}-2.18-makefile-dep-fix.patch + "${FILESDIR}"/${PN}-2.18-missing-includes.patch #944893 + "${FILESDIR}"/${PN}-2.19-respect-ldflags.patch +) + +src_compile() { + # -std=c17 and -D_POSIX_C_SOURCE=200809L are both related to bug #944893 + append-cflags -std=c17 + emake -f GccUnix.mak CC="$(tc-getCC)" extra_c_flags="-D_POSIX_C_SOURCE=200809L ${CFLAGS}" +} + +src_install() { + dobin build/GccUnixR/jwasm + dodoc -r README.md History.txt Html/ +} diff --git a/dev-lang/luau/Manifest b/dev-lang/luau/Manifest index 556c1ccf481f..c82fc39f70d2 100644 --- a/dev-lang/luau/Manifest +++ b/dev-lang/luau/Manifest @@ -1,5 +1,6 @@ -DIST luau-0.645.tar.gz 1796897 BLAKE2B d6e9bd89386d360ba1627165d178c143bbb4dee52ab12bf3ca74ed8b475bfe7f05f2609a13403228e606b3b81048730c200db69671ef34329387e541e7aaf19e SHA512 11153008ad893a68bf2578a077a7acb9bd148a8ef6146ba50ea34d186744f49bb28dafcf417fbcdd3b8c2d58a9509d5361621f0302b7727c91926cc3bba24da4 +AUX luau-0.653-TypedAllocator-cpp.patch 961 BLAKE2B fbbfbf407c2f500583bbfc2c12a5d80fe0479b867e4bc9d8774f7ea7b7d055f52a6ecf47370ab0137ee480f46e915b03153ec691cc1279f52f3af7bb7e27395c SHA512 8f03b0cb15bd324fa580ee4c20e9d0d395c82e1359955d742b9f5e56aa7420b4ffb6a987a512d14819574f23edcc4d10d6a0b5d43ab296f5f4d45bbfc4751f23 DIST luau-0.653.tar.gz 1858007 BLAKE2B 5e919c2d558f3d9fb44b50c43c063779ef9400bcec7f1881884eccad1f972424ec8c662de3a19c958a00dad0b38dbb295c9ff89b286b39e8d842d102c17346fc SHA512 470cf58a923f0ab3baa36805500100fca16972bea2f87b45fa17ed4d058f3fbc162d4a7802a75a46ad7a46b25630379ac063462751a4d31f65c6df6d0a527c15 -EBUILD luau-0.645-r1.ebuild 1218 BLAKE2B 4b04b5fbc04f4f02c03c100c5efbcb6daac85acd2fcf5abf5aaf7b29916174e28e87752247547dfffaf3e28ba18f40062b2957bbc00ad2c4a6523b6dfc140e1d SHA512 88571dd839b58419db8926fae44ba8a93220cfdc02024b07c6be435352a78dc725ddff0a7cf2419b5c0d36f8ad77236b57fe9796c533324abf647e2d96bbb386 -EBUILD luau-0.653.ebuild 1218 BLAKE2B d5412c71ff7151a13708cc87002074643ba0ef78c1c8fb15841b718050d17655a3040de5df900151e10f46eaa7b2ba0fa025736243bcd3ae2471a070f82264a8 SHA512 ab4f496ef6b96e5877e3d1935765163f041a2da9b00bdcec32a23c4df483def1446a67bb8e4c3fdc2952ae38e2e0b6172dda53bfa23f5a5de99025a5cf85f38d +DIST luau-0.662.gh.tar.gz 1918568 BLAKE2B 982c4f9878a95a83254d97ec6eb4ab16cb11f8fc7edc868a5377a37298466761a44c6adb5dbb478b44969a73324031409b83c380aeccdf23c0446b4648cda7ca SHA512 ee3657b711e62e8c8003fe1a418b5ca3362b171822426892933c8ea0c80341e5b6bf23e493ce76184577af05944fdd2841412e81c2a217c9a1dc6d9e1a4f5c14 +EBUILD luau-0.653.ebuild 1280 BLAKE2B a12da641668e40b7be1bbdc4c09501aa721deb58aca8f7ae0e67983b0832439de0f9f2e8d5d9b95fd3335444831c2452f7e0e007b5e02ebba6b436588863ae5b SHA512 4df0ced2448bb9f299cb988c9d5aa1c36922864a8d2a348a704932693896e8ad1829bef2f761a0600960c620d2970a00f00b6280f6423b40adb14dd30d4d20fe +EBUILD luau-0.662.ebuild 1280 BLAKE2B 724d2b1dd7ba9183ef7dee96808e49e03c7d77e87e387a1589f476c4183b1b6455930716c848d38b79172d756f951903e760884e766d5555603bf27341da1264 SHA512 d04ee76a5f3e0dd20419cfea58372e9016790fb3dc0a2e01d6b50c701af42ea994ede96d5e9834bd2bf6bd31de3a2da35c4a281891b517483f445e3af914552e MISC metadata.xml 1077 BLAKE2B 922b79785db23ac7301e2e7a0c66834ae4ccb42466c87b92bd4d9db821830c307fac2192d0010ef224ef64fd83e80a62d47b29f9118432f70ed2340ec9bf49c5 SHA512 7d334c02c73ddc2628a5bebf598d79e9216eb5e4195905ba3a38453261cb25f240b41903042a0fdaad7453ed3cfd04ed2ba382746f38c25036095b019ea4b286 diff --git a/dev-lang/luau/files/luau-0.653-TypedAllocator-cpp.patch b/dev-lang/luau/files/luau-0.653-TypedAllocator-cpp.patch new file mode 100644 index 000000000000..8c94d1f40731 --- /dev/null +++ b/dev-lang/luau/files/luau-0.653-TypedAllocator-cpp.patch @@ -0,0 +1,28 @@ +From 0d7ce033b5b4bc33cc02e85a8c56e23e68694211 Mon Sep 17 00:00:00 2001 +From: Kostadin Shishmanov <kostadinshishmanov@protonmail.com> +Date: Mon, 10 Mar 2025 01:35:36 +0200 +Subject: [PATCH] Add #include <cstdint> to fix building with gcc 15 + +With gcc 15, the C++ Standard Library no longer includes other headers +that were internally used by the library. In luau's case the missing +header is <cstdint> + +Downstream Gentoo bug: https://bugs.gentoo.org/938122 +Signed-off-by: Kostadin Shishmanov <kostadinshishmanov@protonmail.com> +--- + Analysis/src/TypedAllocator.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/Analysis/src/TypedAllocator.cpp b/Analysis/src/TypedAllocator.cpp +index a2f49afbd..16c844e8d 100644 +--- a/Analysis/src/TypedAllocator.cpp ++++ b/Analysis/src/TypedAllocator.cpp +@@ -26,6 +26,8 @@ const size_t kPageSize = sysconf(_SC_PAGESIZE); + + #include <stdlib.h> + ++#include <cstdint> ++ + LUAU_FASTFLAG(DebugLuauFreezeArena) + + namespace Luau diff --git a/dev-lang/luau/luau-0.653.ebuild b/dev-lang/luau/luau-0.653.ebuild index dc166cc33eba..43a9a655af4f 100644 --- a/dev-lang/luau/luau-0.653.ebuild +++ b/dev-lang/luau/luau-0.653.ebuild @@ -25,6 +25,7 @@ SLOT="0" IUSE="static-libs test" RESTRICT="!test? ( test )" +PATCHES=( "${FILESDIR}/luau-0.653-TypedAllocator-cpp.patch" ) DOCS=( CONTRIBUTING.md README.md SECURITY.md ) src_configure() { diff --git a/dev-lang/luau/luau-0.645-r1.ebuild b/dev-lang/luau/luau-0.662.ebuild index b8ddacc5ed29..4ff0bda23a21 100644 --- a/dev-lang/luau/luau-0.645-r1.ebuild +++ b/dev-lang/luau/luau-0.662.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -12,12 +12,12 @@ HOMEPAGE="https://luau.org/ if [[ "${PV}" == *9999* ]] ; then inherit git-r3 - EGIT_REPO_URI="https://github.com/luau-lang/${PN}.git" + EGIT_REPO_URI="https://github.com/luau-lang/${PN}" else SRC_URI="https://github.com/luau-lang/${PN}/archive/${PV}.tar.gz - -> ${P}.tar.gz" + -> ${P}.gh.tar.gz" - KEYWORDS="amd64 ~x86" + KEYWORDS="~amd64 ~x86" fi LICENSE="MIT" @@ -25,6 +25,7 @@ SLOT="0" IUSE="static-libs test" RESTRICT="!test? ( test )" +PATCHES=( "${FILESDIR}/luau-0.653-TypedAllocator-cpp.patch" ) DOCS=( CONTRIBUTING.md README.md SECURITY.md ) src_configure() { diff --git a/dev-lang/mmix/Manifest b/dev-lang/mmix/Manifest index b76811fa8699..755915f541c9 100644 --- a/dev-lang/mmix/Manifest +++ b/dev-lang/mmix/Manifest @@ -1,6 +1,8 @@ AUX mmix-20110420-makefile.patch 1636 BLAKE2B f4acfc952dea9671ec5507f4d86a1462131dae835318362b17f341e9575fe1dccda5cd44d257127a27232a197e05f79de5d7a8200d7a2b943161fa38de83937f SHA512 e5cd4944847c00ad7c6b3a87fa6f9a242f7f0b13c31f82e80c49b3b9ec07d7c0106669dce2868705dca073774826c5acc6f8ea1464c1a5c739145f1c2b28eb10 AUX mmix-20131017-format-security.patch 2256 BLAKE2B 2481c33c024d84af03b289ec9f22c9b98cb27537c32ea9ef020943aa424efac5267d81326241b2d764eb292f373ed51cc30c3ddbdb55f8fa444154cf6cc5fe0d SHA512 e77cdf3d196356cc0cb09f322cc979e4c603592c8f9421764d6830df27fe627958badbd6726021f97bc42a0d9551e4d3b39ca7b1d677b44a543ffcc04028eaea AUX mmix-20160804-gcc-10.patch 822 BLAKE2B 182ff974d458e06ac5c90aa44f0255f20a97c7702a49f3b36ba541c6414f63f8d2c1d3f56e6abe624e06be198b963d018ba3403baac0773b114946d96fa9272c SHA512 65fb04add6fa1441f9cc699af09cc84b67701113db1406d7ec582ac2023221f02dd1972393c3114fa0801a9f686b24d8e5daededa469e155da33aaafee72a22c +AUX mmix-20160804-implicit-int.patch 816 BLAKE2B 62731ffbbd025dbd830398db747b2e7993ee7aee4efbd058faffaff610abceff15d4bd91cd326a919677529d11507af43c9af833a6ef16356df294330814ff80 SHA512 29b07ad6d6a77bf43e9fddd7c6e2a803d5758be012fc18b079a01c84719db65c0865e2bceb0565963fef4106adcf10fad12eb917b9480551379f9c6b2c0d86f2 DIST mmix-20160804.tgz 308410 BLAKE2B 8bbde51921fe23f016e35bd51346e6445d530815e5e87bff44cf17e081c6b8e55dd6bd24f1ce1621851d2eac309fa44d71aa33d93d3ddfce5213c6643181d38c SHA512 35c518227a4ee40d0aa3be02eda2ab8b2a27696fa789f5007a978419d07b3deebb7f391895e63e3556aeb38dc1ded3bddf2b860125ebf8f7848375e90dc7af75 -EBUILD mmix-20160804-r1.ebuild 979 BLAKE2B 910d90c29ad16935be723b746ef22291e4414c9acaf324e54d6d3b0ea42d9d384f9c2397f7b5ebcd42bb3bfd4923fa7b7ed43e92c58b7b4ca9b7f9a673817bdb SHA512 f51695ba780a6253ba771731b6df3cde7aacaffd1d3e4e1e8c32ad0cff9b6bda3c406074246fb3655c2159faf88d80415df8d4dffd69753c01bef43b922c93fe +EBUILD mmix-20160804-r1.ebuild 982 BLAKE2B fa6196b52bf66531430494fb29ba2c205a0e41afcb1d0ea174f9c1d3f6d78643fad9294addabebb77192a845e0b9a65a29a5eaf020e83c0b2f5cf4e2297c8a5e SHA512 33ffe26f82a2f69ca46437648afdc5074800637571ade3c0606e6f63050387a2bfcac70db2b3bcbed5b94d35d734eb754c34b91234da250d41de02c14b82727d +EBUILD mmix-20160804-r2.ebuild 1069 BLAKE2B ddcc0f3f70deb79eafc4c7f968ef37b3d43d81c7f0ec128d4a9c75d4cfff277e7883806790be91219f003c8e9735add95e49f3ab313b6e97f44d5ed1906ca43c SHA512 919d4fa388613466f5726d9b6d233c3f9a67e814ef568ae9689d547c30b5b023fe02075f0c44006f98dd5dcc2ec73d064b86233b4a7a0b0f4bad3169c7954fac MISC metadata.xml 248 BLAKE2B cdc66ee780cce8b539d2c619893b5a5121982e3cde1ea6308f7795eac4b3d2247922b5900e7908213297c90bec9a63118312ee9349394becfc67a316aa3f5ca9 SHA512 276b07770aef3fc094cdf356ec54c492c34d515e426d47825a8a2df2331e71876b8a0f87f9549d279958e58a6624c1452092d9b185b4233a973096e1d1bd0301 diff --git a/dev-lang/mmix/files/mmix-20160804-implicit-int.patch b/dev-lang/mmix/files/mmix-20160804-implicit-int.patch new file mode 100644 index 000000000000..5da26a43c4fa --- /dev/null +++ b/dev-lang/mmix/files/mmix-20160804-implicit-int.patch @@ -0,0 +1,27 @@ +Fix function definition to be modern C +https://bugs.gentoo.org/883275 +diff '--color=auto' -ru work.old/abstime.w work/abstime.w +--- a/abstime.w 2025-01-19 17:06:19.952342044 +0400 ++++ b/abstime.w 2025-01-19 17:10:33.521811824 +0400 +@@ -18,7 +18,7 @@ + #include <stdio.h> + #include <time.h> + @# +-main() ++int main(void) + { + printf("#define ABSTIME %ld\n",time(NULL)); + return 0; +Additional dependency in build graph +https://bugs.gentoo.org/818889 +--- a/Makefile 2025-01-19 17:19:21.271627004 +0400 ++++ b/Makefile 2025-01-19 17:21:03.933007472 +0400 +@@ -81,6 +81,8 @@ + + mmix-config.o: mmix-pipe.o + ++mmix-mem.o: mmix-pipe.o ++ + mmmix: mmix-arith.o mmix-pipe.o mmix-config.o mmix-mem.o mmix-io.o mmmix.c + $(CC) $(CFLAGS) $(LDFLAGS) mmmix.c \ + mmix-arith.o mmix-pipe.o mmix-config.o mmix-mem.o mmix-io.o -o mmmix diff --git a/dev-lang/mmix/mmix-20160804-r1.ebuild b/dev-lang/mmix/mmix-20160804-r1.ebuild index 174120e453df..1aaec878cb1b 100644 --- a/dev-lang/mmix/mmix-20160804-r1.ebuild +++ b/dev-lang/mmix/mmix-20160804-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -8,18 +8,19 @@ inherit toolchain-funcs DESCRIPTION="Donald Knuth's MMIX Assembler and Simulator" HOMEPAGE="https://www-cs-faculty.stanford.edu/~knuth/mmix.html http://mmix.cs.hm.edu" SRC_URI="http://mmix.cs.hm.edu/src/${P}.tgz" +S="${WORKDIR}" -DEPEND="virtual/tex-base - doc? ( dev-texlive/texlive-plaingeneric )" -# media-sound/mmix and dev-lang/mmix both install 'mmix' binary, bug #426874 -RDEPEND="!!media-sound/mmix" - -SLOT="0" LICENSE="mmix" +SLOT="0" KEYWORDS="amd64 x86" IUSE="doc" -S="${WORKDIR}" +BDEPEND=" + virtual/tex-base + doc? ( dev-texlive/texlive-plaingeneric ) +" +# media-sound/mmix and dev-lang/mmix both install 'mmix' binary, bug #426874 +RDEPEND="!!media-sound/mmix" PATCHES=( "${FILESDIR}"/${PN}-20110420-makefile.patch diff --git a/dev-lang/mmix/mmix-20160804-r2.ebuild b/dev-lang/mmix/mmix-20160804-r2.ebuild new file mode 100644 index 000000000000..62ffe565a5e1 --- /dev/null +++ b/dev-lang/mmix/mmix-20160804-r2.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs flag-o-matic + +DESCRIPTION="Donald Knuth's MMIX Assembler and Simulator" +HOMEPAGE="https://www-cs-faculty.stanford.edu/~knuth/mmix.html http://mmix.cs.hm.edu" +SRC_URI="http://mmix.cs.hm.edu/src/${P}.tgz" +S="${WORKDIR}" + +LICENSE="mmix" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="doc" + +BDEPEND=" + virtual/tex-base + doc? ( dev-texlive/texlive-plaingeneric ) +" +# media-sound/mmix and dev-lang/mmix both install 'mmix' binary, bug #426874 +RDEPEND="!!media-sound/mmix" + +PATCHES=( + "${FILESDIR}"/${PN}-20110420-makefile.patch + "${FILESDIR}"/${PN}-20131017-format-security.patch + "${FILESDIR}"/${PN}-20160804-gcc-10.patch + "${FILESDIR}"/${PN}-20160804-implicit-int.patch +) + +src_compile() { + append-flags -std=gnu17 + export VARTEXFONTS=${T}/fonts + emake all \ + CFLAGS="${CFLAGS}" \ + CC="$(tc-getCC)" + + if use doc ; then + emake doc + fi +} + +src_install() { + dobin ${PN} ${PN}al m${PN} mmotype abstime + dodoc README ${PN}.1 + + use doc && dodoc *.ps +} diff --git a/dev-lang/moarvm/Manifest b/dev-lang/moarvm/Manifest index 150b23881e8a..0a8438fd9e55 100644 --- a/dev-lang/moarvm/Manifest +++ b/dev-lang/moarvm/Manifest @@ -1,6 +1,8 @@ DIST MoarVM-2024.10.tar.gz 15013798 BLAKE2B e5fb6fc14268c6ba02336bda50ef8f460491be99b87eba91d99c6b62debeb637573584cc2ad39cf235a6a64245125989ce7a034e007831273f3af46a04a02edb SHA512 3e9a1f47751ccdd04e128fa50cf3362d66372485d7ddd10a7d7de9d82bf6f832a1f788363a2a5692873944b3abd12283390670ee04f6724e949d92bd73900a04 DIST MoarVM-2024.12.tar.gz 15016376 BLAKE2B 77dea3d6d1f7c4bea58ad25ec1c6e9c3e6bd29309f058054098252c8cc9f0930f8857e200aea8438d10a6045c67b77ae2d6f1ae2e33e128b1d59f325c207f648 SHA512 4ade60f0c10030e1a24f8e0b1bb2e68fb62af4d3da7fe7751920d9ded145825c8a55f648f10c6a44d862ea1ad0753c5074643dab960374b325caa742129dea10 +DIST MoarVM-2025.01.tar.gz 15014714 BLAKE2B 5e407cbd9d33d9934a198e0c4c9baeeee71bf4270c2339edf681cb46393e2542f947fd789ca9f07422be34adfcb1f15834c838054161825de5511ea477c8df1d SHA512 1107e9eda080c0b68fff181fd712c6d2bd03c1f06b46b88d7d99feb6457a7d1e0b6c138bae404faf240b2642a701d6ced399e7d0b0949d691089d2264f58bfa3 EBUILD moarvm-2024.10.ebuild 1458 BLAKE2B 61e6726b1eff9a529ad2e999742ff844cb3a51fec9736fa36761b5a6882870f01618e979304ed38aee5c7bee6838568a3292850141004a11a36bdb1f4b2e919a SHA512 4caac9c6a433beb2989f65433dd4886cc0066d934e0794b4985324be44be8ef4323e6003e33045732ec12b89cb30665338df9c544fae5078ba3f1bdcddd39c5a EBUILD moarvm-2024.12.ebuild 1458 BLAKE2B 61e6726b1eff9a529ad2e999742ff844cb3a51fec9736fa36761b5a6882870f01618e979304ed38aee5c7bee6838568a3292850141004a11a36bdb1f4b2e919a SHA512 4caac9c6a433beb2989f65433dd4886cc0066d934e0794b4985324be44be8ef4323e6003e33045732ec12b89cb30665338df9c544fae5078ba3f1bdcddd39c5a +EBUILD moarvm-2025.01.ebuild 1458 BLAKE2B 93a6d346a5dfdbc0b1479059d6dfb3170cd458d643a47a3d52bad1df15182993aa10f086479f2457f3cdb26cc6d48d6d0b1c31d4a9294d73281d03e5cc94a27b SHA512 c58b10f4945bd16cac4d91e4ffeab7842dfcc1f8e7b3db8fcb3a9176fcd99315776570f73c62d84eaf45460c5942f9a52fe87425c30a67124bd677b3b9a8f73d EBUILD moarvm-9999.ebuild 1336 BLAKE2B 2ed969f246035c8859d5c43c5b0df06900a3193bf752d8a40c0584fa698157fc67cf5afc5b66f06ff9dfd2a2a010d0e2fc677c24d073e7f36f3f4f4cf9a6940a SHA512 802568d9df1edea124e20b6e0763566b6eaf164fc97ee7469234311b040f25102e952dbfe6e160a4dd1971f8ddec796cd1ac455368afd68e0c865574a6382399 MISC metadata.xml 803 BLAKE2B ae42152bd02136d44d034e1ae39e457893d720b496681234e1f804c0144d4023dec76ba9edba30df269bac7b9e2cd353b7197e3d21336bc92bcec3fbd877facd SHA512 93ba240a87a853f4df3ed542c0468cd820bd75935253a77f15259293269e1726c71cadcee076550f622444c032d359227f5377a97595e88ef6ef10d034d79aa5 diff --git a/dev-lang/moarvm/moarvm-2025.01.ebuild b/dev-lang/moarvm/moarvm-2025.01.ebuild new file mode 100644 index 000000000000..8f0c312cb215 --- /dev/null +++ b/dev-lang/moarvm/moarvm-2025.01.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +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:= + dev-libs/mimalloc" +DEPEND="${RDEPEND} + clang? ( >=llvm-core/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" + "--has-mimalloc" + "--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/mond/Manifest b/dev-lang/mond/Manifest index 227baa77377f..712ee58101f1 100644 --- a/dev-lang/mond/Manifest +++ b/dev-lang/mond/Manifest @@ -34,7 +34,6 @@ DIST microsoft.sourcelink.common.8.0.0.nupkg 318281 BLAKE2B d53a9f305dd9ad5b6455 DIST microsoft.sourcelink.github.8.0.0.nupkg 330089 BLAKE2B 5c9683ce4b55e6fad9b335495c993dfa656747b15a049f8df9cc7839c91618a157aeea1d5e3f14cf6d4b20a06c91aa37172cca6d12102b060aaf147ced103fba SHA512 1a46485ed34d76994c0eb761600400519edcbff97181f1bff2a2666d432bd912527e82a267c8a9c13497417c6dc4c503fe63672eea20c21fdfa857716e26db9b DIST microsoft.testplatform.objectmodel.17.8.0.nupkg 1492114 BLAKE2B 32a3a7f4e4cb9af1d330fcb2588ee9602414760eb4f2bda49888372b3ed64e8c47347dbdeda11259134e37b717ad5c23b06ffeda9a1a1772e1afe299429e828d SHA512 17119c472fd87ff721677f92a801693eab53a1897582150c26a60429c99eb1764628e7ba895b40e3b10b9edc00f803b18316a6fdc906ffe54dbd2d04ac63db33 DIST microsoft.testplatform.testhost.17.8.0.nupkg 2806274 BLAKE2B dff54d1c59a6873793bbe2d6fc9ed75c2d610a8dc41f4f9349228b690db3beb7845660c7d90a5d2588443c13aff4d97b6e0a1df58e88a398b3631a344609060c SHA512 39fb1549fd23fc2c7b4f5525043fc1152b8c62cc813a88c9701f33a666041c6690dadd455899d247fef5e6df372d17f081d6098839086007b2c10618e187ac7a -DIST mond-0.10.0.tar.gz 612465 BLAKE2B b802d7e97fbaf2fd8a7350d19623fe5e8319e0e36e54d98f01c8f49b2a1900003b4c144420faa5a2bd0718474cc93f7e2912ac4afdfe6461b300ce9f9386a0ec SHA512 2e16b4ed4cfa1009b21631cee1b722cf80ff2a3e7c17f53cd36fbc18bdf683e958b25fb60b701be1a164f69eb1d0689c2cb2ff0bfa2082446d8abfd60b23b1de DIST mond-0.10.2.tar.gz 612942 BLAKE2B 70be09334e89234cb2ac889c48c0cb6b04feecace1fad6ab0f93a448b49e289e12e49167b2075cad4404bcca0ec9ab68987d121376383b5a2d35da7910b3327d SHA512 0014fa673c0b213fd360642ec3008635ee6dae560da72c0e656e6c90bc48d1c45e15a2d2ebd34e63f5593fb708adb3b8739ad2ef3fe46d684b0f6546faa116d9 DIST netstandard.library.2.0.0.nupkg 3143842 BLAKE2B 7e3fc865e7893fb531b21e2ca791b788af01481316e49a79c4676050c2b8ad413fd8a4ef9890557582ec8b9741c8aa01b080b8d2caa16e02bfff2a7b38777989 SHA512 e3d64072b9cd9f9e86209c06a22688ecda7070427c9a35327d2a9560824c0e1381ccf7bc1d21d2ef8b301761f4bfc7f38fba712df7188d2f4fe4f748aac4d0c7 DIST netstandard.library.2.0.3.nupkg 3146139 BLAKE2B 311e5367398f76c74e78930bc2cd39e450a86bd8626311ded8d58bd84c94a8a84db3c11b2bc10f3eeba20a9d081fe7827981f702ad746b49ae3108c949ba1022 SHA512 e78f0cea69c14895b1b089644077dbce8631a626055d96522f4d29e061d8bfc3e48aa1419e74faf265b998612c03f721f5f0cef4690f824150a5689764dee601 @@ -54,6 +53,5 @@ DIST system.text.encoding.codepages.7.0.0.nupkg 3198933 BLAKE2B 077972f69636114b DIST system.text.encodings.web.8.0.0.nupkg 374440 BLAKE2B 97211e710df3dcd17932f168e254806d7c8692ac01d667a2e89a5ddc956b24fba8467fbc2d451057757b5c502442d2c91bcaf0f867da7e95456b2aa18136b354 SHA512 ba0822c38c3b658aba9495642d269e882b827e3be4ad2dc1426d8a97d3cbc5a2277c5f80847d0cb9381078af01523328c4992caa058146d5d8ee6b8a08609c32 DIST system.text.json.8.0.0.nupkg 1983421 BLAKE2B 053f3200d5920a5a31b4e4e6d13f0a81490a518ed68363a1a04c1edbbc125f90b9fa8f469614127bde714df352052a0dc56d70c9595277686799d33a16df351b SHA512 59243516d9de8ce90be60d6c5d271ff4c5fc6b2a4b723443022a72bd1b8f98adac3d17439df5543fedead81a8e3b018fd9a89c40a2459d3cb2d1dd935d17b426 DIST system.threading.tasks.extensions.4.5.4.nupkg 89582 BLAKE2B 728fc5794745b706a7e3a7d05186f34e2a8c1837cafdc7fc9a1bd8fc6fd42025448cbdfa53415a05d872aa08db1deb31d104054630c9ac7ecd29a2ddd973fd5c SHA512 68052086e77d3c7198737a3da163d67740b7c44f93250c39659b3bf21b6547a9abf64cbf40481f5c78f24361af3aaf47d52d188b371554a0928a7f7665c1fc14 -EBUILD mond-0.10.0.ebuild 2982 BLAKE2B ae1c4a8999fb5ae0e1b96d4b0c34589f781891909bee201c1bdfd37ffdfc3dd1c01ccd0d87318f66f5e9d35dcee56dd64d7e0e5f8445de7743a161d20f8d9255 SHA512 9a505ac1253e8ab61d9f8e28b7566210278639c3e56f4e95c2ee3a8952ee29f733cd38445017f3cdd745fdc5a6becf81b7877797fbc5dae145d355893eeabe45 EBUILD mond-0.10.2.ebuild 2981 BLAKE2B 7ed3fafba2b8df8930fff47373247d2416369d47fe29ef7e2a507b7312638b70b2394959af03a634162cfe1ea225b9c46eeac62d8c99723d6400e9110beb18d1 SHA512 626b23630e5643d71eaaa680ef25d55a457ca27780d07088bf7c77b28b524be4556a37e03907143b086b018742b4ddd09112e1787c70fb5e7502d51da6c1e85c MISC metadata.xml 407 BLAKE2B c23e1813bba6b1e7beb547a075e0b283941571270493902195fd370854963ad07e1a6e30673dc7733b542d02839d84aa6f554d806aa0e8021d44570b655ca1fd SHA512 ff0fa87463543a559675a8397a7c1dceea2b59faa76435569cb996ad43ad123d2c5272642a73a35f4c7a132b8a3cb6bff6bc5a1114bf62887ef2f0461967eb5f diff --git a/dev-lang/mond/mond-0.10.0.ebuild b/dev-lang/mond/mond-0.10.0.ebuild deleted file mode 100644 index bca70e07819d..000000000000 --- a/dev-lang/mond/mond-0.10.0.ebuild +++ /dev/null @@ -1,106 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DOTNET_PKG_COMPAT=8.0 -NUGETS=" -fleck@1.2.0 -microsoft.aspnetcore.authorization@8.0.0 -microsoft.aspnetcore.components.analyzers@8.0.0 -microsoft.aspnetcore.components.forms@8.0.0 -microsoft.aspnetcore.components.web@8.0.0 -microsoft.aspnetcore.components.webassembly.devserver@8.0.0 -microsoft.aspnetcore.components.webassembly@8.0.0 -microsoft.aspnetcore.components@8.0.0 -microsoft.aspnetcore.metadata@8.0.0 -microsoft.build.tasks.git@8.0.0 -microsoft.codeanalysis.analyzers@3.3.4 -microsoft.codeanalysis.common@4.8.0 -microsoft.codeanalysis.csharp@4.8.0 -microsoft.codecoverage@17.8.0 -microsoft.extensions.configuration.abstractions@8.0.0 -microsoft.extensions.configuration.binder@8.0.0 -microsoft.extensions.configuration.fileextensions@8.0.0 -microsoft.extensions.configuration.json@8.0.0 -microsoft.extensions.configuration@8.0.0 -microsoft.extensions.dependencyinjection.abstractions@8.0.0 -microsoft.extensions.dependencyinjection@8.0.0 -microsoft.extensions.fileproviders.abstractions@8.0.0 -microsoft.extensions.fileproviders.physical@8.0.0 -microsoft.extensions.filesystemglobbing@8.0.0 -microsoft.extensions.logging.abstractions@8.0.0 -microsoft.extensions.logging@8.0.0 -microsoft.extensions.options@8.0.0 -microsoft.extensions.primitives@8.0.0 -microsoft.jsinterop.webassembly@8.0.0 -microsoft.jsinterop@8.0.0 -microsoft.net.test.sdk@17.8.0 -microsoft.netcore.platforms@1.1.0 -microsoft.sourcelink.common@8.0.0 -microsoft.sourcelink.github@8.0.0 -microsoft.testplatform.objectmodel@17.8.0 -microsoft.testplatform.testhost@17.8.0 -netstandard.library@2.0.0 -newtonsoft.json@13.0.1 -nuget.frameworks@6.5.0 -nunit3testadapter@4.5.0 -nunit@3.14.0 -system.collections.immutable@7.0.0 -system.io.pipelines@8.0.0 -system.reflection.metadata@1.6.0 -system.reflection.metadata@7.0.0 -system.runtime.compilerservices.unsafe@6.0.0 -system.text.encodings.web@8.0.0 -system.text.json@8.0.0 -netstandard.library@2.0.3 -system.buffers@4.5.1 -system.memory@4.5.5 -system.numerics.vectors@4.4.0 -system.text.encoding.codepages@7.0.0 -system.threading.tasks.extensions@4.5.4 -" - -inherit dotnet-pkg - -DESCRIPTION="Mond is a scripting language for .NET Core" -HOMEPAGE="https://rohbot.net/mond/ - https://github.com/Rohansi/Mond/" - -if [[ "${PV}" == *9999* ]] ; then - inherit git-r3 - - EGIT_REPO_URI="https://github.com/Rohansi/${PN^}.git" -else - SRC_URI="https://github.com/Rohansi/${PN^}/archive/v${PV}.tar.gz - -> ${P}.tar.gz" - S="${WORKDIR}/${P^}" - - KEYWORDS="amd64" -fi - -SRC_URI+=" ${NUGET_URIS} " - -LICENSE="MIT" -SLOT="0" - -DOTNET_PKG_BAD_PROJECTS=( TryMond/TryMond.csproj ) -DOTNET_PKG_PROJECTS=( Mond.Repl/Mond.Repl.csproj ) - -DOCS=( README.md Examples ) - -src_unpack() { - dotnet-pkg_src_unpack - - if [[ -n "${EGIT_REPO_URI}" ]] ; then - git-r3_src_unpack - fi -} - -src_install() { - dotnet-pkg-base_install - dotnet-pkg-base_dolauncher "/usr/share/${P}/Mond.Repl" "${PN}" - - docompress -x "/usr/share/doc/${PF}/Examples" - einstalldocs -} diff --git a/dev-lang/nim/Manifest b/dev-lang/nim/Manifest index ad88253a4dbe..d779c88a7549 100644 --- a/dev-lang/nim/Manifest +++ b/dev-lang/nim/Manifest @@ -1,9 +1,10 @@ AUX nim-2.0.6-testament-skipfile.txt 2594 BLAKE2B 58af9e632d595e1dc8f6b4fadacf55f10697d75a1ff21a2a6be2feb14eb7e86c27d5fb10737614b2dad3eb7ee3b4a8d76d30ef1c7117e1b7738ca00960450c4c SHA512 940b9ad7eb1debee502568abf30f81970fc431785c3f9b00d8322eaa686f17e6b641e66baaecc7a6ec288076139d180f87978dec24a9ac949e14b5051829228f AUX nim-2.2.0-makefile.patch 308 BLAKE2B 2984a3487838dd65f067eaab54f7ea6ed18f000c97098f735f26df2609b8485fe91c3d1cb2711ca1c987a955f5b340cf90ceffbbc2e5663794fe5ab3239d3c80 SHA512 5de4b4990d050fff655249d8ad11ba316640bb301854c526f7772146289a7505ec3cd59a6b7811a78b4d03b0bca7e70d0c6264ea06b2b59d11a790cbea3dfb0b +AUX nim-2.2.2-testament-skipfile.txt 2662 BLAKE2B 0011401b582e713fdb4b51e90e667228db0a0c16c8ffba31aa68889a643a9e1a2ca9acf52945690ed3bdcc44e4bd6f50b1c184d53c616449026e0c7515a4d439 SHA512 ce85f4ca3917762cca3302c552aa51c0bebc5bfeaea6e03e451553121dd610323fb6ccd59c542087e50052a12e0f073bb0f8da16e87d4074e91020cbbd4b8f27 AUX nim-sets.conf 162 BLAKE2B 976422f31cf8a64e1fad537f4db38a07e0022b9460936c63e0220cb3858ba02704857841d5010ad8c7bde0e6192c4c3c1329aeca8080a48a728e8b288cefc0fb SHA512 61a07de9973fc77998515bbb62498ffd1de991241bf32805f4acc0e4325e39d767ac862f2546757763aa8d0a7f35b95a9e1df91e6aa6f241eed6e93c8e3c46f0 -DIST nim-2.0.8.tar.xz 7617556 BLAKE2B 96ab3e92c7c9d3dcb54de6528f2ae788f3ff4a927d693f2ca4917231441d85d12c8bda44c41c8f363979dbd0d8db54098648512caf7780bdc40e393c4f7803ec SHA512 e64abc379c046a9432515d1c8074a7e10ff72a1076663a5b7bdd39ae92852c98ba2cab96aa5e968fc31ca393e778e70b2392d6ab56bca7ac956d0176b4b69a83 DIST nim-2.2.0.tar.xz 7896912 BLAKE2B 671b1f5551e093933519797bbfe2875c1726a0cdd1b33288a9ab189fb966fdb21583027345e58ab13d7e7e85479aafc52340e8ddecd062aca4b4b8de6466b88e SHA512 56374815770b1b92bef3521471a3b1a8b810646eb7f978ff329075d64d231a7d1591a928c28407aa507f1b59375d539fc81b678b84f6b8b4a88ed274048ebf21 +DIST nim-2.2.2.tar.xz 8188616 BLAKE2B e9b5dc3d12165fe12555a22fbf2125f1dc6e828ae5ce9f146c2347b2629623491498a0cf681355379d0c2252aa7d4d7d02d201a8722838da93b785b1a6dd3af6 SHA512 8b61fa55918e01adc782250b5cb931303adeaf185ee65faf3f1fd3843a0050dc7f3dfb363848f8769045e5ac5663f390ae4d8070906cdf0892d749f4426902b3 DIST nim-atlas-0.8.0.tar.gz 59097 BLAKE2B 231b238ac3b15cc2c2d9ad927f80ae72d8ae4c649277515f32df6cc04275ccd38db5307d627572af547501e6522c06c86dc279dc3e13b5385f14e24032f6fe69 SHA512 747c13e2c5bd45a1dc6c1426f8c7637f638ada9dd4c9aa3edf4ef8367060e73226dc4bcde6380fac25ed47ebf4097fd223c72fadc3cceba8c71dd0f0571e47eb -EBUILD nim-2.0.8.ebuild 4516 BLAKE2B 07206721451f39505ff611379f04fdcae8eb6fba3d880aaad16fe1df117cd78cabb6c04697f8774c21a425206469e81336070d728a7dc8919c8f3bcd4abd6bb1 SHA512 b5441992666d3c6b33364942bb557c97e6724a57b591daa2f4bff457ad1cf6250c6b92991411a561e38bfac8df41847248e0da3768906d630deb4df35b8c8734 -EBUILD nim-2.2.0.ebuild 4495 BLAKE2B 14aa3f9749c4c2641d677a97b96e88d5b931cd1d2cdb760c60e4c8acafff1b20fa90906d015f2d57b5e51ea4f30b7927c6583b26eda3e17461a461a355a8b48d SHA512 b6049dde621b18077f29873fced28c5cf72ee384a1dafca393369e3a5a57f830939253de1d72ae8d29cc32f727e12a8268ba732538c50262616d6620afe2347c +EBUILD nim-2.2.0.ebuild 4494 BLAKE2B 4bfb6dc10260ed7b90a694a37cbc57dbbf2a06c5359a045a9c44557d6e3b401ecc1956586b55f8876f53537d4636688d0b1cf68587c0508d049db69df6a5daec SHA512 06aca39539f70d048922ac28196d335cfe6dc2d31edcbd52ffcd950bbf88463ace2bc3e7b0dca855d472d2e2e3445bcb622e6d13b83c98ab8edfcd07b9685a64 +EBUILD nim-2.2.2.ebuild 4511 BLAKE2B 2579fdd6e71f73b9a92a6b1ae039e1ee210eef05c6b050109a27a0325a042f5f95389e59ac4c316749fccc07d4460593063aca8fa0d8f2970c4a87e28a67fcea SHA512 c8adfabfd8d59e35af3b968d1009c3a81eeaad8b513bed8571429f6b390157333b61e8378f1ffce1073e631f6a6cfb72bc94b7d1b293596573f58bf8a841f3b6 MISC metadata.xml 2093 BLAKE2B 250d27e71538be674ff7f32fe55089fca33f0d6ab55fdbe2b0f858f3d4373e729f273c16b2bf0bc3265be4289e7de1438096bf60e69bd0100e126fc5cc6173eb SHA512 74a188f13cc0653aa30d0c18126ed1cfb11d4325d71ffca6af03ad62b135796cd64d269e2ea85280cd1e486b527947b287eee4db648600451336e323882ff0e3 diff --git a/dev-lang/nim/files/nim-2.2.2-testament-skipfile.txt b/dev-lang/nim/files/nim-2.2.2-testament-skipfile.txt new file mode 100644 index 000000000000..347718d826de --- /dev/null +++ b/dev-lang/nim/files/nim-2.2.2-testament-skipfile.txt @@ -0,0 +1,87 @@ +# -*- conf -*- +# broken, bug https://bugs.gentoo.org/930542 +tests/c/temit.nim +tests/ccgbugs/t10964.nim +tests/niminaction/Chapter3/ChatApp/src/client.nim +tests/niminaction/Chapter3/various3.nim +tests/niminaction/Chapter6/WikipediaStats/concurrency.nim +tests/niminaction/Chapter6/WikipediaStats/concurrency_regex.nim +tests/niminaction/Chapter6/WikipediaStats/parallel_counts.nim +tests/niminaction/Chapter8/sdl/sdl_test.nim +tests/parallel/tdeepcopy.nim +tests/parallel/tdeepcopy2.nim +tests/parallel/tflowvar.nim +tests/parallel/tlet_spawn.nim +tests/parallel/tpi.nim +tests/parallel/tsysspawn.nim +tests/parallel/twaitany.nim +tests/stdlib/thttpclient_ssl.nim +tests/stdlib/tthreadpool.nim +# broken +tests/assert/tassert_c.nim +tests/async/tasync_traceback.nim +tests/async/tasync_traceback2.nim +tests/async/tasync_traceback2.nim +tests/coroutines/twait.nim +tests/dll/nimhcr_unit.nim +tests/errmsgs/t14444.nim +tests/errmsgs/t23536.nim +tests/errmsgs/tcall_with_default_arg.nim +tests/errmsgs/tproper_stacktrace.nim +tests/errmsgs/tproper_stacktrace2.nim +tests/errmsgs/tproper_stacktrace3.nim +tests/exception/t13115.nim +tests/exception/t22469.nim +tests/js/tmangle.nim +tests/js/twritestacktrace.nim +tests/lent/tbasic_lent_check.nim +tests/misc/trunner.nim +tests/misc/tsizeof4.nim +tests/misc/tstrace.nim +tests/misc/twarningaserror.nim +tests/parser/t20922.nim +tests/pragmas/thintprocessing.nim +tests/pragmas/tused.nim +tests/pragmas/twarning_off.nim +tests/range/tcompiletime_range_checks.nim +tests/stdlib/tos.nim +tests/stdlib/tstackframes.nim +tests/stdlib/tstats.nim +tests/system/talloc.nim +tests/testament/tshould_not_work.nim +# broken on musl + llvm +tests/coroutines/tgc.nim +tests/coroutines/twait.nim +tests/misc/t18077.nim +tests/misc/temit.nim +tests/nimdoc/t15916.nim +tests/nimdoc/trunnableexamples.nim +tests/nimdoc/trunnableexamples2.nim +tests/objects/tobjcov.nim +tests/objects/toop1.nim +tests/stdlib/tencodings.nim +tests/stdlib/tgetaddrinfo.nim +tests/stdlib/tstdlib_various.nim +tests/stdlib/tstreams.nim +tests/stdlib/ttimes.nim +tests/vm/tvmmisc.nim +# require network +tests/stdlib/thttpclient.nim +tests/stdlib/tnetconnect.nim +tests/stdlib/tssl.nim +# don't work without megatest +tests/misc/tjoinable.nim +tests/testament/tjoinable.nim +# don't work with "--hint:all:off" hack +tests/concepts/t3330.nim +tests/stylecheck/t20397_2.nim +tests/stylecheck/treject.nim +tests/stylecheck/tusages.nim +# need external dependencies +tests/manyloc/keineschweine/keineschweine.nim +tests/manyloc/nake/nakefile.nim +tests/niminaction/Chapter7/Tweeter/src/tweeter.nim +# need functional valgrind +tests/destructor/tnewruntime_strutils.nim +tests/destructor/tv2_raise.nim +tests/views/tsplit_into_openarray.nim diff --git a/dev-lang/nim/nim-2.2.0.ebuild b/dev-lang/nim/nim-2.2.0.ebuild index a61554bf2851..2f29d1e66644 100644 --- a/dev-lang/nim/nim-2.2.0.ebuild +++ b/dev-lang/nim/nim-2.2.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -19,7 +19,7 @@ SRC_URI=" LICENSE="MIT" SLOT="0" -KEYWORDS="~amd64 ~arm ~x86" +KEYWORDS="amd64 ~arm ~x86" IUSE="test-js test" RESTRICT="!test? ( test )" diff --git a/dev-lang/nim/nim-2.0.8.ebuild b/dev-lang/nim/nim-2.2.2.ebuild index d922c4ede0a2..a318694ec47b 100644 --- a/dev-lang/nim/nim-2.0.8.ebuild +++ b/dev-lang/nim/nim-2.2.2.ebuild @@ -1,15 +1,16 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 ATLAS_V="0.8.0" -inherit bash-completion-r1 edo multiprocessing toolchain-funcs xdg-utils +inherit edo multiprocessing shell-completion toolchain-funcs xdg-utils DESCRIPTION="Compiled, garbage-collected systems programming language" HOMEPAGE="https://nim-lang.org/ https://github.com/nim-lang/Nim/" + SRC_URI=" https://nim-lang.org/download/${P}.tar.xz https://github.com/nim-lang/atlas/archive/refs/tags/${ATLAS_V}.tar.gz @@ -18,11 +19,13 @@ SRC_URI=" LICENSE="MIT" SLOT="0" -KEYWORDS="amd64 ~arm ~x86" +KEYWORDS="~amd64 ~arm ~x86" + IUSE="test-js test" RESTRICT="!test? ( test )" -DEPEND=" +BDEPEND=" + sys-process/parallel test? ( dev-db/sqlite:3 dev-libs/boehm-gc @@ -31,11 +34,6 @@ DEPEND=" dev-libs/openssl media-libs/libsdl media-libs/libsfml - ) -" -BDEPEND=" - sys-process/parallel - test? ( test-js? ( net-libs/nodejs ) @@ -81,7 +79,7 @@ src_configure() { cp -r "${WORKDIR}/atlas-${ATLAS_V}" "${S}/dist/atlas" || die mkdir -p "${S}/dist/atlas/dist" || die - cp -r "${S}/dist/nimble/dist/sat" "${S}/dist/atlas/dist/sat" || die + cp -r "${S}/dist/nimble/vendor/sat" "${S}/dist/atlas/dist/sat" || die } src_compile() { @@ -109,15 +107,16 @@ src_test() { --hint:UserRaw:on ) local -a testament_args=( - --skipFrom:"${FILESDIR}/${PN}-2.0.6-testament-skipfile.txt" + --skipFrom:"${FILESDIR}/nim-2.2.2-testament-skipfile.txt" --nim:"bin/nim" --targets:"$(usex test-js 'c js' 'c')" ) - [[ "${NOCOLOR}" == true || "${NOCOLOR}" == yes ]] \ - && testament_args+=( --colors:off ) + if [[ "${NOCOLOR}" == true || "${NOCOLOR}" == yes ]] ; then + testament_args+=( --colors:off ) + fi - local -a categories + local -a categories=() readarray -t categories < <(find tests -mindepth 1 -maxdepth 1 -type d -printf "%P\n" | sort) # AdditionalCategories from "testament/categories.nim". @@ -125,22 +124,26 @@ src_test() { local test_return=0 - local tcat - local checkpoint + local tcat="" + local checkpoint="" for tcat in "${categories[@]}"; do # Use checkpoints for less painful testing. checkpoint="${T}/.testament-${tcat}" - [[ -f "${checkpoint}" ]] && continue + if [[ -f "${checkpoint}" ]] ; then + continue + fi case "${tcat}" in testdata ) : ;; + arc | gc | ic | js | msgs | stylecheck \ | testament | untestable | objects | valgrind ) einfo "Skipped nim test category: ${tcat}" ;; + * ) einfo "Running tests in category '${tcat}'" nonfatal edo ./bin/testament "${testament_args[@]}" \ @@ -152,8 +155,9 @@ src_test() { touch "${checkpoint}" || die done - [[ "${test_return}" -eq 1 ]] \ - && die "tests failed, please inspect the failed test categories above" + if [[ "${test_return}" -eq 1 ]] ; then + die "tests failed, please inspect the failed test categories above" + fi } src_install() { @@ -163,19 +167,18 @@ src_install() { dosym -r /usr/lib/nim/bin/nim /usr/bin/nim # "./koch install" installs only "nim" binary but not the rest. - exeinto /usr/bin - local exe + local exe="" while read -r exe ; do einfo "Installing nim support tool: ${exe}" + + exeinto /usr/bin doexe "${exe}" done < <(find ./bin -type f -not -iname nim) - newbashcomp tools/nim.bash-completion nim newbashcomp dist/nimble/nimble.bash-completion nimble - - insinto /usr/share/zsh/site-functions - newins tools/nim.zsh-completion _nim - newins dist/nimble/nimble.zsh-completion _nimble + newbashcomp tools/nim.bash-completion nim + newzshcomp dist/nimble/nimble.zsh-completion _nimble + newzshcomp tools/nim.zsh-completion _nim # Install the @nim-rebuild set for Portage. insinto /usr/share/portage/config/sets diff --git a/dev-lang/nprolog/Manifest b/dev-lang/nprolog/Manifest index 80fe0a114354..2c575647de90 100644 --- a/dev-lang/nprolog/Manifest +++ b/dev-lang/nprolog/Manifest @@ -1,9 +1,9 @@ AUX nprolog-3.22-ncursesw.patch 270 BLAKE2B 4e412a1b42bea3e797ddb0f17a5d22bd0f22f5e9fd037bc199704c1abd664413df1adaafc35ed5f430b4da36279199b30b57d34cf459064efa3bc94a1f61a6ca SHA512 41c510be3afad45ba77d1882f864b62349c2d81fc4ac166d736506d14f1e9061ce4d1f9ec3a6adb15fbd4b377573b915f27efba0825701dc396848ce5e2d16e3 AUX nprolog-3.88-makefile-CURSES_CFLAGS-edlog-rule.patch 780 BLAKE2B 95e6e7a10af3ac3debcec909debef34c28c360e15b48082b5eadd0f8530a633cd9028a0238152d27762db5c1d57ab1ca4b3f2ac10bb9b5756f078433b362afd5 SHA512 87b54236f9aee8fa7f69925765e33efe096a0fa47761faf05adf8335671b1730085311e1b7fe0f9983f12d9e710ce25c0663897ca6e9ecb0d3a5f2cb776f8fe6 -DIST nprolog-3.53.tar.gz 682333 BLAKE2B 827e6ff1b066e42fd10df8788a6752ef4df7692cc3d11ad6b1bb001b72d2e916997abae21e182c161ac1a1098362a2e8430a1b1500b4ad97ca74a00db19e70d2 SHA512 10de04a1737999203d23911b3c36ce506b112476238ec1c28bcade2a459cec6d8ac2310dd8ba3bd1af82aa390444ff5c37536585429faa7c12fa9ee154243087 DIST nprolog-3.88.gh.tar.gz 1337137 BLAKE2B 0d8f8d5e8242e3ab172f0a1256252ef99b6daf76a77fb75710c0286d55aa02e79e78601ec4347e42d88411cc7528d4e3b041496df04335496b71fc41cb3573c6 SHA512 12ef940792a6c9cd44cafad5440829d43b0c4736732341172255733f163d48b189233b62288e4fd59d36e5a378742f783a0400c2c4dc3d6b06570143b06685db -DIST nprolog-3.89.gh.tar.gz 1286015 BLAKE2B 006e9ecfc541cc57cd67454ce3c10e6f8c9fce63695a4395d1b1d3db82aa30483d78503544d5b4ffbe2e87902fa05fe39fd2c6ad2fe4d3e54d54e96901a6e69f SHA512 9df70ec2c37861a6374fd0093b426cc0ba55138680e164f9d84ed830470cc955c2da7a24ba3fb517b4dbf5c0154062f9431905d9d326db6f7a7ddccee250a7ea -EBUILD nprolog-3.53.ebuild 888 BLAKE2B 1a70453da30466404a14daa097c7df96cd95bcf759becad989cd538e6b17739f86a06301950ed1913314b750955c3c8f3a07f650ce41a3fab431102f414deaaf SHA512 8fc94200ca57c0a592500c1f10a8b58fafb41c8ee28f5dcfea20327784a1221a5440bf72f6a53e1c365dd3bc1006da99d8aa2e8b541d07956a8502f9187c68e5 -EBUILD nprolog-3.88.ebuild 1100 BLAKE2B 7f056d2d92d21e2d343f65f8aebee3934d7badd69aefe5fdeaf1230fb54cd13e09bee73c89f51c78fd2accbe9c91a8b2e2890133a567d8d9cd9a525c8eb79f64 SHA512 b697953177b8f268da8bdfa308750fa67be3b9b079c8ce2d1d01cc82db21771cd29daac509a8aed2013c24c2902e8c03acd9b415f40925010fb92e210583c811 -EBUILD nprolog-3.89.ebuild 1032 BLAKE2B e39dc2dd493eebcdd307a5453f9e312c01848280a042ace8eb4255e78a35379d8829581c8635740da506419af011e0f9daa7f2a17ef966b6ff36b93108dd96fa SHA512 e1d11da019820e23d60ccbea7cfa3deabd1466112aeeb7ef4942f624860553d9736cfad4329439e04f0a9ee7ee5d200b972391e38249d28567926098e56e9b3f +DIST nprolog-3.98.gh.tar.gz 1291160 BLAKE2B 9f143e5bb15156d8bac365b06d240817d3ff6a6f248d6148cfa88dedfc5d3e6749ed56e1c8bc10298ef2564507481e5b8bbbdf4c32c33343cb009913e9440214 SHA512 cb4462089557348aba1b18e94024f3d4bacf988611c79ee3e84ecd32d0356e9e370c677fa7c0228e3aff60b434feb58ab49aba6cca79b456699b63f64483142c +DIST nprolog-4.00.gh.tar.gz 1292375 BLAKE2B dbed6d7379711a79a3ac0465514c8ad950a8af6f2140ea79840bf6a9b31abfc67f1d8259da52768bc86a68e56e5b576c7833e33395e2a8dd6a78aafe3a9c7380 SHA512 9f892b67007f7bd9a08acd188fbccf2565de7a5009ad6b18c14c359a4abb186f26638e18dd426396ac4b4ad88d715507a2054fc3d36c3336cf578ea844d29fae +EBUILD nprolog-3.88.ebuild 1099 BLAKE2B 0ff2bced700750eaaecd47ec5eaf3bfb1e2c898c5bd0a0b1362dee2a9e88f807f67a1f65601ffb6ebc0b32cd187013b0143ab511586c5f97b9150a999593ec24 SHA512 b3cc88317046bb9fa4c56580f25ec4fb4814de9312068c58f0b3c2ad3aa67ab0c4af6bdbc908ae152400e100cf1693c11ae166d0cef6e157f96225eb37c83545 +EBUILD nprolog-3.98.ebuild 939 BLAKE2B 54af8f133e704ed030d70711ef580ee4340d1e2957ac19a18e40caece971a186860f25a6fc977e2eed2ed0b38ff6ee37e43e7c74c4ee9b56c03463286fce9185 SHA512 a5ab0c3c604717b0c64009e95e9aaaba96c73f44f9f2dd19cd3f2de262a769c9e7f1c4a7a6e5706bbe12367f96ab0ca5a2112b39d3cf51f5117fdbb7ad1c702b +EBUILD nprolog-4.00.ebuild 939 BLAKE2B 54af8f133e704ed030d70711ef580ee4340d1e2957ac19a18e40caece971a186860f25a6fc977e2eed2ed0b38ff6ee37e43e7c74c4ee9b56c03463286fce9185 SHA512 a5ab0c3c604717b0c64009e95e9aaaba96c73f44f9f2dd19cd3f2de262a769c9e7f1c4a7a6e5706bbe12367f96ab0ca5a2112b39d3cf51f5117fdbb7ad1c702b MISC metadata.xml 657 BLAKE2B 9331358542d57958385bc1218b4a1c5d38185ab0822d0cc68e51bcc5f8b00645a523a1a4f60d30188efc3ed7cb934f0a6a964d27bf0915c5956c69774c734590 SHA512 972ae4d1f2179887f77d8805f2e5482c17767e38b078fa9d9ee65a2f43e0b56b76fccd0166f4c5121de9a7cead4faa7683bd8e9076c257ffb2d1deb673eb276e diff --git a/dev-lang/nprolog/nprolog-3.88.ebuild b/dev-lang/nprolog/nprolog-3.88.ebuild index 439e10d62cbb..fa2e755e957f 100644 --- a/dev-lang/nprolog/nprolog-3.88.ebuild +++ b/dev-lang/nprolog/nprolog-3.88.ebuild @@ -17,7 +17,7 @@ else -> ${P}.gh.tar.gz" S="${WORKDIR}/${PN}--${PV}" - KEYWORDS="~amd64 ~x86" + KEYWORDS="amd64 ~x86" fi LICENSE="BSD-2" diff --git a/dev-lang/nprolog/nprolog-3.89.ebuild b/dev-lang/nprolog/nprolog-3.98.ebuild index 66c38c72e940..7cd886b90578 100644 --- a/dev-lang/nprolog/nprolog-3.89.ebuild +++ b/dev-lang/nprolog/nprolog-3.98.ebuild @@ -13,9 +13,8 @@ if [[ "${PV}" == *9999* ]] ; then EGIT_REPO_URI="https://github.com/sasagawa888/${PN}" else - SRC_URI="https://github.com/sasagawa888/${PN}/archive/refs/tags/%EF%BD%96${PV}.tar.gz + SRC_URI="https://github.com/sasagawa888/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz" - S="${WORKDIR}/${PN}--${PV}" KEYWORDS="~amd64 ~x86" fi @@ -24,10 +23,6 @@ LICENSE="BSD-2" SLOT="0" IUSE="doc" -PATCHES=( - "${FILESDIR}/nprolog-3.22-ncursesw.patch" -) - DOCS=( README{,-ja}.md ) src_prepare() { diff --git a/dev-lang/nprolog/nprolog-3.53.ebuild b/dev-lang/nprolog/nprolog-4.00.ebuild index ccaea1f0a765..7cd886b90578 100644 --- a/dev-lang/nprolog/nprolog-3.53.ebuild +++ b/dev-lang/nprolog/nprolog-4.00.ebuild @@ -11,20 +11,19 @@ HOMEPAGE="https://github.com/sasagawa888/nprolog/" if [[ "${PV}" == *9999* ]] ; then inherit git-r3 - EGIT_REPO_URI="https://github.com/sasagawa888/${PN}.git" + EGIT_REPO_URI="https://github.com/sasagawa888/${PN}" else - SRC_URI="https://github.com/sasagawa888/nprolog/archive/v${PV}.tar.gz - -> ${P}.tar.gz" + SRC_URI="https://github.com/sasagawa888/${PN}/archive/refs/tags/v${PV}.tar.gz + -> ${P}.gh.tar.gz" - KEYWORDS="amd64 ~x86" + KEYWORDS="~amd64 ~x86" fi LICENSE="BSD-2" SLOT="0" +IUSE="doc" -PATCHES=( "${FILESDIR}/${PN}-3.22-ncursesw.patch" ) - -DOCS=( README{,-ja}.md document ) +DOCS=( README{,-ja}.md ) src_prepare() { if [[ -f edlog ]] ; then @@ -45,5 +44,11 @@ src_install() { insinto "/usr/share/${PN}" doins -r example library + if use doc ; then + DOCS+=( document ) + + docompress -x "/usr/share/doc/${PF}/document" + fi + einstalldocs } diff --git a/dev-lang/nqp/Manifest b/dev-lang/nqp/Manifest index 5e700c78bf0f..e53315c00e7a 100644 --- a/dev-lang/nqp/Manifest +++ b/dev-lang/nqp/Manifest @@ -1,6 +1,8 @@ DIST nqp-2024.10.tar.gz 9727368 BLAKE2B ac58b70e798a2e28952664bf75f75bab708bc9604cf3f92f30eed4dc23360fe8e535f00cf81e2733a181dc1377c55ae90ada63278c1e603bab772e2ed65eeeb7 SHA512 1fab4efcec03059953a378e7b902432edc76b23c5c899d5845069aec4e7e07855a107e1f4bb491ef7e3185f7e16f9e630cc01efffc49ead14e7689799d501a17 DIST nqp-2024.12.tar.gz 9726946 BLAKE2B ea1ee9690451f3a18b9815a2515fe781ca73562fa8820994c1e21bd3f5fc7414f167f0dbdeed96de9c4d98b98fe0ae68b07cee7dfd2de467a8f69c4c8dfdd43c SHA512 a9e920abe7419714195d5938492327769cc4a97bc67a97dbfdc2b3aa726cb4abf4884a5a8a55f882b69114cbec344a6423e9e975c62d5bf4f50162acfeef6b96 +DIST nqp-2025.01.tar.gz 9727757 BLAKE2B 3d9372eebfc928d2b286835e30525278fca50447c35ab47656b5b6f84a9af5a907993f28362fe472a62d08fbe5ee781c9eb59b43c31d8b44ef1c8c7a7fffa35b SHA512 1d39bac924535959844dd386ff0558622540c3d9b5ee25767a0952a036da956c0d7d618a0d9f485f70d32df3e2910d5f9cbb5ea4c54fa90a18f2fac4ce82302c EBUILD nqp-2024.10.ebuild 3276 BLAKE2B 7109bffdcf26bbd5840e40e740737ddcf3bd1ba9ea7f1c7301d348beb8dc5447a8b588eb275f707f6df61098e3e61aeb5edcc0bd5c4bec80fa2f201918603f18 SHA512 4011c1c504516784e1732c40fc08b3b6a1aecf1d42689f02c32398327f95df34bfb4688893a139a083ce0a126f8f430444d3e532a567beb239159e95ab9d5dcf EBUILD nqp-2024.12.ebuild 3276 BLAKE2B 7109bffdcf26bbd5840e40e740737ddcf3bd1ba9ea7f1c7301d348beb8dc5447a8b588eb275f707f6df61098e3e61aeb5edcc0bd5c4bec80fa2f201918603f18 SHA512 4011c1c504516784e1732c40fc08b3b6a1aecf1d42689f02c32398327f95df34bfb4688893a139a083ce0a126f8f430444d3e532a567beb239159e95ab9d5dcf +EBUILD nqp-2025.01.ebuild 3276 BLAKE2B 8420f27a2f097738443136ce2a28c239c8814e12f17a82913792f4d55555c862b535613a8344ba953a0784ce5e1dc0d649fd1fb20e6db35fecffef2132d8acea SHA512 cfbd4172f03b03a2418f3f76e273b65f57abd887e9a3394a5016ae455102f89f72afc24e69b5e89442592f0ab1e93607ec0e0869a654af407b2682da6f7de8a3 EBUILD nqp-9999.ebuild 3294 BLAKE2B 49fe78da4f73c9028a0478d5452facb76dd07d46526f637982adcde5771819a68a02e3dfc91decd0e1d7368493a1856c43ec95ead3a558197e9a913e7d12fdb5 SHA512 a109aa4d8db79c8401053cee203da7c391b4350737895e997930744f8e4f1629bc4f9ca041eed3f6667a5ffadceb909bf85628bde604a5b92d8551cddf370610 MISC metadata.xml 517 BLAKE2B 384b3622592cc6d5fd94f2f34bcb69b00ce00bbea6b811e56d068a8882bcfb78fd3eae9f7b28173147b3235b942409f7b19d45044bf63bf9dea5b8b5f7110ca8 SHA512 bf89e6907f728f3e471a9a0fff41004cdd3cf50a92d8a1a262220bd590ae6a489f0b51d541bfefb15c4aae378621135a354ef48b768ea5b182e3fca6af6c3cb5 diff --git a/dev-lang/nqp/nqp-2025.01.ebuild b/dev-lang/nqp/nqp-2025.01.ebuild new file mode 100644 index 000000000000..a82fbb4753d6 --- /dev/null +++ b/dev-lang/nqp/nqp-2025.01.ebuild @@ -0,0 +1,147 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +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:9 + dev-java/jna:4 + ) + moar? ( ~dev-lang/moarvm-${PV}[clang=] )" +RDEPEND="${CDEPEND} + java? ( >=virtual/jre-11 )" +DEPEND="${CDEPEND}" +BDEPEND="${CDEPEND} + clang? ( llvm-core/clang ) + java? ( >=virtual/jdk-11 ) + 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)" + 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 c456c561462c..3818da6d3746 100644 --- a/dev-lang/ocaml/Manifest +++ b/dev-lang/ocaml/Manifest @@ -15,6 +15,7 @@ DIST ocaml-4.14.1.tar.gz 5498436 BLAKE2B 6113283ab0f7ac39ade1f35a02c203a6956f8f4 DIST ocaml-4.14.2.tar.gz 5505119 BLAKE2B 518c2a69ee32e1c141b574a9800a64efc445381eb2808985b5dbb9d5ec54228aa25042a1c410307c3556488ba12a751980396b0d9a01e60a1ea84ac5b52e6dd6 SHA512 61bfa7961aae02458210f10865a5703f7a50a9be2452379e820cf2dfac2c6037da553c31835145e50a776880bdeb2ec78cd7a3147d65f418e7b3e593534e8a04 DIST ocaml-5.2.0.tar.gz 6047633 BLAKE2B 5d0a7d48d9ed9fcd2974237a93e30ffee20fc444b5ede296bd35cb3285909f8cf5a489ac1cdc75778ca6d45f8ff40a92939bfcfc42e218aeda0170b1ac0bfd49 SHA512 78115690186c13c1f2480e4812a9fe34cce2c28bf8a89d5c9810bca0391f930cecd9cee2b53daca8a32da1815628b33be68f3948f1ad03fa50b72b14e3ea84f2 DIST ocaml-5.2.1.tar.gz 6051609 BLAKE2B 5cefbddcb97c7e9de5a5e1c4385086972bf78f545d3a649278c9582b3c527374f80fd32b072e51ff7c753a50431f373e0d584c9c8187a25d8f828adb3e595234 SHA512 b0803dd90a0ac6fdf609345c481b3dc637eb9cbb9bea296cfd79f6913ab34b9e02970bcddd83e8bc419cbe1c4694bb7889146615841b5ee101081a82eee024e2 +DIST ocaml-5.3.0.tar.gz 6239856 BLAKE2B a790293d14a31d34b10f2fac22a416e967c2a06f64001b54665e691a6aecdb71caf60dd6217460257f8d18191551ffa01d0d3d62327c6eb9bc63c254c162752e SHA512 73817ada340bdf4091b3edd7b292bd0074c87b4836f202f48ecf0f620a00feaa70ebc9101b97155e8caa6907646dfdf21eff728fa0e14542df3b5e5436229d06 EBUILD ocaml-4.09.0-r3.ebuild 2742 BLAKE2B e4dd877140601c6b52e93587047b5bfa27e39cf833664a22e39448784cbad82d6e5feb2aecfb169725f72f098750d28cef6e98d988c7cbde0abda5776384799e SHA512 0fe114be6a3b02a197b7e42137e43d51f1664438e2a2805e63642e4a1a50e78d865db64dc0f357e13c1fcc2cb1e3bb71a81faa611d67ef01c4036e48c659f166 EBUILD ocaml-4.10.2-r3.ebuild 2749 BLAKE2B 3450e01f8157a66bc69079030ac3abe35cd8954c9cdd83d70680238c64449661f967cc6ba9a9d8029a3f17b41c8892508868db513faf239407b1b59a0ea87b4c SHA512 6423d21d704eee5b97b177ac98a8ba1794af430a6f3a1c4606946ff213a5d8dfa643787d802b3de1b77832583fc4c55ebafc5ab2073f832e65c5eb0b19344b5f EBUILD ocaml-4.11.2-r2.ebuild 2590 BLAKE2B 37ce14549ad68e0d30c9326ed568d921cd3f7fde93b29ac0c826cf2f1de3d9bed2d7dbfe93b8648452b7b48f512bba02d3f3520a72e4fd38247aa1f97cda0914 SHA512 b57778eea9a32e2f3a5e88bbf9a48082e8766aa0409aaa53fda9f2af24b5c0100e0e6ae449930aa4b9cfc4b99e4623145f05867f130fc453c89b870cb887e2fa @@ -24,4 +25,5 @@ EBUILD ocaml-4.14.1.ebuild 2440 BLAKE2B ea1cb9fba221ff93a3a4f5ae49db23e0b32aaae0 EBUILD ocaml-4.14.2.ebuild 2587 BLAKE2B 63fb2de0f2b38754e4a0dfa2669ee0d7aefbfd91ef6ec427ee44cf7c2e68241abe04e079139b5de33aa2b3e4f9dfd2c62657905e1de4b8b1fbc3f3a119ab4631 SHA512 d55c9d057e781ea080c9f211c451ac787f851a80d2100b27645ee912e66c2c863703b3a2d0e14fa7538094e3eedff19d888cfe42fe153ba118e340b338ac7285 EBUILD ocaml-5.2.0.ebuild 2627 BLAKE2B 4dc6c29849839927544941c263ff33b0d24e3617a466a3ef4cf78fe6ae949fb650da9c9cdcc011adf426ff54f0e837482f969f8ade9b0642bab5940196b6e1e6 SHA512 31fc07c3cca11ca8d53d27ffca92b636bea2c112a2a73d437cf57bdfa175021f61db9d656bca5058c0d86c77457f36e012e6aaf233a9de2b6bd9f22d08f02177 EBUILD ocaml-5.2.1.ebuild 2627 BLAKE2B 4dc6c29849839927544941c263ff33b0d24e3617a466a3ef4cf78fe6ae949fb650da9c9cdcc011adf426ff54f0e837482f969f8ade9b0642bab5940196b6e1e6 SHA512 31fc07c3cca11ca8d53d27ffca92b636bea2c112a2a73d437cf57bdfa175021f61db9d656bca5058c0d86c77457f36e012e6aaf233a9de2b6bd9f22d08f02177 +EBUILD ocaml-5.3.0.ebuild 2627 BLAKE2B 1dd72c47fc54deb90a968eaec55a56052175c44972cabb7f37a7f011fdbe15d58e0aab278c31df3d76cca5a2d0d4118fd7f2617387dc70f0dc1c5eed7046836f SHA512 4bee61e86ec10a55adac41d6b8e52e09ca4653dd09181b7d499848b897a312793de26dc160d25b3baf3a05c4134947d60fc92ce504e33666d4f73d53a8284590 MISC metadata.xml 671 BLAKE2B 452ea340c8abacedbdb20a344cffa9b91db2251e0174db596e4f96bf2b1c9d308ceb035e0870e738a15c313003fcbf39bb91c5f68b40a185e5e08e3ea7042616 SHA512 1d8248e2b05b145c804cc9cce6aa617bd6466f26326033cee06ed27ceb93ebc88b62f3badbfe13092fbaa89c3a71087491b88c4fc094da8624ab668cdc73b383 diff --git a/dev-lang/ocaml/ocaml-5.3.0.ebuild b/dev-lang/ocaml/ocaml-5.3.0.ebuild new file mode 100644 index 000000000000..671831ae1ec3 --- /dev/null +++ b/dev-lang/ocaml/ocaml-5.3.0.ebuild @@ -0,0 +1,107 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic + +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" + +LICENSE="QPL-1.0 LGPL-2" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos" +IUSE="emacs flambda latex +ocamlopt test 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' + +RESTRICT="!test? ( test )" + +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() { + filter-lto #bug 870349 + local opt=( + --bindir="${EPREFIX}/usr/bin" + --libdir="${EPREFIX}/usr/$(get_libdir)/ocaml" + --mandir="${EPREFIX}/usr/share/man" + --prefix="${EPREFIX}/usr" + $(use_enable test ocamltest) \ + $(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() { + # OCaml generates textrels on 32-bit arches + if use arm || use ppc || use x86 ; then + export QA_TEXTRELS='.*' + fi + 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/oorexx/Manifest b/dev-lang/oorexx/Manifest index 248d4371a264..0d43d651300f 100644 --- a/dev-lang/oorexx/Manifest +++ b/dev-lang/oorexx/Manifest @@ -1,4 +1,6 @@ AUX oorexx-5.0.0-man.patch 1080 BLAKE2B 17e105f80a5efd4fa28312c1cc81050b57c39357b7fc83ff0b8703970976e4530f03e942f09cfe79fa4dae35a7616be45058355133aa46ebc359f8578800cedf SHA512 530397a95170e08aca60db967af54c4ec22ae322f98ae7c0fb38737067f58cd8409700a00025fa85da05d54b76fc5090c0c0c02ed5502d2a84ae5468d4cefe2a DIST oorexx-5.0.0-12583.tar.gz 6398458 BLAKE2B 3df1eb024eae75f9c29bd46a7c9e0c8fffecf54545e5926f872b6757f0cba56530c4b457e94ec44debbd98e514e1043ba751384dc0f1dabb4812aa52da4381e0 SHA512 141af22e0a99731d50492940d5db55cc59099e5a7fa8acba918d1ae82bcd6e2983fb0ca71bbbf044cc4fc89e740c8a0ac81237eea5812d7a570f825bba5d08b9 +DIST oorexx-5.1.0-12932.tar.gz 6439361 BLAKE2B 5b9d98de50f345b5ebdcda01ef85a0e251f6ed079b9be659ba176b4f66b665099e223fd5292c274366bc4b7bad00a389fe25c1de8f987eb80a6446e8d30f3ce2 SHA512 9016c36ae98d937de4303988dd5f587372d07623938f2534021823a1bd4abf49cefae786e9a155aa239bd71d6aa2494539bcbe185587f5976f37f07477e98cb4 EBUILD oorexx-5.0.0.ebuild 1049 BLAKE2B 239791fc8ec124769c5cde2f70c480f9b498bbd5bf570a8732f266ffb3c54d5e2516962378f28b31955e8703f52a4a79a2379427595cd6d4298227d72f044ba5 SHA512 5713f524867901633aaaa52e15102137c87f1edb5958b3cb0615fc17e92f02cb5c177e4a254a40fe9dc770fdea1d575ea2242e998885e208452338ce37534ad1 +EBUILD oorexx-5.1.0_beta12932.ebuild 855 BLAKE2B 127180e12b49f2b0e279ea5f71bfe122646a58f93bfe37d5ee4f3076274cd8e6e807ecd9b93c342b00d615b1d3af29d654db0c96ee0c17bb39df29dbe59be1e0 SHA512 d6d205de451170ea1bef36309fbfd00f76a3e4b991b7a1a9e8634af3ceee175cba3b64d5d5506134e8b7d578794b07cfb1ce14a57ccc4bc9cdcb7944295310bd MISC metadata.xml 791 BLAKE2B 5e8ab7a5472b3864c1f1c66559518072fa4364276afbdb1939b8a81a3fcb8279bfb07c3f929edfc49faf1768d14171a870825e23ffee6e1f8fbf151879c95f8d SHA512 1e7a42ad84daee790eb4bb400365645432c895940fb4a380d575123782b77251d8be4efc108239f5587865434bef3b3f4cb90761e0e7f4425d5387f4f7e31cdc diff --git a/dev-lang/oorexx/oorexx-5.1.0_beta12932.ebuild b/dev-lang/oorexx/oorexx-5.1.0_beta12932.ebuild new file mode 100644 index 000000000000..6bde96a5933a --- /dev/null +++ b/dev-lang/oorexx/oorexx-5.1.0_beta12932.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake flag-o-matic + +DESCRIPTION="Open source implementation of Object Rexx" +HOMEPAGE="https://www.oorexx.org/ + https://sourceforge.net/projects/oorexx/" + +if [[ "${PV}" == *_beta* ]] ; then + REL="beta" +else + REL="" +fi + +REL_V="$(ver_cut 1-3)" +APP_P="${P/_beta/-}" + +SRC_URI="https://downloads.sourceforge.net/project/${PN}/${PN}/${REL_V}${REL}/${APP_P}.tar.gz" +S="${WORKDIR}/${APP_P}" + +LICENSE="CPL-1.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" + +RDEPEND=" + !dev-lang/regina-rexx + sys-libs/ncurses:= + virtual/libcrypt:= +" +DEPEND=" + ${RDEPEND} +" + +PATCHES=( "${FILESDIR}/${PN}-5.0.0-man.patch" ) + +src_configure() { + # bug 924171 + if use elibc_musl ; then + append-cppflags -D_LARGEFILE64_SOURCE + fi + + cmake_src_configure +} diff --git a/dev-lang/orc/Manifest b/dev-lang/orc/Manifest index 21e48f5965f2..121809895910 100644 --- a/dev-lang/orc/Manifest +++ b/dev-lang/orc/Manifest @@ -1,7 +1,9 @@ AUX orc-0.4.40-avx.patch 3280 BLAKE2B 875193f2368c6cf668be470359ff6eea09ca4b2144fee18cf914c5ee104f9d75f0513bef140a979a4a8efb0549b813218960874d8cdae079192ee7ef8a71b8f8 SHA512 65c3bd8674f496d1fa2b4d12deb1f77cfd53bd33750f082f046f40af681c1f96a584b06d008d0fef88eac0a2d26e7d6123c8c483fa07b55b3af27b4dbd2dcaff DIST orc-0.4.38.tar.xz 227152 BLAKE2B f7babfec5f4d792fb52eb0ca23743b6c06a12625edcf0cecbf8e3cb88c13171a760c6874061a3e55a43df5389346b3c3d0ba3463d6e1ef32f685162f7478e631 SHA512 49f34be85f6980e4b5e94f848016f5788b658323f3a120110bc237722ac99938c02976efbe96022d148054330432899533305d4dd21be8fab76fd1995179339a DIST orc-0.4.40.tar.xz 233276 BLAKE2B 2f2be5b7eaf5ea8c2fc55ff3938b5a9e9ef25a1ff3c5de4c02f9847b2df9039c8f412b9d780a172e78838c22f5006544a8181d7aaa22c47be98e6f050c04435e SHA512 2cbc0b8b9f5f429e0c4b24b7b9a8bc5d249c013470d8a595fdb3969a68a90c95c3b1e79063851f2d0ca7f7888d33901f227d2e04f919df00caf37eca6270c0e3 +DIST orc-0.4.41.tar.xz 234212 BLAKE2B 8c14462bc2420a96176592c8362d302667041c70086cbad8785bfde182a6131b86c5293d607d0c87bfdc400c1e22dc83dda5bd3a4c799e8f398ed7b72ad0fae5 SHA512 8c1dc497b2e2dd9a071ea0cb66bbf4bda0bad64f41c1ce0b9c87eb61c1fcf27d4cbef6c30ef00fed57c3623458aa683d39904f7c37072072eda6c51bcdd94091 EBUILD orc-0.4.38.ebuild 1114 BLAKE2B 1f74ad54afbd80418527e9db0ba3f92c188464ac733df92e748c263f45f37dc9e9093ac590a9ff7a86af5337333d5aa173b59ca23ab20b804324971d52d9e451 SHA512 a2a392126cd203248a393ae95653aa7f32cda77261a037322189cfb5db7f2b3ba470b8d592791588ecd4f23140313db8d8de181d2756fe4e1320692ecbf447d3 -EBUILD orc-0.4.40-r1.ebuild 1162 BLAKE2B c84c126dd0ec9ae59ac24a4d2b9890025b9f4833fec5674786f55ba5a62e6ade7b4f8ddd02556ec21ddf4acf2bdbb45748d92ab4b706a06bb849dadfa7a6dd1b SHA512 013e3842d12cce50828af6d7adefeebb084b9973f8fecf7845de03f773ea38aeda77bb1974371042a347bfaf80e7a99580d4fa0cf905e4c573a54cf1c65824bc +EBUILD orc-0.4.40-r1.ebuild 1157 BLAKE2B bf5de5259037893bd4b7aca493f0aa38534212c68d0721632fccc222fb0a663ee14bd3c4d19ff21a46771ec97813040183714b1a20b5ff2b31fc3cf3cd4d42ec SHA512 6a39a4040afba2208f844fd236ee874cd89a37c3b82a4a1329e558b50ab8652fa5c11fa22f4187d22af1fbc7cb8d7ccc0712a91df8b81e25af7a6be3c7d36fed EBUILD orc-0.4.40.ebuild 1120 BLAKE2B 2e116fcd9cf8311193229f3a3e79ee398f4d2b33746bfcaf0f06d709699fd3d6e98f0a44aa3a024851b59aeaceeb672c6378186d3ccb46cc2237800351c6c4f6 SHA512 4c98d9f60cbde772c563e73fcb76122d7e5e60dda195b1c80b7094dbb428de408ead6d7de48049fcfa797811a623c4256041db56eb811fc2593ff54c5b539f6b +EBUILD orc-0.4.41.ebuild 1119 BLAKE2B 6e0a77557acb0ce01f9752e4e674d3bf4043ae656ae656188c880005dff8731eb18a53b1dcfaebe488706147fa4c41638e4c943d41ba2a67d6212bc9476a9f23 SHA512 d71ae276bac4b3547b282a5e188077211ae4066d1f2312f5349d8951edf9417b554439b921146412defb0fa0ca80cbc7912ed43713ff7cc0c782bf20e56362e7 MISC metadata.xml 265 BLAKE2B 15de31a2337fe8b9175ffe3fd29cb1eb24148d7463f772b18a7fe8b38bd4edb05005df1ce6996cf23dad21db879c18b95d245fa9d096a002b95155c01088f516 SHA512 78a0c7a2a820f7032f384cf68d2affdd92d6f1466778f879909d0acfcc1cdc3bd64eee700ba06979f561583981033aae59b5d61eb4cfd01fc71fc13e4433305f diff --git a/dev-lang/orc/orc-0.4.40-r1.ebuild b/dev-lang/orc/orc-0.4.40-r1.ebuild index 669a5abca44d..591410964079 100644 --- a/dev-lang/orc/orc-0.4.40-r1.ebuild +++ b/dev-lang/orc/orc-0.4.40-r1.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://gstreamer.freedesktop.org/src/${PN}/${P}.tar.xz" LICENSE="BSD BSD-2" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" RESTRICT="!test? ( test )" IUSE="gtk-doc static-libs test" diff --git a/dev-lang/orc/orc-0.4.41.ebuild b/dev-lang/orc/orc-0.4.41.ebuild new file mode 100644 index 000000000000..73ed14cd7ac3 --- /dev/null +++ b/dev-lang/orc/orc-0.4.41.ebuild @@ -0,0 +1,41 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +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="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +RESTRICT="!test? ( test )" +IUSE="gtk-doc static-libs test" + +BDEPEND=" + gtk-doc? ( + dev-util/gtk-doc + app-text/docbook-xml-dtd:4.1.2 + app-text/docbook-xml-dtd:4.3 + ) +" + +DOCS=( CONTRIBUTING.md README RELEASE ) + +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-target=all + -Dorc-test=enabled + -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/pcc/Manifest b/dev-lang/pcc/Manifest index ee188bf0cf82..eddd2bc2583e 100644 --- a/dev-lang/pcc/Manifest +++ b/dev-lang/pcc/Manifest @@ -1,4 +1,6 @@ +AUX pcc-1.1.0-C23.patch 5875 BLAKE2B 13baf8ac90cde3f949890ae44568fac1a7f2b3fa30ffe21bf444fd2e6d9a06e669de93953cc51cd487516a41fca4dea6c3e43241ee99e6532687169ea3deff0e SHA512 d955cebd3a57a85334344cbbe81e329cce66fb2e7b8bda6709a71d1ad69760b1df808a82a517416f761f69a0b5da41cc729188da360fbce260a755d0ebf4b47c AUX pcc-1.1.0-multiarch.patch 305 BLAKE2B c3162dab579e1b2b268b7de55e5a2dbc70723b41635cfb8543483e1ccc1f3bdf3a9e0d9ba1d7afb036dcaabf4f44c372cbaafb7081404ebed65b726c3b3b1da6 SHA512 5ade01d09929a05fe6dfccf573f3b0742f61bd135f37ebacf2834c44b8bdbbafbb69f0ea1ebf467da4811f756ecd4a7f6753c362d2667c12888d211ae47737f1 DIST pcc-1.1.0.tgz 848427 BLAKE2B f94dd3eb3f96145e3fd2d5d89ca5a3a12c55614924c1bd2ccc219b03b4804bb34904b7041efb6237e06982b3282578d996510ffc9adc916e212f6f7d1bcb5a35 SHA512 5bd2b59fbb323016d215023ce77793ae66766e8e8192b44bf0707ee444658022e1645669c13eea8c81bc55c161eea3b0271d6b3098b8a7d51ce67eb86c7527b4 EBUILD pcc-1.1.0-r1.ebuild 644 BLAKE2B 705887fc5d54daf96f655b0df9ca560412574e6507d3a43f00d136bbf2be7de0135e1252ff938ea041d09b5cc9c297ccae222f529106e0ecc46b51a4be52c75d SHA512 367db32a2dbc84746fa930e55299e393aa9701e269d3e3d149e2dd85329e72bc8a3b2117af4261f8a78fcb7361977deb76a7e3c77bbd15f5881756dc32b276e8 +EBUILD pcc-1.1.0-r2.ebuild 665 BLAKE2B 181e6ab807bb9b0385c8137c6e6c1bdbf23d4ccf27d606f9c56612971d9f6d3baa48a82445f8bb68eca9721830667a0d98f8d9f2d4cea125999a9c1c5970de18 SHA512 e005ef63874c92feb742db7471512cd8860c19564ad37dc79079a6276e99fdcc09cc340824ebce094ca463359b8a29bcac7d56e7a46810bf0eaadea144bcacd0 MISC metadata.xml 248 BLAKE2B 2ac829e1663815f752e218e9ee474448a3d973c075939d578699f57790581498adfe9bad180a79fcc6ea0afc339f57d25cbcc0fdd430f82d192c23c03d15e465 SHA512 55c2e2e06f91e13fd73b9545c51d4169a47f040ead41eb1368479940b026def820de67137312b64a6203f80b57a421c8895ed690386a79086fa0ba6c3557aa47 diff --git a/dev-lang/pcc/files/pcc-1.1.0-C23.patch b/dev-lang/pcc/files/pcc-1.1.0-C23.patch new file mode 100644 index 000000000000..2c02b58d1037 --- /dev/null +++ b/dev-lang/pcc/files/pcc-1.1.0-C23.patch @@ -0,0 +1,293 @@ +Change reserved names to True/False (not actually booleans at all) +Add includes for libbsd functions +And enable system extensions, to counteract disabling them and then using them +https://bugs.gentoo.org/871267 +https://bugs.gentoo.org/932230 +https://bugs.gentoo.org/944894 +--- a/configure.ac ++++ b/configure.ac +@@ -3,8 +3,9 @@ + + AC_PREREQ(2.59) + AC_INIT([pcc], [1.1.0], [pcc@lists.ludd.ltu.se]) + AC_CONFIG_HEADER([config.h]) ++AC_USE_SYSTEM_EXTENSIONS + + AC_CANONICAL_TARGET + + abi=unknown +--- a/cc/ccom/pass1.h ++++ b/cc/ccom/pass1.h +@@ -37,8 +37,9 @@ + + #include <sys/types.h> + #include <stdarg.h> + #include <string.h> ++#include <bsd/string.h> + #ifdef HAVE_STDINT_H + #include <stdint.h> + #endif + +--- a/cc/ccom/trees.c ++++ b/cc/ccom/trees.c +@@ -2080,9 +2080,9 @@ + /* + * Write out logical expressions as branches. + */ + static void +-andorbr(NODE *p, int true, int false) ++andorbr(NODE *p, int True, int False) + { + NODE *q; + int o, lab; + +@@ -2123,19 +2123,19 @@ + case LE: + case LT: + case GE: + case GT: +-calc: if (true < 0) { ++calc: if (True < 0) { + p->n_op = negrel[p->n_op - EQ]; +- true = false; +- false = -1; ++ True = False; ++ False = -1; + } + + rmcops(p->n_left); + rmcops(p->n_right); +- fixbranch(p, true); +- if (false >= 0) +- branch(false); ++ fixbranch(p, True); ++ if (False >= 0) ++ branch(False); + break; + + case ULE: + case UGT: +@@ -2147,57 +2147,57 @@ + case UGE: + case ULT: + /* Already true/false by definition */ + if (nncon(p->n_right) && p->n_right->n_lval == 0) { +- if (true < 0) { ++ if (True < 0) { + o = o == ULT ? UGE : ULT; +- true = false; ++ True = False; + } + rmcops(p->n_left); + ecode(p->n_left); + rmcops(p->n_right); + ecode(p->n_right); + nfree(p); + if (o == UGE) /* true */ +- branch(true); ++ branch(True); + break; + } + goto calc; + + case ANDAND: +- lab = false<0 ? getlab() : false ; ++ lab = False<0 ? getlab() : False ; + andorbr(p->n_left, -1, lab); + comops(p->n_right); +- andorbr(p->n_right, true, false); +- if (false < 0) ++ andorbr(p->n_right, True, False); ++ if (False < 0) + plabel( lab); + nfree(p); + break; + + case OROR: +- lab = true<0 ? getlab() : true; ++ lab = True<0 ? getlab() : True; + andorbr(p->n_left, lab, -1); + comops(p->n_right); +- andorbr(p->n_right, true, false); +- if (true < 0) ++ andorbr(p->n_right, True, False); ++ if (True < 0) + plabel( lab); + nfree(p); + break; + + case NOT: +- andorbr(p->n_left, false, true); ++ andorbr(p->n_left, False, True); + nfree(p); + break; + + default: + rmcops(p); +- if (true >= 0) +- fixbranch(p, true); +- if (false >= 0) { +- if (true >= 0) +- branch(false); ++ if (True >= 0) ++ fixbranch(p, True); ++ if (False >= 0) { ++ if (True >= 0) ++ branch(False); + else +- fixbranch(buildtree(EQ, p, bcon(0)), false); ++ fixbranch(buildtree(EQ, p, bcon(0)), False); + } + } + } + +--- a/cc/cxxcom/trees.c ++++ b/cc/cxxcom/trees.c +@@ -2021,9 +2021,9 @@ + /* + * Write out logical expressions as branches. + */ + static void +-andorbr(NODE *p, int true, int false) ++andorbr(NODE *p, int True, int False) + { + NODE *q; + int o, lab; + +@@ -2064,19 +2064,19 @@ + case LE: + case LT: + case GE: + case GT: +-calc: if (true < 0) { ++calc: if (True < 0) { + p->n_op = negrel[p->n_op - EQ]; +- true = false; +- false = -1; ++ True = False; ++ False = -1; + } + + rmcops(p->n_left); + rmcops(p->n_right); +- fixbranch(p, true); +- if (false >= 0) +- branch(false); ++ fixbranch(p, True); ++ if (False >= 0) ++ branch(False); + break; + + case ULE: + case UGT: +@@ -2088,57 +2088,57 @@ + case UGE: + case ULT: + /* Already true/false by definition */ + if (nncon(p->n_right) && p->n_right->n_lval == 0) { +- if (true < 0) { ++ if (True < 0) { + o = o == ULT ? UGE : ULT; +- true = false; ++ True = False; + } + rmcops(p->n_left); + ecode(p->n_left); + rmcops(p->n_right); + ecode(p->n_right); + nfree(p); +- if (o == UGE) /* true */ +- branch(true); ++ if (o == UGE) /* True */ ++ branch(True); + break; + } + goto calc; + + case ANDAND: +- lab = false<0 ? getlab() : false ; ++ lab = False<0 ? getlab() : False ; + andorbr(p->n_left, -1, lab); + comops(p->n_right); +- andorbr(p->n_right, true, false); +- if (false < 0) ++ andorbr(p->n_right, True, False); ++ if (False < 0) + plabel( lab); + nfree(p); + break; + + case OROR: +- lab = true<0 ? getlab() : true; ++ lab = True<0 ? getlab() : True; + andorbr(p->n_left, lab, -1); + comops(p->n_right); +- andorbr(p->n_right, true, false); +- if (true < 0) ++ andorbr(p->n_right, True, False); ++ if (True < 0) + plabel( lab); + nfree(p); + break; + + case NOT: +- andorbr(p->n_left, false, true); ++ andorbr(p->n_left, False, True); + nfree(p); + break; + + default: + rmcops(p); +- if (true >= 0) +- fixbranch(p, true); +- if (false >= 0) { +- if (true >= 0) +- branch(false); ++ if (True >= 0) ++ fixbranch(p, True); ++ if (False >= 0) { ++ if (True >= 0) ++ branch(False); + else +- fixbranch(buildtree(EQ, p, bcon(0)), false); ++ fixbranch(buildtree(EQ, p, bcon(0)), False); + } + } + } + +--- a/mip/reader.c ++++ b/mip/reader.c +@@ -65,8 +65,9 @@ + + # include "pass2.h" + + #include <string.h> ++#include <bsd/string.h> + #include <stdarg.h> + #include <stdlib.h> + + /* some storage declarations */ +--- a/mip/match.c ++++ b/mip/match.c +@@ -59,8 +59,9 @@ + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + ++#include "config.h" + #include "pass2.h" + + #ifdef HAVE_STRINGS_H + #include <strings.h> +--- a/mip/regs.c ++++ b/mip/regs.c +@@ -25,8 +25,9 @@ + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + ++#include "config.h" + #include "pass2.h" + #include <string.h> + #ifdef HAVE_STRINGS_H + #include <strings.h> diff --git a/dev-lang/pcc/pcc-1.1.0-r2.ebuild b/dev-lang/pcc/pcc-1.1.0-r2.ebuild new file mode 100644 index 000000000000..1faaeefa3648 --- /dev/null +++ b/dev-lang/pcc/pcc-1.1.0-r2.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic + +DESCRIPTION="pcc portable c compiler" +HOMEPAGE="http://pcc.ludd.ltu.se" + +SRC_URI="ftp://pcc.ludd.ltu.se/pub/pcc-releases/${P}.tgz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +DEPEND=">=dev-libs/pcc-libs-${PV} + dev-libs/libbsd" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}/${P}-multiarch.patch" + "${FILESDIR}/${P}-C23.patch" +) + +src_prepare() { + default + + eautoreconf +} + +src_configure() { + append-cflags -fcommon + econf --disable-stripping +} + +src_test() { + cc/cc/pcc --version || die # basic test that compiler runs +} diff --git a/dev-lang/perl/Manifest b/dev-lang/perl/Manifest index 8cbff0e4db76..643fb37470bb 100644 --- a/dev-lang/perl/Manifest +++ b/dev-lang/perl/Manifest @@ -3,9 +3,10 @@ AUX perl-5.40.0-alignment.patch 2533 BLAKE2B 896e3dd728531b11c6a272c1b7d3990adad AUX perl-5.40.0-fix-compilation-in-eprefix-bug-939014.patch 2169 BLAKE2B 9734b4b17654843aa76ad10970ff6a200c4da686f62369bb2c1bcb30891243c6bbee4e88ed458fe9d1598af938b6d6c8589cb9dcef1c55bbd11a8ad0ccb73556 SHA512 244d7c4d67f45464c909a29823507adcceda23d2fb61ce817a8f8336607ac1daeb7ea33a7b5d58865603bbd1ae9a977ba5fd3738897a341b6581a7d3a0009e35 DIST perl-5.40.0-patches-2.tar.xz 17072 BLAKE2B 7cc1085a0a701f72cf1fce2b7f18ac949eb03a9e40716c37082396483045df577ef13bbca58ef06f20868e52e9c78e18fa5b8a3434ceea272ff49832a086a1f5 SHA512 d31a25894e3b34c8e80f439ebd423dd8f28eac056ce42d69376882c1655b1f7289ef22f8aa8d30147eaebbe6693f4d86d1570e153b55d58d7b30e5832e7bea60 DIST perl-5.40.0.tar.xz 13804184 BLAKE2B cf191c3ccaf6f395c0c7d08c2ad3456c1dd622d4fe78e7fb3a74c741e9a84f1d39a55f5bc6adbea54c9520b1b387e72e957f9a7544ab8f24968d233cd5b959ae SHA512 a2fb1a24c6367b4043f4e929b2d74fc3bad1415e53b791ed1f219f1701064ae21b2bd3164ba95fcf24eaf458bd54433024ccae43725c0bb82a1ec6a98dc7052d -DIST perl-5.40.1-RC1.tar.xz 13921272 BLAKE2B bc1a51c20754c73055b785d60927585bb7a1507176f06a34c3e7c089b788408ebb4d419c380174a207f2bd5fc1ad031d7eb6f722c5f8137c0e58245efe2c24cd SHA512 ea9f19658c9154c1d37b623a329b5417828bf6b1b1f449ba41d0a3b09f91246d9c39c425e35164a02f7eeac35968cd383e674579a888be465fe3be13497e9c86 +DIST perl-5.40.1.tar.xz 13930924 BLAKE2B 2f421a9eb6c68e2f12b95e6ac70ede3819c0d31c6f25ec5e45337faa053eaf21911413573624e3e84d82e4d863ed21799dbf471865c7e04519dcb81eac9c5c36 SHA512 3ff16b3462ce43ff38dab21b3dfc20f81772b8c9eac19ab96ba2d5e6cbb390e2302fa76c4879f915249357cd11c7ec0d548bcbf3ab2c156df1b9fca95da3f545 +DIST perl-cross-1.6.1.tar.gz 124122 BLAKE2B b1b78b30f2cf8c5ba12e3df6177b7d102033c8eaceeea9f12a1aeb2bfdf97edda83842e32de797b7ffa3ef6bc66dfba6ccbbacc25367b6f7bc2d137ce58aca93 SHA512 35a4f7966f1f94ef0b6bfe7a82e8a50e0daf6e5e0c1ed99c7c4767aa4f0708db05e8cc01a883257f970703991f617a189609cd57eec63767e2e73de3d6155bdf DIST perl-cross-1.6.tar.gz 121973 BLAKE2B b3a17d92dd7621a3bc253a6c4e56eccd3adec2c2b52e606c956a08f48d786a16a3ac5beb056a732ba3df92227f210193b0f516fd9d73cac362a04ec52efab029 SHA512 980af804513ec126e40eb9d8200ca54ba805bbb13b38d20a45daaf8d98d6b257e2eebc1ecad56cd47f60e235fa1141f6df9518d748db4f18d5219180750ca615 -EBUILD perl-5.40.0-r1.ebuild 28232 BLAKE2B c5ba01068a88f3f2136cf0730fba57560d7da1e97eeaa2d950d518b1c52714bd9211a19c8c5b2cd8adb8072a2f6d77d8731a726713f83873dd84dbdd0a290775 SHA512 b5d6a327f688d0c96fb1110dfe0736ec7c1f7beb1ed850e99938b560394dfc108ebec7994750de7115c76a5dc3786217bbaeeae3c46afd38941ae8a50092682b +EBUILD perl-5.40.0-r1.ebuild 28140 BLAKE2B 0fe725b50c12baf09bb56ed009316269421c9e37b4127ce6ade37ab7a2909ecc6cfc30a0e525535f6e2196cf90cdd7c03981488f6f0ab7f54773c21c20bebc51 SHA512 162e4a7321adfc50fc83c32159e9847e15eae6eff2fa0fc265920ef8e2ec9d3fe83709f9d3ee50440cc851c4836504faa11c68b155f72ac6adbb366bf88a1182 EBUILD perl-5.40.0.ebuild 28190 BLAKE2B 69f185c504db14e70534e0ac5ee2bb03e632591219741d4502806143d2d8f5ebc80c7a5d5136e4f65c683ae880c2d270cd376991efbe57085e697f37da2d09c6 SHA512 59bdac5bf0391f117fe753be97e0e385bd74d1854e1ea0afd4f99796d92a693ad7bfa17e39c2043d5b8f67c851d8e88a573b3dab30dfad4770d5987d7fbd4b7c -EBUILD perl-5.40.1_rc1.ebuild 28122 BLAKE2B c4bfae5ea84289916e0817ec2cd3a197f72c35da81f4060355f0d1ad7cc29cfe69f20dc7c577868a285d738dfa920ddb43bd3e2fb3620f74025d5dac968273d9 SHA512 7714116d9b5029ec06e33478f638c7349300041aa38460a0669f528dda4dc53a0221eb319a71fd1700c49cd2e8cb50d36d3b560e24e0e5616574f0aa8924adb1 +EBUILD perl-5.40.1.ebuild 28032 BLAKE2B 24b9fd45eadc5863a68515b6d0879f87ec270ddbcbf09d0b8e4804d6f57b06a59be357d1f18402aee12e84863832316376e9ddf81942d6af027d70d20897b7f0 SHA512 1a00604815ac105de19091a1443e2e92d4cd5e76fe30af1f002a94e4ff0f921fa7a5714bc0a69838f573d151695a14b7e6871e4d1e3b00edd8b8bd88a109af93 MISC metadata.xml 435 BLAKE2B 9a9dfd2dc8274c402dde0c3be13053b28361603c4fd230d841b169843e397bd6e16537034495178dfd443246c1621b34d849455147e8556a12806d973293a855 SHA512 1cb3197cf3c6f3031bdbc95c2686fcd2585f6e457d0661ed986cf7fa91b4ca564f793c2f141bfe5b9b8c54d2b05dd200c3e32bf073061872e08bd7c501bedc83 diff --git a/dev-lang/perl/perl-5.40.0-r1.ebuild b/dev-lang/perl/perl-5.40.0-r1.ebuild index 5cdfd028245b..135515a28648 100644 --- a/dev-lang/perl/perl-5.40.0-r1.ebuild +++ b/dev-lang/perl/perl-5.40.0-r1.ebuild @@ -109,12 +109,14 @@ dual_scripts() { check_rebuild() { # Fresh install - if [[ -z "${REPLACING_VERSIONS}" ]]; then - return 0; + if [[ -z ${REPLACING_VERSIONS} ]]; then + return 0 + fi + # 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 + local v + for v in ${REPLACING_VERSIONS}; do + [[ ${v%.*} == "${SHORT_PV}" ]] && continue echo "" ewarn "UPDATE THE PERL MODULES:" ewarn "After updating dev-lang/perl the installed Perl modules" @@ -130,10 +132,11 @@ check_rebuild() { 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; + return 0 + done # Reinstall w/ USE Change - elif + if ( use perl_features_ithreads && ( has_version '<dev-lang/perl-5.38.2-r3[-ithreads]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_ithreads]' ) ) || \ ( ! use perl_features_ithreads && ( has_version '<dev-lang/perl-5.38.2-r3[ithreads]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_ithreads]' ) ) || \ ( use perl_features_quadmath && ( has_version '<dev-lang/perl-5.38.2-r3[-quadmath]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_quadmath]' ) ) || \ diff --git a/dev-lang/perl/perl-5.40.1_rc1.ebuild b/dev-lang/perl/perl-5.40.1.ebuild index 49d74632e547..5c2ba503bf72 100644 --- a/dev-lang/perl/perl-5.40.1_rc1.ebuild +++ b/dev-lang/perl/perl-5.40.1.ebuild @@ -6,7 +6,7 @@ EAPI=8 inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing PATCH_VER=2 -CROSS_VER=1.6 +CROSS_VER=1.6.1 PATCH_BASE="perl-5.40.0-patches-${PATCH_VER}" PATCH_DEV=dilfridge @@ -104,12 +104,14 @@ dual_scripts() { check_rebuild() { # Fresh install - if [[ -z "${REPLACING_VERSIONS}" ]]; then - return 0; + if [[ -z ${REPLACING_VERSIONS} ]]; then + return 0 + fi + # 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 + local v + for v in ${REPLACING_VERSIONS}; do + [[ ${v%.*} == "${SHORT_PV}" ]] && continue echo "" ewarn "UPDATE THE PERL MODULES:" ewarn "After updating dev-lang/perl the installed Perl modules" @@ -125,10 +127,11 @@ check_rebuild() { 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; + return 0 + done # Reinstall w/ USE Change - elif + if ( use perl_features_ithreads && ( has_version '<dev-lang/perl-5.38.2-r3[-ithreads]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_ithreads]' ) ) || \ ( ! use perl_features_ithreads && ( has_version '<dev-lang/perl-5.38.2-r3[ithreads]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_ithreads]' ) ) || \ ( use perl_features_quadmath && ( has_version '<dev-lang/perl-5.38.2-r3[-quadmath]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_quadmath]' ) ) || \ diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest index af7c67ca30d2..f8652af648ed 100644 --- a/dev-lang/php/Manifest +++ b/dev-lang/php/Manifest @@ -15,9 +15,9 @@ AUX php-iodbc-header-location.patch 481 BLAKE2B 9ea6a5d529dc7a8c78eeee800900372b DIST php-8.1.30.tar.xz 11850340 BLAKE2B 9053c57814f53ff694ea6cf1a87253e4f8f7c5af6965a85109eca143abd8dd6c733c7f70d1c6cdc34db8932dd7e9e8289cebce37eef385ea51dc0cd8a71267ef SHA512 cdca1c1671362272bf6c2abf45d097b42ca06c0abf962ee814bf478f8b346f274f42a1b1aa6603cdd59a1978a8b9d1971b589706f2909b6ea34594de0edaee1e DIST php-8.2.24.tar.xz 12110000 BLAKE2B 0f5c47350b8914f87cfbee932ea2e24d29635a0bdfed111b02e81d05574ff973f657d077858c20497bdc380285305d6c0f632eee1bbc9358f84004019108e368 SHA512 19016bfb955892a9999f01a619ab26035afe1cfb6488c7d1774d6745b703afb99e59032728ab811024413757e50163cdc32b0e95fda7e1d4243deb96568c7e79 DIST php-8.2.27.tar.xz 12150992 BLAKE2B 220b71c04db5654b16f46f831776741f653d77d4363ae1279e5f7eb745aa862087cd89f63740a6584fb4925bf5cb9f72a267cf85ea5e0828f35975a08a011861 SHA512 c368d90d833e25d2b2e3a667010f1c5b37df772e2200855d38e4bcb3344585e0783ae53fadae499fe98abab95372adf787ba2413e9b6bc818628bc29a11ed453 -DIST php-8.3.16.tar.xz 12544360 BLAKE2B 27b03081ce10e0c9f5d95dcf75db3c9e872131514021d8ad83df7f6d6abec2ad31ce6d24e2a5c6c8d7c9d6eaa065f9a07bd40cb6e0f1f83074caf087fa49a874 SHA512 2caa5c4e1b1b719a67dfefc976d47d289ba6f9b6a527181f2961fff481b258c2e038d6993df7507f4977c5fce59df38d9738cd4186a4602e39bbcbd5c1e2dbf4 +DIST php-8.3.17.tar.xz 12541560 BLAKE2B a3395354578763923adba03ad046cd0259a23db5985c020c7bc67302a89b13a55b89023b2136c2269146a9e7c6020aafdac8d3d124aa7ada383b681cda290239 SHA512 78ec7896ecaaab7e968914055e11c840f64492d55c68ae6ee693a5c96b633b8b75093fc334836832422a24d4156d86e8e0c4af2f87cbd861df8b67842f1bcf88 EBUILD php-8.1.30.ebuild 22586 BLAKE2B a35ef5ea9b28ea0c0d40082aa7a9750158477f173c4eae88bb2ef4a44687a329c5152879e9759a02df8c6ad12cdb8e6762b0750cae3cd04102e3bc0acf0826ad SHA512 f383cca672b5a647e52d1def2537411f3e44d791fcafc62a665a2d1a9aed779d116f4d4b5323b7a510b03a9296677462e53277b34e48efeb86fb76f61bccc40c EBUILD php-8.2.24.ebuild 26595 BLAKE2B 62bff19d9e738b5e8da960d6fc8d41ff35723356017ef048e7a45d54e07b62a43dcd632837f3917654e5600097fe2c50d2247137c693bf20627773fc6054fb36 SHA512 3df0a5705098463bedd5362af4b4ec1c06797932c1c3ad666fd6be115c601409ec3cdec75342e7da520966a17e3a4db30f975a5dbc6ff2d762a0234e639720ff EBUILD php-8.2.27-r1.ebuild 26778 BLAKE2B 324b0334ee35dc68ec5022ae66248253ccc590cb7aa5aa665a3ae26a51339ac92541c36ba2ae0c9d99a616155f7eae521b610fd7cb60db6b26cb0d71d15f51c8 SHA512 9ac034e3e1863cf7605652332c9de0d3cc36a482b13327f34ea1ea3863753e193cbb490dc2ed7df68b3e31de848392a9965a738c510f06b07a996df4e2e59adf -EBUILD php-8.3.16.ebuild 24710 BLAKE2B 4feeebcfdcb010c096b7825bc838dda22eabda3fa7b75463418dc7ef2e39139bba0d583c519a1576bd1302311cca1d1722091d7b28e0be08743718d1553ce28e SHA512 69e06a5c49ec4abbdedaf10f918a859ec260a6557924e0e77cd65a69a5bbca53f8f7601dfdfdeaec038969d6e4d6b9af20b0970b9aba4d465c944e6e971fa458 +EBUILD php-8.3.17.ebuild 24728 BLAKE2B 2d2b7dd26b75a4e525034dcd0c7e791aff5446f9bf3ce01807649a65929a471473a26871545b31de8492362124f9255923d436fe259dc4a4da17f788291a42d7 SHA512 710698a017c512ed6cc087fa9fcc10828f5f32c33b6490045cd4d58230b377887b2bea389aee3e9d220bac0f083f6d05867f15075348ae47e79af2ac0c0b56bb MISC metadata.xml 4249 BLAKE2B 11f9270fbc0cae280ec3ec62c9e6acfc643f4c7952822537664e8bcdbdfed64805b0e83fcbfb83111123745fadf64b276b51e1e27c9b5eb38ef8ffc30965d12b SHA512 39c59d31de21a66ca55a4816bebd901c8f2b28b7d1340605845c535cc979bca4d8641280bf45782d5d3eb94820e054e7f52491a23a4d1cf692774e11becc55c1 diff --git a/dev-lang/php/php-8.3.16.ebuild b/dev-lang/php/php-8.3.17.ebuild index afb477c73b90..d7b22f70b437 100644 --- a/dev-lang/php/php-8.3.16.ebuild +++ b/dev-lang/php/php-8.3.17.ebuild @@ -230,12 +230,14 @@ src_prepare() { # rm ext/sockets/tests/bug63000.phpt || die - # fails in a network sandbox, - # fixed upstream but not yet included in the stable releases. + # depends on truetype support, thus we skip it + # if the "truetype" USE flag is missing # - # https://github.com/php/php-src/pull/17314 + # https://github.com/php/php-src/issues/17891 # - rm ext/standard/tests/http/gh16810.phpt || die + if ! use truetype ; then + rm ext/gd/tests/gh17373.phpt || die + fi # Tests ignoring the "-n" flag we pass to run-tests.php, # diff --git a/dev-lang/pypy/Manifest b/dev-lang/pypy/Manifest index d3d333af8e9f..421c9c74cc00 100644 --- a/dev-lang/pypy/Manifest +++ b/dev-lang/pypy/Manifest @@ -1,7 +1,16 @@ DIST pypy2.7-gentoo-patches-7.3.17.tar.xz 5324 BLAKE2B 866f172a6df6f0e94a98c611b37ae58635623e33a47619a5e44658d3908337a3f9029ff7de6997f760c3f1679fc83bfc6ddfb66852c492a581b3336b5eec3ed2 SHA512 6ce5266d0748f3c18a5546aa2bd8479ecb45923eb7df8a140a195e7f7b44999b9167ffdd44f7fd789ddd3a62cd77cb917863b0144180a1127befce1f290e650a +DIST pypy2.7-gentoo-patches-7.3.19.tar.xz 5328 BLAKE2B c997c0e7f39a4a6a9ec34811b38fc8f9b90ccae8c958ca420074013d63a4f1b453b6331be79a2df299efe177cc99d91038ae56156d37b5f9b9f8715ccd2cb75d SHA512 7bac5331fa868c60b376e405df212a29d406f117035fbc1ad8bd6d81212ab2ea4ce5b6b40e8dbbb6303fe941152e37aae17608a2eca9efd16767c8844f6f5fdb DIST pypy2.7-v7.3.17-src.tar.bz2 19907140 BLAKE2B de62ebc4e8102867effdecddca64c19c40458b112a6a56ac0c95247047b9f5437a5da68dffb51c14c21bce463c2ca489c6e6a4f86e8cc597b57df2eca707081e SHA512 82b2b9dbf0ea32c405ddc53d98a3a7a153f494d286e8719a0c40960168aadc0f49c3b313416488338f7f51c8fdb58120de41b1d47a8c8eda7db6d4ec4273b4eb +DIST pypy2.7-v7.3.19-src.tar.bz2 21011665 BLAKE2B b8e205927c829753dd3e5aba0868923efff73f62e5338d6200aab2470857fff9cf38763ab8b63a74a39299d4956d4794eedf5d474d083875bbb9cee9ea757e64 SHA512 8ab8d9c0fa94ec96ebfae30b7f97eb8dff6ad4ee17fa688df123927c45f3ffea2c7f5dbb98bd2f8a49f7db6baf0ba3e98fd230df0bdc8602e407fb2bc33144e3 DIST pypy3.10-gentoo-patches-7.3.17_p4.tar.xz 30520 BLAKE2B b6ace80e0dc19a3fc24b1e5c97da1d67fc470c07032e86a875f0c994f6d2c64024a171d13b4e22f1531f15cb118a81993469a81dbc83eed03fce73a4b29f02d0 SHA512 586f8836ff3d122ad3fe3ec882057f37d2c509ea5cad98b674e917b1fd6022e0a27cc3639eaf9d3be43a91cb26fac73905067a2852bcda2f587e87e3e83b7be2 +DIST pypy3.10-gentoo-patches-7.3.19_p1.tar.xz 6344 BLAKE2B 40ebbf87d0864e2a3957671680b7b9c0bea151fcdef808aef70711c24fdbd94846c15b010a3bd906915ab7a551d46f18264b2bda2c732d68b2594796d29226c8 SHA512 cd9d0ad4b48c21497f227f3b6540b01265df23de8cedaf212fe51dcae830a2812df6df169fdba3db36ccac29fb2d77aa2202f8e9b4bca543bd569db0d53c5736 DIST pypy3.10-v7.3.17-src.tar.bz2 23350562 BLAKE2B 0a7a091976b352de61057f238fa386f767dd4d2fbcdcc0b4376066c20c2ad35d3818fa6e9e163ab5fd341856802e8ad1e2891decf5948c13cdb26726cd42019e SHA512 46e30845bbc73cf56f5033a24d3583253ce198522f3a28ae4e789884063ba167d401fc08ae7fc8c7769feed9cd942a8ab38961c8b8794d7fae8f9955479faa96 +DIST pypy3.10-v7.3.19-src.tar.bz2 24547353 BLAKE2B 975de34c7e01117c74e184693b6659ba0e3d8d488d724c03737dbd64533452c954e045e45058e1e77b9bee68e01060e74e30d7898d29f1adce417ce4b46579b8 SHA512 8fa24d3556bcf9cd0e2facd697827a5001fcfae9bf7874957843e4751b259f85a8b36166921282d71f39bb468d1706bb669373aebbc52486b683fcc824fb30ad +DIST pypy3.11-gentoo-patches-7.3.19_p4.tar.xz 7008 BLAKE2B b441decac64d3565cf1d8d5b5e7f3b29f39a462c51f0bee3f480bc31847a1dd02d468241f78c01ec355fa33823bba508cc3eb5c5b97340cc208067d22eb535be SHA512 f52e3dbde99cfe55d286554deb1826cdf4ce63073f6e4c29d43bd33d9c78a4fcedbd32029ddfd1a854d0bf77524e82dee6cc4367e81f5b23e355af3e302d115a +DIST pypy3.11-v7.3.19-src.tar.bz2 24916380 BLAKE2B febc61b3a1c5055b5ab92e7f3af2c307605c8510131437b12df27b58a13b29f6fd0a4bf82d101f7f8f441ca93b20cf70dbd540af11578be297ea871d59304ea3 SHA512 ab078e81e5eefe16823350bdc9adcc444e0ef6835ff2234197f9e5cb0903c5208deb6df60722e99aa529ffff703c5dcbc08eaa7f753c2e5c1185afea6358395a EBUILD pypy-2.7.7.3.17.ebuild 7390 BLAKE2B b840b2c94b60e9d39aae7d5062c56f398428e4d31f1613cda39e34a6de1c279d06eace53774e08c7f5d2ab01f85d9bb30184de5fdbf9374ad276b97f58ac4e5a SHA512 8ffceda18cdc35e932d65ccb2c1962ce13c1fb46585afa9c909b9882e251ee8503822d1d0aac4f1ea669f566e0ae87a527fa467a2fc8578d899e67d58cca07bc +EBUILD pypy-2.7.7.3.19.ebuild 7392 BLAKE2B 4b35786d65011016b75f0e173c047582b025d4f7f89f9f86e2c7fd7dcfb388b77a31f6f515393a47101756999ee495b7620de43c4275732d221ba964b066c412 SHA512 45baadb55e445268f792ff4bf75d40e611482e5c68635e411266d10c899de08d784e4ec6137a951b7e43ad9e2c2aae2f5c1818d686cfeba684bf07acbfba8c34 EBUILD pypy-3.10.7.3.17_p4.ebuild 7140 BLAKE2B db6bfe1c3d44cdf9f4a1639c6bf8e35253c0ac3687f3a1315bfd52ca82c4a6fa0c3626c2aad938f8bcf2b2b6851db6fa1ed5f1847a891a08800040e0e4c27ea4 SHA512 efe64c07cfbdcb2fafbbbb93adeda1fd3ba22164130cb908d8bf26d0d82713fca179463f44673fb262573dca96a468573b53e67ab97d3f51563e23888afadfff +EBUILD pypy-3.10.7.3.19_p1.ebuild 7156 BLAKE2B a7fe73c92496bda2a55a45cea4cb8a22df0d736571c9e616d4852d06128259326b66961169f7241a40aad26df17e336234947f0cd50dc81061e0936f5def653a SHA512 c3faeb02451b5cf360df330446468da253201fe5e234f055bf627dbcd72aae47d59049dd38cfafc0fcbe8ddc3df7147625bbfef5a3061e8d5a54bea861d0334f +EBUILD pypy-3.11.7.3.19_p4-r1.ebuild 7108 BLAKE2B 95193522904c4fbf328320216c44b325e81902bbe5e6e06a489ea32276342d6a4ad7812a150aafc1b549dff48c9e7608d4e6c9dc42d3648c4d17f86b5f6d1978 SHA512 837f0f743512358cd5d3b3ccd6a56f1893dbe660a8bf17cdb639ff25c2b4aa32cd1c9510ff1e6ea31d8074e1655d1042ee63cc3e058be167e73b9cc25f83521d MISC metadata.xml 1124 BLAKE2B f1d09d26175cf20d1440a9a83352cf6f2f2e514d35d95116caf4a5ee86547f0165a6369e7a6b129ded75d28ba5a0c1c8f4da7d664d7c1e3c1e95153593057b3c SHA512 ae95400c9a1efc75372201c2353b128302355d1d087094953d73c325fa72bc24662d31c7287ae6a2583448ac345bb60744ac19391e07f8da8ef0327627e0e462 diff --git a/dev-lang/pypy/pypy-2.7.7.3.19.ebuild b/dev-lang/pypy/pypy-2.7.7.3.19.ebuild new file mode 100644 index 000000000000..5520e06682bf --- /dev/null +++ b/dev-lang/pypy/pypy-2.7.7.3.19.ebuild @@ -0,0 +1,315 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit pax-utils toolchain-funcs + +PYVER=$(ver_cut 1-2) +PATCHSET_PV=$(ver_cut 3-) +PYPY_PV=${PATCHSET_PV%_p*} + +MY_P="pypy${PYVER}-v${PYPY_PV/_}" +PATCHSET="pypy${PYVER}-gentoo-patches-${PATCHSET_PV/_rc/rc}" + +DESCRIPTION="A fast, compliant alternative implementation of the Python (${PYVER}) language" +HOMEPAGE=" + https://pypy.org/ + https://github.com/pypy/pypy/ +" +SRC_URI=" + https://downloads.python.org/pypy/${MY_P}-src.tar.bz2 + https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2 + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz +" +S="${WORKDIR}/${MY_P}-src" + +LICENSE="MIT" +# pypy -c 'import sysconfig; print sysconfig.get_config_var("SOABI")' +SLOT="${PYVER}/73" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux" +IUSE="bzip2 full-stdlib gdbm +jit ncurses sqlite tk" +RESTRICT="test" + +RDEPEND=" + || ( + >=dev-python/pypy-exe-bin-${PYPY_PV}:${PYPY_PV} + >=dev-python/pypy-exe-${PYPY_PV}:${PYPY_PV}[bzip2?,ncurses?] + ) + dev-libs/openssl:0= + gdbm? ( sys-libs/gdbm:0= ) + sqlite? ( dev-db/sqlite:3= ) + tk? ( + dev-lang/tk:0= + dev-tcltk/tix:0= + ) + !dev-python/pypy +" +DEPEND=" + ${RDEPEND} +" + +src_prepare() { + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default +} + +src_configure() { + tc-export CC +} + +src_compile() { + # copy over to make sys.prefix happy + cp -p "${BROOT}/usr/lib/pypy${PYVER}/pypy-c-${PYPY_PV}" pypy-c || die + cp -p "${BROOT}/usr/lib/pypy${PYVER}/include/${PYPY_PV}"/* include/ || die + # (not installed by pypy) + rm pypy/module/cpyext/include/_numpypy/numpy/README || die + mv pypy/module/cpyext/include/* include/ || die + mv pypy/module/cpyext/parse/*.h include/ || die + pax-mark m pypy-c + + # verify the subslot + local soabi=$( + ./pypy-c - <<-EOF + import sysconfig + print sysconfig.get_config_var("SOABI") + EOF + ) + [[ ${soabi#pypy-} == ${SLOT#*/} ]] || die "update subslot to ${soabi}" + + einfo "Generating caches and CFFI modules ..." + + if use full-stdlib; then + # Generate Grammar and PatternGrammar pickles. + ./pypy-c - <<-EOF || die "Generation of Grammar and PatternGrammar pickles failed" + import lib2to3.pygram + import lib2to3.patcomp + lib2to3.patcomp.PatternCompiler() + EOF + + # Generate cffi modules + # Please keep in sync with pypy/tool/build_cffi_imports.py! + cffi_targets=( pypy_util ssl audioop syslog pwdgrp resource ) + use gdbm && cffi_targets+=( gdbm ) + use ncurses && cffi_targets+=( curses ) + use sqlite && cffi_targets+=( sqlite3 ) + use tk && cffi_targets+=( tkinter/tklib ) + + local t + # all modules except tkinter output to . + # tkinter outputs to the correct dir ... + cd lib_pypy || die + for t in "${cffi_targets[@]}"; do + # tkinter doesn't work via -m + ../pypy-c "_${t}_build.py" || die "Failed to build CFFI bindings for ${t}" + done + + # Verify that CFFI module list is up-to-date + local expected_cksum=-7df4eab0 + local local_cksum=$( + ../pypy-c - <<-EOF + import binascii + import json + from pypy_tools.build_cffi_imports import cffi_build_scripts as x + print("%08x" % (binascii.crc32(json.dumps(x)),)) + EOF + ) + if [[ ${local_cksum} != ${expected_cksum} ]]; then + die "Please verify cffi_targets and update checksum to ${local_cksum}" + fi + + # Cleanup temporary objects + find -name "_cffi_*.[co]" -delete || die + find -type d -empty -delete || die + fi +} + +src_test() { + # (unset) + local -x PYTHONDONTWRITEBYTECODE= + local -x COLUMNS=80 + + local ignored_tests=( + # network + --ignore=lib-python/${PYVER}/test/test_urllibnet.py + --ignore=lib-python/${PYVER}/test/test_urllib2net.py + # lots of free space + --ignore=lib-python/${PYVER}/test/test_zipfile64.py + + # broken by expat-2.4.5 + --ignore=lib-python/${PYVER}/test/test_minidom.py + --ignore=lib-python/${PYVER}/test/test_xml_etree.py + --ignore=lib-python/${PYVER}/test/test_xml_etree_c.py + ) + + ./pypy-c ./pypy/test_all.py --pypy=./pypy-c -vv \ + "${ignored_tests[@]}" lib-python || die +} + +src_install() { + local dest="/usr/lib/pypy${PYVER}" + einfo "Installing PyPy ..." + dosym "pypy-c-${PYPY_PV}" "${dest}/pypy-c" + insinto "${dest}" + # preserve mtimes to avoid obsoleting caches + insopts -p + if use full-stdlib; then + doins -r include lib_pypy lib-python + + # replace copied headers with symlinks + for x in "${BROOT}/usr/lib/pypy${PYVER}/include/${PYPY_PV}"/*; do + dosym "${PYPY_PV}/${x##*/}" "${dest}/include/${x##*/}" + done + + if ! use gdbm; then + rm -r "${ED}${dest}"/lib_pypy/gdbm.py \ + "${ED}${dest}"/lib-python/*${PYVER}/test/test_gdbm.py || die + fi + if ! use sqlite; then + rm -r "${ED}${dest}"/lib-python/*${PYVER}/sqlite3 \ + "${ED}${dest}"/lib_pypy/_sqlite3.py \ + "${ED}${dest}"/lib-python/*${PYVER}/test/test_sqlite.py || die + fi + if ! use tk; then + rm -r "${ED}${dest}"/lib-python/*${PYVER}/{idlelib,lib-tk} \ + "${ED}${dest}"/lib_pypy/_tkinter \ + "${ED}${dest}"/lib-python/*${PYVER}/test/test_{tcl,tk,ttk*}.py || die + fi + else + # install only the absolutely minimal subset of modules needed + # for pypy3 build + local lib_py_modules=( + # base modules needed to even start pypy (and import site) + codecs.py + copy_reg.py + encodings + genericpath.py + linecache.py + os.py + pkgutil.py + posixpath.py + re.py + runpy.py + site.py + sre_compile.py + sre_constants.py + sre_parse.py + stat.py + string.py + sysconfig.py + traceback.py + warnings.py + UserDict.py + + # needed for python_optimize + compileall.py + getopt.py + py_compile.py + struct.py + + # needed for rpython + argparse.py + atexit.py + base64.py + bdb.py + bisect.py + cmd.py + code.py + codeop.py + collections.py + colorsys.py + contextlib.py + copy.py + ctypes + dis.py + fnmatch.py + functools.py + gettext.py + hashlib.py + heapq.py + inspect.py + io.py + json + keyword.py + locale.py + logging + new.py + opcode.py + optparse.py + pdb.py + pickle.py + platform.py + pprint.py + random.py + repr.py + shlex.py + shutil.py + StringIO.py + subprocess.py + tempfile.py + textwrap.py + threading.py + tokenize.py + weakref.py + zipfile.py + ) + + local distutils_modules=( + # needed by site + __init__.py + errors.py + sysconfig.py + sysconfig_cpython.py + sysconfig_pypy.py + ) + + local lib_pypy_modules=( + # needed by site + _sysconfigdata.py + + # needed by rpython + cffi + _ctypes + _ffi.py + _functools.py + _sha.py + _sha256.py + _sha512.py + + # NB: we're deliberately skipping _hashlib to avoid some deps + ) + + cd "lib-python/${PYVER}" || die + insinto "${dest}/lib-python/${PYVER}" + doins -r "${lib_py_modules[@]}" + cd - >/dev/null || die + + cd "lib-python/${PYVER}/distutils" || die + insinto "${dest}/lib-python/${PYVER}/distutils" + doins -r "${distutils_modules[@]}" + cd - >/dev/null || die + + cd lib_pypy || die + insinto "${dest}/lib_pypy" + doins -r "${lib_pypy_modules[@]}" + cd - >/dev/null || die + fi + + dosym "../lib/pypy${PYVER}/pypy-c" /usr/bin/pypy + dodoc README.rst + + local -x PYTHON="${ED}${dest}/pypy-c-${PYPY_PV}" + # temporarily copy to build tree to facilitate module builds + cp -p "${BROOT}${dest}/pypy-c-${PYPY_PV}" "${PYTHON}" || die + + einfo "Byte-compiling Python standard library..." + "${PYTHON}" -m compileall \ + -x 'bad_coding|badsyntax|make_ssl_data|lib2to3/tests/data' \ + -q -f -d "${dest}" "${ED}/${dest}" || die + + # remove to avoid collisions + rm "${PYTHON}" || die +} diff --git a/dev-lang/pypy/pypy-3.10.7.3.19_p1.ebuild b/dev-lang/pypy/pypy-3.10.7.3.19_p1.ebuild new file mode 100644 index 000000000000..35830df8d6c3 --- /dev/null +++ b/dev-lang/pypy/pypy-3.10.7.3.19_p1.ebuild @@ -0,0 +1,239 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs + +PYVER=$(ver_cut 1-2) +PATCHSET_PV=$(ver_cut 3-) +PYPY_PV=${PATCHSET_PV%_p*} + +MY_P="pypy${PYVER}-v${PYPY_PV/_}" +PATCHSET="pypy${PYVER}-gentoo-patches-${PATCHSET_PV/_rc/rc}" + +DESCRIPTION="A fast, compliant alternative implementation of the Python (${PYVER}) language" +HOMEPAGE=" + https://pypy.org/ + https://github.com/pypy/pypy/ +" +SRC_URI=" + https://downloads.python.org/pypy/${MY_P}-src.tar.bz2 + https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2 + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz +" +S="${WORKDIR}/${MY_P}-src" + +LICENSE="MIT" +# pypy3 -c 'import sysconfig; print(sysconfig.get_config_var("SOABI"))' +# also check pypy/interpreter/pycode.py -> pypy_incremental_magic +SLOT="${PYVER}/pypy310-pp73-384" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux" +IUSE="+ensurepip gdbm +jit ncurses sqlite +symlink +test-install tk" +# many tests are failing upstream +# see https://buildbot.pypy.org/summary?branch=py${PYVER} +RESTRICT="test" + +RDEPEND=" + || ( + >=dev-python/pypy3_10-exe-${PYPY_PV}:${PYPY_PV}[bzip2(+),ncurses?] + >=dev-python/pypy3_10-exe-bin-${PYPY_PV}:${PYPY_PV} + ) + dev-lang/python-exec[python_targets_pypy3(-)] + dev-libs/openssl:0= + dev-python/gentoo-common + ensurepip? ( dev-python/ensurepip-wheels ) + gdbm? ( sys-libs/gdbm:0= ) + sqlite? ( dev-db/sqlite:3= ) + tk? ( + dev-lang/tk:0= + dev-tcltk/tix:0= + ) + !dev-python/pypy3_10 + symlink? ( + !<dev-python/pypy3-7.3.17-r100 + ) +" +DEPEND=" + ${RDEPEND} +" + +src_prepare() { + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default +} + +src_configure() { + tc-export CC +} + +src_compile() { + mkdir bin || die + # switch to the layout expected for cffi module builds + mkdir "include/pypy${PYVER}" || die + # copy over to make sys.prefix happy + cp -p "${BROOT}/usr/bin/pypy${PYVER}-c-${PYPY_PV}" pypy${PYVER}-c || die + cp -p "${BROOT}/usr/include/pypy${PYVER}/${PYPY_PV}"/* include/pypy${PYVER}/ || die + # (not installed by pypy-exe) + rm pypy/module/cpyext/include/_numpypy/numpy/README || die + mv pypy/module/cpyext/include/* "include/pypy${PYVER}/" || die + mv pypy/module/cpyext/parse/*.h "include/pypy${PYVER}/" || die + pax-mark m "pypy${PYVER}-c" + + # verify the subslot + local soabi=$( + "./pypy${PYVER}-c" - <<-EOF + import importlib.util + import sysconfig + soabi = sysconfig.get_config_var("SOABI") + magic = importlib.util._RAW_MAGIC_NUMBER & 0xffff + print(f"{soabi}-{magic}") + EOF + ) + [[ ${soabi} == ${SLOT#*/} ]] || die "update subslot to ${soabi}" + + # Add epython.py to the distribution + echo 'EPYTHON="pypy3"' > lib-python/3/epython.py || die + + einfo "Generating caches and CFFI modules ..." + + # Generate Grammar and PatternGrammar pickles. + "./pypy${PYVER}-c" - <<-EOF || die "Generation of Grammar and PatternGrammar pickles failed" + import lib2to3.pygram + import lib2to3.patcomp + lib2to3.patcomp.PatternCompiler() + EOF + + # Generate cffi modules + # Please keep in sync with lib_pypy/pypy_tools/build_cffi_imports.py! + # (NB: we build CFFI modules first to avoid error log when importing + # build_cffi_imports). + cffi_targets=( + pypy_util blake2/_blake2 sha3/_sha3 ssl + audioop syslog pwdgrp resource lzma posixshmem + ctypes_test testmultiphase + ) + use gdbm && cffi_targets+=( gdbm ) + use ncurses && cffi_targets+=( curses ) + use sqlite && cffi_targets+=( sqlite3 ) + use tk && cffi_targets+=( tkinter/tklib ) + + local t + # all modules except tkinter output to . + # tkinter outputs to the correct dir ... + cd lib_pypy || die + for t in "${cffi_targets[@]}"; do + # tkinter doesn't work via -m + "../pypy${PYVER}-c" "_${t}_build.py" || die "Failed to build CFFI bindings for ${t}" + done + # testcapi does not have a "build" script + "../pypy${PYVER}-c" -c "import _testcapi" || die + + # Verify that CFFI module list is up-to-date + local expected_cksum=a4138e48 + local local_cksum=$( + "../pypy${PYVER}-c" - <<-EOF + import binascii + import json + from pypy_tools.build_cffi_imports import cffi_build_scripts as x + print("%08x" % (binascii.crc32(json.dumps(x).encode()),)) + EOF + ) + if [[ ${local_cksum} != ${expected_cksum} ]]; then + die "Please verify cffi_targets and update checksum to ${local_cksum}" + fi + + # Cleanup temporary objects + find \( -name "*_cffi.c" -o -name '*.o' \) -delete || die + find -type d -empty -delete || die + cd .. || die + + # Generate sysconfig data + local host_gnu_type=$(sh pypy/tool/release/config.guess) + local overrides=( + HOST_GNU_TYPE "${host_gnu_type:-unknown}" + INCLUDEPY "${EPREFIX}/usr/include/pypy${PYVER}" + LIBDIR "${EPREFIX}/usr/$(get_libdir)" + TZPATH "${EPREFIX}/usr/share/zoneinfo" + WHEEL_PKG_DIR "${EPREFIX}/usr/lib/python/ensurepip" + ) + "./pypy${PYVER}-c" -m sysconfig --generate-posix-vars "${overrides[@]}" || die + local outdir + outdir=$(<pybuilddir.txt) || die + cp "${outdir}"/_sysconfigdata__*.py lib-python/3/ || die +} + +src_install() { + local dest="/usr/lib/pypy${PYVER}" + einfo "Installing PyPy ..." + dodir /usr/bin + dosym "pypy${PYVER}-c-${PYPY_PV}" "/usr/bin/pypy${PYVER}" + insinto "${dest}" + # preserve mtimes to avoid obsoleting caches + insopts -p + doins -r lib-python/3/. lib_pypy/. + insinto /usr/include + doins -r "include/pypy${PYVER}" + + # replace copied headers with symlinks + for x in "${BROOT}/usr/include/pypy${PYVER}/${PYPY_PV}"/*; do + dosym "${PYPY_PV}/${x##*/}" "/usr/include/pypy${PYVER}/${x##*/}" + done + + dodoc README.rst + + rm -r "${ED}${dest}"/ensurepip/_bundled || die + if ! use ensurepip; then + rm -r "${ED}${dest}"/ensurepip || die + fi + if ! use gdbm; then + rm -r "${ED}${dest}"/_gdbm* || die + fi + if ! use test-install; then + rm -r "${ED}${dest}"/{ctypes,sqlite3,tkinter,unittest}/test \ + "${ED}${dest}"/{distutils,lib2to3}/tests \ + "${ED}${dest}"/idlelib/idle_test || die + fi + if ! use sqlite; then + rm -r "${ED}${dest}"/sqlite3 \ + "${ED}${dest}"/_sqlite3* \ + "${ED}${dest}"/test/test_sqlite.py || die + fi + if ! use tk; then + rm -r "${ED}${dest}"/{idlelib,tkinter} \ + "${ED}${dest}"/_tkinter \ + "${ED}${dest}"/test/test_{tcl,tk,ttk*}.py || die + fi + # remove test last since we have some file removals above + if ! use test-install; then + rm -r "${ED}${dest}"/test || die + fi + dosym ../python/EXTERNALLY-MANAGED "${dest}/EXTERNALLY-MANAGED" + + local -x PYTHON="${ED}/usr/bin/pypy${PYVER}-c-${PYPY_PV}" + # temporarily copy to build tree to facilitate module builds + cp -p "${BROOT}/usr/bin/pypy${PYVER}-c-${PYPY_PV}" "${PYTHON}" || die + + einfo "Byte-compiling Python standard library..." + # exclude list from CPython Makefile.pre.in + "${PYTHON}" -m compileall -j "$(makeopts_jobs)" -o 0 -o 1 -o 2 \ + -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ + --hardlink-dupes -q -f -d "${dest}" "${ED}${dest}" || die + + # remove to avoid collisions + rm "${PYTHON}" || die + + if use symlink; then + dosym pypy${PYVER} /usr/bin/pypy3 + + # install symlinks for python-exec + local EPYTHON=pypy3 + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + ln -s "../../../bin/pypy3" "${scriptdir}/python3" || die + ln -s python3 "${scriptdir}/python" || die + fi +} diff --git a/dev-lang/pypy/pypy-3.11.7.3.19_p4-r1.ebuild b/dev-lang/pypy/pypy-3.11.7.3.19_p4-r1.ebuild new file mode 100644 index 000000000000..1f0343dc478f --- /dev/null +++ b/dev-lang/pypy/pypy-3.11.7.3.19_p4-r1.ebuild @@ -0,0 +1,239 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs + +PYVER=$(ver_cut 1-2) +PATCHSET_PV=$(ver_cut 3-) +PYPY_PV=${PATCHSET_PV%_p*} + +MY_P="pypy${PYVER}-v${PYPY_PV/_}" +PATCHSET="pypy${PYVER}-gentoo-patches-${PATCHSET_PV/_rc/rc}" + +DESCRIPTION="A fast, compliant alternative implementation of the Python (${PYVER}) language" +HOMEPAGE=" + https://pypy.org/ + https://github.com/pypy/pypy/ +" +SRC_URI=" + https://downloads.python.org/pypy/${MY_P}-src.tar.bz2 + https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2 + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz +" +S="${WORKDIR}/${MY_P}-src" + +LICENSE="MIT" +# pypy3 -c 'import sysconfig; print(sysconfig.get_config_var("SOABI"))' +# also check pypy/interpreter/pycode.py -> pypy_incremental_magic +SLOT="${PYVER}/pypy311-pp73-416" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" +IUSE="+ensurepip gdbm +jit ncurses sqlite symlink +test-install tk" +# many tests are failing upstream +# see https://buildbot.pypy.org/summary?branch=py${PYVER} +RESTRICT="test" + +RDEPEND=" + || ( + dev-lang/pypy3-exe:${PV%_p*}[bzip2(+),ncurses?] + dev-lang/pypy3-exe-bin:${PV%_p*} + ) + dev-lang/python-exec[python_targets_pypy3(-)] + dev-libs/openssl:0= + dev-python/gentoo-common + ensurepip? ( dev-python/ensurepip-wheels ) + gdbm? ( sys-libs/gdbm:0= ) + sqlite? ( dev-db/sqlite:3= ) + tk? ( + dev-lang/tk:0= + dev-tcltk/tix:0= + ) + symlink? ( + !dev-lang/pypy:3.10[symlink] + !<dev-python/pypy3-7.3.17-r100 + ) +" +DEPEND=" + ${RDEPEND} +" + +src_prepare() { + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default +} + +src_configure() { + tc-export CC +} + +src_compile() { + mkdir bin || die + # switch to the layout expected for cffi module builds + mkdir "include/pypy${PYVER}" || die + # copy over to make sys.prefix happy + cp -p "${BROOT}/usr/bin/pypy${PYVER}-c-${PYPY_PV}" pypy${PYVER}-c || die + cp -p "${BROOT}/usr/include/pypy${PYVER}/${PYPY_PV}"/* include/pypy${PYVER}/ || die + # (not installed by pypy-exe) + rm pypy/module/cpyext/include/_numpypy/numpy/README || die + mv pypy/module/cpyext/include/* "include/pypy${PYVER}/" || die + mv pypy/module/cpyext/parse/*.h "include/pypy${PYVER}/" || die + pax-mark m "pypy${PYVER}-c" + + # verify the subslot + local soabi=$( + "./pypy${PYVER}-c" - <<-EOF + import importlib.util + import sysconfig + soabi = sysconfig.get_config_var("SOABI") + magic = importlib.util._RAW_MAGIC_NUMBER & 0xffff + print(f"{soabi}-{magic}") + EOF + ) + [[ ${soabi} == ${SLOT#*/} ]] || die "update subslot to ${soabi}" + + # Add epython.py to the distribution + echo "EPYTHON=\"pypy${PYVER}\"" > lib-python/3/epython.py || die + + einfo "Generating caches and CFFI modules ..." + + # Generate Grammar and PatternGrammar pickles. + "./pypy${PYVER}-c" - <<-EOF || die "Generation of Grammar and PatternGrammar pickles failed" + import lib2to3.pygram + import lib2to3.patcomp + lib2to3.patcomp.PatternCompiler() + EOF + + # Generate cffi modules + # Please keep in sync with lib_pypy/pypy_tools/build_cffi_imports.py! + # (NB: we build CFFI modules first to avoid error log when importing + # build_cffi_imports). + cffi_targets=( + pypy_util blake2/_blake2 sha3/_sha3 ssl + audioop syslog pwdgrp resource lzma posixshmem + ctypes_test testmultiphase + ) + use gdbm && cffi_targets+=( gdbm ) + use ncurses && cffi_targets+=( curses ) + use sqlite && cffi_targets+=( sqlite3 ) + use tk && cffi_targets+=( tkinter/tklib ) + + local t + # all modules except tkinter output to . + # tkinter outputs to the correct dir ... + cd lib_pypy || die + for t in "${cffi_targets[@]}"; do + # tkinter doesn't work via -m + "../pypy${PYVER}-c" "_${t}_build.py" || die "Failed to build CFFI bindings for ${t}" + done + # testcapi does not have a "build" script + "../pypy${PYVER}-c" -c "import _testcapi" || die + + # Verify that CFFI module list is up-to-date + local expected_cksum=a4138e48 + local local_cksum=$( + "../pypy${PYVER}-c" - <<-EOF + import binascii + import json + from pypy_tools.build_cffi_imports import cffi_build_scripts as x + print("%08x" % (binascii.crc32(json.dumps(x).encode()),)) + EOF + ) + if [[ ${local_cksum} != ${expected_cksum} ]]; then + die "Please verify cffi_targets and update checksum to ${local_cksum}" + fi + + # Cleanup temporary objects + find \( -name "*_cffi.c" -o -name '*.o' \) -delete || die + find -type d -empty -delete || die + cd .. || die + + # Generate sysconfig data + local host_gnu_type=$(sh pypy/tool/release/config.guess) + local overrides=( + HOST_GNU_TYPE "${host_gnu_type:-unknown}" + INCLUDEPY "${EPREFIX}/usr/include/pypy${PYVER}" + LIBDIR "${EPREFIX}/usr/$(get_libdir)" + TZPATH "${EPREFIX}/usr/share/zoneinfo" + WHEEL_PKG_DIR "${EPREFIX}/usr/lib/python/ensurepip" + ) + "./pypy${PYVER}-c" -m sysconfig --generate-posix-vars "${overrides[@]}" || die + local outdir + outdir=$(<pybuilddir.txt) || die + cp "${outdir}"/_sysconfigdata__*.py lib-python/3/ || die +} + +src_install() { + local dest="/usr/lib/pypy${PYVER}" + einfo "Installing PyPy ..." + dodir /usr/bin + dosym "pypy${PYVER}-c-${PYPY_PV}" "/usr/bin/pypy${PYVER}" + insinto "${dest}" + # preserve mtimes to avoid obsoleting caches + insopts -p + doins -r lib-python/3/. lib_pypy/. + insinto /usr/include + doins -r "include/pypy${PYVER}" + + # replace copied headers with symlinks + for x in "${BROOT}/usr/include/pypy${PYVER}/${PYPY_PV}"/*; do + dosym "${PYPY_PV}/${x##*/}" "/usr/include/pypy${PYVER}/${x##*/}" + done + + dodoc README.rst + + rm -r "${ED}${dest}"/ensurepip/_bundled || die + if ! use ensurepip; then + rm -r "${ED}${dest}"/ensurepip || die + fi + if ! use gdbm; then + rm -r "${ED}${dest}"/_gdbm* || die + fi + if ! use test-install; then + rm -r "${ED}${dest}"/{ctypes,tkinter,unittest}/test \ + "${ED}${dest}"/{distutils,lib2to3}/tests \ + "${ED}${dest}"/idlelib/idle_test || die + fi + if ! use sqlite; then + rm -r "${ED}${dest}"/sqlite3 \ + "${ED}${dest}"/_sqlite3* \ + "${ED}${dest}"/test/test_sqlite3 || die + fi + if ! use tk; then + rm -r "${ED}${dest}"/{idlelib,tkinter} \ + "${ED}${dest}"/_tkinter \ + "${ED}${dest}"/test/test_{tcl,tk,ttk*}.py || die + fi + # remove test last since we have some file removals above + if ! use test-install; then + rm -r "${ED}${dest}"/test || die + fi + dosym ../python/EXTERNALLY-MANAGED "${dest}/EXTERNALLY-MANAGED" + + local -x PYTHON="${ED}/usr/bin/pypy${PYVER}-c-${PYPY_PV}" + # temporarily copy to build tree to facilitate module builds + cp -p "${BROOT}/usr/bin/pypy${PYVER}-c-${PYPY_PV}" "${PYTHON}" || die + + einfo "Byte-compiling Python standard library..." + # exclude list from CPython Makefile.pre.in + "${PYTHON}" -m compileall -j "$(makeopts_jobs)" -o 0 -o 1 -o 2 \ + -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ + --hardlink-dupes -q -f -d "${dest}" "${ED}${dest}" || die + + # remove to avoid collisions + rm "${PYTHON}" || die + + if use symlink; then + dosym pypy${PYVER} /usr/bin/pypy3 + + # install symlinks for python-exec + local EPYTHON=pypy${PYVER} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + ln -s "../../../bin/pypy3" "${scriptdir}/python3" || die + ln -s python3 "${scriptdir}/python" || die + fi +} diff --git a/dev-lang/pypy3-exe-bin/Manifest b/dev-lang/pypy3-exe-bin/Manifest new file mode 100644 index 000000000000..6fdd2199e38e --- /dev/null +++ b/dev-lang/pypy3-exe-bin/Manifest @@ -0,0 +1,10 @@ +DIST pypy3-exe-3.11.7.3.19-1.amd64-musl.gpkg.tar 12380160 BLAKE2B ed2fdb9f589fb52da2cf42a03310f7b81225ca0ef9e9391c505716cfebe6333817d076a70a376a17fa59f707e94a00d8261342da1c789f7547009bd95815570f SHA512 756fc1b4ddb8eab8e7aecd0c0d812657f07f4fd10e25b651d4e1e741dfa66858be2b76325aefb7544cfe689c716b7d5eec1187446254a91c09edb0aac6105224 +DIST pypy3-exe-3.11.7.3.19-1.amd64.gpkg.tar 12400640 BLAKE2B 8661306ec8d88e6ef15685de0da0f9f681352f3956750e239b9101a63b05342a903de2b8ec505b7d2d59e1d82dacdf5fe068475d8e8273e7fd9744f2b5d0d25f SHA512 40c1764e64a8cd30918bdec6d40d410e73c239ec264be822b1a5c15ebac51358399c29ebe5e98e7bf291a541c6018eaf64b2462098548118b0d331a2938f4abf +DIST pypy3-exe-3.11.7.3.19-1.arm64-musl.gpkg.tar 10485760 BLAKE2B 2f0ecb331332f8864496aeb2bfa8e8eaec822c1263eb3331266344fbbf406ca7f479a7f5107e7351969ee6aead059fbf8e28b2ba9ac8ec4eb45145da877cfcfd SHA512 a68da2fb2dbbf77c16f2b2ab5d2926c506164a817261d786b8cab16ed2ff43090b051b1fdfb2ac0067af3db86790a5f8db6009e671a0e0a667b24055edee6ce6 +DIST pypy3-exe-3.11.7.3.19-1.arm64.gpkg.tar 10485760 BLAKE2B bdaaf2cf134aedf481d0b49bc340914ecf5c839b9ad62ba879f6e6ac98c4168537247cba963834a8105bc14b372fd5fc06ac57091918980417f33bb662d8d76d SHA512 7074e3b9f491edfe0122841fb63d405c7ec14ce4d344b7996e9977a4c36f6b1a2d874b08ff7b2d07ea567757aa26aa08a15bb3ae16a52cd93625c478d971dd7e +DIST pypy3-exe-3.11.7.3.19-1.ppc64le-musl.gpkg.tar 6973440 BLAKE2B 9f36dccbcd8154e75a87694dab65985fe9b596bc63748eb58dfefb4297d3de48768d9344fe38e95cb4b572eda09844e9fcd3e02e5c9a915f1ad0682edbf4bb80 SHA512 ba9929ddd9e6924758d277897e1c8c4700baba8a673a9b34162333d80c3961146bd37d7424d6e1d06e1364b63f3be1a37b2f1239455fa3470ef7cd037c9740f1 +DIST pypy3-exe-3.11.7.3.19-1.ppc64le.gpkg.tar 10741760 BLAKE2B 09a4888bc305ba8fa56de480abeaeb56ff05e479a72fdb1ab62cb89ab9ec7aac95511314c58e04b7fc670248f9f12e362e7733f757fadc32952f0b74ad6377f4 SHA512 021d5c45d414da4013b7e4469ee6b9eb87c8902ce63fef515de036d2c512ddfcba24a7c4405d681d025f820670001a21ddb94dcd25cd8d583bd091757a0e0f07 +DIST pypy3-exe-3.11.7.3.19-1.x86-musl.gpkg.tar 9359360 BLAKE2B 33cae43f868c09edf06c7c40da9fe81edeb1d14a50686ec7cdce38a16ed7d6473b88a4995d6b720330e311680b975e834ab4fddb18af140fb8289a4669a98af6 SHA512 9e66de09268dd3627c87b789d1667ebf2469c27183ec9ea1263e699a3e0aae49ccc300ab2148394f73db415674c45d50a149e506e7a155f72f65806e45485633 +DIST pypy3-exe-3.11.7.3.19-1.x86.gpkg.tar 9328640 BLAKE2B 5612778adf93329e6c691f0e6c5a311e3c401cef08e05ad978aa92d32f5b5cbc127efafefc76b16eaac1878a1c895094d8b53b853e4d90416751dbb7a3fa7d4c SHA512 fa6483c229c174fb9aa57cfe1b3839fd4b68d987ae50da492e8768a4635e99d1dd471dcba518a74b6264e3c5b58bde59614daf01a72f44a21a9038f0943f175d +EBUILD pypy3-exe-bin-3.11.7.3.19.ebuild 2063 BLAKE2B 12be4a25869091c47f1534594659d53e34dafb76d73c491f8db0d53a9fa4858d5350172e124ef93c278d26fa0abeacca052aa1519892c5249c8b86a452d40e5d SHA512 cf1079da48a6b08ca0806373cd10e57b6fb2e974b7c51920c70e555881e6d16b84e66c021052ede7be01b8206f14d0faef70cc1860fba57d1b2014eb57f8dbde +MISC metadata.xml 315 BLAKE2B da5ed341c55250028587ffb479a27b7ec31eb0f8bd0e11b8a98a374e23d989f7d5bcce647ca9c78cd12f64b6b83dd0568c4f3a992a6c8c5089c52cef9de87441 SHA512 ebe1c4d655c49fd20127dd240b603f1b99d67c0a6d21c7eb37bee48f4ec6bba50648816ea2b1b746af58fcf8de576d24fe355ecfa2de07ebaa0265ade2ea38ba diff --git a/dev-lang/pypy3-exe-bin/metadata.xml b/dev-lang/pypy3-exe-bin/metadata.xml new file mode 100644 index 000000000000..2ed15cb705e2 --- /dev/null +++ b/dev-lang/pypy3-exe-bin/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>python@gentoo.org</email> + <name>Python</name> + </maintainer> + <upstream> + <remote-id type="github">pypy/pypy</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lang/pypy3-exe-bin/pypy3-exe-bin-3.11.7.3.19.ebuild b/dev-lang/pypy3-exe-bin/pypy3-exe-bin-3.11.7.3.19.ebuild new file mode 100644 index 000000000000..15481f9c5c4e --- /dev/null +++ b/dev-lang/pypy3-exe-bin/pypy3-exe-bin-3.11.7.3.19.ebuild @@ -0,0 +1,86 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit pax-utils unpacker + +PYVER=$(ver_cut 1-2) +PATCHSET_PV=$(ver_cut 3-) +PYPY_PV=${PATCHSET_PV%_p*} +MY_P=pypy3-exe-${PV}-1 + +DESCRIPTION="PyPy3.11 executable (pre-built version)" +HOMEPAGE=" + https://pypy.org/ + https://github.com/pypy/pypy/ +" +SRC_URI=" + elibc_glibc? ( + amd64? ( + https://dev.gentoo.org/~mgorny/binpkg/amd64/pypy/dev-lang/pypy3-exe/${MY_P}.gpkg.tar + -> ${MY_P}.amd64.gpkg.tar + ) + arm64? ( + https://dev.gentoo.org/~mgorny/binpkg/arm64/pypy/dev-lang/pypy3-exe/${MY_P}.gpkg.tar + -> ${MY_P}.arm64.gpkg.tar + ) + ppc64? ( + https://dev.gentoo.org/~mgorny/binpkg/ppc64le/pypy/dev-lang/pypy3-exe/${MY_P}.gpkg.tar + -> ${MY_P}.ppc64le.gpkg.tar + ) + x86? ( + https://dev.gentoo.org/~mgorny/binpkg/x86/pypy/dev-lang/pypy3-exe/${MY_P}.gpkg.tar + -> ${MY_P}.x86.gpkg.tar + ) + ) + elibc_musl? ( + amd64? ( + https://dev.gentoo.org/~mgorny/binpkg/amd64-musl/pypy/dev-lang/pypy3-exe/${MY_P}.gpkg.tar + -> ${MY_P}.amd64-musl.gpkg.tar + ) + arm64? ( + https://dev.gentoo.org/~mgorny/binpkg/arm64-musl/pypy/dev-lang/pypy3-exe/${MY_P}.gpkg.tar + -> ${MY_P}.arm64-musl.gpkg.tar + ) + ppc64? ( + https://dev.gentoo.org/~mgorny/binpkg/ppc64le-musl/pypy/dev-lang/pypy3-exe/${MY_P}.gpkg.tar + -> ${MY_P}.ppc64le-musl.gpkg.tar + ) + x86? ( + https://dev.gentoo.org/~mgorny/binpkg/x86-musl/pypy/dev-lang/pypy3-exe/${MY_P}.gpkg.tar + -> ${MY_P}.x86-musl.gpkg.tar + ) + ) +" +S=${WORKDIR}/${MY_P} + +LICENSE="MIT" +SLOT="${PV%_p*}" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" + +# sys-devel/gcc for libgcc_s.so +RDEPEND=" + app-arch/bzip2:0/1 + dev-libs/expat:0/0 + dev-libs/libffi:0/8 + sys-libs/ncurses:0/6 + >=sys-libs/zlib-1.1.3:0/1 + virtual/libintl:0/0 + elibc_glibc? ( + sys-devel/gcc + >=sys-libs/glibc-2.35 + ) + !dev-lang/pypy3-exe:${SLOT} +" + +QA_PREBUILT=" + usr/bin/pypy${PYVER}-c-${PYPY_PV} +" + +src_install() { + insinto / + doins -r image/usr + fperms +x "/usr/bin/pypy${PYVER}-c-${PYPY_PV}" + pax-mark m "${ED}/usr/bin/pypy${PYVER}-c-${PYPY_PV}" +} diff --git a/dev-lang/pypy3-exe/Manifest b/dev-lang/pypy3-exe/Manifest new file mode 100644 index 000000000000..6570b0c8d22d --- /dev/null +++ b/dev-lang/pypy3-exe/Manifest @@ -0,0 +1,4 @@ +DIST pypy3.11-gentoo-patches-7.3.19.tar.xz 2216 BLAKE2B d0ee04576659c7dbc49fcb75e4442a91a1d3084689a756ac77de1c38090c2f9fbf8cc1cd8ebab28ce0e0d674506746439b356b1240c492a6f7ea036f3d25e2c3 SHA512 99d37e45ce20307e188398de517e415437e3ba7a6b8f1dbf1f74caed481bc96bd961298e4537086a7056e36624e477daaefc53229525875ba433b60bdcf63c5f +DIST pypy3.11-v7.3.19-src.tar.bz2 24916380 BLAKE2B febc61b3a1c5055b5ab92e7f3af2c307605c8510131437b12df27b58a13b29f6fd0a4bf82d101f7f8f441ca93b20cf70dbd540af11578be297ea871d59304ea3 SHA512 ab078e81e5eefe16823350bdc9adcc444e0ef6835ff2234197f9e5cb0903c5208deb6df60722e99aa529ffff703c5dcbc08eaa7f753c2e5c1185afea6358395a +EBUILD pypy3-exe-3.11.7.3.19.ebuild 2836 BLAKE2B 1deebc86c30a6737c1970f47d1ec7d3c584f07c14a14bd44662cf7d26a1d69b1da01a2e9de3d1ce37d06f5e0a4219080518fe43c71825c93a28e40e390524b3d SHA512 b3cbecfa4d2a1011c533610f9628f13e5f017c9d90f66f5c00fb30234d28f7d47a0ce69866838abbe2f638f7f36f82a52fe6b47252473765134935b5c20f90a4 +MISC metadata.xml 572 BLAKE2B cfcd1422ec312338fd876bc4747a962ac3c4bd06e28a3891489b065fba4c7be2daa6955f51e8136d9b8cf7b68bb7eb887b6f419ee9fd626ebd6db204acb7995d SHA512 c79250d47e3d5c99c2c903bfc185449cc41f88e2b923b8eae1401e83c0f23fa1a12ad85f50b6e25844e805e543ae897ccf43185a1bdf9f992dff765249e55bc1 diff --git a/dev-lang/pypy3-exe/metadata.xml b/dev-lang/pypy3-exe/metadata.xml new file mode 100644 index 000000000000..3f2aeb55aa5e --- /dev/null +++ b/dev-lang/pypy3-exe/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>python@gentoo.org</email> + <name>Python</name> + </maintainer> + <upstream> + <remote-id type="github">pypy/pypy</remote-id> + </upstream> + <use> + <flag name="low-memory">Build using PyPy with the engine configured towards low memory footprint. + This makes it possible to build PyPy using ~3.5G of RAM on amd64 and ~half of that on x86, + at the cost of lengthened build time.</flag> + </use> +</pkgmetadata> diff --git a/dev-lang/pypy3-exe/pypy3-exe-3.11.7.3.19.ebuild b/dev-lang/pypy3-exe/pypy3-exe-3.11.7.3.19.ebuild new file mode 100644 index 000000000000..76bfdf01614c --- /dev/null +++ b/dev-lang/pypy3-exe/pypy3-exe-3.11.7.3.19.ebuild @@ -0,0 +1,137 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit check-reqs pax-utils toolchain-funcs + +PYVER=$(ver_cut 1-2) +PATCHSET_PV=$(ver_cut 3-) +PYPY_PV=${PATCHSET_PV%_p*} + +MY_P="pypy${PYVER}-v${PYPY_PV/_}" +PATCHSET="pypy${PYVER}-gentoo-patches-${PATCHSET_PV/_rc/rc}" + +DESCRIPTION="PyPy3.11 executable (build from source)" +HOMEPAGE=" + https://pypy.org/ + https://github.com/pypy/pypy/ +" +SRC_URI=" + https://downloads.python.org/pypy/${MY_P}-src.tar.bz2 + https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2 + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz +" +S="${WORKDIR}/${MY_P}-src" + +LICENSE="MIT" +SLOT="${PV%_p*}" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux" +IUSE="+jit low-memory ncurses cpu_flags_x86_sse2" + +RDEPEND=" + app-arch/bzip2:0= + dev-libs/expat:0= + dev-libs/libffi:0= + >=sys-libs/zlib-1.1.3:0= + virtual/libintl:0= + ncurses? ( sys-libs/ncurses:0= ) + !dev-lang/pypy3-exe-bin:${SLOT} +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + || ( + dev-lang/pypy:2.7 + dev-python/pypy + ) + virtual/pkgconfig +" + +check_env() { + if use low-memory; then + CHECKREQS_MEMORY="1750M" + use amd64 && CHECKREQS_MEMORY="3500M" + else + CHECKREQS_MEMORY="3G" + use amd64 && CHECKREQS_MEMORY="6G" + fi + + check-reqs_pkg_pretend +} + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && check_env +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && check_env +} + +src_prepare() { + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + default +} + +src_configure() { + tc-export CC + + local jit_backend + if use jit; then + jit_backend='--jit-backend=' + + # We only need the explicit sse2 switch for x86. + # On other arches we can rely on autodetection which uses + # compiler macros. Plus, --jit-backend= doesn't accept all + # the modern values... + + if use x86; then + if use cpu_flags_x86_sse2; then + jit_backend+=x86 + else + jit_backend+=x86-without-sse2 + fi + else + jit_backend+=auto + fi + fi + + local args=( + --no-shared + $(usex jit -Ojit -O2) + + ${jit_backend} + + pypy/goal/targetpypystandalone + --withmod-bz2 + $(usex ncurses --with{,out}mod-_minimal_curses) + ) + + local interp=( pypy ) + if use low-memory; then + local -x PYPY_GC_MAX_DELTA=200MB + interp+=( --jit loop_longevity=300 ) + fi + + # translate into the C sources + # we're going to build them ourselves since otherwise pypy does not + # free up the unneeded memory before spawning the compiler + set -- "${interp[@]}" rpython/bin/rpython --batch --source "${args[@]}" + echo -e "\033[1m${@}\033[0m" + "${@}" || die "translation failed" +} + +src_compile() { + emake -C "${T}"/usession*-0/testing_1 +} + +src_install() { + cd "${T}"/usession*-0 || die + newbin "testing_1/pypy${PYVER}-c" "pypy${PYVER}-c-${PYPY_PV}" + insinto "/usr/include/pypy${PYVER}/${PYPY_PV}" + doins *.h + pax-mark m "${ED}/usr/bin/pypy${PYVER}-c-${PYPY_PV}" +} diff --git a/dev-lang/python-exec/Manifest b/dev-lang/python-exec/Manifest index d0c20eef3199..f0e688896b7a 100644 --- a/dev-lang/python-exec/Manifest +++ b/dev-lang/python-exec/Manifest @@ -1,3 +1,3 @@ DIST python-exec-2.4.10.tar.bz2 84412 BLAKE2B 1fe79e0d31a48954959a5556f96c3868fcf762ebc473d17f03e78a95cca83ab40b4933b7e42bc5751b0546e6229f9fdde9171c3fcbdd184f993536f944870491 SHA512 8c7d3c6b1fa362c8c97ec74ee01b5a195dc409d883408033e9709773b6059deb5291f6e63df6d9a4e42a0951aad4a1d513d4baa00ad9ff3dce3e1d2d38b694e1 -EBUILD python-exec-2.4.10.ebuild 2030 BLAKE2B e1631288db4f6ba2b1e97124bce5c812cb6f8fe22d9b3a5f642bc059b4da8c3303376b6adf394d8d213ab02842fb825bb77f77f8f98c7c3d7ff930d04f1de79b SHA512 2dec08a49011399e4f130df622444965aa137a88ab9bd57a8b63af6245201d055e0f010994c72c28e3669d32a023a244e786e45be74f24405e0a0d1d815e5374 +EBUILD python-exec-2.4.10.ebuild 2039 BLAKE2B f6cb952914cd05e979f80757773b953696ff097da8bdb16f28aacadd5ba5326927d196ae996559669dea31ddf5624cefe55ff231721887c8cea1cd4d5c2117d5 SHA512 b4214090990a4dc30cf5951c4f487ed226d321ae18d444ba8dac44ec86165e1c4915c4835d342ecd602c2a3750b64e64cf28ad5e55ce4d826898d4e890954603 MISC metadata.xml 792 BLAKE2B 523252765f0c1aeb4986e5f2acae02959e040cb7f9586f3b4391db730e1fcee3297dafbf05850cf2a6cbce34ab5168bbc965c2dd680b240f944b8199013ad914 SHA512 da707d555bc3f0c2d70a1fe3700c427091c3ca5e12c812714d5f3e13a518b5986bfd6a219820e35223e848e88098df81f5e4c80de33146ee3b273048e83c0521 diff --git a/dev-lang/python-exec/python-exec-2.4.10.ebuild b/dev-lang/python-exec/python-exec-2.4.10.ebuild index b6be8d00291c..af542129b696 100644 --- a/dev-lang/python-exec/python-exec-2.4.10.ebuild +++ b/dev-lang/python-exec/python-exec-2.4.10.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{10..13} pypy3 ) +PYTHON_COMPAT=( python3_{10..13} pypy3 pypy3_11 ) inherit python-any-r1 diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest index e56e072c1c05..f856c9237eea 100644 --- a/dev-lang/python/Manifest +++ b/dev-lang/python/Manifest @@ -6,16 +6,12 @@ DIST Python-3.10.16.tar.xz 19610392 BLAKE2B bcc5ff71904b8a936363c6b07b8ffbcb9816 DIST Python-3.10.16.tar.xz.asc 833 BLAKE2B 4fd4ce76ade6d64539e5eb641c64b0d99ade71a8514f97594097207e78412bd2d09afeab6788598a3159f045b98ccd5537c6771e59eeba52d4820c0c0a6c0dcb SHA512 18032fdb60a022d6381b1137789ada1c4bb198049616ed158fb548e728dd1fb95d116a86c41c852ca2acc9127baf3cdd9644a1e2df90ae9c3ffcd66eabf454d6 DIST Python-3.11.11.tar.xz 20085792 BLAKE2B a9a778eff94529e1029ae252ef28ecdc2f0673a4406d831865e12de3cba21ea48905542d0e806e428802b05947239ca6a44eff3573bd541469b01644790c7377 SHA512 3ff90f15f725fa8d06686158aaddb887a247b03ca4dc1fdfd81a8efb53373db3e8673bd0b3de30bb7669f3f07d9854e9d8a2dbcd49b18d15b8172787a53a0a9e DIST Python-3.11.11.tar.xz.asc 833 BLAKE2B 6a9d873e181d636712567ea46823ad7f972f872d038092506e67bada24187441188b8fde4672c205ce6d37e60c4e0c69a8f3cc5d1915fd8f5dd8743292a16d1b SHA512 d71b0b42537fb636e8c469d62d13ff020149e4fb9d87eb17f8c999301195e418d134dbdb7e4ab49b06de16e96f8ef6bbcf2a749956fffca2ce03185f191c181d -DIST Python-3.12.8.tar.xz 20489808 BLAKE2B 24b9a5abafdb9fedfc371e7acf0efce50bdc6702050c4f5f0b9e97916a899e3462f928cb217c48e6ffae6fdd4d2cd7c05c5f1d73eaa9ef646f4b3281db5ca977 SHA512 406ce1146c4c2c70d252df56bbe9e5970ef469395cbaa211a96af71f32de2cf7abd944906920cc18b4a470027e63a3f64bf7679fb4954b31bf4ca4baf24fa370 -DIST Python-3.12.8.tar.xz.asc 963 BLAKE2B 5aeacf16d337949a66bb56e346447e7bbcd9166b60fc512c98bcff6862976732ef2e3ac59869cd9df29a653c2bafd4af63b1e6c14f4c6603efb85d5c3dd88357 SHA512 19493499ddb80764aa105e100585d2ef872798dc30fdff2e31d158cd7fd65b69ca133c6d9d16eb974660eed6ba474a26a2af3acd13a90522cf50e142492bd9a6 -DIST Python-3.13.0.tar.xz 22532980 BLAKE2B 4a4e397199402de8c9fe8e4d63443ed972cbe8a4f541743908d699c7987127d159d600fd14145b6a946e8671426279d230c9155fdc5863c1e49a945eedcbf21b SHA512 44a143c9b96b55b01885ec020c3364265bda55289615cd7d5071915b0d0178a6f35e7551a89090001fcb7f3172d38177a56bf8b8532b15c9dbc50295c9210152 -DIST Python-3.13.0.tar.xz.asc 963 BLAKE2B d05f02692a9fea42b73dbfe5dc42bd6533555e5ecb848510d2b94bb7f0e55d4a0f89bcd20b073ed2c7f7a68be35b12cb6dbff6bc16fc9a4592ded2c339ada7fd SHA512 1b8bb0fe4eb93e31ec1770e90b94d44b5864c0391aad5dcba3a30d8e505d9b17107385414353c0060007f8a536254f49b8e919f36ddf6421a6e4330f817f1a3e -DIST Python-3.13.1.tar.xz 22589692 BLAKE2B 161d5c0a7b4cacc4ce9983f9540a7e01662a7b76cbb34c5f3681582b0e7207574bdec5ad7bf79d820d8744b69bc2fb7196cf07a2ecadbfab6a158872f562741d SHA512 056c9b5fc0a6b540f41513d045f43c1ed463d15e0f345cecec703ec9c2335e53b4beb19de9c74ab2b236b023f934d5fd9ae7727a808634eaa01cfe66018a9a35 -DIST Python-3.13.1.tar.xz.asc 963 BLAKE2B 47cbfb6bceb92716181a0ed8f41742958568e62609fa4996d341e465bd6be0ebcab586ba1ebe275aa3a99108221be047fab66ec4b7e90af27d9db7524b6b4951 SHA512 1b56b7c2f547aa39c75c18978e174debb113444ce3f9da3829ba6842e3160051e0de70bd49d306b8014299aa8aa911d7c67efe71dd648c3528cf8d7535a01599 -DIST Python-3.14.0a3.tar.xz 22749680 BLAKE2B 4a0457a98fe1a35c01a4607c11eefeb7ef4f4a3bc7bd8b04e129137c1f7f7ee8806fe5561e88dbf8866f461f2d7d3577618b7918fb85a0e99f7c225fd4593778 SHA512 e26c9736f00af680b5f1ff1ba0f06562c48550836088d79dd8b4c97016d52f9f76979de32fa8556e9d750a5dad488643e897807ab6cb0c1424882151fe5f3337 -DIST Python-3.14.0a3.tar.xz.sigstore 4891 BLAKE2B c251bfc3e332174c5050c2d8524aea4865e28e73c39288ac151bea10e0039c3af545a26acc48b9ae8deed9befddb11e810103620be6a7934ea79e7b1f3182eb2 SHA512 dd7d6c543ba2ba8dc8d2a6c891adcf85de7eb857ceb3ffb33f5f06fbcf0a6bcd6517502cfd35acb86ec13d85d487313eb9a396d78c42d1c506d2261e1c4b861d -DIST Python-3.14.0a4.tar.xz 22798932 BLAKE2B 4dd8632503e142456deefa749aa8d7a93b98c988bdfe905ae650e8e72b2a22de9e88b6d7ba65ec277748b4c8b919a176ca22552e9482f4883b96bf9129dd15c2 SHA512 b70671ebbd9f777fdcb661405c538c733600470ac34992a5b3df99d2f5afecc22cd8325eeec50eeef043181e634da91e535c166b9b5ed421d4e6aa41b79da3ab -DIST Python-3.14.0a4.tar.xz.sigstore 4895 BLAKE2B 9a1c9ef623a0b8a7469d3fb56e0f73bf28947cb04ab797086962886d6e816e90c2df59e26af952e251c69e8e42c8888aa74bf866aebd7ff1a09526f3bd0d9472 SHA512 117dee2563607e4bc4190742d341f5b088e3feb205d59144b4a50bec1ec1c6df5f0118fbf88c8e78327f59d222ca7d98f31f1e5ff1d9488c0bbf01cd95df22ac +DIST Python-3.12.9.tar.xz 20502440 BLAKE2B df1a8ba4996219c018fc14156958ca9c0e8af4854819064fbcf0c927258ecb3c5f46e562213799a87dafb35ae5bd647e1ce280affe2ac8ce6a85c351822b6693 SHA512 c840b14aa21e6a963d18c06ebaafb551d9c9a101b3866417e762fc4a2fde071a7a25fa257faba2956c7344bbc2413ed61690a712d26fba4d0dbeaa50e49b2574 +DIST Python-3.12.9.tar.xz.asc 963 BLAKE2B d90b9c1a3aafa1a942ef8d978b566829656db1114b74f1565b7cbba188cf3bf5637c1dbeec3432ae0af0f826a154c40f27fd8fc46350a757ef91f5c426908149 SHA512 b59251ca3a0a17c06ff7d165f6c025eb91127c80be0782642590f5c922297e0710544ac5a9ae977378e393f1c4861149576a0515af5ec0e54e6827c4010d544f +DIST Python-3.13.2.tar.xz 22621108 BLAKE2B 79c7dff8a15fd2487d62847a8e654c02433a89887aa4f93819020b60a30587e3ba92b101553d971b59e132677f9f74dfc41cd7c7901db78a7787607ec96c6664 SHA512 bb1c0598914c6d4326554faa568f660f10b20c701d0f36bf1fa58837b6498d728a407416b06ede39604caea1ca93f60545b83b01ae8ee65f55d4cc83242b63fe +DIST Python-3.13.2.tar.xz.asc 963 BLAKE2B 95a36c305dd452df23b4f119de05e1d3a2b2c9e0c2778a52dc4065f82b52752b68d89eb737cc54cced70623ad4a7b48c85fdff781bf7d7e3b747dacb1ef77db0 SHA512 5f019be530f688b0adf5d5cc9f2c2243e2f1dc7338559db14c1eedd12aadc85404d42c7aafd74e41828205d85f13f278876662ac30c8f3382a1ee081ba5f29f2 +DIST Python-3.14.0a5.tar.xz 22850560 BLAKE2B 69d57ff07aad021fcfb626f9164529ce071e08182a4334a95b8411c451aa93db09c60d149868bbaad67d8c4bd79598ea22fa76856c3f70b9c35b04b6f48dbeb4 SHA512 ae34c994f00c36c6ce18091c63eb3469aa545ee391c6879c89f5722f7311f2e97cc997477897969777dfaf98090e3dd01dcdb655c986140e9a7796f963be9df9 +DIST Python-3.14.0a5.tar.xz.sigstore 5067 BLAKE2B c3ef20345e05763d201090756ce7e786969d8351ba567b5708ec7a20e6d348c626201fd5b63afa51c0b6740aa3406222b4e07f01d81a8e3812dfc84b751ca248 SHA512 e6755be4a974d8007519e18b9ef417129fa032c9dff508f5170622bf8e8ef0616c8395a1261e9e0e80848c739f31e8369fb5893e7b29f308ad8d62cf1033d609 DIST Python-3.8.20.tar.xz 18962788 BLAKE2B 715c75e0c0a3d3b77af7f07478311bb0554b80aac72915be703aa2d0dd6459a972e5669808e64da14a0b91bb183e00655055c1726f302dc3ccd8721e3b4ae3e6 SHA512 3c9341ee1fd33cb687958dcf2b7c0c7700489726c4d530c3e9d9537d46a6ab534541a4b312232d8505bea395a07e4518c42d75fb7571103e6b266f8f44115c61 DIST Python-3.8.20.tar.xz.asc 833 BLAKE2B 5c86c15a1090b42e42bb7512565b1a7ad9d2137d59e9fd1ab0f83fdfc37dfcf184389418d6703db809e9c8c04a169af292665a2b58bf5dc61b7724ecbb4132d9 SHA512 a751ae0407a593d97acac4d5f8a0456580c753efa12a7d960125c219b4897fdb26fc1ffd43d8ea33ad1449162dd3b2904c16b6c51c57561ba73de3ffa62e0eed DIST Python-3.9.20.tar.xz 19648968 BLAKE2B 80a337ff406130599b8320068d11bc275d23473cedd7c85fcb9e40134f0f2d533be6e712139e788a6423cdc74cea938f306aa37c2a5099e3051f3e390159279c SHA512 c828f33edf1704e3149499d6d34e89264cb5cdb2b09ff05561641b359716d7996f0fe928629e09f006b1fd7850fdaf937275919c7fdd83f5efc32707c64d814b @@ -24,33 +20,26 @@ DIST Python-3.9.21.tar.xz 19647056 BLAKE2B 7f77a7fb38d9a9f4fda7007587f744ade5f32 DIST Python-3.9.21.tar.xz.asc 833 BLAKE2B f6e666179d745638a38ace35e13c26cc3e07c116a8c8362cc260a74113cd29a5c1909d2091f2eed4bb088bc71b79ed18c5503739d1cc3cb7ff95d625f4311421 SHA512 1e5e5a5db8074a7ee5eb51e6c789d6e46467165d72d2d636d1fc0d3e15d4355051f9f7ad3063ba43b37b611095765c9d654ed890067c201c087da1eecb620ef9 DIST python-gentoo-patches-2.7.18_p16.tar.xz 35448 BLAKE2B 0139c0944f62f9cdd236f6a8557e0ed19704c7d72869af1cb7d8bd3e646a746cd4a0201e1b44232a5e78ef49f254db20b0d0271bf744fbfd4fe0f1e99b8f3e6c SHA512 810be590d0e06fab4b2165e6852ca49662f09dcd7e20b47a29f613ad7653252c8dfac3f0eb228d77c8a914efa7c08788b2fbd552a4b47504f5fd0ec17450c48f DIST python-gentoo-patches-3.10.16_p1.tar.xz 24964 BLAKE2B 93cf5d208f80f1017e4afdcf7d3551d150a1d68c378312af43c668156d98f10087d2b6f315f717823a9aae1114e2baa999f61ce179639e5511d30ed9620c9570 SHA512 74ad92d3256d744e3572c0d858b4ba4d5f0f6fda84d8f3c1a1fb675376c2d525e2d9fd636a65c8a859a0a312eda00877b13ba311f620b6a51e47dfb082843333 +DIST python-gentoo-patches-3.10.16_p2.tar.xz 29428 BLAKE2B fa63d2fcdbb53e3b6381eaadfbcfca02a03eddd7035dd4776c706fd1aa0226a2c809260ba5a543a209a63563dab12ea109bf03a2026ea4b5797fa6afc7b45c52 SHA512 0186abf035632a3f8018052f8021c1d0dadbc28b7d03551f6992a658fe53878ac9ea86b79512e0e147efecedfda133cf7936746946238177918be9c695248f15 DIST python-gentoo-patches-3.11.11_p1.tar.xz 11644 BLAKE2B d080e1b987ea0e1b397113f20a5c84f6a34d6619a3ed9f7389fd10d95636169563fba97d212477ca7f9b93d2bd0b66c9521fc61963bb468805a661ca3ab287a7 SHA512 f6045adf25923053fc9a60506b9164c9c062580d6886f1a3dcaca00dc4affe69aa9e138f8ce93f093798ccf33322ccca2aca674ab87457df98a93dcaca234b44 -DIST python-gentoo-patches-3.12.8.tar.xz 10772 BLAKE2B 9833b5ee6c307a4aa1335fd966fcd64a0f3732a97a190abdd3121b3496ea68ead9436af4ec5e3e8c0e781fd68df41403a1b2e5f29f264fc8569a883141e5f7f9 SHA512 d5906845a6259f7349a0299e185f569750b493c64ea1f6537dc8bfc0babc9b54de7db1c4f1b5b6ec2f7076937ad07ca0ca9c4941bbb8d542da6c687957bdbd5e -DIST python-gentoo-patches-3.12.8_p1.tar.xz 11088 BLAKE2B 4d7ccf4759b624aafde1ef2a0a341cda8f4d3e7c4d86586201a910d77327219e61b134985f2fe85e83892ad4ba607b4e661aed675cc038e4cc193efe9fbe6f6e SHA512 6f1d6ab2b9e958ae7d2ca3f204b7c7eb1435998919cf5a577a82bbf1339232f92a2f517c248afb9e1802850acd2b59b84c41e87f4b8582e19ec88155743cdaae -DIST python-gentoo-patches-3.13.0.tar.xz 8316 BLAKE2B 8fb8ba8f41f310140ad7066b614952023112d5043e5d82058364125611785144c1843e87eecb7669bcbab51c40d0694069526219f7419a7009517ce0821b74ba SHA512 0eb31ebfa3411020aa70b3b66fd7eec98b4b7a686b0e8f1f7ed76a8186a7c1ee85ccd9565a86a1d7ec13b975855eeb7303036af05e2dfdce3d64e4ad99299df4 -DIST python-gentoo-patches-3.13.1.tar.xz 8320 BLAKE2B 2fef9c501df7ed7603eabb3e01a8c3bde5bcfae3a8ac9bbe772b458cb04ffa9598cf38f3a74f6dcbcda29e7bd294d664b8fb12f7ddd9e0e42ed6268300947bb0 SHA512 419e1f12daaf19ed2d2195699b5e8c2c604779562d84d6a68adb4016dcb13fc3e0383ccc4b01eb153930600e6c9cdcc518929ffce3d6343019226a6111e9d617 -DIST python-gentoo-patches-3.13.1_p1.tar.xz 8672 BLAKE2B d35b8b47c6d549753d9a764fbc3538cb6517c809e69901f3221110ccbb0ea9eed10ba1f1637a5ffe4f90d8c3932f53815c7dcf844a7350ad89458763bf0aeea1 SHA512 0505bc1f7c8e264fdcad5459900e37d12ed9bea57e615ea42492fa211d3f0641e79c3e711a6970cd34a3a6275f36a22ed7ba64fd71c988bcdaebfcefc7b6a1d2 -DIST python-gentoo-patches-3.14.0a3.tar.xz 6036 BLAKE2B bbcb3f31acb533b8291f4cedcb89c0501a7054bbf1f98ea000c43e5a99e3b8bd160c6fb81e28bad90c85dd0256d523f72b9e25f30c30b5b5e9d60a9055a612d1 SHA512 9f87b3f1f326f88c924c49e37f39f63314199cfc354d452fef860ab36e143145a2c1d832c1b7d4357ade1c1090de00086bc5d6a9d7981bad210a99ffcfa2a858 -DIST python-gentoo-patches-3.14.0a4.tar.xz 7452 BLAKE2B 5d3b0dc6f9c2f0ffeac50e4af1915a8d8ec29350c56203ec66d6580ae705a23316f4c85f28908000c50c58eb3400e63ff379ba26d219f48ca7f559633ba4c153 SHA512 0e571f6693e44f439c7ac499216f4cf70e487768116290c24ee66323c9113fc91d0b4b68c79d1d549d0a14fcee4f79ddc377dfd87932dfcf00c5c11d3784bedc +DIST python-gentoo-patches-3.11.11_p2.tar.xz 16224 BLAKE2B d8404c8c87e109d2c699dbab63c20a319c6efd5b62dab5fcc1b53b5b291e25686e69ef92b495eed0d80491cfa29ae9f523df6b53c7c6a12c3f713c53e3c5b7c6 SHA512 f1bf897305678c2b113aef4553d14e916e83312708352765725d754dffbf2f5dd7ef0f7cd84a774e4a8c18dde8a517d7eaf8e58720d73d25430b28fe49906258 +DIST python-gentoo-patches-3.12.9.tar.xz 10736 BLAKE2B 1f87d1bba8c094936e5cd3e0ef2eede0dbca3e658430f81b398735d8f02fff1f87739914014dbcb17163f8a969ffc5e7e4cce7d71557ce3c2e58487e6ed8b80f SHA512 342f11df85926e32455d52115d06b817a17f7ae104e3ea8e852046d321d829835bba7c07803c50dd5433ac8b615499428d5bc1a088b484ca0c4304eb8b2cb879 +DIST python-gentoo-patches-3.13.2.tar.xz 8316 BLAKE2B 2367808924c83c02b8b2ca765fd4768d4f12cb8e8451eab9d084ce5950a5a81829e573d415f9a16db2e053105def90b5f52c91423fc71e57cd182a1d9c824d8c SHA512 580332ca037c1453f314d5811f96f7bf74defc16cfe515c4fe82ea08a7bf3679aa88d5456db846d988bcf4fbc9eeb4ebe7cee01d135bd55c87931206250e301a +DIST python-gentoo-patches-3.14.0a5.tar.xz 5668 BLAKE2B b12801ac5bfa50cb6e3bf4b79e70956b771e0a4c0d5d4265115cf144740a914f764655171fdbf3178ba76f91b7765aa681f0097aaa55e6aa330eeeec3320bb4e SHA512 3110f99058136e8587a4cce2f594a5fde7c575027440e9e4d3b77dba0428c6af60cd0d259833d5d46e3b9ac3f24a2ad3111e4c5436cb423079f5c1a230e47d97 DIST python-gentoo-patches-3.8.20_p6.tar.xz 50876 BLAKE2B df0df21c75972fb73e36f66f0c90d3f953b14d7a59bf97ce4214dce6e6d937ed52fbf3db8f3eaf42cde141bfe4d7a731b06e41723285517461c790912706be9e SHA512 48ef567f6972e7975cb61d34a876d8c0db42f1a3c0b832f9366091dd5f2ca854c02887808843d314816c8cf6d7b0738c40e7835fedbba7b84e57f2515dde45e2 DIST python-gentoo-patches-3.9.20_p2.tar.xz 36140 BLAKE2B af0a9e08f3bfd8eb631760d100ec8f54db968a6bd201820192c4ea63ec88e0f83ffe77c709fcf4da43ad8d44eeb239ca1984561c3e7846e3fe4edd757d2321a4 SHA512 d451b41401de631eed996c34f40f2146d4d2f11bfa04fffa762c9b654e690d0ef95be0f51224a964a7c33784bb9b21e58434f6fee17cf39c20b5af34200569d5 DIST python-gentoo-patches-3.9.21_p1.tar.xz 35404 BLAKE2B 7b5ac27e814b06791fa5f0566763711c1b65a7c82ba66f97e237eebc6076f0bfdad3d8269ece6c4d4c238b62cc75b01f68ea3a5d7c4fffc46e88f79b2ba3e7fc SHA512 92c8548b31100a921378c72cc94a81062c96fd795fa2cd001c57a71e4af39e91b21b99e9e84db12adb142d9c4bda809445519c5c8a35545bd10230926bd7eded -EBUILD python-2.7.18_p16-r2.ebuild 8597 BLAKE2B c472b0b3c49d4f848d910ac9d1d5fcffdbdf3f6f1454a4471807a1bc5129d7d6ff86c1af4515dec79056f3b079d1a0ea81e1693cfd49af2c2338462bb1f04cff SHA512 a7b48dff6e121915589a3ad746da6f52d29bef98d0d0a02578a5cc31cf9adcb1c32c82747cb768f355671e64825f75a8593d8424b7da36c09e8523a142b1ce1f +EBUILD python-2.7.18_p16-r2.ebuild 8505 BLAKE2B feb4cf270dd478f2f7f16f969c9c8a28cf8121f3cc32f11407622afe0a1db79247d045cb6324b9b5f4939a6028164c655116fff98e2378eea7e23fe0b8ce1dda SHA512 cc3d964e6fd8577de2176cbf5832d8587e090158317e52fc42615b7494861b0a955983e0f8153401b6af44b1ba227cac87ae901cda524358518d2778fcd162f2 EBUILD python-3.10.16_p1.ebuild 15531 BLAKE2B cec70438eef3917846e6d26035f33bf2a0e90515a916c4283c286744deaea86f26b33e0fe96f9fba34552bd5917750abac8ec9726cb12937140291cfab689c9f SHA512 edf67f6b68442b860d209a2216b5c72151c242972329bd62463ef9e29d172f64a7bd4d8eb708f8b6830eaaed35336ddda5343c1f30dc3199abe859d97ba4c948 -EBUILD python-3.11.11_p1.ebuild 16752 BLAKE2B aa28431e87c648e6bf7951c8b20c240f10f8e069fedbb41e8e6600c97d0cad0364df79dfcb60d0c8c057eb946d59b37b98aba52c0874455310e2fa7e440526d4 SHA512 1ca31c3e5965e94224e3784531d9d2adda1b93558bb2693b9a9ca82ba5a8e51f9d132ffe7fd43ab413699ae67d0043dae5b14e0ca621cbac34e19b014efd730c -EBUILD python-3.12.8.ebuild 15671 BLAKE2B 7b4dbd1c4b60b57c12ca33c2523230a3d52f9d5ec6ef56b922e34c369476d07f31fc9aa93b6b3346c092dfefa6631c86d2f498c4f69fc88cc1e4b42dc0698435 SHA512 c53dabbaf74fe6e19525865b42b43b4754171df43c6295183debf108ee43365fd409b302ec6febc90c10e7ef3b42564d11084df746cf37824f437d1ed3e58311 -EBUILD python-3.12.8_p1.ebuild 15673 BLAKE2B 8ac7372319b2614cf7f0e2601888ffce877f5b260f0b6de1f99556d1b531e2af6c3f36d709a6aad504a8d2b6e7b89163e0542d10de4838ea72886f2286899fb6 SHA512 4e1eaa2cb32f3c894a460fafdd16549eb0d0512c8bbd3ce6ce0276b00559de4423d4f4906bc1982876b5a3500d088ca780e5c2c4bbfc9a48960d432341217b83 -EBUILD python-3.13.0-r100.ebuild 17198 BLAKE2B 004432880b1266a0589a3b7cada82990caec9e388141b9718e097619348a714131017e56065b425240edb842bd00c52a54e5dbdfa38b99657c5a0c73cff7e496 SHA512 29349d96ba87061dcf7b3ea4dcfbc2975b3d0897b757bc7b895aa8c9f142419cc91a0228279410e8caa87b63aeb5586190a675534a1996f9750898ce6710842c -EBUILD python-3.13.0.ebuild 17468 BLAKE2B 874a2332e61e19ae632a7de535f75bec6e3cf5fe07634b41b6e620f5c5169477eaa0e67e416e6d9069ae6fb86b42f4cee2cea12213fe77668ca603678e69fd64 SHA512 9f5e9d435e87eacccb606aac25cad16d7ce42729a1c64ec051004404d36e2e7b476cd6b32fe9bfe36ed8773604a1ddb789de98d55e827e0de8bbffc09a37a878 -EBUILD python-3.13.1-r100.ebuild 17206 BLAKE2B a4d06ff1df9e2975567a8a6c77ee0019eebcb91a7f0e7bd534b369d76108774a3b6378995a89f1e1db62ed2aa4c69fab700c4f1c2a9f2cbd8907a44f14061888 SHA512 2bff314880c19039ed6b6791a967bf381297274675e15572f6ee679012bfa822f0cb2f47879c94b51c901b6514f1838186d7d319881bdf63b6f1c66b10dd1d6d -EBUILD python-3.13.1.ebuild 16858 BLAKE2B 4115d1b60d90714c06d485d5d15c6f29448158a2a51221e503521175a288cfb30cc249ce2505077bb673826e16904a93cbd970fa19e72d8e255632982fe62262 SHA512 09e752176200b14d2aa03d98f42f1a1b4c1566bd672ecdddd032dc778249328c7b41f2c02e32addbaeaae4c639a4366fd106f81c91805b4216afce3e5abae876 -EBUILD python-3.13.1_p1-r100.ebuild 16678 BLAKE2B f70e5c4541719979f5588c97e9b19b5be0f2566783fdfdac558820bd94dcc5f34ec15485db5836587f28dd93c09af046aad91ff1be2855ebde82e518a1e337fe SHA512 e73f5893d2fef16bd668124f918c50ef58ad50307182800598824f782a95928788aa57e18db9f550427c5e8bb958024151cc7bf4c18556d84c8359241b7304c2 -EBUILD python-3.13.1_p1.ebuild 16363 BLAKE2B 0d4182c46655d36e6b20a05c4976d3c6044a12e8ef07c9299dc72c9be18e4265b01a06f7b3c3b324c278b5df7611a2139f3804d826370f632c867f8db76f33fb SHA512 edc5ddd1c4c2c6fdc5c64d87b2c10b5c40fbbce32101250753d53a9c25b2d55e911b51b79ecd67aec8a3a9dc14e244615708a3714e0e1e4b0b19849739ff5cd7 -EBUILD python-3.14.0_alpha3-r100.ebuild 16695 BLAKE2B 2be26e8dd417df40d72e1361709a16d48add9e5262b09bd04191867f2b0f75b8e71fc8dee98b7f7976e925e54cd18e10e478f6ea06fa34164ce0f1f499738f1b SHA512 dfa892d823a07a7b9356b50a40c066e310ecd8a5e9cc674423a09e390a9115244a46af53df57667b3752103a9ac5bc0e0b9f7a57cec22875499f1edf14895d31 -EBUILD python-3.14.0_alpha3.ebuild 16388 BLAKE2B 7cb2e9c39471f0ccfb2c436c4327469cb6e709f55d38016276876d318042afe59d7df2dea8e829fc21017a87bbd1fa1e3dcad33eb39fb673761d8b9a364f101a SHA512 cc12477ef0388b47441b06f76fc4fc35258753f121735a2ee1648740c9894025b0e426d5bebf922dec17f8c9c10569ee0c62b538cd31b924bdb21ecf4a25b933 -EBUILD python-3.14.0_alpha4-r100.ebuild 16695 BLAKE2B 2be26e8dd417df40d72e1361709a16d48add9e5262b09bd04191867f2b0f75b8e71fc8dee98b7f7976e925e54cd18e10e478f6ea06fa34164ce0f1f499738f1b SHA512 dfa892d823a07a7b9356b50a40c066e310ecd8a5e9cc674423a09e390a9115244a46af53df57667b3752103a9ac5bc0e0b9f7a57cec22875499f1edf14895d31 -EBUILD python-3.14.0_alpha4.ebuild 16388 BLAKE2B 7cb2e9c39471f0ccfb2c436c4327469cb6e709f55d38016276876d318042afe59d7df2dea8e829fc21017a87bbd1fa1e3dcad33eb39fb673761d8b9a364f101a SHA512 cc12477ef0388b47441b06f76fc4fc35258753f121735a2ee1648740c9894025b0e426d5bebf922dec17f8c9c10569ee0c62b538cd31b924bdb21ecf4a25b933 +EBUILD python-3.10.16_p2.ebuild 15539 BLAKE2B 1dd164e28dfecd11ec27aadafbe67258c686aa02aefe644f1cd161d77b0009fcecb76d03de52d9904324e79ecc1880ca6229bf2b69f942bfd523bfb07d97c726 SHA512 4977b4ffe465a1a6ae7f7d590b9b5bedc608bbd9de266b8bafaa54628c7ad21e7dd691a6fff4ce9938e5159513387e8920a1bd2e80d113fd9c986943bae548c6 +EBUILD python-3.11.11_p1.ebuild 16699 BLAKE2B 5797ee3ec52e380d7f95373fde3130854506f13db4e4dadb07d7159dd290a7c41add2687ea51d79dc1afbee5cc700251ee8799a43440885803e82796407077a9 SHA512 44d5ba374441fd55830c89501cc00f9a9faab36f7a5c9c7dbd0bd2f65a633e0a93cb5aa57f3b5e57788d103a109f08e68a9f1a68bf65a6f97b7ffeb6f1f8a7e4 +EBUILD python-3.11.11_p2.ebuild 16707 BLAKE2B eb9c0af648e27d17bcf4f87211269b0cc4df0adaec212c8ae3e305fd9deb6178746071a7e69518450d5efd8618c3f93460e9ee268aab6b464f986c687bdeed0a SHA512 ed5a685f59dfe445bab6b8f051a46cbb819a3a764baea54da6e4631a1f959f193e09181c6292b8ba38ec255d26ddfa12da57c6248f4ecaf01e82d3f685a5d123 +EBUILD python-3.12.9.ebuild 15671 BLAKE2B 7b4dbd1c4b60b57c12ca33c2523230a3d52f9d5ec6ef56b922e34c369476d07f31fc9aa93b6b3346c092dfefa6631c86d2f498c4f69fc88cc1e4b42dc0698435 SHA512 c53dabbaf74fe6e19525865b42b43b4754171df43c6295183debf108ee43365fd409b302ec6febc90c10e7ef3b42564d11084df746cf37824f437d1ed3e58311 +EBUILD python-3.13.2-r100.ebuild 16678 BLAKE2B f70e5c4541719979f5588c97e9b19b5be0f2566783fdfdac558820bd94dcc5f34ec15485db5836587f28dd93c09af046aad91ff1be2855ebde82e518a1e337fe SHA512 e73f5893d2fef16bd668124f918c50ef58ad50307182800598824f782a95928788aa57e18db9f550427c5e8bb958024151cc7bf4c18556d84c8359241b7304c2 +EBUILD python-3.13.2.ebuild 16361 BLAKE2B 139a6204daab762327d366d6dc9806a81e1e31c28510b6460883233c488cdd82a06019dca27bde975e63ff68fd011e8fcc77d295b86a5173dd213d3119de1b76 SHA512 a850739e65cfe3d283b94e7b28d190ec026c2f30477368d157daf430530276975ec5c26bec22e3774ee0c380a55a427af08fdf9842e8c1327550aaf6146fe0b3 +EBUILD python-3.14.0_alpha5-r100.ebuild 16695 BLAKE2B 2be26e8dd417df40d72e1361709a16d48add9e5262b09bd04191867f2b0f75b8e71fc8dee98b7f7976e925e54cd18e10e478f6ea06fa34164ce0f1f499738f1b SHA512 dfa892d823a07a7b9356b50a40c066e310ecd8a5e9cc674423a09e390a9115244a46af53df57667b3752103a9ac5bc0e0b9f7a57cec22875499f1edf14895d31 +EBUILD python-3.14.0_alpha5.ebuild 16388 BLAKE2B 7cb2e9c39471f0ccfb2c436c4327469cb6e709f55d38016276876d318042afe59d7df2dea8e829fc21017a87bbd1fa1e3dcad33eb39fb673761d8b9a364f101a SHA512 cc12477ef0388b47441b06f76fc4fc35258753f121735a2ee1648740c9894025b0e426d5bebf922dec17f8c9c10569ee0c62b538cd31b924bdb21ecf4a25b933 EBUILD python-3.8.20_p6.ebuild 13329 BLAKE2B 632fc0c922e18895efadeb33b8963a087f1951bb329c03f3d802fbda81ccf1b7c1e22f03c516d07819d1df66e8e1d7de0a8300ec308c8a56042b51dd86a51d01 SHA512 77e07e26f674bb245cc2d2c519c7a1b9e72a6eadcb4ea0631062189a3bf50e78a160a87d108b6867db9b9c3fdab22e85a290d73059a6859f052d83c7dda20014 EBUILD python-3.9.20_p2.ebuild 15374 BLAKE2B e9920e3c6c3bbfc7c5c07651f5ca16522f8efe926691f818e8126734206b6bd5d8960a769c1cc541505739aeffdce861c6ca176146401fa7c7d02516a56962c7 SHA512 9540922e418d1a820f97e323e98077e6fe584825940144aadae1c30de8f6d27de28d902fd14bcf98a77aa484719864fe2d25283ba7837a43331410401a239d85 -EBUILD python-3.9.21_p1.ebuild 15383 BLAKE2B f2ae1145ea27de73568c6d83d6cace1ce8aef9d7f96cb48976491b509f36af6253b6808040e02b32beba212d6cf23742b7e082e8efed48d44eac582c7cc20d2d SHA512 422a48d652925d60387990fea0b8863c6d9a1cfafa20412cd50498fe09cd9ca70ee4b7340b11cc41cea1defd3f65227a7f1303a987bf9fad91aafae89dcd337d +EBUILD python-3.9.21_p1.ebuild 15382 BLAKE2B 81df703cc940b016b2e48627dda25da8ea151b26d667da26faf9b1aff340c4003bde7444dcd635f6a7c9264e99c7c9676ae3ad576881c4ca09ffb78466d39446 SHA512 9d0c96e1f56b5d30baff55b16c18be637d410ba4d6c0c28f14bf9ef1b84981858f3bf90e44db3b908c06aaffd21320fab01303f0d9fb22acb178e9c785a87723 MISC metadata.xml 1437 BLAKE2B 22f737ad283774c5ffc55173878bf07b6f89d91b0ebd9cf41c11e518b35461ebc9ecfc8017a519673698869450c1ebe55b5dc2577a8b03ea716d30b99ce21d3e SHA512 9f684412c916a3909bb7c2bbfeeb93c66e1de22d4313d657370162ab8b7438e6397bc7d31641d0bbb06d3373966fbbf7578dc0a30ed44558cb1b8a3bb5bfecec diff --git a/dev-lang/python/python-2.7.18_p16-r2.ebuild b/dev-lang/python/python-2.7.18_p16-r2.ebuild index 7489ef62fd2e..c0e5d15a2c8a 100644 --- a/dev-lang/python/python-2.7.18_p16-r2.ebuild +++ b/dev-lang/python/python-2.7.18_p16-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="7" @@ -30,7 +30,7 @@ SLOT="${PYVER}" KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" IUSE=" berkdb bluetooth build examples gdbm +ncurses +readline - +sqlite +ssl tk valgrind wininst +xml + +sqlite +ssl valgrind wininst +xml " RESTRICT="test" @@ -54,12 +54,6 @@ RDEPEND=" readline? ( >=sys-libs/readline-4.1:= ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( dev-libs/openssl:= ) - tk? ( - >=dev-lang/tcl-8.0:= - >=dev-lang/tk-8.0:= - dev-tcltk/blt:= - dev-tcltk/tix - ) xml? ( >=dev-libs/expat-2.1:= ) " # bluetooth requires headers from bluez @@ -142,7 +136,7 @@ src_configure() { use readline || disable+=" readline" use sqlite || disable+=" _sqlite3" use ssl || export PYTHON_DISABLE_SSL="1" - use tk || disable+=" _tkinter" + disable+=" _tkinter" use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat. export PYTHON_DISABLE_MODULES="${disable}" @@ -156,6 +150,9 @@ src_configure() { einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" fi + # bug #945717 + append-flags -std=gnu17 + append-flags -fwrapv filter-flags -malign-double @@ -295,10 +292,9 @@ src_install() { if ! use sqlite; then rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die fi - if ! use tk; then - rm -r "${ED}/usr/bin/idle${PYVER}" || die - rm -r "${libdir}/"{idlelib,lib-tk} || die - fi + + rm -r "${ED}/usr/bin/idle${PYVER}" || die + rm -r "${libdir}/"{idlelib,lib-tk} || die dodoc Misc/{ACKS,HISTORY,NEWS} diff --git a/dev-lang/python/python-3.12.8_p1.ebuild b/dev-lang/python/python-3.10.16_p2.ebuild index 67bd154d442b..5e5ed7bb1904 100644 --- a/dev-lang/python/python-3.12.8_p1.ebuild +++ b/dev-lang/python/python-3.10.16_p2.ebuild @@ -5,7 +5,7 @@ EAPI="8" WANT_LIBTOOL="none" inherit autotools check-reqs flag-o-matic multiprocessing pax-utils -inherit python-utils-r1 toolchain-funcs verify-sig +inherit prefix python-utils-r1 toolchain-funcs verify-sig MY_PV=${PV/_rc/rc} MY_P="Python-${MY_PV%_p*}" @@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" IUSE=" bluetooth build debug +ensurepip examples gdbm libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind @@ -43,7 +43,6 @@ RESTRICT="!test? ( test )" RDEPEND=" app-arch/bzip2:= app-arch/xz-utils:= - app-crypt/libb2 >=dev-libs/expat-2.1:= dev-libs/libffi:= dev-libs/mpdecimal:= @@ -51,7 +50,7 @@ RDEPEND=" >=sys-libs/zlib-1.1.3:= virtual/libcrypt:= virtual/libintl - ensurepip? ( dev-python/ensurepip-pip ) + ensurepip? ( dev-python/ensurepip-wheels ) gdbm? ( sys-libs/gdbm:=[berkdb] ) kernel_linux? ( sys-apps/util-linux:= ) ncurses? ( >=sys-libs/ncurses-5.2:= ) @@ -72,20 +71,15 @@ RDEPEND=" DEPEND=" ${RDEPEND} bluetooth? ( net-wireless/bluez ) - test? ( - app-arch/xz-utils - dev-python/ensurepip-pip - dev-python/ensurepip-setuptools - dev-python/ensurepip-wheel - ) valgrind? ( dev-debug/valgrind ) + test? ( app-arch/xz-utils ) " # autoconf-archive needed to eautoreconf BDEPEND=" dev-build/autoconf-archive app-alternatives/awk virtual/pkgconfig - verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 ) + verify-sig? ( sec-keys/openpgp-keys-python ) " RDEPEND+=" !build? ( app-misc/mime-types ) @@ -122,8 +116,8 @@ src_unpack() { src_prepare() { # Ensure that internal copies of expat and libffi are not used. - # TODO: Makefile has annoying deps on expat headers - #rm -r Modules/expat || die + rm -r Modules/expat || die + rm -r Modules/_ctypes/libffi* || die local PATCHES=( "${WORKDIR}/${PATCHSET}" @@ -131,12 +125,14 @@ src_prepare() { default + # https://bugs.gentoo.org/850151 + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die + # force the correct number of jobs # https://bugs.gentoo.org/737660 - sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die - - # breaks tests when using --with-wheel-pkg-dir - rm -r Lib/test/wheeldata || die + local jobs=$(makeopts_jobs) + sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die eautoreconf } @@ -156,7 +152,7 @@ build_cbuild_python() { local -x BUILD_LDFLAGS=${LDFLAGS_NODIST} # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 + # bug #847910 and bug #864911. local myeconfargs_cbuild=( "${myeconfargs[@]}" @@ -167,41 +163,40 @@ build_cbuild_python() { --disable-shared # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. + # we build just for cross. --without-lto - --without-readline --disable-optimizations ) mkdir "${WORKDIR}"/${P}-${CBUILD} || die pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. + PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \ + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes _crypt + cat >> Makefile <<-EOF || die + MODULE_NIS=disabled + MODULE__DBM=disabled + MODULE__GDBM=disabled + MODULE__DBM=disabled + MODULE__SQLITE3=disabled + MODULE__HASHLIB=disabled + MODULE__SSL=disabled + MODULE__CURSES=disabled + MODULE__CURSES_PANEL=disabled + MODULE_READLINE=disabled + MODULE__TKINTER=disabled + MODULE_PYEXPAT=disabled + MODULE_ZLIB=disabled EOF - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - # Unfortunately, we do have to build this immediately, and # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value + # will check the existence of the Python it was pointed to # immediately. - emake + PYTHON_DISABLE_MODULES+=" _ctypes _crypt" emake popd &> /dev/null || die } @@ -210,6 +205,18 @@ src_configure() { if ! use bluetooth; then local -x ac_cv_header_bluetooth_bluetooth_h=no fi + local disable + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + export PYTHON_DISABLE_MODULES="${disable}" + + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi append-flags -fwrapv filter-flags -malign-double @@ -225,8 +232,7 @@ src_configure() { # Set baseline test skip flags. COMMON_TEST_SKIPS=( - # this is actually test_gdb.test_pretty_print - -x test_pretty_print + -x test_gdb ) # Arch-specific skips. See #931888 for a collection of these. @@ -257,7 +263,7 @@ src_configure() { ;; powerpc64-*) # big endian COMMON_TEST_SKIPS+=( - -x test_gdb + -x test_descr ) ;; riscv*) @@ -273,7 +279,7 @@ src_configure() { -x test_multiprocessing_spawn -x test_ctypes - -x test_gdb + -x test_descr # bug 931908 -x test_exceptions ) @@ -382,9 +388,8 @@ src_configure() { --without-ensurepip --without-lto --with-system-expat + --with-system-ffi --with-system-libmpdec - --with-platlibdir=lib - --with-pkg-config=yes --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip $(use_with debug assertions) @@ -393,6 +398,9 @@ src_configure() { $(use_with valgrind) ) + # disable implicit optimization/debugging flags + local -x OPT= + # https://bugs.gentoo.org/700012 if tc-is-lto; then append-cflags $(test-flags-CC -ffat-lto-objects) @@ -401,29 +409,11 @@ src_configure() { ) fi - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !gdbm '_gdbm _dbm') - $(usev !sqlite '_sqlite3') - $(usev !ssl '_hashlib _ssl') - $(usev !ncurses '_curses _curses_panel') - $(usev !readline 'readline') - $(usev !tk '_tkinter') - EOF - - # disable implicit optimization/debugging flags - local -x OPT= - if tc-is-cross-compiler ; then build_cbuild_python - myeconfargs+=( - # Point the imminent CHOST build to the Python we just - # built for CBUILD. - --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python - ) + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}" fi # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get @@ -437,6 +427,7 @@ src_configure() { append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw fi + hprefixify setup.py econf "${myeconfargs[@]}" if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then @@ -453,7 +444,9 @@ src_compile() { # Ensure sed works as expected # https://bugs.gentoo.org/594768 local -x LC_ALL=C - export PYTHONSTRICTEXTENSIONBUILD=1 + # Prevent using distutils bundled by setuptools. + # https://bugs.gentoo.org/823728 + export SETUPTOOLS_USE_DISTUTILS=stdlib # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't # end up writing bytecode & violating sandbox. @@ -492,11 +485,6 @@ src_test() { return fi - # this just happens to skip test_support.test_freeze that is broken - # without bundled expat - # TODO: get a proper skip for it upstream - local -x LOGNAME=buildbot - local test_opts=( --verbose3 -u-network @@ -519,12 +507,7 @@ src_test() { src_install() { local libdir=${ED}/usr/lib/python${PYVER} - # the Makefile rules are broken - # https://github.com/python/cpython/issues/100221 - mkdir -p "${libdir}"/lib-dynload || die - - # -j1 hack for now for bug #843458 - emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall + emake DESTDIR="${D}" TEST_MODULES=no altinstall # Fix collisions between different slots of Python. rm "${ED}/usr/$(get_libdir)/libpython3.so" || die @@ -550,6 +533,9 @@ src_install() { fi rm -r "${libdir}"/ensurepip/_bundled || die + if ! use ensurepip; then + rm -r "${libdir}"/ensurepip || die + fi if ! use sqlite; then rm -r "${libdir}/"sqlite3 || die fi diff --git a/dev-lang/python/python-3.11.11_p1.ebuild b/dev-lang/python/python-3.11.11_p1.ebuild index 2c83f81efcfa..0d603d309282 100644 --- a/dev-lang/python/python-3.11.11_p1.ebuild +++ b/dev-lang/python/python-3.11.11_p1.ebuild @@ -4,7 +4,7 @@ EAPI="8" WANT_LIBTOOL="none" -inherit autotools check-reqs flag-o-matic multiprocessing pax-utils +inherit autotools check-reqs eapi9-ver flag-o-matic multiprocessing pax-utils inherit prefix python-utils-r1 toolchain-funcs verify-sig MY_PV=${PV/_rc/rc} @@ -613,17 +613,14 @@ src_install() { } pkg_postinst() { - local v - for v in ${REPLACING_VERSIONS}; do - if ver_test "${v}" -lt 3.11.0_beta4-r2; then - ewarn "Python 3.11.0b4 has changed its module ABI. The .pyc files" - ewarn "installed previously are no longer valid and will be regenerated" - ewarn "(or ignored) on the next import. This may cause sandbox failures" - ewarn "when installing some packages and checksum mismatches when removing" - ewarn "old versions. To actively prevent this, rebuild all packages" - ewarn "installing Python 3.11 modules, e.g. using:" - ewarn - ewarn " emerge -1v /usr/lib/python3.11/site-packages" - fi - done + if ver_replacing -lt 3.11.0_beta4-r2; then + ewarn "Python 3.11.0b4 has changed its module ABI. The .pyc files" + ewarn "installed previously are no longer valid and will be regenerated" + ewarn "(or ignored) on the next import. This may cause sandbox failures" + ewarn "when installing some packages and checksum mismatches when removing" + ewarn "old versions. To actively prevent this, rebuild all packages" + ewarn "installing Python 3.11 modules, e.g. using:" + ewarn + ewarn " emerge -1v /usr/lib/python3.11/site-packages" + fi } diff --git a/dev-lang/python/python-3.13.1.ebuild b/dev-lang/python/python-3.11.11_p2.ebuild index 6afffb716bcc..b4ca94a695ea 100644 --- a/dev-lang/python/python-3.13.1.ebuild +++ b/dev-lang/python/python-3.11.11_p2.ebuild @@ -2,16 +2,12 @@ # Distributed under the terms of the GNU General Public License v2 EAPI="8" - -LLVM_COMPAT=( 18 ) -LLVM_OPTIONAL=1 WANT_LIBTOOL="none" -inherit autotools check-reqs flag-o-matic linux-info llvm-r1 -inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs -inherit verify-sig +inherit autotools check-reqs eapi9-ver flag-o-matic multiprocessing pax-utils +inherit prefix python-utils-r1 toolchain-funcs verify-sig -MY_PV=${PV/_} +MY_PV=${PV/_rc/rc} MY_P="Python-${MY_PV%_p*}" PYVER=$(ver_cut 1-2) PATCHSET="python-gentoo-patches-${MY_PV}" @@ -32,12 +28,11 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" IUSE=" - bluetooth build debug +ensurepip examples gdbm jit - libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind + bluetooth build debug +ensurepip examples gdbm libedit + +ncurses pgo +readline +sqlite +ssl test tk valgrind " -REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )" RESTRICT="!test? ( test )" # Do not add a dependency on dev-lang/python to this ebuild. @@ -54,8 +49,9 @@ RDEPEND=" dev-libs/mpdecimal:= dev-python/gentoo-common >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= virtual/libintl - ensurepip? ( dev-python/ensurepip-pip ) + ensurepip? ( dev-python/ensurepip-wheels ) gdbm? ( sys-libs/gdbm:=[berkdb] ) kernel_linux? ( sys-apps/util-linux:= ) ncurses? ( >=sys-libs/ncurses-5.2:= ) @@ -76,11 +72,7 @@ RDEPEND=" DEPEND=" ${RDEPEND} bluetooth? ( net-wireless/bluez ) - test? ( - dev-python/ensurepip-pip - dev-python/ensurepip-setuptools - dev-python/ensurepip-wheel - ) + test? ( app-arch/xz-utils ) valgrind? ( dev-debug/valgrind ) " # autoconf-archive needed to eautoreconf @@ -88,13 +80,7 @@ BDEPEND=" dev-build/autoconf-archive app-alternatives/awk virtual/pkgconfig - jit? ( - $(llvm_gen_dep ' - llvm-core/clang:${LLVM_SLOT} - llvm-core/llvm:${LLVM_SLOT} - ') - ) - verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 ) + verify-sig? ( sec-keys/openpgp-keys-python ) " RDEPEND+=" !build? ( app-misc/mime-types ) @@ -114,38 +100,12 @@ QA_PKGCONFIG_VERSION=${PYVER} # false positives -- functions specific to *BSD QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) -declare -rgA PYTHON_KERNEL_CHECKS=( - ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 - ["DNOTIFY"]="test_fcntl" # bug 938662 -) - pkg_pretend() { - if use pgo || use test; then - check-reqs_pkg_pretend - fi - - if use jit; then - ewarn "USE=jit is considered experimental upstream. Using it" - ewarn "could lead to unexpected breakage, including race conditions" - ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" - ewarn "you can reproduce the problem with dev-lang/python[-jit]. Instead," - ewarn "please consider reporting JIT problems upstream." - fi + use test && check-reqs_pkg_pretend } pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]]; then - use jit && llvm-r1_pkg_setup - if use test || use pgo; then - check-reqs_pkg_setup - - local CONFIG_CHECK - for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do - CONFIG_CHECK+="~${f} " - done - linux-info_pkg_setup - fi - fi + use test && check-reqs_pkg_setup } src_unpack() { @@ -157,8 +117,8 @@ src_unpack() { src_prepare() { # Ensure that internal copies of expat and libffi are not used. - # TODO: Makefile has annoying deps on expat headers - #rm -r Modules/expat || die + rm -r Modules/expat || die + rm -r Modules/_ctypes/libffi* || die local PATCHES=( "${WORKDIR}/${PATCHSET}" @@ -166,12 +126,14 @@ src_prepare() { default + # https://bugs.gentoo.org/850151 + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die + # force the correct number of jobs # https://bugs.gentoo.org/737660 - sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die - - # breaks tests when using --with-wheel-pkg-dir - rm -r Lib/test/wheeldata || die + local jobs=$(makeopts_jobs) + sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die eautoreconf } @@ -210,33 +172,33 @@ build_cbuild_python() { mkdir "${WORKDIR}"/${P}-${CBUILD} || die pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. + PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \ + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes + cat >> Makefile <<-EOF || die + MODULE_NIS_STATE=disabled + MODULE__DBM_STATE=disabled + MODULE__GDBM_STATE=disabled + MODULE__DBM_STATE=disabled + MODULE__SQLITE3_STATE=disabled + MODULE__HASHLIB_STATE=disabled + MODULE__SSL_STATE=disabled + MODULE__CURSES_STATE=disabled + MODULE__CURSES_PANEL_STATE=disabled + MODULE_READLINE_STATE=disabled + MODULE__TKINTER_STATE=disabled + MODULE_PYEXPAT_STATE=disabled + MODULE_ZLIB_STATE=disabled EOF - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - # Unfortunately, we do have to build this immediately, and # not in src_compile, because CHOST configure for Python # will check the existence of the --with-build-python value # immediately. - emake + PYTHON_DISABLE_MODULES+=" _ctypes _crypt" emake popd &> /dev/null || die } @@ -262,8 +224,6 @@ src_configure() { COMMON_TEST_SKIPS=( # this is actually test_gdb.test_pretty_print -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler ) # Arch-specific skips. See #931888 for a collection of these. @@ -285,11 +245,6 @@ src_configure() { -x test_strtod ) ;; - hppa*) - COMMON_TEST_SKIPS+=( - -x test_gdb - ) - ;; mips*) COMMON_TEST_SKIPS+=( -x test_ctypes @@ -299,6 +254,7 @@ src_configure() { ;; powerpc64-*) # big endian COMMON_TEST_SKIPS+=( + -x test_descr -x test_gdb ) ;; @@ -315,6 +271,7 @@ src_configure() { -x test_multiprocessing_spawn -x test_ctypes + -x test_descr -x test_gdb # bug 931908 -x test_exceptions @@ -322,14 +279,6 @@ src_configure() { ;; esac - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - # musl-specific skips use elibc_musl && COMMON_TEST_SKIPS+=( # various musl locale deficiencies @@ -351,7 +300,6 @@ src_configure() { -m test "-j$(makeopts_jobs)" --pgo-extended - --verbose3 -u-network # We use a timeout because of how often we've had hang issues @@ -366,6 +314,7 @@ src_configure() { # They'll even hang here but be fine in src_test sometimes. # bug #828535 (and related: bug #788022) -x test_asyncio + -x test_concurrent_futures -x test_httpservers -x test_logging -x test_multiprocessing_fork @@ -375,9 +324,6 @@ src_configure() { # Hangs (actually runs indefinitely executing itself w/ many cpython builds) # bug #900429 -x test_tools - - # Fails in profiling run, passes in src_test(). - -x test_capi ) # Arch-specific skips. See #931888 for a collection of these. @@ -435,19 +381,21 @@ src_configure() { --without-ensurepip --without-lto --with-system-expat + --with-system-ffi --with-system-libmpdec --with-platlibdir=lib --with-pkg-config=yes --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip - --enable-gil $(use_with debug assertions) - $(use_enable jit experimental-jit) $(use_enable pgo optimizations) $(use_with readline readline "$(usex libedit editline readline)") $(use_with valgrind) ) + # disable implicit optimization/debugging flags + local -x OPT= + # https://bugs.gentoo.org/700012 if tc-is-lto; then append-cflags $(test-flags-CC -ffat-lto-objects) @@ -456,22 +404,6 @@ src_configure() { ) fi - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !gdbm '_gdbm _dbm') - $(usev !sqlite '_sqlite3') - $(usev !ssl '_hashlib _ssl') - $(usev !ncurses '_curses _curses_panel') - $(usev !readline 'readline') - $(usev !tk '_tkinter') - EOF - - # disable implicit optimization/debugging flags - local -x OPT= - if tc-is-cross-compiler ; then build_cbuild_python myeconfargs+=( @@ -492,6 +424,7 @@ src_configure() { append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw fi + hprefixify setup.py econf "${myeconfargs[@]}" if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then @@ -500,6 +433,20 @@ src_configure() { die "Broken sem_open function (bug 496328)" fi + # force-disable modules we don't want built + local disable_modules=( NIS ) + use gdbm || disable_modules+=( _GDBM _DBM ) + use sqlite || disable_modules+=( _SQLITE3 ) + use ssl || disable_modules+=( _HASHLIB _SSL ) + use ncurses || disable_modules+=( _CURSES _CURSES_PANEL ) + use readline || disable_modules+=( READLINE ) + use tk || disable_modules+=( _TKINTER ) + + local mod + for mod in "${disable_modules[@]}"; do + echo "MODULE_${mod}_STATE=disabled" + done >> Makefile || die + # install epython.py as part of stdlib echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die } @@ -508,6 +455,9 @@ src_compile() { # Ensure sed works as expected # https://bugs.gentoo.org/594768 local -x LC_ALL=C + # Prevent using distutils bundled by setuptools. + # https://bugs.gentoo.org/823728 + export SETUPTOOLS_USE_DISTUTILS=stdlib export PYTHONSTRICTEXTENSIONBUILD=1 # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't @@ -601,6 +551,9 @@ src_install() { fi rm -r "${libdir}"/ensurepip/_bundled || die + if ! use ensurepip; then + rm -r "${libdir}"/ensurepip || die + fi if ! use sqlite; then rm -r "${libdir}/"sqlite3 || die fi @@ -650,10 +603,24 @@ src_install() { EOF chmod +x "${scriptdir}/python${pymajor}-config" || die ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die - # pydoc + # 2to3, pydoc + ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die # idle if use tk; then ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die fi } + +pkg_postinst() { + if ver_replacing -lt 3.11.0_beta4-r2; then + ewarn "Python 3.11.0b4 has changed its module ABI. The .pyc files" + ewarn "installed previously are no longer valid and will be regenerated" + ewarn "(or ignored) on the next import. This may cause sandbox failures" + ewarn "when installing some packages and checksum mismatches when removing" + ewarn "old versions. To actively prevent this, rebuild all packages" + ewarn "installing Python 3.11 modules, e.g. using:" + ewarn + ewarn " emerge -1v /usr/lib/python3.11/site-packages" + fi +} diff --git a/dev-lang/python/python-3.12.8.ebuild b/dev-lang/python/python-3.12.9.ebuild index 7264acf4ca7a..7264acf4ca7a 100644 --- a/dev-lang/python/python-3.12.8.ebuild +++ b/dev-lang/python/python-3.12.9.ebuild diff --git a/dev-lang/python/python-3.13.0-r100.ebuild b/dev-lang/python/python-3.13.0-r100.ebuild deleted file mode 100644 index dc936ce9859a..000000000000 --- a/dev-lang/python/python-3.13.0-r100.ebuild +++ /dev/null @@ -1,665 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -LLVM_COMPAT=( 18 ) -LLVM_OPTIONAL=1 -WANT_LIBTOOL="none" - -inherit autotools check-reqs flag-o-matic linux-info llvm-r1 -inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs -inherit verify-sig - -MY_PV=${PV/_} -MY_P="Python-${MY_PV%_p*}" -PYVER="$(ver_cut 1-2)t" -PATCHSET="python-gentoo-patches-${MY_PV}" - -DESCRIPTION="Freethreading (no-GIL) version of Python programming language" -HOMEPAGE=" - https://www.python.org/ - https://github.com/python/cpython/ -" -SRC_URI=" - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz - verify-sig? ( - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc - ) -" -S="${WORKDIR}/${MY_P}" - -LICENSE="PSF-2" -SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE=" - bluetooth build debug +ensurepip examples gdbm jit - libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind -" -REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )" -RESTRICT="!test? ( test )" - -# Do not add a dependency on dev-lang/python to this ebuild. -# If you need to apply a patch which requires python for bootstrapping, please -# run the bootstrap code on your dev box and include the results in the -# patchset. See bug 447752. - -RDEPEND=" - app-arch/bzip2:= - app-arch/xz-utils:= - app-crypt/libb2 - >=dev-libs/expat-2.1:= - dev-libs/libffi:= - dev-libs/mpdecimal:= - dev-python/gentoo-common - >=sys-libs/zlib-1.1.3:= - virtual/libintl - ensurepip? ( dev-python/ensurepip-pip ) - gdbm? ( sys-libs/gdbm:=[berkdb] ) - kernel_linux? ( sys-apps/util-linux:= ) - ncurses? ( >=sys-libs/ncurses-5.2:= ) - readline? ( - !libedit? ( >=sys-libs/readline-4.1:= ) - libedit? ( dev-libs/libedit:= ) - ) - sqlite? ( >=dev-db/sqlite-3.3.8:3= ) - ssl? ( >=dev-libs/openssl-1.1.1:= ) - tk? ( - >=dev-lang/tcl-8.0:= - >=dev-lang/tk-8.0:= - dev-tcltk/blt:= - dev-tcltk/tix - ) -" -# bluetooth requires headers from bluez -DEPEND=" - ${RDEPEND} - bluetooth? ( net-wireless/bluez ) - test? ( - dev-python/ensurepip-pip - dev-python/ensurepip-setuptools - dev-python/ensurepip-wheel - ) - valgrind? ( dev-debug/valgrind ) -" -# autoconf-archive needed to eautoreconf -BDEPEND=" - dev-build/autoconf-archive - app-alternatives/awk - virtual/pkgconfig - jit? ( - $(llvm_gen_dep ' - llvm-core/clang:${LLVM_SLOT} - llvm-core/llvm:${LLVM_SLOT} - ') - ) - verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 ) -" -RDEPEND+=" - !build? ( app-misc/mime-types ) -" -if [[ ${PV} != *_alpha* ]]; then - RDEPEND+=" - dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] - " -fi - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc - -# large file tests involve a 2.5G file being copied (duplicated) -CHECKREQS_DISK_BUILD=5500M - -QA_PKGCONFIG_VERSION=${PYVER%t} -# false positives -- functions specific to *BSD -QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) - -declare -rgA PYTHON_KERNEL_CHECKS=( - ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 - ["DNOTIFY"]="test_fcntl" # bug 938662 -) - -pkg_pretend() { - if use pgo || use test; then - check-reqs_pkg_pretend - fi - - ewarn "Freethreading build is considered experimental upstream. Using it" - ewarn "could lead to unexpected breakage, including race conditions" - ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" - ewarn "you can reproduce the problem with dev-lang/python. Instead," - ewarn "please consider reporting freethreading problems upstream." -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]]; then - use jit && llvm-r1_pkg_setup - if use test || use pgo; then - check-reqs_pkg_setup - - local CONFIG_CHECK - for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do - CONFIG_CHECK+="~${f} " - done - linux-info_pkg_setup - fi - fi -} - -src_unpack() { - if use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} - fi - default -} - -src_prepare() { - # Ensure that internal copies of expat and libffi are not used. - # TODO: Makefile has annoying deps on expat headers - #rm -r Modules/expat || die - - local PATCHES=( - "${WORKDIR}/${PATCHSET}" - ) - - default - - # force the correct number of jobs - # https://bugs.gentoo.org/737660 - sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die - - # breaks tests when using --with-wheel-pkg-dir - rm -r Lib/test/wheeldata || die - - eautoreconf -} - -build_cbuild_python() { - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - # - # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) - local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" - local -x LDFLAGS_NODIST=${BUILD_LDFLAGS} - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS=${LDFLAGS_NODIST} - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - append-flags -fwrapv - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - hppa*) - COMMON_TEST_SKIPS+=( - -x test_gdb - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - powerpc64-*) # big endian - COMMON_TEST_SKIPS+=( - -x test_gdb - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - -x test_gdb - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - - # Fails in profiling run, passes in src_test(). - -x test_capi - -x test_external_inspection - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - profile_task_flags+=( - -x test_os - ) - ;; - hppa*) - profile_task_flags+=( - -x test_descr - # bug 931908 - -x test_exceptions - -x test_os - ) - ;; - powerpc64-*) # big endian - profile_task_flags+=( - # bug 931908 - -x test_exceptions - ) - ;; - riscv*) - profile_task_flags+=( - -x test_statistics - ) - ;; - esac - - if has_version "app-arch/rpm" ; then - # Avoid sandbox failure (attempts to write to /var/lib/rpm) - profile_task_flags+=( - -x test_distutils - ) - fi - local -x PROFILE_TASK="${profile_task_flags[*]}" - fi - - local myeconfargs=( - # glibc-2.30 removes it; since we can't cleanly force-rebuild - # Python on glibc upgrade, remove it proactively to give - # a chance for users rebuilding python before glibc - ac_cv_header_stropts_h=no - - --enable-shared - --without-static-libpython - --enable-ipv6 - --infodir='${prefix}/share/info' - --mandir='${prefix}/share/man' - --with-computed-gotos - --with-dbmliborder="${dbmliborder}" - --with-libc= - --enable-loadable-sqlite-extensions - --without-ensurepip - --without-lto - --with-system-expat - --with-system-libmpdec - --with-platlibdir=lib - --with-pkg-config=yes - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip - --disable-gil - - $(use_with debug assertions) - $(use_enable jit experimental-jit) - $(use_enable pgo optimizations) - $(use_with readline readline "$(usex libedit editline readline)") - $(use_with valgrind) - ) - - # https://bugs.gentoo.org/700012 - if tc-is-lto; then - append-cflags $(test-flags-CC -ffat-lto-objects) - myeconfargs+=( - --with-lto - ) - fi - - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !gdbm '_gdbm _dbm') - $(usev !sqlite '_sqlite3') - $(usev !ssl '_hashlib _ssl') - $(usev !ncurses '_curses _curses_panel') - $(usev !readline 'readline') - $(usev !tk '_tkinter') - EOF - - # disable implicit optimization/debugging flags - local -x OPT= - - if tc-is-cross-compiler ; then - build_cbuild_python - myeconfargs+=( - # Point the imminent CHOST build to the Python we just - # built for CBUILD. - --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python - ) - fi - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - local -x CFLAGS_NODIST=${CFLAGS} - local -x LDFLAGS_NODIST=${LDFLAGS} - local -x CFLAGS= LDFLAGS= - - # Fix implicit declarations on cross and prefix builds. Bug #674070. - if use ncurses; then - append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw - fi - - econf "${myeconfargs[@]}" - - if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then - eerror "configure has detected that the sem_open function is broken." - eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." - die "Broken sem_open function (bug 496328)" - fi - - # install epython.py as part of stdlib - echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die -} - -src_compile() { - # Ensure sed works as expected - # https://bugs.gentoo.org/594768 - local -x LC_ALL=C - export PYTHONSTRICTEXTENSIONBUILD=1 - - # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't - # end up writing bytecode & violating sandbox. - # bug #831897 - local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} - - # Gentoo hack to disable accessing system site-packages - export GENTOO_CPYTHON_BUILD=1 - - if use pgo ; then - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/tmp - fi - - # also need to clear the flags explicitly here or they end up - # in _sysconfigdata* - emake CPPFLAGS= CFLAGS= LDFLAGS= - - # Restore saved value from above. - local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} - - # Work around bug 329499. See also bug 413751 and 457194. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E python - else - pax-mark m python - fi -} - -src_test() { - # Tests will not work when cross compiling. - if tc-is-cross-compiler; then - elog "Disabling tests due to crosscompiling." - return - fi - - # this just happens to skip test_support.test_freeze that is broken - # without bundled expat - # TODO: get a proper skip for it upstream - local -x LOGNAME=buildbot - - local test_opts=( - --verbose3 - -u-network - -j "$(makeopts_jobs)" - "${COMMON_TEST_SKIPS[@]}" - ) - - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/tmp - - nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ - CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty - local ret=${?} - - [[ ${ret} -eq 0 ]] || die "emake test failed" -} - -src_install() { - local libdir=${ED}/usr/lib/python${PYVER} - - # -j1 hack for now for bug #843458 - emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall - - # Fix collisions between different slots of Python. - rm "${ED}/usr/$(get_libdir)/libpython3.so" || die - # Fix collision with GIL-enabled build. - rm "${ED}/usr/bin/python${PYVER%t}" || die - mv "${ED}"/usr/bin/pydoc{${PYVER%t},${PYVER}} || die - mv "${ED}"/usr/share/man/man1/python{${PYVER%t},${PYVER}}.1 || die - - # Cheap hack to get version with ABIFLAGS - local abiver=$(cd "${ED}/usr/include"; echo python*) - if [[ ${abiver} != python${PYVER} ]]; then - # Replace python3.X with a symlink to python3.Xm - rm "${ED}/usr/bin/python${PYVER}" || die - dosym "${abiver}" "/usr/bin/python${PYVER}" - # Create python3.X-config symlink - dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" - # Create python-3.5m.pc symlink - dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" - fi - - # python seems to get rebuilt in src_install (bug 569908) - # Work around it for now. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E "${ED}/usr/bin/${abiver}" - else - pax-mark m "${ED}/usr/bin/${abiver}" - fi - - rm -r "${libdir}"/ensurepip/_bundled || die - if ! use sqlite; then - rm -r "${libdir}/"sqlite3 || die - fi - if use tk; then - # rename to avoid collision with dev-lang/python - mv "${ED}"/usr/bin/idle{${PYVER%t},${PYVER}} || die - else - rm -r "${ED}/usr/bin/idle${PYVER%t}" || die - rm -r "${libdir}/"{idlelib,tkinter} || die - fi - - ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die - - dodoc Misc/{ACKS,HISTORY,NEWS} - - if use examples; then - docinto examples - find Tools -name __pycache__ -exec rm -fr {} + || die - dodoc -r Tools - fi - insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 - local libname=$( - printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | - emake --no-print-directory -s -f - 2>/dev/null - ) - newins Tools/gdb/libpython.py "${libname}"-gdb.py - - newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} - newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} - sed \ - -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ - -e "s:@PYDOC@:pydoc${PYVER}:" \ - -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ - "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" - - # python-exec wrapping support - local pymajor=${PYVER%.*} - local EPYTHON=python${PYVER} - local scriptdir=${D}$(python_get_scriptdir) - mkdir -p "${scriptdir}" || die - # python and pythonX - ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die - ln -s "python${pymajor}" "${scriptdir}/python" || die - # python-config and pythonX-config - # note: we need to create a wrapper rather than symlinking it due - # to some random dirname(argv[0]) magic performed by python-config - cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die - #!/bin/sh - exec "${abiver}-config" "\${@}" - EOF - chmod +x "${scriptdir}/python${pymajor}-config" || die - ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die - # pydoc - ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die - # idle - if use tk; then - ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die - fi -} diff --git a/dev-lang/python/python-3.13.0.ebuild b/dev-lang/python/python-3.13.0.ebuild deleted file mode 100644 index d407b16c0aa4..000000000000 --- a/dev-lang/python/python-3.13.0.ebuild +++ /dev/null @@ -1,675 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -LLVM_COMPAT=( 18 ) -LLVM_OPTIONAL=1 -WANT_LIBTOOL="none" - -inherit autotools check-reqs flag-o-matic linux-info llvm-r1 -inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs -inherit verify-sig - -MY_PV=${PV/_} -MY_P="Python-${MY_PV%_p*}" -PYVER=$(ver_cut 1-2) -PATCHSET="python-gentoo-patches-${MY_PV}" - -DESCRIPTION="An interpreted, interactive, object-oriented programming language" -HOMEPAGE=" - https://www.python.org/ - https://github.com/python/cpython/ -" -SRC_URI=" - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz - verify-sig? ( - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc - ) -" -S="${WORKDIR}/${MY_P}" - -LICENSE="PSF-2" -SLOT="${PYVER}" -KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" -IUSE=" - bluetooth build debug +ensurepip examples gdbm jit - libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind -" -REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )" -RESTRICT="!test? ( test )" - -# Do not add a dependency on dev-lang/python to this ebuild. -# If you need to apply a patch which requires python for bootstrapping, please -# run the bootstrap code on your dev box and include the results in the -# patchset. See bug 447752. - -RDEPEND=" - app-arch/bzip2:= - app-arch/xz-utils:= - app-crypt/libb2 - >=dev-libs/expat-2.1:= - dev-libs/libffi:= - dev-libs/mpdecimal:= - dev-python/gentoo-common - >=sys-libs/zlib-1.1.3:= - virtual/libintl - ensurepip? ( dev-python/ensurepip-pip ) - gdbm? ( sys-libs/gdbm:=[berkdb] ) - kernel_linux? ( sys-apps/util-linux:= ) - ncurses? ( >=sys-libs/ncurses-5.2:= ) - readline? ( - !libedit? ( >=sys-libs/readline-4.1:= ) - libedit? ( dev-libs/libedit:= ) - ) - sqlite? ( >=dev-db/sqlite-3.3.8:3= ) - ssl? ( >=dev-libs/openssl-1.1.1:= ) - tk? ( - >=dev-lang/tcl-8.0:= - >=dev-lang/tk-8.0:= - dev-tcltk/blt:= - dev-tcltk/tix - ) -" -# bluetooth requires headers from bluez -DEPEND=" - ${RDEPEND} - bluetooth? ( net-wireless/bluez ) - test? ( - dev-python/ensurepip-pip - dev-python/ensurepip-setuptools - dev-python/ensurepip-wheel - ) - valgrind? ( dev-debug/valgrind ) -" -# autoconf-archive needed to eautoreconf -BDEPEND=" - dev-build/autoconf-archive - app-alternatives/awk - virtual/pkgconfig - jit? ( - $(llvm_gen_dep ' - llvm-core/clang:${LLVM_SLOT} - llvm-core/llvm:${LLVM_SLOT} - ') - ) - verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 ) -" -RDEPEND+=" - !build? ( app-misc/mime-types ) -" -if [[ ${PV} != *_alpha* ]]; then - RDEPEND+=" - dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] - " -fi - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc - -# large file tests involve a 2.5G file being copied (duplicated) -CHECKREQS_DISK_BUILD=5500M - -QA_PKGCONFIG_VERSION=${PYVER} -# false positives -- functions specific to *BSD -QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) - -declare -rgA PYTHON_KERNEL_CHECKS=( - ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 - ["DNOTIFY"]="test_fcntl" # bug 938662 -) - -pkg_pretend() { - if use pgo || use test; then - check-reqs_pkg_pretend - fi - - if use jit; then - ewarn "USE=jit is considered experimental upstream. Using it" - ewarn "could lead to unexpected breakage, including race conditions" - ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" - ewarn "you can reproduce the problem with dev-lang/python[-jit]. Instead," - ewarn "please consider reporting JIT problems upstream." - fi -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]]; then - use jit && llvm-r1_pkg_setup - if use test || use pgo; then - check-reqs_pkg_setup - - local CONFIG_CHECK - for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do - CONFIG_CHECK+="~${f} " - done - linux-info_pkg_setup - fi - fi -} - -src_unpack() { - if use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} - fi - default -} - -src_prepare() { - # Ensure that internal copies of expat and libffi are not used. - # TODO: Makefile has annoying deps on expat headers - #rm -r Modules/expat || die - - local PATCHES=( - "${WORKDIR}/${PATCHSET}" - ) - - default - - # force the correct number of jobs - # https://bugs.gentoo.org/737660 - sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die - - # breaks tests when using --with-wheel-pkg-dir - rm -r Lib/test/wheeldata || die - - eautoreconf -} - -build_cbuild_python() { - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - # - # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) - local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" - local -x LDFLAGS_NODIST=${BUILD_LDFLAGS} - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS=${LDFLAGS_NODIST} - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - append-flags -fwrapv - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - hppa*) - COMMON_TEST_SKIPS+=( - -x test_gdb - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - powerpc64-*) # big endian - COMMON_TEST_SKIPS+=( - -x test_gdb - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - -x test_gdb - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - - # Fails in profiling run, passes in src_test(). - -x test_capi - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - profile_task_flags+=( - -x test_os - ) - ;; - hppa*) - profile_task_flags+=( - -x test_descr - # bug 931908 - -x test_exceptions - -x test_os - ) - ;; - powerpc64-*) # big endian - profile_task_flags+=( - # bug 931908 - -x test_exceptions - ) - ;; - riscv*) - profile_task_flags+=( - -x test_statistics - ) - ;; - esac - - if has_version "app-arch/rpm" ; then - # Avoid sandbox failure (attempts to write to /var/lib/rpm) - profile_task_flags+=( - -x test_distutils - ) - fi - local -x PROFILE_TASK="${profile_task_flags[*]}" - fi - - local myeconfargs=( - # glibc-2.30 removes it; since we can't cleanly force-rebuild - # Python on glibc upgrade, remove it proactively to give - # a chance for users rebuilding python before glibc - ac_cv_header_stropts_h=no - - --enable-shared - --without-static-libpython - --enable-ipv6 - --infodir='${prefix}/share/info' - --mandir='${prefix}/share/man' - --with-computed-gotos - --with-dbmliborder="${dbmliborder}" - --with-libc= - --enable-loadable-sqlite-extensions - --without-ensurepip - --without-lto - --with-system-expat - --with-system-libmpdec - --with-platlibdir=lib - --with-pkg-config=yes - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip - --enable-gil - - $(use_with debug assertions) - $(use_enable jit experimental-jit) - $(use_enable pgo optimizations) - $(use_with readline readline "$(usex libedit editline readline)") - $(use_with valgrind) - ) - - # https://bugs.gentoo.org/700012 - if tc-is-lto; then - append-cflags $(test-flags-CC -ffat-lto-objects) - myeconfargs+=( - --with-lto - ) - fi - - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !gdbm '_gdbm _dbm') - $(usev !sqlite '_sqlite3') - $(usev !ssl '_hashlib _ssl') - $(usev !ncurses '_curses _curses_panel') - $(usev !readline 'readline') - $(usev !tk '_tkinter') - EOF - - # disable implicit optimization/debugging flags - local -x OPT= - - if tc-is-cross-compiler ; then - build_cbuild_python - myeconfargs+=( - # Point the imminent CHOST build to the Python we just - # built for CBUILD. - --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python - ) - fi - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - local -x CFLAGS_NODIST=${CFLAGS} - local -x LDFLAGS_NODIST=${LDFLAGS} - local -x CFLAGS= LDFLAGS= - - # Fix implicit declarations on cross and prefix builds. Bug #674070. - if use ncurses; then - append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw - fi - - econf "${myeconfargs[@]}" - - if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then - eerror "configure has detected that the sem_open function is broken." - eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." - die "Broken sem_open function (bug 496328)" - fi - - # install epython.py as part of stdlib - echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die -} - -src_compile() { - # Ensure sed works as expected - # https://bugs.gentoo.org/594768 - local -x LC_ALL=C - export PYTHONSTRICTEXTENSIONBUILD=1 - - # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't - # end up writing bytecode & violating sandbox. - # bug #831897 - local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} - - # Gentoo hack to disable accessing system site-packages - export GENTOO_CPYTHON_BUILD=1 - - if use pgo ; then - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/tmp - fi - - # also need to clear the flags explicitly here or they end up - # in _sysconfigdata* - emake CPPFLAGS= CFLAGS= LDFLAGS= - - # Restore saved value from above. - local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} - - # Work around bug 329499. See also bug 413751 and 457194. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E python - else - pax-mark m python - fi -} - -src_test() { - # Tests will not work when cross compiling. - if tc-is-cross-compiler; then - elog "Disabling tests due to crosscompiling." - return - fi - - # this just happens to skip test_support.test_freeze that is broken - # without bundled expat - # TODO: get a proper skip for it upstream - local -x LOGNAME=buildbot - - local test_opts=( - --verbose3 - -u-network - -j "$(makeopts_jobs)" - "${COMMON_TEST_SKIPS[@]}" - ) - - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/tmp - - nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ - CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty - local ret=${?} - - [[ ${ret} -eq 0 ]] || die "emake test failed" -} - -src_install() { - local libdir=${ED}/usr/lib/python${PYVER} - - # -j1 hack for now for bug #843458 - emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall - - # Fix collisions between different slots of Python. - rm "${ED}/usr/$(get_libdir)/libpython3.so" || die - - # Cheap hack to get version with ABIFLAGS - local abiver=$(cd "${ED}/usr/include"; echo python*) - if [[ ${abiver} != python${PYVER} ]]; then - # Replace python3.X with a symlink to python3.Xm - rm "${ED}/usr/bin/python${PYVER}" || die - dosym "${abiver}" "/usr/bin/python${PYVER}" - # Create python3.X-config symlink - dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" - # Create python-3.5m.pc symlink - dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" - fi - - # python seems to get rebuilt in src_install (bug 569908) - # Work around it for now. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E "${ED}/usr/bin/${abiver}" - else - pax-mark m "${ED}/usr/bin/${abiver}" - fi - - rm -r "${libdir}"/ensurepip/_bundled || die - if ! use sqlite; then - rm -r "${libdir}/"sqlite3 || die - fi - if ! use tk; then - rm -r "${ED}/usr/bin/idle${PYVER}" || die - rm -r "${libdir}/"{idlelib,tkinter} || die - fi - - ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die - - dodoc Misc/{ACKS,HISTORY,NEWS} - - if use examples; then - docinto examples - find Tools -name __pycache__ -exec rm -fr {} + || die - dodoc -r Tools - fi - insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 - local libname=$( - printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | - emake --no-print-directory -s -f - 2>/dev/null - ) - newins Tools/gdb/libpython.py "${libname}"-gdb.py - - newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} - newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} - sed \ - -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ - -e "s:@PYDOC@:pydoc${PYVER}:" \ - -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ - "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" - - # python-exec wrapping support - local pymajor=${PYVER%.*} - local EPYTHON=python${PYVER} - local scriptdir=${D}$(python_get_scriptdir) - mkdir -p "${scriptdir}" || die - # python and pythonX - ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die - ln -s "python${pymajor}" "${scriptdir}/python" || die - # python-config and pythonX-config - # note: we need to create a wrapper rather than symlinking it due - # to some random dirname(argv[0]) magic performed by python-config - cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die - #!/bin/sh - exec "${abiver}-config" "\${@}" - EOF - chmod +x "${scriptdir}/python${pymajor}-config" || die - ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die - # pydoc - ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die - # idle - if use tk; then - ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die - fi -} - -pkg_postinst() { - local v - for v in ${REPLACING_VERSIONS}; do - if ver_test "${v}" -lt 3.13.0_beta2; then - ewarn "Python 3.13.0b2 has changed its module ABI. The .pyc files" - ewarn "installed previously are no longer valid and will be regenerated" - ewarn "(or ignored) on the next import. This may cause sandbox failures" - ewarn "when installing some packages and checksum mismatches when removing" - ewarn "old versions. To actively prevent this, rebuild all packages" - ewarn "installing Python 3.13 modules, e.g. using:" - ewarn - ewarn " emerge -1v /usr/lib/python3.13/site-packages" - fi - done -} diff --git a/dev-lang/python/python-3.13.1-r100.ebuild b/dev-lang/python/python-3.13.1-r100.ebuild deleted file mode 100644 index 8aa3e756beaa..000000000000 --- a/dev-lang/python/python-3.13.1-r100.ebuild +++ /dev/null @@ -1,665 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -LLVM_COMPAT=( 18 ) -LLVM_OPTIONAL=1 -WANT_LIBTOOL="none" - -inherit autotools check-reqs flag-o-matic linux-info llvm-r1 -inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs -inherit verify-sig - -MY_PV=${PV/_} -MY_P="Python-${MY_PV%_p*}" -PYVER="$(ver_cut 1-2)t" -PATCHSET="python-gentoo-patches-${MY_PV}" - -DESCRIPTION="Freethreading (no-GIL) version of Python programming language" -HOMEPAGE=" - https://www.python.org/ - https://github.com/python/cpython/ -" -SRC_URI=" - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz - verify-sig? ( - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc - ) -" -S="${WORKDIR}/${MY_P}" - -LICENSE="PSF-2" -SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE=" - bluetooth build debug +ensurepip examples gdbm jit - libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind -" -REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )" -RESTRICT="!test? ( test )" - -# Do not add a dependency on dev-lang/python to this ebuild. -# If you need to apply a patch which requires python for bootstrapping, please -# run the bootstrap code on your dev box and include the results in the -# patchset. See bug 447752. - -RDEPEND=" - app-arch/bzip2:= - app-arch/xz-utils:= - app-crypt/libb2 - >=dev-libs/expat-2.1:= - dev-libs/libffi:= - dev-libs/mpdecimal:= - dev-python/gentoo-common - >=sys-libs/zlib-1.1.3:= - virtual/libintl - ensurepip? ( dev-python/ensurepip-pip ) - gdbm? ( sys-libs/gdbm:=[berkdb] ) - kernel_linux? ( sys-apps/util-linux:= ) - ncurses? ( >=sys-libs/ncurses-5.2:= ) - readline? ( - !libedit? ( >=sys-libs/readline-4.1:= ) - libedit? ( dev-libs/libedit:= ) - ) - sqlite? ( >=dev-db/sqlite-3.3.8:3= ) - ssl? ( >=dev-libs/openssl-1.1.1:= ) - tk? ( - >=dev-lang/tcl-8.0:= - >=dev-lang/tk-8.0:= - dev-tcltk/blt:= - dev-tcltk/tix - ) -" -# bluetooth requires headers from bluez -DEPEND=" - ${RDEPEND} - bluetooth? ( net-wireless/bluez ) - test? ( - dev-python/ensurepip-pip - dev-python/ensurepip-setuptools - dev-python/ensurepip-wheel - ) - valgrind? ( dev-debug/valgrind ) -" -# autoconf-archive needed to eautoreconf -BDEPEND=" - dev-build/autoconf-archive - app-alternatives/awk - virtual/pkgconfig - jit? ( - $(llvm_gen_dep ' - llvm-core/clang:${LLVM_SLOT} - llvm-core/llvm:${LLVM_SLOT} - ') - ) - verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 ) -" -RDEPEND+=" - !build? ( app-misc/mime-types ) -" -if [[ ${PV} != *_alpha* ]]; then - RDEPEND+=" - dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] - " -fi - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc - -# large file tests involve a 2.5G file being copied (duplicated) -CHECKREQS_DISK_BUILD=5500M - -QA_PKGCONFIG_VERSION=${PYVER%t} -# false positives -- functions specific to *BSD -QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) - -declare -rgA PYTHON_KERNEL_CHECKS=( - ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 - ["DNOTIFY"]="test_fcntl" # bug 938662 -) - -pkg_pretend() { - if use pgo || use test; then - check-reqs_pkg_pretend - fi - - ewarn "Freethreading build is considered experimental upstream. Using it" - ewarn "could lead to unexpected breakage, including race conditions" - ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" - ewarn "you can reproduce the problem with dev-lang/python. Instead," - ewarn "please consider reporting freethreading problems upstream." -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]]; then - use jit && llvm-r1_pkg_setup - if use test || use pgo; then - check-reqs_pkg_setup - - local CONFIG_CHECK - for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do - CONFIG_CHECK+="~${f} " - done - linux-info_pkg_setup - fi - fi -} - -src_unpack() { - if use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} - fi - default -} - -src_prepare() { - # Ensure that internal copies of expat and libffi are not used. - # TODO: Makefile has annoying deps on expat headers - #rm -r Modules/expat || die - - local PATCHES=( - "${WORKDIR}/${PATCHSET}" - ) - - default - - # force the correct number of jobs - # https://bugs.gentoo.org/737660 - sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die - - # breaks tests when using --with-wheel-pkg-dir - rm -r Lib/test/wheeldata || die - - eautoreconf -} - -build_cbuild_python() { - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - # - # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) - local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" - local -x LDFLAGS_NODIST=${BUILD_LDFLAGS} - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS=${LDFLAGS_NODIST} - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - append-flags -fwrapv - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - hppa*) - COMMON_TEST_SKIPS+=( - -x test_gdb - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - powerpc64-*) # big endian - COMMON_TEST_SKIPS+=( - -x test_gdb - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - -x test_gdb - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - - # Fails in profiling run, passes in src_test(). - -x test_capi - -x test_external_inspection - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - profile_task_flags+=( - -x test_os - ) - ;; - hppa*) - profile_task_flags+=( - -x test_descr - # bug 931908 - -x test_exceptions - -x test_os - ) - ;; - powerpc64-*) # big endian - profile_task_flags+=( - # bug 931908 - -x test_exceptions - ) - ;; - riscv*) - profile_task_flags+=( - -x test_statistics - ) - ;; - esac - - if has_version "app-arch/rpm" ; then - # Avoid sandbox failure (attempts to write to /var/lib/rpm) - profile_task_flags+=( - -x test_distutils - ) - fi - local -x PROFILE_TASK="${profile_task_flags[*]}" - fi - - local myeconfargs=( - # glibc-2.30 removes it; since we can't cleanly force-rebuild - # Python on glibc upgrade, remove it proactively to give - # a chance for users rebuilding python before glibc - ac_cv_header_stropts_h=no - - --enable-shared - --without-static-libpython - --enable-ipv6 - --infodir='${prefix}/share/info' - --mandir='${prefix}/share/man' - --with-computed-gotos - --with-dbmliborder="${dbmliborder}" - --with-libc= - --enable-loadable-sqlite-extensions - --without-ensurepip - --without-lto - --with-system-expat - --with-system-libmpdec - --with-platlibdir=lib - --with-pkg-config=yes - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip - --disable-gil - - $(use_with debug assertions) - $(use_enable jit experimental-jit) - $(use_enable pgo optimizations) - $(use_with readline readline "$(usex libedit editline readline)") - $(use_with valgrind) - ) - - # https://bugs.gentoo.org/700012 - if tc-is-lto; then - append-cflags $(test-flags-CC -ffat-lto-objects) - myeconfargs+=( - --with-lto - ) - fi - - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !gdbm '_gdbm _dbm') - $(usev !sqlite '_sqlite3') - $(usev !ssl '_hashlib _ssl') - $(usev !ncurses '_curses _curses_panel') - $(usev !readline 'readline') - $(usev !tk '_tkinter') - EOF - - # disable implicit optimization/debugging flags - local -x OPT= - - if tc-is-cross-compiler ; then - build_cbuild_python - myeconfargs+=( - # Point the imminent CHOST build to the Python we just - # built for CBUILD. - --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python - ) - fi - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - local -x CFLAGS_NODIST=${CFLAGS} - local -x LDFLAGS_NODIST=${LDFLAGS} - local -x CFLAGS= LDFLAGS= - - # Fix implicit declarations on cross and prefix builds. Bug #674070. - if use ncurses; then - append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw - fi - - econf "${myeconfargs[@]}" - - if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then - eerror "configure has detected that the sem_open function is broken." - eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." - die "Broken sem_open function (bug 496328)" - fi - - # install epython.py as part of stdlib - echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die -} - -src_compile() { - # Ensure sed works as expected - # https://bugs.gentoo.org/594768 - local -x LC_ALL=C - export PYTHONSTRICTEXTENSIONBUILD=1 - - # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't - # end up writing bytecode & violating sandbox. - # bug #831897 - local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} - - # Gentoo hack to disable accessing system site-packages - export GENTOO_CPYTHON_BUILD=1 - - if use pgo ; then - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/var/tmp - fi - - # also need to clear the flags explicitly here or they end up - # in _sysconfigdata* - emake CPPFLAGS= CFLAGS= LDFLAGS= - - # Restore saved value from above. - local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} - - # Work around bug 329499. See also bug 413751 and 457194. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E python - else - pax-mark m python - fi -} - -src_test() { - # Tests will not work when cross compiling. - if tc-is-cross-compiler; then - elog "Disabling tests due to crosscompiling." - return - fi - - # this just happens to skip test_support.test_freeze that is broken - # without bundled expat - # TODO: get a proper skip for it upstream - local -x LOGNAME=buildbot - - local test_opts=( - --verbose3 - -u-network - -j "$(makeopts_jobs)" - "${COMMON_TEST_SKIPS[@]}" - ) - - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/var/tmp - - nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ - CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty - local ret=${?} - - [[ ${ret} -eq 0 ]] || die "emake test failed" -} - -src_install() { - local libdir=${ED}/usr/lib/python${PYVER} - - # -j1 hack for now for bug #843458 - emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall - - # Fix collisions between different slots of Python. - rm "${ED}/usr/$(get_libdir)/libpython3.so" || die - # Fix collision with GIL-enabled build. - rm "${ED}/usr/bin/python${PYVER%t}" || die - mv "${ED}"/usr/bin/pydoc{${PYVER%t},${PYVER}} || die - mv "${ED}"/usr/share/man/man1/python{${PYVER%t},${PYVER}}.1 || die - - # Cheap hack to get version with ABIFLAGS - local abiver=$(cd "${ED}/usr/include"; echo python*) - if [[ ${abiver} != python${PYVER} ]]; then - # Replace python3.X with a symlink to python3.Xm - rm "${ED}/usr/bin/python${PYVER}" || die - dosym "${abiver}" "/usr/bin/python${PYVER}" - # Create python3.X-config symlink - dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" - # Create python-3.5m.pc symlink - dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" - fi - - # python seems to get rebuilt in src_install (bug 569908) - # Work around it for now. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E "${ED}/usr/bin/${abiver}" - else - pax-mark m "${ED}/usr/bin/${abiver}" - fi - - rm -r "${libdir}"/ensurepip/_bundled || die - if ! use sqlite; then - rm -r "${libdir}/"sqlite3 || die - fi - if use tk; then - # rename to avoid collision with dev-lang/python - mv "${ED}"/usr/bin/idle{${PYVER%t},${PYVER}} || die - else - rm -r "${ED}/usr/bin/idle${PYVER%t}" || die - rm -r "${libdir}/"{idlelib,tkinter} || die - fi - - ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die - - dodoc Misc/{ACKS,HISTORY,NEWS} - - if use examples; then - docinto examples - find Tools -name __pycache__ -exec rm -fr {} + || die - dodoc -r Tools - fi - insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 - local libname=$( - printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | - emake --no-print-directory -s -f - 2>/dev/null - ) - newins Tools/gdb/libpython.py "${libname}"-gdb.py - - newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} - newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} - sed \ - -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ - -e "s:@PYDOC@:pydoc${PYVER}:" \ - -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ - "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" - - # python-exec wrapping support - local pymajor=${PYVER%.*} - local EPYTHON=python${PYVER} - local scriptdir=${D}$(python_get_scriptdir) - mkdir -p "${scriptdir}" || die - # python and pythonX - ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die - ln -s "python${pymajor}" "${scriptdir}/python" || die - # python-config and pythonX-config - # note: we need to create a wrapper rather than symlinking it due - # to some random dirname(argv[0]) magic performed by python-config - cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die - #!/bin/sh - exec "${abiver}-config" "\${@}" - EOF - chmod +x "${scriptdir}/python${pymajor}-config" || die - ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die - # pydoc - ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die - # idle - if use tk; then - ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die - fi -} diff --git a/dev-lang/python/python-3.13.1_p1-r100.ebuild b/dev-lang/python/python-3.13.2-r100.ebuild index f2f4b2b6ff30..f2f4b2b6ff30 100644 --- a/dev-lang/python/python-3.13.1_p1-r100.ebuild +++ b/dev-lang/python/python-3.13.2-r100.ebuild diff --git a/dev-lang/python/python-3.13.1_p1.ebuild b/dev-lang/python/python-3.13.2.ebuild index 77efc9e367d4..65139c4ec145 100644 --- a/dev-lang/python/python-3.13.1_p1.ebuild +++ b/dev-lang/python/python-3.13.2.ebuild @@ -32,7 +32,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" IUSE=" bluetooth build debug +ensurepip examples gdbm jit libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind diff --git a/dev-lang/python/python-3.14.0_alpha4-r100.ebuild b/dev-lang/python/python-3.14.0_alpha4-r100.ebuild deleted file mode 100644 index 2abe01749d3a..000000000000 --- a/dev-lang/python/python-3.14.0_alpha4-r100.ebuild +++ /dev/null @@ -1,635 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -LLVM_COMPAT=( 19 ) -LLVM_OPTIONAL=1 -VERIFY_SIG_METHOD=sigstore -WANT_LIBTOOL="none" - -inherit autotools check-reqs flag-o-matic linux-info llvm-r1 -inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs -inherit verify-sig - -MY_PV=${PV/_alpha/a} -MY_P="Python-${MY_PV%_p*}" -PYVER="$(ver_cut 1-2)t" -PATCHSET="python-gentoo-patches-${MY_PV}" - -DESCRIPTION="Freethreading (no-GIL) version of Python programming language" -HOMEPAGE=" - https://www.python.org/ - https://github.com/python/cpython/ -" -SRC_URI=" - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz - verify-sig? ( - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore - ) -" -S="${WORKDIR}/${MY_P}" - -LICENSE="PSF-2" -SLOT="${PYVER}" -IUSE=" - bluetooth build debug +ensurepip examples gdbm jit - libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind -" -REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )" -RESTRICT="!test? ( test )" - -# Do not add a dependency on dev-lang/python to this ebuild. -# If you need to apply a patch which requires python for bootstrapping, please -# run the bootstrap code on your dev box and include the results in the -# patchset. See bug 447752. - -RDEPEND=" - app-arch/bzip2:= - app-arch/xz-utils:= - >=dev-libs/expat-2.1:= - dev-libs/libffi:= - dev-libs/mpdecimal:= - dev-python/gentoo-common - >=sys-libs/zlib-1.1.3:= - virtual/libintl - ensurepip? ( dev-python/ensurepip-pip ) - gdbm? ( sys-libs/gdbm:=[berkdb] ) - kernel_linux? ( sys-apps/util-linux:= ) - ncurses? ( >=sys-libs/ncurses-5.2:= ) - readline? ( - !libedit? ( >=sys-libs/readline-4.1:= ) - libedit? ( dev-libs/libedit:= ) - ) - sqlite? ( >=dev-db/sqlite-3.3.8:3= ) - ssl? ( >=dev-libs/openssl-1.1.1:= ) - tk? ( - >=dev-lang/tcl-8.0:= - >=dev-lang/tk-8.0:= - dev-tcltk/blt:= - dev-tcltk/tix - ) -" -# bluetooth requires headers from bluez -DEPEND=" - ${RDEPEND} - bluetooth? ( net-wireless/bluez ) - test? ( - dev-python/ensurepip-pip - dev-python/ensurepip-setuptools - dev-python/ensurepip-wheel - ) - valgrind? ( dev-debug/valgrind ) -" -# autoconf-archive needed to eautoreconf -BDEPEND=" - dev-build/autoconf-archive - app-alternatives/awk - virtual/pkgconfig - jit? ( - $(llvm_gen_dep ' - llvm-core/clang:${LLVM_SLOT} - llvm-core/llvm:${LLVM_SLOT} - ') - ) - verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 ) -" -RDEPEND+=" - !build? ( app-misc/mime-types ) -" -if [[ ${PV} != *_alpha* ]]; then - RDEPEND+=" - dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] - " -fi - -# https://www.python.org/downloads/metadata/sigstore/ -VERIFY_SIG_CERT_IDENTITY=hugo@python.org -VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth - -# large file tests involve a 2.5G file being copied (duplicated) -CHECKREQS_DISK_BUILD=5500M - -QA_PKGCONFIG_VERSION=${PYVER%t} -# false positives -- functions specific to *BSD -QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) - -declare -rgA PYTHON_KERNEL_CHECKS=( - ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 - ["DNOTIFY"]="test_fcntl" # bug 938662 -) - -pkg_pretend() { - if use pgo || use test; then - check-reqs_pkg_pretend - fi - - ewarn "Freethreading build is considered experimental upstream. Using it" - ewarn "could lead to unexpected breakage, including race conditions" - ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" - ewarn "you can reproduce the problem with dev-lang/python. Instead," - ewarn "please consider reporting freethreading problems upstream." -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]]; then - use jit && llvm-r1_pkg_setup - if use test || use pgo; then - check-reqs_pkg_setup - - local CONFIG_CHECK - for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do - CONFIG_CHECK+="~${f} " - done - linux-info_pkg_setup - fi - fi -} - -src_unpack() { - if use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} - fi - default -} - -src_prepare() { - # Ensure that internal copies of expat and libffi are not used. - # TODO: Makefile has annoying deps on expat headers - #rm -r Modules/expat || die - - local PATCHES=( - "${WORKDIR}/${PATCHSET}" - ) - - default - - # force the correct number of jobs - # https://bugs.gentoo.org/737660 - sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die - - # breaks tests when using --with-wheel-pkg-dir - rm -r Lib/test/wheeldata || die - - eautoreconf -} - -build_cbuild_python() { - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - # - # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) - local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" - local -x LDFLAGS_NODIST=${BUILD_LDFLAGS} - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS=${LDFLAGS_NODIST} - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - append-flags -fwrapv - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - hppa*) - COMMON_TEST_SKIPS+=( - -x test_gdb - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - powerpc64-*) # big endian - COMMON_TEST_SKIPS+=( - -x test_gdb - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - -x test_gdb - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - ) - - if has_version "app-arch/rpm" ; then - # Avoid sandbox failure (attempts to write to /var/lib/rpm) - profile_task_flags+=( - -x test_distutils - ) - fi - # PGO sometimes fails randomly - local -x PROFILE_TASK="${profile_task_flags[*]} || true" - fi - - local myeconfargs=( - # glibc-2.30 removes it; since we can't cleanly force-rebuild - # Python on glibc upgrade, remove it proactively to give - # a chance for users rebuilding python before glibc - ac_cv_header_stropts_h=no - - --enable-shared - --without-static-libpython - --enable-ipv6 - --infodir='${prefix}/share/info' - --mandir='${prefix}/share/man' - --with-computed-gotos - --with-dbmliborder="${dbmliborder}" - --with-libc= - --enable-loadable-sqlite-extensions - --without-ensurepip - --without-lto - --with-system-expat - --with-system-libmpdec - --with-platlibdir=lib - --with-pkg-config=yes - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip - --disable-gil - - $(use_with debug assertions) - $(use_enable jit experimental-jit) - $(use_enable pgo optimizations) - $(use_with readline readline "$(usex libedit editline readline)") - $(use_with valgrind) - ) - - # https://bugs.gentoo.org/700012 - if tc-is-lto; then - append-cflags $(test-flags-CC -ffat-lto-objects) - myeconfargs+=( - --with-lto - ) - fi - - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !gdbm '_gdbm _dbm') - $(usev !sqlite '_sqlite3') - $(usev !ssl '_hashlib _ssl') - $(usev !ncurses '_curses _curses_panel') - $(usev !readline 'readline') - $(usev !tk '_tkinter') - EOF - - # disable implicit optimization/debugging flags - local -x OPT= - - if tc-is-cross-compiler ; then - build_cbuild_python - myeconfargs+=( - # Point the imminent CHOST build to the Python we just - # built for CBUILD. - --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python - ) - fi - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - local -x CFLAGS_NODIST=${CFLAGS} - local -x LDFLAGS_NODIST=${LDFLAGS} - local -x CFLAGS= LDFLAGS= - - # Fix implicit declarations on cross and prefix builds. Bug #674070. - if use ncurses; then - append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw - fi - - econf "${myeconfargs[@]}" - - if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then - eerror "configure has detected that the sem_open function is broken." - eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." - die "Broken sem_open function (bug 496328)" - fi - - # install epython.py as part of stdlib - echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die -} - -src_compile() { - # Ensure sed works as expected - # https://bugs.gentoo.org/594768 - local -x LC_ALL=C - export PYTHONSTRICTEXTENSIONBUILD=1 - - # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't - # end up writing bytecode & violating sandbox. - # bug #831897 - local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} - - # Gentoo hack to disable accessing system site-packages - export GENTOO_CPYTHON_BUILD=1 - - if use pgo ; then - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/var/tmp - fi - - # also need to clear the flags explicitly here or they end up - # in _sysconfigdata* - emake CPPFLAGS= CFLAGS= LDFLAGS= - - # Restore saved value from above. - local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} - - # Work around bug 329499. See also bug 413751 and 457194. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E python - else - pax-mark m python - fi -} - -src_test() { - # Tests will not work when cross compiling. - if tc-is-cross-compiler; then - elog "Disabling tests due to crosscompiling." - return - fi - - # this just happens to skip test_support.test_freeze that is broken - # without bundled expat - # TODO: get a proper skip for it upstream - local -x LOGNAME=buildbot - - local test_opts=( - --verbose3 - -u-network - -j "$(makeopts_jobs)" - "${COMMON_TEST_SKIPS[@]}" - ) - - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/var/tmp - - nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ - CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty - local ret=${?} - - [[ ${ret} -eq 0 ]] || die "emake test failed" -} - -src_install() { - local libdir=${ED}/usr/lib/python${PYVER} - - # -j1 hack for now for bug #843458 - emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall - - # Fix collisions between different slots of Python. - rm "${ED}/usr/$(get_libdir)/libpython3.so" || die - # Fix collision with GIL-enabled build. - rm "${ED}/usr/bin/python${PYVER%t}" || die - mv "${ED}"/usr/bin/pydoc{${PYVER%t},${PYVER}} || die - mv "${ED}"/usr/share/man/man1/python{${PYVER%t},${PYVER}}.1 || die - - # Cheap hack to get version with ABIFLAGS - local abiver=$(cd "${ED}/usr/include"; echo python*) - if [[ ${abiver} != python${PYVER} ]]; then - # Replace python3.X with a symlink to python3.Xm - rm "${ED}/usr/bin/python${PYVER}" || die - dosym "${abiver}" "/usr/bin/python${PYVER}" - # Create python3.X-config symlink - dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" - # Create python-3.5m.pc symlink - dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" - fi - - # python seems to get rebuilt in src_install (bug 569908) - # Work around it for now. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E "${ED}/usr/bin/${abiver}" - else - pax-mark m "${ED}/usr/bin/${abiver}" - fi - - rm -r "${libdir}"/ensurepip/_bundled || die - if ! use sqlite; then - rm -r "${libdir}/"sqlite3 || die - fi - if use tk; then - # rename to avoid collision with dev-lang/python - mv "${ED}"/usr/bin/idle{${PYVER%t},${PYVER}} || die - else - rm -r "${ED}/usr/bin/idle${PYVER%t}" || die - rm -r "${libdir}/"{idlelib,tkinter} || die - fi - - ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die - - dodoc Misc/{ACKS,HISTORY,NEWS} - - if use examples; then - docinto examples - find Tools -name __pycache__ -exec rm -fr {} + || die - dodoc -r Tools - fi - insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 - local libname=$( - printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | - emake --no-print-directory -s -f - 2>/dev/null - ) - newins Tools/gdb/libpython.py "${libname}"-gdb.py - - newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} - newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} - sed \ - -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ - -e "s:@PYDOC@:pydoc${PYVER}:" \ - -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ - "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" - - # python-exec wrapping support - local pymajor=${PYVER%.*} - local EPYTHON=python${PYVER} - local scriptdir=${D}$(python_get_scriptdir) - mkdir -p "${scriptdir}" || die - # python and pythonX - ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die - ln -s "python${pymajor}" "${scriptdir}/python" || die - # python-config and pythonX-config - # note: we need to create a wrapper rather than symlinking it due - # to some random dirname(argv[0]) magic performed by python-config - cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die - #!/bin/sh - exec "${abiver}-config" "\${@}" - EOF - chmod +x "${scriptdir}/python${pymajor}-config" || die - ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die - # pydoc - ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die - # idle - if use tk; then - ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die - fi -} diff --git a/dev-lang/python/python-3.14.0_alpha4.ebuild b/dev-lang/python/python-3.14.0_alpha4.ebuild deleted file mode 100644 index f4da576cf95f..000000000000 --- a/dev-lang/python/python-3.14.0_alpha4.ebuild +++ /dev/null @@ -1,630 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -LLVM_COMPAT=( 19 ) -LLVM_OPTIONAL=1 -VERIFY_SIG_METHOD=sigstore -WANT_LIBTOOL="none" - -inherit autotools check-reqs flag-o-matic linux-info llvm-r1 -inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs -inherit verify-sig - -MY_PV=${PV/_alpha/a} -MY_P="Python-${MY_PV%_p*}" -PYVER=$(ver_cut 1-2) -PATCHSET="python-gentoo-patches-${MY_PV}" - -DESCRIPTION="An interpreted, interactive, object-oriented programming language" -HOMEPAGE=" - https://www.python.org/ - https://github.com/python/cpython/ -" -SRC_URI=" - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz - verify-sig? ( - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore - ) -" -S="${WORKDIR}/${MY_P}" - -LICENSE="PSF-2" -SLOT="${PYVER}" -IUSE=" - bluetooth build debug +ensurepip examples gdbm jit - libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind -" -REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )" -RESTRICT="!test? ( test )" - -# Do not add a dependency on dev-lang/python to this ebuild. -# If you need to apply a patch which requires python for bootstrapping, please -# run the bootstrap code on your dev box and include the results in the -# patchset. See bug 447752. - -RDEPEND=" - app-arch/bzip2:= - app-arch/xz-utils:= - >=dev-libs/expat-2.1:= - dev-libs/libffi:= - dev-libs/mpdecimal:= - dev-python/gentoo-common - >=sys-libs/zlib-1.1.3:= - virtual/libintl - ensurepip? ( dev-python/ensurepip-pip ) - gdbm? ( sys-libs/gdbm:=[berkdb] ) - kernel_linux? ( sys-apps/util-linux:= ) - ncurses? ( >=sys-libs/ncurses-5.2:= ) - readline? ( - !libedit? ( >=sys-libs/readline-4.1:= ) - libedit? ( dev-libs/libedit:= ) - ) - sqlite? ( >=dev-db/sqlite-3.3.8:3= ) - ssl? ( >=dev-libs/openssl-1.1.1:= ) - tk? ( - >=dev-lang/tcl-8.0:= - >=dev-lang/tk-8.0:= - dev-tcltk/blt:= - dev-tcltk/tix - ) -" -# bluetooth requires headers from bluez -DEPEND=" - ${RDEPEND} - bluetooth? ( net-wireless/bluez ) - test? ( - dev-python/ensurepip-pip - dev-python/ensurepip-setuptools - dev-python/ensurepip-wheel - ) - valgrind? ( dev-debug/valgrind ) -" -# autoconf-archive needed to eautoreconf -BDEPEND=" - dev-build/autoconf-archive - app-alternatives/awk - virtual/pkgconfig - jit? ( - $(llvm_gen_dep ' - llvm-core/clang:${LLVM_SLOT} - llvm-core/llvm:${LLVM_SLOT} - ') - ) - verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 ) -" -RDEPEND+=" - !build? ( app-misc/mime-types ) -" -if [[ ${PV} != *_alpha* ]]; then - RDEPEND+=" - dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] - " -fi - -# https://www.python.org/downloads/metadata/sigstore/ -VERIFY_SIG_CERT_IDENTITY=hugo@python.org -VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth - -# large file tests involve a 2.5G file being copied (duplicated) -CHECKREQS_DISK_BUILD=5500M - -QA_PKGCONFIG_VERSION=${PYVER%t} -# false positives -- functions specific to *BSD -QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) - -declare -rgA PYTHON_KERNEL_CHECKS=( - ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 - ["DNOTIFY"]="test_fcntl" # bug 938662 -) - -pkg_pretend() { - if use pgo || use test; then - check-reqs_pkg_pretend - fi - - if use jit; then - ewarn "USE=jit is considered experimental upstream. Using it" - ewarn "could lead to unexpected breakage, including race conditions" - ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" - ewarn "you can reproduce the problem with dev-lang/python[-jit]. Instead," - ewarn "please consider reporting JIT problems upstream." - fi -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]]; then - use jit && llvm-r1_pkg_setup - if use test || use pgo; then - check-reqs_pkg_setup - - local CONFIG_CHECK - for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do - CONFIG_CHECK+="~${f} " - done - linux-info_pkg_setup - fi - fi -} - -src_unpack() { - if use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} - fi - default -} - -src_prepare() { - # Ensure that internal copies of expat and libffi are not used. - # TODO: Makefile has annoying deps on expat headers - #rm -r Modules/expat || die - - local PATCHES=( - "${WORKDIR}/${PATCHSET}" - ) - - default - - # force the correct number of jobs - # https://bugs.gentoo.org/737660 - sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die - - # breaks tests when using --with-wheel-pkg-dir - rm -r Lib/test/wheeldata || die - - eautoreconf -} - -build_cbuild_python() { - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - # - # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) - local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" - local -x LDFLAGS_NODIST=${BUILD_LDFLAGS} - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS=${LDFLAGS_NODIST} - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - append-flags -fwrapv - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - hppa*) - COMMON_TEST_SKIPS+=( - -x test_gdb - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - powerpc64-*) # big endian - COMMON_TEST_SKIPS+=( - -x test_gdb - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - -x test_gdb - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - ) - - if has_version "app-arch/rpm" ; then - # Avoid sandbox failure (attempts to write to /var/lib/rpm) - profile_task_flags+=( - -x test_distutils - ) - fi - # PGO sometimes fails randomly - local -x PROFILE_TASK="${profile_task_flags[*]} || true" - fi - - local myeconfargs=( - # glibc-2.30 removes it; since we can't cleanly force-rebuild - # Python on glibc upgrade, remove it proactively to give - # a chance for users rebuilding python before glibc - ac_cv_header_stropts_h=no - - --enable-shared - --without-static-libpython - --enable-ipv6 - --infodir='${prefix}/share/info' - --mandir='${prefix}/share/man' - --with-computed-gotos - --with-dbmliborder="${dbmliborder}" - --with-libc= - --enable-loadable-sqlite-extensions - --without-ensurepip - --without-lto - --with-system-expat - --with-system-libmpdec - --with-platlibdir=lib - --with-pkg-config=yes - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip - --enable-gil - - $(use_with debug assertions) - $(use_enable jit experimental-jit) - $(use_enable pgo optimizations) - $(use_with readline readline "$(usex libedit editline readline)") - $(use_with valgrind) - ) - - # https://bugs.gentoo.org/700012 - if tc-is-lto; then - append-cflags $(test-flags-CC -ffat-lto-objects) - myeconfargs+=( - --with-lto - ) - fi - - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !gdbm '_gdbm _dbm') - $(usev !sqlite '_sqlite3') - $(usev !ssl '_hashlib _ssl') - $(usev !ncurses '_curses _curses_panel') - $(usev !readline 'readline') - $(usev !tk '_tkinter') - EOF - - # disable implicit optimization/debugging flags - local -x OPT= - - if tc-is-cross-compiler ; then - build_cbuild_python - myeconfargs+=( - # Point the imminent CHOST build to the Python we just - # built for CBUILD. - --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python - ) - fi - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - local -x CFLAGS_NODIST=${CFLAGS} - local -x LDFLAGS_NODIST=${LDFLAGS} - local -x CFLAGS= LDFLAGS= - - # Fix implicit declarations on cross and prefix builds. Bug #674070. - if use ncurses; then - append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw - fi - - econf "${myeconfargs[@]}" - - if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then - eerror "configure has detected that the sem_open function is broken." - eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." - die "Broken sem_open function (bug 496328)" - fi - - # install epython.py as part of stdlib - echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die -} - -src_compile() { - # Ensure sed works as expected - # https://bugs.gentoo.org/594768 - local -x LC_ALL=C - export PYTHONSTRICTEXTENSIONBUILD=1 - - # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't - # end up writing bytecode & violating sandbox. - # bug #831897 - local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} - - # Gentoo hack to disable accessing system site-packages - export GENTOO_CPYTHON_BUILD=1 - - if use pgo ; then - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/var/tmp - fi - - # also need to clear the flags explicitly here or they end up - # in _sysconfigdata* - emake CPPFLAGS= CFLAGS= LDFLAGS= - - # Restore saved value from above. - local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} - - # Work around bug 329499. See also bug 413751 and 457194. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E python - else - pax-mark m python - fi -} - -src_test() { - # Tests will not work when cross compiling. - if tc-is-cross-compiler; then - elog "Disabling tests due to crosscompiling." - return - fi - - # this just happens to skip test_support.test_freeze that is broken - # without bundled expat - # TODO: get a proper skip for it upstream - local -x LOGNAME=buildbot - - local test_opts=( - --verbose3 - -u-network - -j "$(makeopts_jobs)" - "${COMMON_TEST_SKIPS[@]}" - ) - - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/var/tmp - - nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ - CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty - local ret=${?} - - [[ ${ret} -eq 0 ]] || die "emake test failed" -} - -src_install() { - local libdir=${ED}/usr/lib/python${PYVER} - - # -j1 hack for now for bug #843458 - emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall - - # Fix collisions between different slots of Python. - rm "${ED}/usr/$(get_libdir)/libpython3.so" || die - - # Cheap hack to get version with ABIFLAGS - local abiver=$(cd "${ED}/usr/include"; echo python*) - if [[ ${abiver} != python${PYVER} ]]; then - # Replace python3.X with a symlink to python3.Xm - rm "${ED}/usr/bin/python${PYVER}" || die - dosym "${abiver}" "/usr/bin/python${PYVER}" - # Create python3.X-config symlink - dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" - # Create python-3.5m.pc symlink - dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" - fi - - # python seems to get rebuilt in src_install (bug 569908) - # Work around it for now. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E "${ED}/usr/bin/${abiver}" - else - pax-mark m "${ED}/usr/bin/${abiver}" - fi - - rm -r "${libdir}"/ensurepip/_bundled || die - if ! use sqlite; then - rm -r "${libdir}/"sqlite3 || die - fi - if ! use tk; then - rm -r "${ED}/usr/bin/idle${PYVER}" || die - rm -r "${libdir}/"{idlelib,tkinter} || die - fi - - ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die - - dodoc Misc/{ACKS,HISTORY,NEWS} - - if use examples; then - docinto examples - find Tools -name __pycache__ -exec rm -fr {} + || die - dodoc -r Tools - fi - insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 - local libname=$( - printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | - emake --no-print-directory -s -f - 2>/dev/null - ) - newins Tools/gdb/libpython.py "${libname}"-gdb.py - - newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} - newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} - sed \ - -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ - -e "s:@PYDOC@:pydoc${PYVER}:" \ - -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ - "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" - - # python-exec wrapping support - local pymajor=${PYVER%.*} - local EPYTHON=python${PYVER} - local scriptdir=${D}$(python_get_scriptdir) - mkdir -p "${scriptdir}" || die - # python and pythonX - ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die - ln -s "python${pymajor}" "${scriptdir}/python" || die - # python-config and pythonX-config - # note: we need to create a wrapper rather than symlinking it due - # to some random dirname(argv[0]) magic performed by python-config - cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die - #!/bin/sh - exec "${abiver}-config" "\${@}" - EOF - chmod +x "${scriptdir}/python${pymajor}-config" || die - ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die - # pydoc - ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die - # idle - if use tk; then - ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die - fi -} diff --git a/dev-lang/python/python-3.14.0_alpha3-r100.ebuild b/dev-lang/python/python-3.14.0_alpha5-r100.ebuild index 2abe01749d3a..2abe01749d3a 100644 --- a/dev-lang/python/python-3.14.0_alpha3-r100.ebuild +++ b/dev-lang/python/python-3.14.0_alpha5-r100.ebuild diff --git a/dev-lang/python/python-3.14.0_alpha3.ebuild b/dev-lang/python/python-3.14.0_alpha5.ebuild index f4da576cf95f..f4da576cf95f 100644 --- a/dev-lang/python/python-3.14.0_alpha3.ebuild +++ b/dev-lang/python/python-3.14.0_alpha5.ebuild diff --git a/dev-lang/python/python-3.9.21_p1.ebuild b/dev-lang/python/python-3.9.21_p1.ebuild index 2fe534a1d826..e8160fe107b8 100644 --- a/dev-lang/python/python-3.9.21_p1.ebuild +++ b/dev-lang/python/python-3.9.21_p1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="8" @@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha amd64 ~arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" IUSE=" bluetooth build debug +ensurepip examples gdbm +ncurses pgo +readline +sqlite +ssl test tk valgrind diff --git a/dev-lang/rakudo/Manifest b/dev-lang/rakudo/Manifest index db8f52b8bf10..60e9d81649b0 100644 --- a/dev-lang/rakudo/Manifest +++ b/dev-lang/rakudo/Manifest @@ -1,5 +1,7 @@ DIST rakudo-2024.10.tar.gz 6977275 BLAKE2B 26f77510f1d653d5dd8f65dec62642898faa73ea2b7105b13c984a76a50db5c42d659f5466f2626ce74378180cac34cd7529fdb8b01d839785e9e8305cf1fb32 SHA512 01270b164d82d27729b15ce5386b82a243607599d5959703a24faf95976b5d2574146ecdfdb1515b2d631564135e2fb4949ae0893839c9b16564f024ecfd93cb DIST rakudo-2024.12.tar.gz 6982673 BLAKE2B 20be31a36e520ec407b63955bc05c901f1e1e88012a6ff2ec8cc1f8fcd69e81a5f2d16be193c3214cfd0a01e5aaad6cddc864b4c15a2488e13c7e019ac37609a SHA512 d15aa39540c72999d7821b65321654d64ccedb89b5e0f13c8f5bc6961bbe9d2b96d54f6dbd4f80b51d6b057ebdc13c99dcb6e4df8cb12cc9f1c52efc86f7683e +DIST rakudo-2025.01.tar.gz 6985477 BLAKE2B 2afdecf58c7185d905833d7a067638f0780aa5be1460c0c6ee42145629f3adda264a61e9582952f6aec8e12c8a0f0d2e57467724e2f33b155d7360e3ec7ed68c SHA512 3d394c62dcf65c1506f5e8b06e722a14f93c1edff1a0435a78958d6a0bef56316c2587a85b7f1515166510d686362f290b4d0b31ef2b2c037eabff590d6caebb EBUILD rakudo-2024.10.ebuild 1598 BLAKE2B 2eb1e126bd7922effae800ba468105d887aea4911ed27cf09a55856ade03ed1bd5b2e8e0d402d0829c3e26ba1021706998cd4744f8d42dec9d14ca1dcfd1349b SHA512 37b92b128ba0194350a3439a40639583de64a2a94158bce34aa858698909cb14e1e10922fb3d28943c2a529dcfb2ef0bbe7caecc5efa3ddf9290cd79963a946c EBUILD rakudo-2024.12.ebuild 1598 BLAKE2B 2eb1e126bd7922effae800ba468105d887aea4911ed27cf09a55856ade03ed1bd5b2e8e0d402d0829c3e26ba1021706998cd4744f8d42dec9d14ca1dcfd1349b SHA512 37b92b128ba0194350a3439a40639583de64a2a94158bce34aa858698909cb14e1e10922fb3d28943c2a529dcfb2ef0bbe7caecc5efa3ddf9290cd79963a946c +EBUILD rakudo-2025.01.ebuild 1598 BLAKE2B 383ee09c753b0fb732155224e3b97ea080812b32d7777fde89a719a29b9d756599e5f6a4851b53c006e85e506070c68b0dfa6369b83e381557cdf5154c19fe7b SHA512 53aec60d88bfd8e50997be7ef402ee6166b94a83fa0fb001e5278b29546db98d513195fbe223e3437aca35e0a45c68d714ed413081cacba0e81723ac739a920a MISC metadata.xml 396 BLAKE2B 43b55c331967d55e0a5c8d2dad7399c20b4104494cf3310b5a95dbef537d07908135c7f9c7829c737f64466660056de8c5656637b54079fef0f90ea4cfef5f1e SHA512 163828a65041f6d74931e32b6edf8c58ddb59151f8c68519165e81003886ce67ff4bcd21e69dc8a1fb96e4b8189fb611dcf8b9d73a52b257ccc24de516185fae diff --git a/dev-lang/rakudo/rakudo-2025.01.ebuild b/dev-lang/rakudo/rakudo-2025.01.ebuild new file mode 100644 index 000000000000..4b8e994ccea2 --- /dev/null +++ b/dev-lang/rakudo/rakudo-2025.01.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit java-pkg-opt-2 + +DESCRIPTION="A compiler for the Raku programming language" +HOMEPAGE="https://rakudo.org" + +if [[ ${PV} == "9999" ]]; then + EGIT_REPO_URI="https://github.com/rakudo/${PN}.git" + inherit git-r3 +else + SRC_URI="https://rakudo.org/dl/${PN}/${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="Artistic-2" +SLOT="0" +# TODO: add USE="javascript" once that's usable in nqp +IUSE="clang java +moar test" +RESTRICT="!test? ( test )" +REQUIRED_USE="|| ( java moar )" + +CDEPEND="~dev-lang/nqp-${PV}:${SLOT}=[java?,moar?,clang=]" +RDEPEND="${CDEPEND} + java? ( >=virtual/jre-1.9 )" +DEPEND="${CDEPEND} + clang? ( llvm-core/clang ) + java? ( >=virtual/jdk-1.9 ) + >=dev-lang/perl-5.10" + +pkg_pretend() { + if has_version dev-lang/rakudo; then + ewarn "Rakudo is known to fail compilation/installation with Rakudo" + ewarn "already being installed. So if it fails, try unmerging dev-lang/rakudo," + ewarn "then do a new installation." + ewarn "(see Bug #584394)" + fi +} + +src_configure() { + local backends + use moar && backends+="moar," + use java && backends+="jvm" + + local myargs=( + "--prefix=/usr" + "--sysroot=/" + "--sdkroot=/" + "--backends=${backends}" + ) + + perl Configure.pl "${myargs[@]}" || die + + if use java; then + NQP=$(java-pkg_getjars --with-dependencies nqp) + fi +} + +src_compile() { + emake NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}" +} + +src_install() { + emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}" install +} + +src_test() { + RAKUDO_PRECOMP_PREFIX=$(mktemp -d) default +} diff --git a/dev-lang/ruby/Manifest b/dev-lang/ruby/Manifest index 10b651738105..f2b4895cef50 100644 --- a/dev-lang/ruby/Manifest +++ b/dev-lang/ruby/Manifest @@ -22,33 +22,22 @@ AUX 3.3/902-hppa-pthread-stack-size.patch 1690 BLAKE2B 84c8478a69e108c68f96eeb0f AUX 3.4/010-default-gem-location.patch 356 BLAKE2B f44459799fff80c7f14e5e7d674ee9ed22863cdb84838e0fad55a66f615fa91e3e4de30377c04a385927feea67c6046c837eb7a647fbe162685309ea3f9ea420 SHA512 894075663d409a117ad94abd63d6562c90b87a725ef56d02ad7c187532b99a56128be2f5f64d0e72763d1c14213707de84c920415107df875218489796bc4a5a AUX 3.4/901-musl-stacksize.patch 749 BLAKE2B 422d53ef7fc1e76bd7466ff67da7cefd3665282ce0e29d16e2455e8f2bcbe081c0b9d31119eed6d6b53f6200fa72d623e9c04e0ebd6594397cf1dad344e8049a SHA512 f9ad0a50a0672a88b89cba9c452c090e0fe47fe41c640951b1b14970e1219a27c9ef3a1b53650b135d607830ae7a09b6a8916e45263415b58122c07262e90b1b AUX 3.4/902-hppa-pthread-stack-size.patch 1690 BLAKE2B 84c8478a69e108c68f96eeb0f36b1f94e069193ce124c0ca5c6143c0c9a2f0c62c7927a1a61a85270f449d03b4c6f5bd735e02ce1da1df0749602e655f177778 SHA512 d871b1c0a5d58bb197def0e00310e38fc145520dbbd1245079b2ebab0f89878f21a22f27c388fe2a7557244db28f0acb97edddf9bdf4adbeb00327e01c5215a6 -DIST ruby-3.1.4.tar.xz 15316604 BLAKE2B 5d771c267451c05ae192991976957d43d1131e652ac5a90a8dfff9deba97cf6b139d0113f5d2ed44225a545aa79a1c732555de1efc83d1010d097ec35f7e92dd SHA512 a627bb629a10750b8b2081ad451a41faea0fc85d95aa1e267e3d2a0f56a35bb58195d4a8d13bbdbd82f4197a96dae22b1cee1dfc83861ec33a67ece07aef5633 -DIST ruby-3.1.5.tar.xz 15293020 BLAKE2B 5d886f45f2a27dbe7682f5afc234d4992ffc5006cfaa98f23c29e1fff0323c277ffec827c71ee75885b4f2cf0bf7baed4ea239ae32283578213821e597bf51da SHA512 a9883f4d074825bb1f54ef3429a9a71341274bd2de1aa8ea32bce19b6b9c1bac5e5dc4c34a92b8e7caa73ba71d7ed7c546a6fec6f1fd3d8986974dce214f6d49 DIST ruby-3.1.6.tar.xz 15273916 BLAKE2B feb697b8d01ebde0042e679b814c4c95481c6afa607db46ad1511fb0d1a555d7800725e847e90dd9944ef42575c5205cf711025a165a65b6070743701631929c SHA512 a3159648706d6d11ce9613201141e884b3accc69bf928c756de8a8f2b71d219886e91435d30cf2c30e85af31f87801138e10106344766100f1b80662c7244652 -DIST ruby-3.2.4.tar.xz 15175656 BLAKE2B 9c2300a958b03528d51f0d74a069c8c538ca4009835d55377509a000bcfb43893a8a80d8fda57011e77c72e6283cb259281d5ba7b37444546e49f2a9ad515cf3 SHA512 fb0af37be4b6ad7b98ab9f8a508952238ee68b5828e3926331e4db52e2ebc1e6046f31114069322db0cd3bea7c9b82ace91c8564573ddcfa1f960877b237dbff -DIST ruby-3.2.5.tar.xz 15189072 BLAKE2B a37c92a0f751e81dcae328b8944c4ecf10f6aee4f4468d6d08bb924c9808c8556c5febb71a825dd62dbcccf56385138e6e306bf3efae3589bdf0512d16d99d1a SHA512 092348b84b513aec62e63ec10b326370d0e3d1fa3126c59c03c84f28e2d7741a4772c461b077ec6a7dac3964a20f434655729e1acd50a3438755d7ad64073305 DIST ruby-3.2.6.tar.xz 15126888 BLAKE2B d59352e5543b96abe3de5f10b578c2b910a0f18f848fb32a10b80f8e882e7c687a3149ce6ab6ba1271731b8668e1dd47754b778def13010a587aa8544e881943 SHA512 78f7fc76d47c772b9bc313cbcb57a2c0f1a975e09cfe46a3083f6f603d62b0031bd4c55896c8353c1c343974d45077e06e310111198d870883e06a0cf6fd03ce -DIST ruby-3.3.4.tar.xz 16366580 BLAKE2B e10b81ad7838e3d443ce0b12b8372faebb001f00a32dc0fa1f5e37c46baae99ea714e7f2a8741f0294255312030e844f32fc5d1c3695545cf8303e85b3255f21 SHA512 b26461a13ff82a08a282f10108028bb2a2e4a28da6182a291062fc54089c6655d79c22cc69d59156f9b11cb10a17fe8c69d489343fbae123a45f03361b95c9eb -DIST ruby-3.3.5.tar.xz 16403660 BLAKE2B 4fa242ceeaf0dbf0d048b3f116f149f299c1a0ccca500a47929344da523cd3c49365381777e56546fe94003ee90ccc1f2cc957697eb82cd8beb7311b0b00287c SHA512 dd5c6a7f74854e143e0ca46b9d7c0d1983fc4886f5f733cd108345dbf4b21f61ad978ad6806e05a57b7af28fd9216dd38d7145808188bbb3695a7f3a4eda3883 +DIST ruby-3.2.7.tar.xz 15128228 BLAKE2B a75717dde36669c7b62e7175fb74f2a6f5c7590e7b56ced3d35f1c626d3b7f67eed8b32705187708828622478166d3b630215f828773fe677af67996f0da6d3c SHA512 c10b6fd27fad3bbd33d780c0a3eccb5df2a8465a89d2294ea6f14c7e5e8f7c8ea30b8a8b68bf8903c76f9133c5d984d5d66052ec4eb413153c739e6eea24beed DIST ruby-3.3.6.tar.xz 16398228 BLAKE2B 7e2fb58ca1f5ee7ab9c2fd7b24fdbf9eef9805329cdf23c9926bac0268344f101475c2c7aacb26f73c4c5f73704727e19a9cc074c4587b9c53a115d6fb0a5e85 SHA512 c4b86188bf539fa737932e1ba5b746bc295e7c43b2f8cca2668eb7c88aa7228e2ce9032bbcd244a7d558a11bc842445b5fbeac3503ca7d223b63c53e08dba4ab DIST ruby-3.3.7.tar.xz 16379504 BLAKE2B 33bd05d8462ec7e33872a31bcbfabcfc65a0245dc6519248e474085f3255dc3ad67210400ac314b291f16d3eb261459cadba180dfccc510a2b2c978035435347 SHA512 4082a7684c1b0d53a0ce493f79568e851d37a864f59c58b2e0c273b2659e0ca75318ddff939fdf5e9d0a3eeba1b6d8f03bf88afb49a5ffd77714f1c8a7dfdd55 DIST ruby-3.4.1.tar.xz 17222800 BLAKE2B 949cb57aeb6af4ca70d6638a2cd38ec9d067a3798ec27e02ee5934c902b74684b9f96d9fc00c1b22932de20b38b5bd3403a9a1a1bfe0c1caa380327d376d4c45 SHA512 8d2e34117696f9debf463ae1eed288fdbb5c1a12e32800e901b69218e3b7302a0066052077e2ebca851e3a635296199bd5a10437eea1d6f787f69a77bb865680 -EBUILD ruby-3.1.4-r3.ebuild 8517 BLAKE2B d5d65a391f344b5bafbab680e9104ed214249c9a1af59bf42f0cd7326b5ea3a88510be23c22befc945715ea45fe2cc9be8beeaab9c59cb1e344b1bd54681172e SHA512 47cf354f9621f9ba2c68f7fe36c04979591fcc80124cf89d3d48b96bf1cc1ec242417f098676971e1060d37f1a20d9f4ae08133f925d45c81d60124fd118635d -EBUILD ruby-3.1.5.ebuild 8842 BLAKE2B 31e5da6ecdb45602037d5a1bce209844060271528b39139a3f8c9421c3ffea747fb6602702ee989a12ff08f999586841b24d6e7f05e0fdd2b6ecb5860c866b2b SHA512 3b5deeb36ea66a58907a89c637f8f3a0354ea861a4bab159f211cedef3a48cf3b6f5609d441c9516ea81ab4f032111370ff3da37395f30ca28428aeb0286fffc -EBUILD ruby-3.1.6-r1.ebuild 8913 BLAKE2B 8286499d12dbc8d3936d75235b93d153b16e8a03b92a32277ce430417e1d95fadb2d92e969e6ec3c0b183fd1eb68feecf917897f6af8d784ff426674b3ef0ff9 SHA512 702dee12eab7ac6f6cb990903fbe3a517e1fedecef74b8ec57893c567eeae454d516ee787360291305c00bea1853ec96824420eb005afeb086f489a4d3f8feaa -EBUILD ruby-3.1.6-r2.ebuild 9094 BLAKE2B 9546b202b1a0714b3f20c22736eb6fb9d39b298950a4e2121a6c2950508e01ddbbf5fd8198e5ae2d4bfbb77327bbc9c5e3a241eacc363f7e14d0874bc6c9b208 SHA512 cb315b25f3cbc1f322bd5bd0018466a05575aac7c097a0aff90d0cab14d0ad11e613436ecead1fd2d4379ee0ba10b0a0d1edf4be63debf4676574098e96ffb3b -EBUILD ruby-3.1.6-r3.ebuild 9210 BLAKE2B 1b25f201f7fa919a4794a6403ba10482db6ba99d35c68bab32a639608e38c4442dec7334775ea4fbd3fdb84fe41c4479fbedd15938e33ea1cc0a55d0a4fe01e9 SHA512 706be9348a076548cd216c6607c9896ef3ed916e32520bee467d52d3224fcf1b49351a9d88b084bda52227036b3b639990dd9b9ef61b8846f835d11bef872b1b -EBUILD ruby-3.2.4-r2.ebuild 9788 BLAKE2B 073e9cbcef0904b9a0b02036da3b9df8f98b9033d759116939e47625f14ee8ef27da0c9f4122a596eaded97114a168750a5a2c7ae72b27612852e9fe31879ea2 SHA512 0c5bb6a2072b22c654c1274752dce31541c81fddd7bdc5674e0e05271c69891540310d2d2ddfcb8fc64fbba6b712e9d5f932fc8e1cf4793555e4f41cc6e5ee61 -EBUILD ruby-3.2.4-r3.ebuild 9938 BLAKE2B 415b6ecd80cc7a1714bafba54bed731a454bbdb03ceeb1fff73f52989282e1a56eb826cdc069019889cc4056ceebc20d40951279d1feb20b00088ee9f4dc21b3 SHA512 7402f3660abdf40c2b2329421ec959ba3da50f9a495a7de524e2d8412d20a866dfe82694cf46d19be41e74e60c52ebe754b355ccf79b1fd618f4195038a593cf -EBUILD ruby-3.2.5-r2.ebuild 9353 BLAKE2B 6f4b528a55d584feb489bd24bc425666900e79f5777807cc915a9cebe47533bc729c9834867e73c433cab379967d052d3ad02822694e1af01ad3cdb8317b622c SHA512 106b9dd2b11ea6759e98379190242aa721027ba0cbae77c4eb5e9f6abd609a8e85671d7b46203fdb6c6517183f4630f6f6ca7ae31772a0990aaa063117d0b1fe -EBUILD ruby-3.2.6-r2.ebuild 9359 BLAKE2B 6b5a6f999bee0c942be5fcaaa374c18b1439f525ae456842eaae249cb77f9a5cd5041b3388d49be9dc21f887363e4f98cb9d05a5113e66e5ac0ecc37d8eb5835 SHA512 bec99bddb97c6bb8e475ce16d98b322cac79e0232c5d642cbe71c8d57b784a2d8b902d6af976a0628390187060ad36f580dae6e4d6f12e188f5a7f01d610e645 -EBUILD ruby-3.2.6-r3.ebuild 9402 BLAKE2B 1b3abb683a2012d32908bb0b9b65ea5eea3af0de710ad8f52e10d4aae903aa1f6008da21990faeb666b11baa5e7ee0cd1b907a3c4c92d7a01f4f72fe1bc7b3b4 SHA512 9cebd301ab2f29ef7ee0cec101fb1031767224a06465237099f68f01f8baa18a3f21dca97309b069e1f91c94f4c93ebc806f67d6667f4fe17363a1b42b77039b -EBUILD ruby-3.2.6-r4.ebuild 9518 BLAKE2B f1835631f045120e282ec2a77de5c432cb6d3f2cbe5be1713067c85b5275f2ea15709284418ec7b25164fc617f0e9cdc57845600c37cf787f546b403d6456bc6 SHA512 77057b210a90e99e0c81c0d07d61c34601e9c08ce75a9c6e6e58acfd19f0e8addbf8a56c61cd978511a3b14c20199bd3650ab73d13a7feec534f7d74adabc159 -EBUILD ruby-3.3.4-r2.ebuild 9342 BLAKE2B 1fb9189635dda8aeec17105c784b4fa5b4158853c2d4a51a02f640067b9d6b5ed9e268a99df931f197bb877c6c38b5eea7975775235d3b19909a74ab36339844 SHA512 019a14c2ba878385d12ef1fcfa00c4dcb09c504c5d36817822989b883eb76eca17558cd78548c3777b740346c0db570c1b8c1cc77c593d557685ff1f60fbf19a -EBUILD ruby-3.3.5-r1.ebuild 9342 BLAKE2B 1fb9189635dda8aeec17105c784b4fa5b4158853c2d4a51a02f640067b9d6b5ed9e268a99df931f197bb877c6c38b5eea7975775235d3b19909a74ab36339844 SHA512 019a14c2ba878385d12ef1fcfa00c4dcb09c504c5d36817822989b883eb76eca17558cd78548c3777b740346c0db570c1b8c1cc77c593d557685ff1f60fbf19a -EBUILD ruby-3.3.6-r1.ebuild 9538 BLAKE2B 3033453c764967229bc140d0851881a471c6fb02a8366657787b4b9cb139777443ca9fd50392ffca90b3ff1b91f51ba526bd1a58d4fcd2b471c297fe201ea252 SHA512 d979cd2df7949b4fe22bb5ca28c9a39e6256df024dab2c906d9abb1dec7e843b2c0150d875b27ac07936239a9583cb0b8429105a3436be8f4858a6fecd6789cd +DIST ruby-3.4.2.tar.xz 17218200 BLAKE2B b0054a6f2db9cd6d5c92550b25ddaf131d0f83e33765bcf38e9ffbfcfac090828563f622e7e786467f55e2ac5a9d9779e07ad7942b0e33c9a394d67e4420f0ea SHA512 cb8b5023bce316393716548c5f0a44c7d0240724ff79b995517641266af30bedc6f402c1c8fa27368ea607e2aa6d36bbb201e00c6e9dd2a80d837431d32343b5 +EBUILD ruby-3.1.6-r1.ebuild 8908 BLAKE2B d1f784e2ed287491e3163fd02cc67e60041e0f4b88d0b090db33b47e0f240596739637dcaea2b1d2b1fa8e48696151a03995e851b8d8d13ba0a5669a0d833f05 SHA512 4ab34e37f0e70b48475ae4e865f01ec5b1db309dd634821d77bb765f0e26cd24e91d58532b0bc20fb2aa3e3589a29bcbbd736ca2f8acfe7dbb7d15b6d0eec831 +EBUILD ruby-3.1.6-r3.ebuild 9203 BLAKE2B 216ceb045e2392a8e3966e80ef2fec25b6d7c534ec8cd69941ae4f74eab284899b71392f5c2fbd554b8eea7757816f90cb507afbde415aaee34c96e6a8933219 SHA512 dd4e8e81d6520c662cc5cd2fa2f3533c273f002644489e4cebc6291c8c7e858661d70d3e7d9bbf19460e23ecb52443757c2c970e40b7fe2da54b037cc1ce2ce1 +EBUILD ruby-3.2.6-r2.ebuild 9380 BLAKE2B 6aeffba44f299f96c4e40ef626ad764bbb53674065108ccd64c92083107d2bb2ff43dca95efbbe5507011263b7a0cbec15b51557c8af5ea762af1f27b7e21e0c SHA512 dd3ec646360dea6eec0db0171fac65e1c05aa56e557b424684daf2efe6c9376fe410a8f9e218a1452340fc668966cfddf33c0d9a65c4511ff3f35cf7a03413ef +EBUILD ruby-3.2.6-r4.ebuild 9539 BLAKE2B ecac6bd70da9bbd450ef5527b1528a675e53924cf76f213b4fca961fb3b9a8961b41d83e6619930bf3070e5fe84606e9ea974a70804a58d24efba320d44d4fc3 SHA512 9727b97df85dcc1b0ae184e9c1bad66f8fcce1cfaf14da114401341c2a37a283ed48e2c807790d13d4fc418fbcfcac250b62c794fb089a2455498210d429eede +EBUILD ruby-3.2.7.ebuild 9491 BLAKE2B b6ba59b3b88df73e69c7cacdbd4fb2c2e663d09ca1aa42a082d1ad74ad205ded072657263cae86159c5ef6dc46baf39840b4f18ecc1dc14745e42e3010912062 SHA512 daa0fd9d630087c581772e08e71f046ebf6028844ed957880f8f26f5182a75bc6740f62d0ab507d8a9f29f4426cf75737ba99d6414860b8aa4daae44e77bd342 +EBUILD ruby-3.3.6-r1.ebuild 9566 BLAKE2B afce954e3ebc1bc8d3f3890cb21ee92a6349d1b9752a54d55d0a5cef67d2ce47aa779d658fe5b7574eb82294490c120b9cabb511d72332d9c41f9207fa93dda1 SHA512 47583e13a082a7e9600558108b66f07f20905ee3ea8dddbe2f7008ebc2389d6b0946a5cf3423e9da7e1c91f161d424a003d6b6ed5d0720a2db525488f8b97825 EBUILD ruby-3.3.7-r1.ebuild 9661 BLAKE2B 2305b59565f7cd0d0e67e1a284c44eb23904f36de489e135651d9bc377ab6da60d2b3b00ba9d74fbdaf913fa19528cd12c4d78d673aad2fd9d3f1666053fb6e8 SHA512 1162ed37339f0ccb0883da63cc569a7754f5af801f9661ebe0f15f24541cbc0f904306380dc4f4d1c93b74989b16b94850d13f7277632e2a2c604c46f5aaa789 EBUILD ruby-3.3.7.ebuild 9545 BLAKE2B 5b39ee480f314d821f2de3af5992db6a9b313f396804d9d9af26602cd135cd731a0a3536ff37c0e500e80eba32ef7659826c88584b683a27cb5b8f127260e132 SHA512 eec3947cbce0bf57c2aa140c2a19c1a13c68e0befe872321c00fbe9e32665da059a23f3c6db4e48b6ac68cd62a143ab1220feec3d7729c0fa4835b50e22b8680 EBUILD ruby-3.4.1-r1.ebuild 10351 BLAKE2B 4210db7fecb64e268ca407b623e83260e280be15d1be7ac0c0bcb42e265fc9cb03c5971609ce74ab4f133bb4a8475fb4a65dd8ce56b699df9ebf02aea9614efb SHA512 98e763e3ad4c44e57764412015e0e97c02b9fb64ac4270985a29b1242e3d57f3e48dd15791b4ab1b38fadae07df6cbb0085b49c78a6d8d890de027e20cef58d2 EBUILD ruby-3.4.1.ebuild 10235 BLAKE2B 29946e6df5b2a6b7f981399d0c49e81fc212cd19a67c2ea59b355c4a52a016ab3e2a244592ad5766e8846407f925e62a23124aedef53e5c01ec66116a760736d SHA512 191b74008848bb2b46e008448d093b92ce1a0b98d2bab8b4eba7856b7f5f226806f2c20a022b6dea9b7bd76928fb1f39ff7171141605aa276e69b2bfc2d7bbde -MISC metadata.xml 504 BLAKE2B 49be2bb1dba034b23a8294cca0e5419099b487973a43db31c0edc4b9a2a08eb1b54437b0c7e6a9e6d8a5c0145cd73464f830ec04ca62540416c32b2d094cdd63 SHA512 e9991c588874e36f6a0abb12125bcd3f2b1e787df62d9f7089053959286b56676a9f35c7e82116274f169bfa22359be8df59fca6454be559e7669d2e78dc4c22 +EBUILD ruby-3.4.2.ebuild 10351 BLAKE2B 4210db7fecb64e268ca407b623e83260e280be15d1be7ac0c0bcb42e265fc9cb03c5971609ce74ab4f133bb4a8475fb4a65dd8ce56b699df9ebf02aea9614efb SHA512 98e763e3ad4c44e57764412015e0e97c02b9fb64ac4270985a29b1242e3d57f3e48dd15791b4ab1b38fadae07df6cbb0085b49c78a6d8d890de027e20cef58d2 +MISC metadata.xml 419 BLAKE2B 44eb344b51656aab76dd41ba649b241d985a83733b02d8ec147b8ff041cb492ec2704fe1d53d2a8e2c23f8e0c9351b6fcf0d63215d59703c034680605fc923b3 SHA512 eb72cd0c7ac5134a61a96ab8cf77d01911b7505a4932d322fe0583d72605ac3b1b2380a45e8f3316233401e676e818d734c6a45c44b7fbdf2720b16577326883 diff --git a/dev-lang/ruby/metadata.xml b/dev-lang/ruby/metadata.xml index 628c6c4c66b0..26b6eb68d5bd 100644 --- a/dev-lang/ruby/metadata.xml +++ b/dev-lang/ruby/metadata.xml @@ -6,7 +6,6 @@ <name>Gentoo Ruby Project</name> </maintainer> <use> - <flag name="rdoc">Install <pkg>dev-ruby/rdoc</pkg> after installing Ruby.</flag> <flag name="systemtap">Enable SystemTap/DTrace tracing</flag> </use> <upstream> diff --git a/dev-lang/ruby/ruby-3.1.4-r3.ebuild b/dev-lang/ruby/ruby-3.1.4-r3.ebuild deleted file mode 100644 index 461dacd11510..000000000000 --- a/dev-lang/ruby/ruby-3.1.4-r3.ebuild +++ /dev/null @@ -1,277 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools flag-o-matic multiprocessing - -MY_P="${PN}-$(ver_cut 1-3)" -S=${WORKDIR}/${MY_P} - -SLOT=$(ver_cut 1-2) -MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) -RUBYVERSION=${SLOT}.0 - -DESCRIPTION="An object-oriented scripting language" -HOMEPAGE="https://www.ruby-lang.org/" -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" - -LICENSE="|| ( Ruby-BSD BSD-2 )" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit +rdoc socks5 +ssl static-libs systemtap tk valgrind xemacs" - -RDEPEND=" - berkdb? ( sys-libs/db:= ) - gdbm? ( sys-libs/gdbm:= ) - jemalloc? ( dev-libs/jemalloc:= ) - jit? ( || ( sys-devel/gcc:* llvm-core/clang:* ) ) - ssl? ( - dev-libs/openssl:0= - ) - socks5? ( >=net-proxy/dante-1.1.13 ) - systemtap? ( dev-debug/systemtap ) - tk? ( - dev-lang/tcl:0=[threads] - dev-lang/tk:0=[threads] - ) - dev-libs/libyaml - dev-libs/libffi:= - sys-libs/readline:0= - sys-libs/zlib - virtual/libcrypt:= - >=app-eselect/eselect-ruby-20201225 -" - -DEPEND=" - ${RDEPEND} - valgrind? ( dev-debug/valgrind ) -" - -BUNDLED_GEMS=" - >=dev-ruby/minitest-5.15.0[ruby_targets_ruby31(-)] - >=dev-ruby/power_assert-2.0.1[ruby_targets_ruby31(-)] - >=dev-ruby/rake-13.0.6-r2[ruby_targets_ruby31(-)] - >=dev-ruby/rbs-2.1.0[ruby_targets_ruby31(-)] - >=dev-ruby/rexml-3.2.5[ruby_targets_ruby31(-)] - >=dev-ruby/rss-0.2.9[ruby_targets_ruby31(-)] - >=dev-ruby/test-unit-3.5.3[ruby_targets_ruby31(-)] - >=dev-ruby/typeprof-0.12.2[ruby_targets_ruby31(-)] -" - -PDEPEND=" - ${BUNDLED_GEMS} - virtual/rubygems[ruby_targets_ruby31(-)] - >=dev-ruby/bundler-2.3.3[ruby_targets_ruby31(-)] - >=dev-ruby/did_you_mean-1.6.1[ruby_targets_ruby31(-)] - >=dev-ruby/json-2.6.1[ruby_targets_ruby31(-)] - rdoc? ( >=dev-ruby/rdoc-6.3.3[ruby_targets_ruby31(-)] ) - xemacs? ( app-xemacs/ruby-modes ) -" - -src_prepare() { - eapply "${FILESDIR}"/"${SLOT}"/011*.patch - eapply "${FILESDIR}"/"${SLOT}"/902*.patch - - if use elibc_musl ; then - eapply "${FILESDIR}"/3.1/901-musl-*.patch - fi - - einfo "Unbundling gems..." - cd "$S" - # Remove bundled gems that we will install via PDEPEND, bug - # 539700. - rm -fr gems/* || die - touch gems/bundled_gems || die - # Don't install CLI tools since they will clash with the gem - rm -f bin/{racc,racc2y,y2racc} || die - sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die - - einfo "Removing bundled libraries..." - rm -fr ext/fiddle/libffi-3.2.1 || die - - # Remove tests that are known to fail or require a network connection - rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die - rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb test/resolv/test_addr.rb \ - spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die - sed -i -e '/def test_test/askip "Depends on system setup"' test/ruby/test_file_exhaustive.rb || die - - if use prefix ; then - # Fix hardcoded SHELL var in mkmf library - sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die - - if [[ ${CHOST} == *darwin* ]] ; then - # avoid symlink loop on Darwin (?!) - sed -i \ - -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \ - configure.ac || die - - # make ar/libtool hack for Darwin work - sed -i \ - -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \ - configure.ac || die - - # disable using security framework (GCC barfs on those headers) - sed -i \ - -e 's/MAC_OS_X_VERSION_MIN_REQUIRED/_DISABLED_/' \ - random.c || die - fi - fi - - eapply_user - - eautoreconf -} - -src_configure() { - local modules="win32,win32ole" myconf= - - # Ruby's build system does interesting things with MAKEOPTS and doesn't - # handle MAKEOPTS="-Oline" or similar well. Just filter it all out - # and use -j/-l parsed out from the original MAKEOPTS, then use that. - # Newer Portage sets this option by default in GNUMAKEFLAGS if nothing - # is set by the user in MAKEOPTS. See bug #900929 and bug #728424. - local makeopts_tmp="-j$(makeopts_jobs) -l$(makeopts_loadavg)" - unset MAKEOPTS MAKEFLAGS GNUMAKEFLAGS - export MAKEOPTS="${makeopts_tmp}" - - # -fomit-frame-pointer makes ruby segfault, see bug #150413. - filter-flags -fomit-frame-pointer - # In many places aliasing rules are broken; play it safe - # as it's risky with newer compilers to leave it as it is. - append-flags -fno-strict-aliasing - - # Workaround for bug #938302 - if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then - export DTRACE="${BROOT}"/usr/bin/stap-dtrace - fi - - # Socks support via dante - if use socks5 ; then - # Socks support can't be disabled as long as SOCKS_SERVER is - # set and socks library is present, so need to unset - # SOCKS_SERVER in that case. - unset SOCKS_SERVER - fi - - # Increase GC_MALLOC_LIMIT if set (default is 8000000) - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}" - fi - - # ipv6 hack, bug 168939. Needs --enable-ipv6. - use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET" - - # Determine which modules *not* to build depending in the USE flags. - if ! use berkdb ; then - modules="${modules},dbm" - fi - if ! use gdbm ; then - modules="${modules},gdbm" - fi - if ! use ssl ; then - modules="${modules},openssl" - fi - if ! use tk ; then - modules="${modules},tk" - fi - - # Provide an empty LIBPATHENV because we disable rpath but we do not - # need LD_LIBRARY_PATH by default since that breaks USE=multitarget - # #564272 - INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \ - --program-suffix=${MY_SUFFIX} \ - --with-soname=ruby${MY_SUFFIX} \ - --with-readline-dir="${EPREFIX}"/usr \ - --enable-shared \ - --enable-pthread \ - --disable-rpath \ - --without-baseruby \ - --with-compress-debug-sections=no \ - --enable-mkmf-verbose \ - --with-out-ext="${modules}" \ - $(use_with jemalloc jemalloc) \ - $(use_enable jit jit-support ) \ - $(use_enable socks5 socks) \ - $(use_enable systemtap dtrace) \ - $(use_enable doc install-doc) \ - --enable-ipv6 \ - $(use_enable static-libs static) \ - $(use_enable static-libs install-static-library) \ - $(use_with static-libs static-linked-ext) \ - $(use_enable debug) \ - $(use_with valgrind) \ - ${myconf} \ - --enable-option-checking=no - - # Makefile is broken because it lacks -ldl - rm -rf ext/-test-/popen_deadlock || die -} - -src_compile() { - emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS="" -} - -src_test() { - emake V=1 check -} - -src_install() { - # Remove the remaining bundled gems. We do this late in the process - # since they are used during the build to e.g. create the - # documentation. - einfo "Removing default gems before installation" - rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die - - # Ruby is involved in the install process, we don't want interference here. - unset RUBYOPT - - local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby) - - local -x LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - - if [[ ${CHOST} == *darwin* ]] ; then - local -x DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}" - fi - - local -x RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}" - for d in $(find "${S}/ext" -type d) ; do - RUBYLIB="${RUBYLIB}:$d" - done - - # Create directory for the default gems - local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}" - mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed" - - emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install - - # Remove installed rubygems and rdoc copy - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed" - rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed" - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed" - rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed" - - if use doc; then - emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc - fi - - if use examples; then - dodoc -r sample - fi - - dodoc ChangeLog NEWS.md doc/NEWS* README* -} - -pkg_postinst() { - if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then - eselect ruby set ruby${MY_SUFFIX} - fi - - elog - elog "To switch between available Ruby profiles, execute as root:" - elog "\teselect ruby set ruby(30|31|...)" - elog -} - -pkg_postrm() { - eselect ruby cleanup -} diff --git a/dev-lang/ruby/ruby-3.1.5.ebuild b/dev-lang/ruby/ruby-3.1.5.ebuild deleted file mode 100644 index 2ca55490a087..000000000000 --- a/dev-lang/ruby/ruby-3.1.5.ebuild +++ /dev/null @@ -1,286 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools flag-o-matic multiprocessing - -MY_P="${PN}-$(ver_cut 1-3)" -S=${WORKDIR}/${MY_P} - -SLOT=$(ver_cut 1-2) -MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) -RUBYVERSION=${SLOT}.0 - -DESCRIPTION="An object-oriented scripting language" -HOMEPAGE="https://www.ruby-lang.org/" -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" - -LICENSE="|| ( Ruby-BSD BSD-2 )" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs" - -RDEPEND=" - berkdb? ( sys-libs/db:= ) - gdbm? ( sys-libs/gdbm:= ) - jemalloc? ( dev-libs/jemalloc:= ) - jit? ( || ( sys-devel/gcc:* llvm-core/clang:* ) ) - ssl? ( - dev-libs/openssl:0= - ) - socks5? ( >=net-proxy/dante-1.1.13 ) - systemtap? ( dev-debug/systemtap ) - tk? ( - dev-lang/tcl:0=[threads] - dev-lang/tk:0=[threads] - ) - dev-libs/libyaml - dev-libs/libffi:= - sys-libs/readline:0= - sys-libs/zlib - virtual/libcrypt:= - >=app-eselect/eselect-ruby-20231008 -" - -DEPEND=" - ${RDEPEND} - valgrind? ( dev-debug/valgrind ) -" - -BUNDLED_GEMS=" - >=dev-ruby/irb-1.4.1[ruby_targets_ruby31(-)] - >=dev-ruby/minitest-5.15.0[ruby_targets_ruby31(-)] - >=dev-ruby/power_assert-2.0.1[ruby_targets_ruby31(-)] - >=dev-ruby/rake-13.0.6-r2[ruby_targets_ruby31(-)] - >=dev-ruby/rbs-2.1.0[ruby_targets_ruby31(-)] - >=dev-ruby/rexml-3.2.5[ruby_targets_ruby31(-)] - >=dev-ruby/rss-0.2.9[ruby_targets_ruby31(-)] - >=dev-ruby/test-unit-3.5.3[ruby_targets_ruby31(-)] - >=dev-ruby/typeprof-0.12.2[ruby_targets_ruby31(-)] -" - -PDEPEND=" - ${BUNDLED_GEMS} - virtual/rubygems[ruby_targets_ruby31(-)] - >=dev-ruby/bundler-2.3.3[ruby_targets_ruby31(-)] - >=dev-ruby/did_you_mean-1.6.1[ruby_targets_ruby31(-)] - >=dev-ruby/json-2.6.1[ruby_targets_ruby31(-)] - >=dev-ruby/rdoc-6.3.3[ruby_targets_ruby31(-)] - xemacs? ( app-xemacs/ruby-modes ) -" - -src_prepare() { - eapply "${FILESDIR}"/"${SLOT}"/011*.patch - eapply "${FILESDIR}"/"${SLOT}"/012*.patch - eapply "${FILESDIR}"/"${SLOT}"/020*.patch - eapply "${FILESDIR}"/"${SLOT}"/902*.patch - - if use elibc_musl ; then - eapply "${FILESDIR}"/3.1/901-musl-*.patch - fi - - einfo "Unbundling gems..." - cd "$S" - # Remove bundled gems that we will install via PDEPEND, bug - # 539700. - rm -fr gems/* || die - touch gems/bundled_gems || die - # Don't install CLI tools since they will clash with the gem - rm -f bin/{racc,racc2y,y2racc} || die - sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die - - einfo "Removing bundled libraries..." - rm -fr ext/fiddle/libffi-3.2.1 || die - - # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them. - rm -rf tool/test/webrick || die - - # Remove tests that are known to fail or require a network connection - rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die - rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb test/resolv/test_addr.rb \ - spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die - sed -i -e '/def test_test/askip "Depends on system setup"' test/ruby/test_file_exhaustive.rb || die - - # MJIT is broken and removed in later ruby versions. - rm -f test/ruby/test_jit.rb || die - - if use prefix ; then - # Fix hardcoded SHELL var in mkmf library - sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die - - if [[ ${CHOST} == *darwin* ]] ; then - # avoid symlink loop on Darwin (?!) - sed -i \ - -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \ - configure.ac || die - - # make ar/libtool hack for Darwin work - sed -i \ - -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \ - configure.ac || die - - # disable using security framework (GCC barfs on those headers) - sed -i \ - -e 's/MAC_OS_X_VERSION_MIN_REQUIRED/_DISABLED_/' \ - random.c || die - fi - fi - - eapply_user - - eautoreconf -} - -src_configure() { - local modules="win32,win32ole" myconf= - - # Ruby's build system does interesting things with MAKEOPTS and doesn't - # handle MAKEOPTS="-Oline" or similar well. Just filter it all out - # and use -j/-l parsed out from the original MAKEOPTS, then use that. - # Newer Portage sets this option by default in GNUMAKEFLAGS if nothing - # is set by the user in MAKEOPTS. See bug #900929 and bug #728424. - local makeopts_tmp="-j$(makeopts_jobs) -l$(makeopts_loadavg)" - unset MAKEOPTS MAKEFLAGS GNUMAKEFLAGS - export MAKEOPTS="${makeopts_tmp}" - - # -fomit-frame-pointer makes ruby segfault, see bug #150413. - filter-flags -fomit-frame-pointer - # In many places aliasing rules are broken; play it safe - # as it's risky with newer compilers to leave it as it is. - append-flags -fno-strict-aliasing - - # Workaround for bug #938302 - if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then - export DTRACE="${BROOT}"/usr/bin/stap-dtrace - fi - - # Socks support via dante - if use socks5 ; then - # Socks support can't be disabled as long as SOCKS_SERVER is - # set and socks library is present, so need to unset - # SOCKS_SERVER in that case. - unset SOCKS_SERVER - fi - - # Increase GC_MALLOC_LIMIT if set (default is 8000000) - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}" - fi - - # ipv6 hack, bug 168939. Needs --enable-ipv6. - use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET" - - # Determine which modules *not* to build depending in the USE flags. - if ! use berkdb ; then - modules="${modules},dbm" - fi - if ! use gdbm ; then - modules="${modules},gdbm" - fi - if ! use ssl ; then - modules="${modules},openssl" - fi - if ! use tk ; then - modules="${modules},tk" - fi - - # Provide an empty LIBPATHENV because we disable rpath but we do not - # need LD_LIBRARY_PATH by default since that breaks USE=multitarget - # #564272 - INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \ - --program-suffix=${MY_SUFFIX} \ - --with-soname=ruby${MY_SUFFIX} \ - --with-readline-dir="${EPREFIX}"/usr \ - --enable-shared \ - --enable-pthread \ - --disable-rpath \ - --without-baseruby \ - --with-compress-debug-sections=no \ - --enable-mkmf-verbose \ - --with-out-ext="${modules}" \ - $(use_with jemalloc jemalloc) \ - $(use_enable jit jit-support ) \ - $(use_enable socks5 socks) \ - $(use_enable systemtap dtrace) \ - $(use_enable doc install-doc) \ - --enable-ipv6 \ - $(use_enable static-libs static) \ - $(use_enable static-libs install-static-library) \ - $(use_with static-libs static-linked-ext) \ - $(use_enable debug) \ - $(use_with valgrind) \ - ${myconf} \ - --enable-option-checking=no - - # Makefile is broken because it lacks -ldl - rm -rf ext/-test-/popen_deadlock || die -} - -src_compile() { - emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS="" -} - -src_test() { - emake V=1 check -} - -src_install() { - # Remove the remaining bundled gems. We do this late in the process - # since they are used during the build to e.g. create the - # documentation. - einfo "Removing default gems before installation" - rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die - - # Ruby is involved in the install process, we don't want interference here. - unset RUBYOPT - - local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby) - - local -x LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - - if [[ ${CHOST} == *darwin* ]] ; then - local -x DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}" - fi - - local -x RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}" - for d in $(find "${S}/ext" -type d) ; do - RUBYLIB="${RUBYLIB}:$d" - done - - # Create directory for the default gems - local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}" - mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed" - - emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install - - # Remove installed rubygems and rdoc copy - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed" - rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed" - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed" - rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed" - - if use doc; then - emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc - fi - - if use examples; then - dodoc -r sample - fi - - dodoc ChangeLog NEWS.md doc/NEWS* README* -} - -pkg_postinst() { - if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then - eselect ruby set ruby${MY_SUFFIX} - fi - - elog - elog "To switch between available Ruby profiles, execute as root:" - elog "\teselect ruby set ruby(30|31|...)" - elog -} - -pkg_postrm() { - eselect ruby cleanup -} diff --git a/dev-lang/ruby/ruby-3.1.6-r1.ebuild b/dev-lang/ruby/ruby-3.1.6-r1.ebuild index 58499959ae77..e6ef028a34d2 100644 --- a/dev-lang/ruby/ruby-3.1.6-r1.ebuild +++ b/dev-lang/ruby/ruby-3.1.6-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -17,7 +17,7 @@ HOMEPAGE="https://www.ruby-lang.org/" SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" LICENSE="|| ( Ruby-BSD BSD-2 )" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs" RDEPEND=" diff --git a/dev-lang/ruby/ruby-3.1.6-r2.ebuild b/dev-lang/ruby/ruby-3.1.6-r2.ebuild deleted file mode 100644 index f6241b9409e8..000000000000 --- a/dev-lang/ruby/ruby-3.1.6-r2.ebuild +++ /dev/null @@ -1,285 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools flag-o-matic multiprocessing - -MY_P="${PN}-$(ver_cut 1-3)" -S=${WORKDIR}/${MY_P} - -SLOT=$(ver_cut 1-2) -MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) -RUBYVERSION=${SLOT}.0 - -DESCRIPTION="An object-oriented scripting language" -HOMEPAGE="https://www.ruby-lang.org/" -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" - -LICENSE="|| ( Ruby-BSD BSD-2 )" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs" - -RDEPEND=" - berkdb? ( sys-libs/db:= ) - gdbm? ( sys-libs/gdbm:= ) - jemalloc? ( dev-libs/jemalloc:= ) - jit? ( || ( sys-devel/gcc:* llvm-core/clang:* ) ) - ssl? ( - dev-libs/openssl:0= - ) - socks5? ( >=net-proxy/dante-1.1.13 ) - systemtap? ( dev-debug/systemtap ) - tk? ( - dev-lang/tcl:0=[threads] - dev-lang/tk:0=[threads] - ) - dev-libs/libyaml - dev-libs/libffi:= - sys-libs/readline:0= - sys-libs/zlib - virtual/libcrypt:= - >=app-eselect/eselect-ruby-20231008 -" - -DEPEND=" - ${RDEPEND} - valgrind? ( dev-debug/valgrind ) -" - -BUNDLED_GEMS=" - >=dev-ruby/irb-1.4.1[ruby_targets_ruby31(-)] - >=dev-ruby/minitest-5.15.0[ruby_targets_ruby31(-)] - >=dev-ruby/power_assert-2.0.1[ruby_targets_ruby31(-)] - >=dev-ruby/rake-13.0.6-r2[ruby_targets_ruby31(-)] - >=dev-ruby/rbs-2.1.0[ruby_targets_ruby31(-)] - >=dev-ruby/rexml-3.2.5[ruby_targets_ruby31(-)] - >=dev-ruby/rss-0.2.9[ruby_targets_ruby31(-)] - >=dev-ruby/test-unit-3.5.3[ruby_targets_ruby31(-)] - >=dev-ruby/typeprof-0.12.2[ruby_targets_ruby31(-)] -" - -PDEPEND=" - ${BUNDLED_GEMS} - virtual/rubygems[ruby_targets_ruby31(-)] - >=dev-ruby/bundler-2.3.3[ruby_targets_ruby31(-)] - >=dev-ruby/did_you_mean-1.6.1[ruby_targets_ruby31(-)] - >=dev-ruby/json-2.6.1[ruby_targets_ruby31(-)] - >=dev-ruby/rdoc-6.3.3[ruby_targets_ruby31(-)] - xemacs? ( app-xemacs/ruby-modes ) -" - -src_prepare() { - eapply "${FILESDIR}"/"${SLOT}"/011*.patch - eapply "${FILESDIR}"/"${SLOT}"/012*.patch - eapply "${FILESDIR}"/"${SLOT}"/013*.patch - eapply "${FILESDIR}"/"${SLOT}"/020*.patch - eapply "${FILESDIR}"/"${SLOT}"/902*.patch - - if use elibc_musl ; then - eapply "${FILESDIR}"/3.1/901-musl-*.patch - fi - - einfo "Unbundling gems..." - cd "$S" - # Remove bundled gems that we will install via PDEPEND, bug - # 539700. - rm -fr gems/* || die - touch gems/bundled_gems || die - # Don't install CLI tools since they will clash with the gem - rm -f bin/{racc,racc2y,y2racc} || die - sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die - - einfo "Removing bundled libraries..." - rm -fr ext/fiddle/libffi-3.2.1 || die - - # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them. - rm -rf tool/test/webrick || die - - # Remove tests that are known to fail or require a network connection - rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die - rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb test/resolv/test_addr.rb \ - spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die - sed -i -e '/def test_test/askip "Depends on system setup"' test/ruby/test_file_exhaustive.rb || die - - # MJIT is broken and removed in later ruby versions. - rm -f test/ruby/test_jit.rb || die - - # This test calls out to the system ruby which is not being tested - # and may not be the same version. - sed -e '/test_without_tty/aomit "Calls system ruby"' \ - -i test/readline/test_readline.rb || die - - if use prefix ; then - # Fix hardcoded SHELL var in mkmf library - sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die - fi - - eapply_user - - eautoreconf -} - -src_configure() { - local modules="win32,win32ole" myconf= - - # Ruby's build system does interesting things with MAKEOPTS and doesn't - # handle MAKEOPTS="-Oline" or similar well. Just filter it all out - # and use -j/-l parsed out from the original MAKEOPTS, then use that. - # Newer Portage sets this option by default in GNUMAKEFLAGS if nothing - # is set by the user in MAKEOPTS. See bug #900929 and bug #728424. - local makeopts_tmp="-j$(makeopts_jobs) -l$(makeopts_loadavg)" - unset MAKEOPTS MAKEFLAGS GNUMAKEFLAGS - export MAKEOPTS="${makeopts_tmp}" - - # Avoid a hardcoded path to mkdir to avoid issues with mixed - # usr-merge and normal binary packages, bug #932386. - export ac_cv_path_mkdir=mkdir - - # -fomit-frame-pointer makes ruby segfault, see bug #150413. - filter-flags -fomit-frame-pointer - # In many places aliasing rules are broken; play it safe - # as it's risky with newer compilers to leave it as it is. - append-flags -fno-strict-aliasing - - # Ruby 3.1 does not compile against the gnu23 standard, bug - # #943767. Given that Ruby 3.1 is EOL in March 2025 just opt to use - # the older standard. - append-flags -std=gnu17 - - # Workaround for bug #938302 - if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then - export DTRACE="${BROOT}"/usr/bin/stap-dtrace - fi - - # Socks support via dante - if use socks5 ; then - # Socks support can't be disabled as long as SOCKS_SERVER is - # set and socks library is present, so need to unset - # SOCKS_SERVER in that case. - unset SOCKS_SERVER - fi - - # Increase GC_MALLOC_LIMIT if set (default is 8000000) - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}" - fi - - # ipv6 hack, bug 168939. Needs --enable-ipv6. - use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET" - - # Determine which modules *not* to build depending in the USE flags. - if ! use berkdb ; then - modules="${modules},dbm" - fi - if ! use gdbm ; then - modules="${modules},gdbm" - fi - if ! use ssl ; then - modules="${modules},openssl" - fi - if ! use tk ; then - modules="${modules},tk" - fi - - # Provide an empty LIBPATHENV because we disable rpath but we do not - # need LD_LIBRARY_PATH by default since that breaks USE=multitarget - # #564272 - # except on Darwin, where we really need LIBPATHENV to set the right - # DYLD_ stuff during the invocation of miniruby for it to work - [[ ${CHOST} == *-darwin* ]] || export LIBPATHENV="" - INSTALL="${EPREFIX}/usr/bin/install -c" econf \ - --program-suffix=${MY_SUFFIX} \ - --with-soname=ruby${MY_SUFFIX} \ - --with-readline-dir="${EPREFIX}"/usr \ - --enable-shared \ - --enable-pthread \ - --disable-rpath \ - --without-baseruby \ - --with-compress-debug-sections=no \ - --enable-mkmf-verbose \ - --with-out-ext="${modules}" \ - $(use_with jemalloc jemalloc) \ - $(use_enable jit jit-support ) \ - $(use_enable socks5 socks) \ - $(use_enable systemtap dtrace) \ - $(use_enable doc install-doc) \ - --enable-ipv6 \ - $(use_enable static-libs static) \ - $(use_enable static-libs install-static-library) \ - $(use_with static-libs static-linked-ext) \ - $(use_enable debug) \ - $(use_with valgrind) \ - ${myconf} \ - --enable-option-checking=no - - # Makefile is broken because it lacks -ldl - rm -rf ext/-test-/popen_deadlock || die -} - -src_compile() { - local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS="" -} - -src_test() { - local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - emake V=1 check -} - -src_install() { - # Remove the remaining bundled gems. We do this late in the process - # since they are used during the build to e.g. create the - # documentation. - einfo "Removing default gems before installation" - rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die - - # Ruby is involved in the install process, we don't want interference here. - unset RUBYOPT - - local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby) - - local -x LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - - local -x RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}" - for d in $(find "${S}/ext" -type d) ; do - RUBYLIB="${RUBYLIB}:$d" - done - - # Create directory for the default gems - local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}" - mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed" - - emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install - - # Remove installed rubygems and rdoc copy - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed" - rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed" - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed" - rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed" - - if use doc; then - emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc - fi - - if use examples; then - dodoc -r sample - fi - - dodoc ChangeLog NEWS.md doc/NEWS* README* -} - -pkg_postinst() { - if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then - eselect ruby set ruby${MY_SUFFIX} - fi - - elog - elog "To switch between available Ruby profiles, execute as root:" - elog "\teselect ruby set ruby(30|31|...)" - elog -} - -pkg_postrm() { - eselect ruby cleanup -} diff --git a/dev-lang/ruby/ruby-3.1.6-r3.ebuild b/dev-lang/ruby/ruby-3.1.6-r3.ebuild index 0071dfc446b3..d97d4969166d 100644 --- a/dev-lang/ruby/ruby-3.1.6-r3.ebuild +++ b/dev-lang/ruby/ruby-3.1.6-r3.ebuild @@ -17,7 +17,7 @@ HOMEPAGE="https://www.ruby-lang.org/" SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" LICENSE="|| ( Ruby-BSD BSD-2 )" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs" RDEPEND=" diff --git a/dev-lang/ruby/ruby-3.2.4-r2.ebuild b/dev-lang/ruby/ruby-3.2.4-r2.ebuild deleted file mode 100644 index 229a1aacf8e0..000000000000 --- a/dev-lang/ruby/ruby-3.2.4-r2.ebuild +++ /dev/null @@ -1,308 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -RUST_OPTIONAL="yes" - -inherit autotools flag-o-matic multiprocessing rust - -MY_P="${PN}-$(ver_cut 1-3)" - -DESCRIPTION="An object-oriented scripting language" -HOMEPAGE="https://www.ruby-lang.org/" -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" -S=${WORKDIR}/${MY_P} - -LICENSE="|| ( Ruby-BSD BSD-2 )" -SLOT=$(ver_cut 1-2) -MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) -RUBYVERSION=${SLOT}.0 - -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs" - -RDEPEND=" - berkdb? ( sys-libs/db:= ) - gdbm? ( sys-libs/gdbm:= ) - jemalloc? ( dev-libs/jemalloc:= ) - jit? ( ${RUST_DEPEND} ) - ssl? ( - dev-libs/openssl:0= - ) - socks5? ( >=net-proxy/dante-1.1.13 ) - systemtap? ( dev-debug/systemtap ) - tk? ( - dev-lang/tcl:0=[threads] - dev-lang/tk:0=[threads] - ) - dev-libs/libyaml - dev-libs/libffi:= - sys-libs/readline:0= - sys-libs/zlib - virtual/libcrypt:= - >=app-eselect/eselect-ruby-20231008 -" - -DEPEND=" - ${RDEPEND} - valgrind? ( dev-debug/valgrind ) -" - -BUNDLED_GEMS=" - >=dev-ruby/debug-1.7.1[ruby_targets_ruby32(-)] - >=dev-ruby/irb-1.6.2[ruby_targets_ruby32(-)] - >=dev-ruby/matrix-0.4.2[ruby_targets_ruby32(-)] - >=dev-ruby/minitest-5.16.3[ruby_targets_ruby32(-)] - >=dev-ruby/net-ftp-0.2.0[ruby_targets_ruby32(-)] - >=dev-ruby/net-imap-0.3.4[ruby_targets_ruby32(-)] - >=dev-ruby/net-pop-0.1.2[ruby_targets_ruby32(-)] - >=dev-ruby/net-smtp-0.3.3[ruby_targets_ruby32(-)] - >=dev-ruby/power_assert-2.0.3[ruby_targets_ruby32(-)] - >=dev-ruby/prime-0.1.2[ruby_targets_ruby32(-)] - >=dev-ruby/rake-13.0.6-r2[ruby_targets_ruby32(-)] - >=dev-ruby/rbs-2.8.2[ruby_targets_ruby32(-)] - >=dev-ruby/rexml-3.2.5[ruby_targets_ruby32(-)] - >=dev-ruby/rss-0.2.9[ruby_targets_ruby32(-)] - >=dev-ruby/test-unit-3.5.7[ruby_targets_ruby32(-)] - >=dev-ruby/typeprof-0.21.3[ruby_targets_ruby32(-)] -" - -PDEPEND=" - ${BUNDLED_GEMS} - virtual/rubygems[ruby_targets_ruby32(-)] - >=dev-ruby/bundler-2.3.3[ruby_targets_ruby32(-)] - >=dev-ruby/did_you_mean-1.6.1[ruby_targets_ruby32(-)] - >=dev-ruby/json-2.6.1[ruby_targets_ruby32(-)] - >=dev-ruby/rdoc-6.3.3[ruby_targets_ruby32(-)] - xemacs? ( app-xemacs/ruby-modes ) -" - -pkg_setup() { - use jit && rust_pkg_setup -} - -src_prepare() { - eapply "${FILESDIR}"/"${SLOT}"/010*.patch - eapply "${FILESDIR}"/"${SLOT}"/011*.patch - eapply "${FILESDIR}"/"${SLOT}"/020*.patch - eapply "${FILESDIR}"/"${SLOT}"/902*.patch - - if use elibc_musl ; then - eapply "${FILESDIR}"/${SLOT}/901-musl-*.patch - fi - - einfo "Unbundling gems..." - cd "$S" - # Remove bundled gems that we will install via PDEPEND, bug - # 539700. - rm -fr gems/* || die - touch gems/bundled_gems || die - # Don't install CLI tools since they will clash with the gem - rm -f bin/{racc,racc2y,y2racc} || die - sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die - - # Remove tests that are known to fail or require a network connection - rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die - rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die - - # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them. - rm -rf tool/test/webrick || die - - # Avoid test using the system ruby - sed -i -e '/test_dumb_terminal/aomit "Uses system ruby"' test/reline/test_reline.rb || die - - # Avoid testing against hard-coded blockdev devices that most likely are not available - sed -i -e '/def blockdev/a@blockdev = nil' test/ruby/test_file_exhaustive.rb || die - - # Avoid tests that require gem downloads - sed -i -e '/^test-syntax-suggest/ s/\$(TEST_RUNNABLE)/no/' common.mk || die - sed -i -e '/^check:/ s/\$(TEST_RUNNABLE)-\$(PREPARE_SYNTAX_SUGGEST) test-syntax-suggest//' common.mk || die - - # Avoid test that fails intermittently - sed -i -e '/test_gem_exec_gem_uninstall/aomit "Fails intermittently"' test/rubygems/test_gem_commands_exec_command.rb || die - - if use prefix ; then - # Fix hardcoded SHELL var in mkmf library - sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die - - if [[ ${CHOST} == *darwin* ]] ; then - # avoid symlink loop on Darwin (?!) - sed -i \ - -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \ - configure.ac || die - - # make ar/libtool hack for Darwin work - sed -i \ - -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \ - configure.ac || die - - # disable using security framework (GCC barfs on those headers) - sed -i \ - -e 's/MAC_OS_X_VERSION_MIN_REQUIRED/_DISABLED_/' \ - random.c || die - fi - fi - - eapply_user - - eautoreconf -} - -src_configure() { - local modules="win32,win32ole" myconf= - - # Ruby's build system does interesting things with MAKEOPTS and doesn't - # handle MAKEOPTS="-Oline" or similar well. Just filter it all out - # and use -j/-l parsed out from the original MAKEOPTS, then use that. - # Newer Portage sets this option by default in GNUMAKEFLAGS if nothing - # is set by the user in MAKEOPTS. See bug #900929 and bug #728424. - local makeopts_tmp="-j$(makeopts_jobs) -l$(makeopts_loadavg)" - unset MAKEOPTS MAKEFLAGS GNUMAKEFLAGS - export MAKEOPTS="${makeopts_tmp}" - - # -fomit-frame-pointer makes ruby segfault, see bug #150413. - filter-flags -fomit-frame-pointer - # In many places aliasing rules are broken; play it safe - # as it's risky with newer compilers to leave it as it is. - append-flags -fno-strict-aliasing - - # Workaround for bug #938302 - if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then - export DTRACE="${BROOT}"/usr/bin/stap-dtrace - fi - - # Socks support via dante - if use socks5 ; then - # Socks support can't be disabled as long as SOCKS_SERVER is - # set and socks library is present, so need to unset - # SOCKS_SERVER in that case. - unset SOCKS_SERVER - fi - - # Increase GC_MALLOC_LIMIT if set (default is 8000000) - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}" - fi - - # ipv6 hack, bug 168939. Needs --enable-ipv6. - myconf="${myconf} --with-lookup-order-hack=INET" - - # Determine which modules *not* to build depending in the USE flags. - if ! use berkdb ; then - modules="${modules},dbm" - fi - if ! use gdbm ; then - modules="${modules},gdbm" - fi - if ! use ssl ; then - modules="${modules},openssl" - fi - if ! use tk ; then - modules="${modules},tk" - fi - - # Provide an empty LIBPATHENV because we disable rpath but we do not - # need LD_LIBRARY_PATH by default since that breaks USE=multitarget - # #564272 - INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \ - --program-suffix=${MY_SUFFIX} \ - --with-soname=ruby${MY_SUFFIX} \ - --with-readline-dir="${EPREFIX}"/usr \ - --enable-shared \ - --enable-pthread \ - --disable-rpath \ - --without-baseruby \ - --with-compress-debug-sections=no \ - --enable-mkmf-verbose \ - --with-out-ext="${modules}" \ - $(use_with jemalloc jemalloc) \ - $(use_enable jit jit-support) \ - $(use_enable jit yjit) \ - $(use_enable socks5 socks) \ - $(use_enable systemtap dtrace) \ - $(use_enable doc install-doc) \ - --enable-ipv6 \ - $(use_enable static-libs static) \ - $(use_enable static-libs install-static-library) \ - $(use_with static-libs static-linked-ext) \ - $(use_enable debug) \ - ${myconf} \ - $(use_with valgrind) \ - --enable-option-checking=no - - # Makefile is broken because it lacks -ldl - rm -rf ext/-test-/popen_deadlock || die -} - -src_compile() { - local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS="" -} - -src_test() { - local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - emake V=1 check -} - -src_install() { - # Remove the remaining bundled gems. We do this late in the process - # since they are used during the build to e.g. create the - # documentation. - einfo "Removing default gems before installation" - rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die - - # Ruby is involved in the install process, we don't want interference here. - unset RUBYOPT - - local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby) - - local -x LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - - if [[ ${CHOST} == *darwin* ]] ; then - local -x DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}" - fi - - local -x RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}" - for d in $(find "${S}/ext" -type d) ; do - RUBYLIB="${RUBYLIB}:$d" - done - - # Create directory for the default gems - local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}" - mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed" - - emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install - - # Remove installed rubygems and rdoc copy - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed" - rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed" - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed" - rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed" - - if use doc; then - emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc - fi - - if use examples; then - dodoc -r sample - fi - - dodoc ChangeLog NEWS.md README* - dodoc -r doc -} - -pkg_postinst() { - if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then - eselect ruby set ruby${MY_SUFFIX} - fi - - elog - elog "To switch between available Ruby profiles, execute as root:" - elog "\teselect ruby set ruby(30|31|...)" - elog -} - -pkg_postrm() { - eselect ruby cleanup -} diff --git a/dev-lang/ruby/ruby-3.2.4-r3.ebuild b/dev-lang/ruby/ruby-3.2.4-r3.ebuild deleted file mode 100644 index 1fd84f4d54ed..000000000000 --- a/dev-lang/ruby/ruby-3.2.4-r3.ebuild +++ /dev/null @@ -1,312 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -RUST_OPTIONAL="yes" - -inherit autotools flag-o-matic multiprocessing rust - -MY_P="${PN}-$(ver_cut 1-3)" - -DESCRIPTION="An object-oriented scripting language" -HOMEPAGE="https://www.ruby-lang.org/" -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" -S=${WORKDIR}/${MY_P} - -LICENSE="|| ( Ruby-BSD BSD-2 )" -SLOT=$(ver_cut 1-2) -MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) -RUBYVERSION=${SLOT}.0 - -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs" - -RDEPEND=" - berkdb? ( sys-libs/db:= ) - gdbm? ( sys-libs/gdbm:= ) - jemalloc? ( dev-libs/jemalloc:= ) - jit? ( ${RUST_DEPEND} ) - ssl? ( - dev-libs/openssl:0= - ) - socks5? ( >=net-proxy/dante-1.1.13 ) - systemtap? ( dev-debug/systemtap ) - tk? ( - dev-lang/tcl:0=[threads] - dev-lang/tk:0=[threads] - ) - dev-libs/libyaml - dev-libs/libffi:= - sys-libs/readline:0= - sys-libs/zlib - virtual/libcrypt:= - >=app-eselect/eselect-ruby-20231008 -" - -DEPEND=" - ${RDEPEND} - valgrind? ( dev-debug/valgrind ) -" - -BUNDLED_GEMS=" - >=dev-ruby/debug-1.7.1[ruby_targets_ruby32(-)] - >=dev-ruby/irb-1.6.2[ruby_targets_ruby32(-)] - >=dev-ruby/matrix-0.4.2[ruby_targets_ruby32(-)] - >=dev-ruby/minitest-5.16.3[ruby_targets_ruby32(-)] - >=dev-ruby/net-ftp-0.2.0[ruby_targets_ruby32(-)] - >=dev-ruby/net-imap-0.3.4[ruby_targets_ruby32(-)] - >=dev-ruby/net-pop-0.1.2[ruby_targets_ruby32(-)] - >=dev-ruby/net-smtp-0.3.3[ruby_targets_ruby32(-)] - >=dev-ruby/power_assert-2.0.3[ruby_targets_ruby32(-)] - >=dev-ruby/prime-0.1.2[ruby_targets_ruby32(-)] - >=dev-ruby/rake-13.0.6-r2[ruby_targets_ruby32(-)] - >=dev-ruby/rbs-2.8.2[ruby_targets_ruby32(-)] - >=dev-ruby/rexml-3.2.5[ruby_targets_ruby32(-)] - >=dev-ruby/rss-0.2.9[ruby_targets_ruby32(-)] - >=dev-ruby/test-unit-3.5.7[ruby_targets_ruby32(-)] - >=dev-ruby/typeprof-0.21.3[ruby_targets_ruby32(-)] -" - -PDEPEND=" - ${BUNDLED_GEMS} - virtual/rubygems[ruby_targets_ruby32(-)] - >=dev-ruby/bundler-2.3.3[ruby_targets_ruby32(-)] - >=dev-ruby/did_you_mean-1.6.1[ruby_targets_ruby32(-)] - >=dev-ruby/json-2.6.1[ruby_targets_ruby32(-)] - >=dev-ruby/rdoc-6.3.3[ruby_targets_ruby32(-)] - xemacs? ( app-xemacs/ruby-modes ) -" - -pkg_setup() { - use jit && rust_pkg_setup -} - -src_prepare() { - eapply "${FILESDIR}"/"${SLOT}"/010*.patch - eapply "${FILESDIR}"/"${SLOT}"/011*.patch - eapply "${FILESDIR}"/"${SLOT}"/020*.patch - eapply "${FILESDIR}"/"${SLOT}"/902*.patch - - if use elibc_musl ; then - eapply "${FILESDIR}"/${SLOT}/901-musl-*.patch - fi - - einfo "Unbundling gems..." - cd "$S" - # Remove bundled gems that we will install via PDEPEND, bug - # 539700. - rm -fr gems/* || die - touch gems/bundled_gems || die - # Don't install CLI tools since they will clash with the gem - rm -f bin/{racc,racc2y,y2racc} || die - sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die - - # Remove tests that are known to fail or require a network connection - rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die - rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die - - # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them. - rm -rf tool/test/webrick || die - - # Avoid test using the system ruby - sed -i -e '/test_dumb_terminal/aomit "Uses system ruby"' test/reline/test_reline.rb || die - - # Avoid testing against hard-coded blockdev devices that most likely are not available - sed -i -e '/def blockdev/a@blockdev = nil' test/ruby/test_file_exhaustive.rb || die - - # Avoid tests that require gem downloads - sed -i -e '/^test-syntax-suggest/ s/\$(TEST_RUNNABLE)/no/' common.mk || die - sed -i -e '/^check:/ s/\$(TEST_RUNNABLE)-\$(PREPARE_SYNTAX_SUGGEST) test-syntax-suggest//' common.mk || die - - # Avoid test that fails intermittently - sed -i -e '/test_gem_exec_gem_uninstall/aomit "Fails intermittently"' test/rubygems/test_gem_commands_exec_command.rb || die - - if use prefix ; then - # Fix hardcoded SHELL var in mkmf library - sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die - - if [[ ${CHOST} == *darwin* ]] ; then - # avoid symlink loop on Darwin (?!) - sed -i \ - -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \ - configure.ac || die - - # make ar/libtool hack for Darwin work - sed -i \ - -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \ - configure.ac || die - - # disable using security framework (GCC barfs on those headers) - sed -i \ - -e 's/MAC_OS_X_VERSION_MIN_REQUIRED/_DISABLED_/' \ - random.c || die - fi - fi - - eapply_user - - eautoreconf -} - -src_configure() { - local modules="win32,win32ole" myconf= - - # Ruby's build system does interesting things with MAKEOPTS and doesn't - # handle MAKEOPTS="-Oline" or similar well. Just filter it all out - # and use -j/-l parsed out from the original MAKEOPTS, then use that. - # Newer Portage sets this option by default in GNUMAKEFLAGS if nothing - # is set by the user in MAKEOPTS. See bug #900929 and bug #728424. - local makeopts_tmp="-j$(makeopts_jobs) -l$(makeopts_loadavg)" - unset MAKEOPTS MAKEFLAGS GNUMAKEFLAGS - export MAKEOPTS="${makeopts_tmp}" - - # Avoid a hardcoded path to mkdir to avoid issues with mixed - # usr-merge and normal binary packages, bug #932386. - export ac_cv_path_mkdir=mkdir - - # -fomit-frame-pointer makes ruby segfault, see bug #150413. - filter-flags -fomit-frame-pointer - # In many places aliasing rules are broken; play it safe - # as it's risky with newer compilers to leave it as it is. - append-flags -fno-strict-aliasing - - # Workaround for bug #938302 - if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then - export DTRACE="${BROOT}"/usr/bin/stap-dtrace - fi - - # Socks support via dante - if use socks5 ; then - # Socks support can't be disabled as long as SOCKS_SERVER is - # set and socks library is present, so need to unset - # SOCKS_SERVER in that case. - unset SOCKS_SERVER - fi - - # Increase GC_MALLOC_LIMIT if set (default is 8000000) - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}" - fi - - # ipv6 hack, bug 168939. Needs --enable-ipv6. - myconf="${myconf} --with-lookup-order-hack=INET" - - # Determine which modules *not* to build depending in the USE flags. - if ! use berkdb ; then - modules="${modules},dbm" - fi - if ! use gdbm ; then - modules="${modules},gdbm" - fi - if ! use ssl ; then - modules="${modules},openssl" - fi - if ! use tk ; then - modules="${modules},tk" - fi - - # Provide an empty LIBPATHENV because we disable rpath but we do not - # need LD_LIBRARY_PATH by default since that breaks USE=multitarget - # #564272 - INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \ - --program-suffix=${MY_SUFFIX} \ - --with-soname=ruby${MY_SUFFIX} \ - --with-readline-dir="${EPREFIX}"/usr \ - --enable-shared \ - --enable-pthread \ - --disable-rpath \ - --without-baseruby \ - --with-compress-debug-sections=no \ - --enable-mkmf-verbose \ - --with-out-ext="${modules}" \ - $(use_with jemalloc jemalloc) \ - $(use_enable jit jit-support) \ - $(use_enable jit yjit) \ - $(use_enable socks5 socks) \ - $(use_enable systemtap dtrace) \ - $(use_enable doc install-doc) \ - --enable-ipv6 \ - $(use_enable static-libs static) \ - $(use_enable static-libs install-static-library) \ - $(use_with static-libs static-linked-ext) \ - $(use_enable debug) \ - ${myconf} \ - $(use_with valgrind) \ - --enable-option-checking=no - - # Makefile is broken because it lacks -ldl - rm -rf ext/-test-/popen_deadlock || die -} - -src_compile() { - local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS="" -} - -src_test() { - local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - emake V=1 check -} - -src_install() { - # Remove the remaining bundled gems. We do this late in the process - # since they are used during the build to e.g. create the - # documentation. - einfo "Removing default gems before installation" - rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die - - # Ruby is involved in the install process, we don't want interference here. - unset RUBYOPT - - local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby) - - local -x LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - - if [[ ${CHOST} == *darwin* ]] ; then - local -x DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}" - fi - - local -x RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}" - for d in $(find "${S}/ext" -type d) ; do - RUBYLIB="${RUBYLIB}:$d" - done - - # Create directory for the default gems - local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}" - mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed" - - emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install - - # Remove installed rubygems and rdoc copy - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed" - rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed" - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed" - rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed" - - if use doc; then - emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc - fi - - if use examples; then - dodoc -r sample - fi - - dodoc ChangeLog NEWS.md README* - dodoc -r doc -} - -pkg_postinst() { - if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then - eselect ruby set ruby${MY_SUFFIX} - fi - - elog - elog "To switch between available Ruby profiles, execute as root:" - elog "\teselect ruby set ruby(30|31|...)" - elog -} - -pkg_postrm() { - eselect ruby cleanup -} diff --git a/dev-lang/ruby/ruby-3.2.5-r2.ebuild b/dev-lang/ruby/ruby-3.2.5-r2.ebuild deleted file mode 100644 index 2ee5bd08be07..000000000000 --- a/dev-lang/ruby/ruby-3.2.5-r2.ebuild +++ /dev/null @@ -1,290 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -RUST_OPTIONAL="yes" - -inherit autotools flag-o-matic multiprocessing rust - -MY_P="${PN}-$(ver_cut 1-3)" - -DESCRIPTION="An object-oriented scripting language" -HOMEPAGE="https://www.ruby-lang.org/" -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" -S=${WORKDIR}/${MY_P} - -LICENSE="|| ( Ruby-BSD BSD-2 )" -SLOT=$(ver_cut 1-2) -MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) -RUBYVERSION=${SLOT}.0 - -KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs" - -RDEPEND=" - berkdb? ( sys-libs/db:= ) - gdbm? ( sys-libs/gdbm:= ) - jemalloc? ( dev-libs/jemalloc:= ) - jit? ( ${RUST_DEPEND} ) - ssl? ( - dev-libs/openssl:0= - ) - socks5? ( >=net-proxy/dante-1.1.13 ) - systemtap? ( dev-debug/systemtap ) - tk? ( - dev-lang/tcl:0=[threads] - dev-lang/tk:0=[threads] - ) - dev-libs/libyaml - dev-libs/libffi:= - sys-libs/readline:0= - sys-libs/zlib - virtual/libcrypt:= - >=app-eselect/eselect-ruby-20231008 -" - -DEPEND=" - ${RDEPEND} - valgrind? ( dev-debug/valgrind ) -" - -BUNDLED_GEMS=" - >=dev-ruby/debug-1.7.1[ruby_targets_ruby32(-)] - >=dev-ruby/irb-1.6.2[ruby_targets_ruby32(-)] - >=dev-ruby/matrix-0.4.2[ruby_targets_ruby32(-)] - >=dev-ruby/minitest-5.16.3[ruby_targets_ruby32(-)] - >=dev-ruby/net-ftp-0.2.0[ruby_targets_ruby32(-)] - >=dev-ruby/net-imap-0.3.4[ruby_targets_ruby32(-)] - >=dev-ruby/net-pop-0.1.2[ruby_targets_ruby32(-)] - >=dev-ruby/net-smtp-0.3.3[ruby_targets_ruby32(-)] - >=dev-ruby/power_assert-2.0.3[ruby_targets_ruby32(-)] - >=dev-ruby/prime-0.1.2[ruby_targets_ruby32(-)] - >=dev-ruby/rake-13.0.6-r2[ruby_targets_ruby32(-)] - >=dev-ruby/rbs-2.8.2[ruby_targets_ruby32(-)] - >=dev-ruby/rexml-3.2.5[ruby_targets_ruby32(-)] - >=dev-ruby/rss-0.2.9[ruby_targets_ruby32(-)] - >=dev-ruby/test-unit-3.5.7[ruby_targets_ruby32(-)] - >=dev-ruby/typeprof-0.21.3[ruby_targets_ruby32(-)] -" - -PDEPEND=" - ${BUNDLED_GEMS} - virtual/rubygems[ruby_targets_ruby32(-)] - >=dev-ruby/bundler-2.3.3[ruby_targets_ruby32(-)] - >=dev-ruby/did_you_mean-1.6.1[ruby_targets_ruby32(-)] - >=dev-ruby/json-2.6.1[ruby_targets_ruby32(-)] - >=dev-ruby/rdoc-6.3.3[ruby_targets_ruby32(-)] - xemacs? ( app-xemacs/ruby-modes ) -" - -pkg_setup() { - use jit && rust_pkg_setup -} - -src_prepare() { - eapply "${FILESDIR}"/"${SLOT}"/010*.patch - eapply "${FILESDIR}"/"${SLOT}"/011*.patch - eapply "${FILESDIR}"/"${SLOT}"/013*.patch - eapply "${FILESDIR}"/"${SLOT}"/902*.patch - - if use elibc_musl ; then - eapply "${FILESDIR}"/${SLOT}/901-musl-*.patch - fi - - einfo "Unbundling gems..." - cd "$S" - # Remove bundled gems that we will install via PDEPEND, bug - # 539700. - rm -fr gems/* || die - touch gems/bundled_gems || die - # Don't install CLI tools since they will clash with the gem - rm -f bin/{racc,racc2y,y2racc} || die - sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die - - # Remove tests that are known to fail or require a network connection - rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die - rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die - - # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them. - rm -rf tool/test/webrick || die - - # Avoid test using the system ruby - sed -i -e '/test_dumb_terminal/aomit "Uses system ruby"' test/reline/test_reline.rb || die - - # Avoid testing against hard-coded blockdev devices that most likely are not available - sed -i -e '/def blockdev/a@blockdev = nil' test/ruby/test_file_exhaustive.rb || die - - # Avoid tests that require gem downloads - sed -i -e '/^test-syntax-suggest/ s/\$(TEST_RUNNABLE)/no/' common.mk || die - sed -i -e '/^check:/ s/\$(TEST_RUNNABLE)-\$(PREPARE_SYNTAX_SUGGEST) test-syntax-suggest//' common.mk || die - - # Avoid test that fails intermittently - sed -i -e '/test_gem_exec_gem_uninstall/aomit "Fails intermittently"' test/rubygems/test_gem_commands_exec_command.rb || die - - if use prefix ; then - # Fix hardcoded SHELL var in mkmf library - sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die - fi - - eapply_user - - eautoreconf -} - -src_configure() { - local modules="win32,win32ole" myconf= - - # Ruby's build system does interesting things with MAKEOPTS and doesn't - # handle MAKEOPTS="-Oline" or similar well. Just filter it all out - # and use -j/-l parsed out from the original MAKEOPTS, then use that. - # Newer Portage sets this option by default in GNUMAKEFLAGS if nothing - # is set by the user in MAKEOPTS. See bug #900929 and bug #728424. - local makeopts_tmp="-j$(makeopts_jobs) -l$(makeopts_loadavg)" - unset MAKEOPTS MAKEFLAGS GNUMAKEFLAGS - export MAKEOPTS="${makeopts_tmp}" - - # Avoid a hardcoded path to mkdir to avoid issues with mixed - # usr-merge and normal binary packages, bug #932386. - export ac_cv_path_mkdir=mkdir - - # -fomit-frame-pointer makes ruby segfault, see bug #150413. - filter-flags -fomit-frame-pointer - # In many places aliasing rules are broken; play it safe - # as it's risky with newer compilers to leave it as it is. - append-flags -fno-strict-aliasing - - # Workaround for bug #938302 - if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then - export DTRACE="${BROOT}"/usr/bin/stap-dtrace - fi - - # Socks support via dante - if use socks5 ; then - # Socks support can't be disabled as long as SOCKS_SERVER is - # set and socks library is present, so need to unset - # SOCKS_SERVER in that case. - unset SOCKS_SERVER - fi - - # Increase GC_MALLOC_LIMIT if set (default is 8000000) - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}" - fi - - # Determine which modules *not* to build depending in the USE flags. - if ! use berkdb ; then - modules="${modules},dbm" - fi - if ! use gdbm ; then - modules="${modules},gdbm" - fi - if ! use ssl ; then - modules="${modules},openssl" - fi - if ! use tk ; then - modules="${modules},tk" - fi - - # Provide an empty LIBPATHENV because we disable rpath but we do not - # need LD_LIBRARY_PATH by default since that breaks USE=multitarget - # #564272 - # except on Darwin, where we really need LIBPATHENV to set the right - # DYLD_ stuff during the invocation of miniruby for it to work - [[ ${CHOST} == *-darwin* ]] || export LIBPATHENV="" - INSTALL="${EPREFIX}/usr/bin/install -c" econf \ - --program-suffix=${MY_SUFFIX} \ - --with-soname=ruby${MY_SUFFIX} \ - --with-readline-dir="${EPREFIX}"/usr \ - --enable-shared \ - --enable-pthread \ - --disable-rpath \ - --without-baseruby \ - --with-compress-debug-sections=no \ - --enable-mkmf-verbose \ - --with-out-ext="${modules}" \ - $(use_with jemalloc jemalloc) \ - $(use_enable jit jit-support) \ - $(use_enable jit yjit) \ - $(use_enable socks5 socks) \ - $(use_enable systemtap dtrace) \ - $(use_enable doc install-doc) \ - $(use_enable static-libs static) \ - $(use_enable static-libs install-static-library) \ - $(use_with static-libs static-linked-ext) \ - $(use_enable debug) \ - ${myconf} \ - $(use_with valgrind) \ - --enable-option-checking=no - - # Makefile is broken because it lacks -ldl - rm -rf ext/-test-/popen_deadlock || die -} - -src_compile() { - local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS="" -} - -src_test() { - local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - emake V=1 check -} - -src_install() { - # Remove the remaining bundled gems. We do this late in the process - # since they are used during the build to e.g. create the - # documentation. - einfo "Removing default gems before installation" - rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die - - # Ruby is involved in the install process, we don't want interference here. - unset RUBYOPT - - local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby) - - local -x LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - - local -x RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}" - for d in $(find "${S}/ext" -type d) ; do - RUBYLIB="${RUBYLIB}:$d" - done - - # Create directory for the default gems - local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}" - mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed" - - emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install - - # Remove installed rubygems and rdoc copy - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed" - rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed" - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed" - rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed" - - if use doc; then - emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc - fi - - if use examples; then - dodoc -r sample - fi - - dodoc ChangeLog NEWS.md README* - dodoc -r doc -} - -pkg_postinst() { - if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then - eselect ruby set ruby${MY_SUFFIX} - fi - - elog - elog "To switch between available Ruby profiles, execute as root:" - elog "\teselect ruby set ruby(30|31|...)" - elog -} - -pkg_postrm() { - eselect ruby cleanup -} diff --git a/dev-lang/ruby/ruby-3.2.6-r2.ebuild b/dev-lang/ruby/ruby-3.2.6-r2.ebuild index 693a1d1386c9..648fd0744bb5 100644 --- a/dev-lang/ruby/ruby-3.2.6-r2.ebuild +++ b/dev-lang/ruby/ruby-3.2.6-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -8,18 +8,19 @@ RUST_OPTIONAL="yes" inherit autotools flag-o-matic multiprocessing rust MY_P="${PN}-$(ver_cut 1-3)" +MY_SLOT=$(ver_cut 1-2) +MY_SUFFIX=$(ver_rs 1 '' ${MY_SLOT}) +RUBYVERSION=${MY_SLOT}.0 DESCRIPTION="An object-oriented scripting language" HOMEPAGE="https://www.ruby-lang.org/" -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" +SRC_URI="https://cache.ruby-lang.org/pub/ruby/${MY_SLOT}/${MY_P}.tar.xz" S=${WORKDIR}/${MY_P} LICENSE="|| ( Ruby-BSD BSD-2 )" -SLOT=$(ver_cut 1-2) -MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) -RUBYVERSION=${SLOT}.0 +SLOT=${MY_SLOT} -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs" RDEPEND=" diff --git a/dev-lang/ruby/ruby-3.2.6-r4.ebuild b/dev-lang/ruby/ruby-3.2.6-r4.ebuild index d08d1ea44138..65d3f07e2a18 100644 --- a/dev-lang/ruby/ruby-3.2.6-r4.ebuild +++ b/dev-lang/ruby/ruby-3.2.6-r4.ebuild @@ -8,18 +8,19 @@ RUST_OPTIONAL="yes" inherit autotools flag-o-matic multiprocessing rust MY_P="${PN}-$(ver_cut 1-3)" +MY_SLOT=$(ver_cut 1-2) +MY_SUFFIX=$(ver_rs 1 '' ${MY_SLOT}) +RUBYVERSION=${MY_SLOT}.0 DESCRIPTION="An object-oriented scripting language" HOMEPAGE="https://www.ruby-lang.org/" -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" +SRC_URI="https://cache.ruby-lang.org/pub/ruby/${MY_SLOT}/${MY_P}.tar.xz" S=${WORKDIR}/${MY_P} LICENSE="|| ( Ruby-BSD BSD-2 )" -SLOT=$(ver_cut 1-2) -MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) -RUBYVERSION=${SLOT}.0 +SLOT=${MY_SLOT} -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs" RDEPEND=" diff --git a/dev-lang/ruby/ruby-3.2.6-r3.ebuild b/dev-lang/ruby/ruby-3.2.7.ebuild index f29355c9117c..04dd40b47479 100644 --- a/dev-lang/ruby/ruby-3.2.6-r3.ebuild +++ b/dev-lang/ruby/ruby-3.2.7.ebuild @@ -11,7 +11,7 @@ MY_P="${PN}-$(ver_cut 1-3)" DESCRIPTION="An object-oriented scripting language" HOMEPAGE="https://www.ruby-lang.org/" -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" +SRC_URI="https://cache.ruby-lang.org/pub/ruby/$(ver_cut 1-2)/${MY_P}.tar.xz" S=${WORKDIR}/${MY_P} LICENSE="|| ( Ruby-BSD BSD-2 )" @@ -19,7 +19,7 @@ SLOT=$(ver_cut 1-2) MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) RUBYVERSION=${SLOT}.0 -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs" RDEPEND=" @@ -86,7 +86,6 @@ src_prepare() { eapply "${FILESDIR}"/"${SLOT}"/010*.patch eapply "${FILESDIR}"/"${SLOT}"/011*.patch eapply "${FILESDIR}"/"${SLOT}"/013*.patch - eapply "${FILESDIR}"/"${SLOT}"/014*.patch eapply "${FILESDIR}"/"${SLOT}"/902*.patch if use elibc_musl ; then @@ -105,7 +104,8 @@ src_prepare() { # Remove tests that are known to fail or require a network connection rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die - rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die + rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb \ + test/fiber/test_address_resolve.rb spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them. rm -rf tool/test/webrick || die @@ -121,7 +121,8 @@ src_prepare() { sed -i -e '/^check:/ s/\$(TEST_RUNNABLE)-\$(PREPARE_SYNTAX_SUGGEST) test-syntax-suggest//' common.mk || die # Avoid test that fails intermittently - sed -i -e '/test_gem_exec_gem_uninstall/aomit "Fails intermittently"' test/rubygems/test_gem_commands_exec_command.rb || die + sed -e '/test_gem_exec_gem_uninstall/aomit "Fails intermittently"' \ + -i test/rubygems/test_gem_commands_exec_command.rb || die if use prefix ; then # Fix hardcoded SHELL var in mkmf library @@ -151,6 +152,7 @@ src_configure() { # -fomit-frame-pointer makes ruby segfault, see bug #150413. filter-flags -fomit-frame-pointer + append-flags -fno-omit-frame-pointer # In many places aliasing rules are broken; play it safe # as it's risky with newer compilers to leave it as it is. append-flags -fno-strict-aliasing @@ -192,6 +194,8 @@ src_configure() { # #564272 # except on Darwin, where we really need LIBPATHENV to set the right # DYLD_ stuff during the invocation of miniruby for it to work + # + # --with-setjmp-type=setjmp for bug #949016 [[ ${CHOST} == *-darwin* ]] || export LIBPATHENV="" INSTALL="${EPREFIX}/usr/bin/install -c" econf \ --program-suffix=${MY_SUFFIX} \ @@ -202,6 +206,7 @@ src_configure() { --disable-rpath \ --without-baseruby \ --with-compress-debug-sections=no \ + --with-setjmp-type=setjmp \ --enable-mkmf-verbose \ --with-out-ext="${modules}" \ $(use_with jemalloc jemalloc) \ diff --git a/dev-lang/ruby/ruby-3.3.5-r1.ebuild b/dev-lang/ruby/ruby-3.3.5-r1.ebuild deleted file mode 100644 index a48e45203585..000000000000 --- a/dev-lang/ruby/ruby-3.3.5-r1.ebuild +++ /dev/null @@ -1,294 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -RUST_OPTIONAL="yes" - -inherit autotools flag-o-matic multiprocessing rust - -MY_P="${PN}-$(ver_cut 1-3)" - -DESCRIPTION="An object-oriented scripting language" -HOMEPAGE="https://www.ruby-lang.org/" -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" -S=${WORKDIR}/${MY_P} - -LICENSE="|| ( Ruby-BSD BSD-2 )" -SLOT=$(ver_cut 1-2) -MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) -RUBYVERSION=${SLOT}.0 - -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs" - -RDEPEND=" - berkdb? ( sys-libs/db:= ) - gdbm? ( sys-libs/gdbm:= ) - jemalloc? ( dev-libs/jemalloc:= ) - jit? ( ${RUST_DEPEND} ) - ssl? ( - dev-libs/openssl:0= - ) - socks5? ( >=net-proxy/dante-1.1.13 ) - systemtap? ( dev-debug/systemtap ) - tk? ( - dev-lang/tcl:0=[threads] - dev-lang/tk:0=[threads] - ) - dev-libs/libyaml - dev-libs/libffi:= - sys-libs/zlib - virtual/libcrypt:= - >=app-eselect/eselect-ruby-20231226 -" - -DEPEND=" - ${RDEPEND} - valgrind? ( dev-debug/valgrind ) -" - -BUNDLED_GEMS=" - >=dev-ruby/debug-1.9.1[ruby_targets_ruby33(-)] - >=dev-ruby/irb-1.11.0[ruby_targets_ruby33(-)] - >=dev-ruby/matrix-0.4.2[ruby_targets_ruby33(-)] - >=dev-ruby/minitest-5.20.0[ruby_targets_ruby33(-)] - >=dev-ruby/net-ftp-0.3.3[ruby_targets_ruby33(-)] - >=dev-ruby/net-imap-0.4.9[ruby_targets_ruby33(-)] - >=dev-ruby/net-pop-0.1.2[ruby_targets_ruby33(-)] - >=dev-ruby/net-smtp-0.4.0[ruby_targets_ruby33(-)] - >=dev-ruby/power_assert-2.0.3[ruby_targets_ruby33(-)] - >=dev-ruby/prime-0.1.2[ruby_targets_ruby33(-)] - >=dev-ruby/racc-1.7.3[ruby_targets_ruby33(-)] - >=dev-ruby/rake-13.1.0[ruby_targets_ruby33(-)] - >=dev-ruby/rbs-3.4.0[ruby_targets_ruby33(-)] - >=dev-ruby/rexml-3.2.8[ruby_targets_ruby33(-)] - >=dev-ruby/rss-0.3.0[ruby_targets_ruby33(-)] - >=dev-ruby/test-unit-3.6.1[ruby_targets_ruby33(-)] - >=dev-ruby/typeprof-0.21.9[ruby_targets_ruby33(-)] -" - -PDEPEND=" - ${BUNDLED_GEMS} - virtual/rubygems[ruby_targets_ruby33(-)] - >=dev-ruby/bundler-2.5.11[ruby_targets_ruby33(-)] - >=dev-ruby/did_you_mean-1.6.3[ruby_targets_ruby33(-)] - >=dev-ruby/json-2.7.1[ruby_targets_ruby33(-)] - >=dev-ruby/rdoc-6.6.2[ruby_targets_ruby33(-)] - xemacs? ( app-xemacs/ruby-modes ) -" - -pkg_setup() { - use jit && rust_pkg_setup -} - -src_prepare() { - eapply "${FILESDIR}"/"${SLOT}"/010*.patch - eapply "${FILESDIR}"/"${SLOT}"/013*.patch - eapply "${FILESDIR}"/"${SLOT}"/902*.patch - - if use elibc_musl ; then - eapply "${FILESDIR}"/${SLOT}/901-musl-*.patch - fi - - einfo "Unbundling gems..." - cd "$S" - # Remove bundled gems that we will install via PDEPEND, bug - # 539700. - rm -fr gems/* || die - touch gems/bundled_gems || die - - # Avoid the irb default gemspec since we will install the normal gem - # instead. This avoids a file collision with dev-ruby/irb. - rm lib/irb/irb.gemspec || die - - # Remove tests that are known to fail or require a network connection - rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die - rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb \ - spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die - - # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them. - rm -rf tool/test/webrick || die - - # Avoid test using the system ruby - sed -i -e '/test_dumb_terminal/aomit "Uses system ruby"' test/reline/test_reline.rb || die - - # Avoid testing against hard-coded blockdev devices that most likely are not available - sed -i -e '/def blockdev/a@blockdev = nil' test/ruby/test_file_exhaustive.rb || die - - # Avoid tests that require gem downloads - sed -e '/^\(test-syntax-suggest\|PREPARE_SYNTAX_SUGGEST\)/ s/\$(TEST_RUNNABLE)/no/' \ - -i common.mk - - # Avoid test that fails intermittently - sed -e '/test_gem_exec_gem_uninstall/aomit "Fails intermittently"' \ - -i test/rubygems/test_gem_commands_exec_command.rb || die - - if use prefix ; then - # Fix hardcoded SHELL var in mkmf library - sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die - fi - - eapply_user - - eautoreconf -} - -src_configure() { - local modules="win32,win32ole" myconf= - - # Ruby's build system does interesting things with MAKEOPTS and doesn't - # handle MAKEOPTS="-Oline" or similar well. Just filter it all out - # and use -j/-l parsed out from the original MAKEOPTS, then use that. - # Newer Portage sets this option by default in GNUMAKEFLAGS if nothing - # is set by the user in MAKEOPTS. See bug #900929 and bug #728424. - local makeopts_tmp="-j$(makeopts_jobs) -l$(makeopts_loadavg)" - unset MAKEOPTS MAKEFLAGS GNUMAKEFLAGS - export MAKEOPTS="${makeopts_tmp}" - - # Avoid a hardcoded path to mkdir to avoid issues with mixed - # usr-merge and normal binary packages, bug #932386. - export ac_cv_path_mkdir=mkdir - - # -fomit-frame-pointer makes ruby segfault, see bug #150413. - filter-flags -fomit-frame-pointer - # In many places aliasing rules are broken; play it safe - # as it's risky with newer compilers to leave it as it is. - append-flags -fno-strict-aliasing - - # Workaround for bug #938302 - if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then - export DTRACE="${BROOT}"/usr/bin/stap-dtrace - fi - - # Socks support via dante - if use socks5 ; then - # Socks support can't be disabled as long as SOCKS_SERVER is - # set and socks library is present, so need to unset - # SOCKS_SERVER in that case. - unset SOCKS_SERVER - fi - - # Increase GC_MALLOC_LIMIT if set (default is 8000000) - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}" - fi - - # Determine which modules *not* to build depending in the USE flags. - if ! use berkdb ; then - modules="${modules},dbm" - fi - if ! use gdbm ; then - modules="${modules},gdbm" - fi - if ! use ssl ; then - modules="${modules},openssl" - fi - if ! use tk ; then - modules="${modules},tk" - fi - - # Fix co-routine selection for x32, bug 933070 - [[ ${CHOST} == *gnux32 ]] && myconf="${myconf} --with-coroutine=amd64" - - # Provide an empty LIBPATHENV because we disable rpath but we do not - # need LD_LIBRARY_PATH by default since that breaks USE=multitarget - # #564272 - # except on Darwin, where we really need LIBPATHENV to set the right - # DYLD_ stuff during the invocation of miniruby for it to work - [[ ${CHOST} == *-darwin* ]] || export LIBPATHENV="" - INSTALL="${EPREFIX}/usr/bin/install -c" econf \ - --program-suffix=${MY_SUFFIX} \ - --with-soname=ruby${MY_SUFFIX} \ - --enable-shared \ - --enable-pthread \ - --disable-rpath \ - --without-baseruby \ - --with-compress-debug-sections=no \ - --enable-mkmf-verbose \ - --with-out-ext="${modules}" \ - $(use_with jemalloc jemalloc) \ - $(use_enable jit jit-support) \ - $(use_enable jit yjit) \ - $(use_enable socks5 socks) \ - $(use_enable systemtap dtrace) \ - $(use_enable doc install-doc) \ - $(use_enable static-libs static) \ - $(use_enable static-libs install-static-library) \ - $(use_with static-libs static-linked-ext) \ - $(use_enable debug) \ - ${myconf} \ - $(use_with valgrind) \ - --enable-option-checking=no - - # Makefile is broken because it lacks -ldl - rm -rf ext/-test-/popen_deadlock || die -} - -src_compile() { - local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS="" -} - -src_test() { - local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - emake V=1 check -} - -src_install() { - # Remove the remaining bundled gems. We do this late in the process - # since they are used during the build to e.g. create the - # documentation. - einfo "Removing default gems before installation" - rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die - - # Ruby is involved in the install process, we don't want interference here. - unset RUBYOPT - - local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby) - - local -x LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}" - - local -x RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}" - for d in $(find "${S}/ext" -type d) ; do - RUBYLIB="${RUBYLIB}:$d" - done - - # Create directory for the default gems - local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}" - mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed" - - emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install - - # Remove installed rubygems and rdoc copy - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed" - rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed" - rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed" - rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed" - - if use doc; then - emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc - fi - - if use examples; then - dodoc -r sample - fi - - dodoc ChangeLog NEWS.md README* - dodoc -r doc -} - -pkg_postinst() { - if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then - eselect ruby set ruby${MY_SUFFIX} - fi - - elog - elog "To switch between available Ruby profiles, execute as root:" - elog "\teselect ruby set ruby(30|31|...)" - elog -} - -pkg_postrm() { - eselect ruby cleanup -} diff --git a/dev-lang/ruby/ruby-3.3.6-r1.ebuild b/dev-lang/ruby/ruby-3.3.6-r1.ebuild index 7680cec58196..ac5614b89347 100644 --- a/dev-lang/ruby/ruby-3.3.6-r1.ebuild +++ b/dev-lang/ruby/ruby-3.3.6-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -8,16 +8,17 @@ RUST_OPTIONAL="yes" inherit autotools flag-o-matic multiprocessing rust MY_P="${PN}-$(ver_cut 1-3)" +MY_SLOT=$(ver_cut 1-2) +MY_SUFFIX=$(ver_rs 1 '' ${MY_SLOT}) +RUBYVERSION=${MY_SLOT}.0 DESCRIPTION="An object-oriented scripting language" HOMEPAGE="https://www.ruby-lang.org/" -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" +SRC_URI="https://cache.ruby-lang.org/pub/ruby/${MY_SLOT}/${MY_P}.tar.xz" S=${WORKDIR}/${MY_P} LICENSE="|| ( Ruby-BSD BSD-2 )" -SLOT=$(ver_cut 1-2) -MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) -RUBYVERSION=${SLOT}.0 +SLOT=${MY_SLOT} KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs" diff --git a/dev-lang/ruby/ruby-3.3.4-r2.ebuild b/dev-lang/ruby/ruby-3.4.2.ebuild index a48e45203585..3f9f07ce7cb7 100644 --- a/dev-lang/ruby/ruby-3.3.4-r2.ebuild +++ b/dev-lang/ruby/ruby-3.4.2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -11,7 +11,7 @@ MY_P="${PN}-$(ver_cut 1-3)" DESCRIPTION="An object-oriented scripting language" HOMEPAGE="https://www.ruby-lang.org/" -SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz" +SRC_URI="https://cache.ruby-lang.org/pub/ruby/$(ver_cut 1-2)/${MY_P}.tar.xz" S=${WORKDIR}/${MY_P} LICENSE="|| ( Ruby-BSD BSD-2 )" @@ -40,7 +40,7 @@ RDEPEND=" dev-libs/libffi:= sys-libs/zlib virtual/libcrypt:= - >=app-eselect/eselect-ruby-20231226 + >=app-eselect/eselect-ruby-20241225 " DEPEND=" @@ -49,32 +49,46 @@ DEPEND=" " BUNDLED_GEMS=" - >=dev-ruby/debug-1.9.1[ruby_targets_ruby33(-)] - >=dev-ruby/irb-1.11.0[ruby_targets_ruby33(-)] - >=dev-ruby/matrix-0.4.2[ruby_targets_ruby33(-)] - >=dev-ruby/minitest-5.20.0[ruby_targets_ruby33(-)] - >=dev-ruby/net-ftp-0.3.3[ruby_targets_ruby33(-)] - >=dev-ruby/net-imap-0.4.9[ruby_targets_ruby33(-)] - >=dev-ruby/net-pop-0.1.2[ruby_targets_ruby33(-)] - >=dev-ruby/net-smtp-0.4.0[ruby_targets_ruby33(-)] - >=dev-ruby/power_assert-2.0.3[ruby_targets_ruby33(-)] - >=dev-ruby/prime-0.1.2[ruby_targets_ruby33(-)] - >=dev-ruby/racc-1.7.3[ruby_targets_ruby33(-)] - >=dev-ruby/rake-13.1.0[ruby_targets_ruby33(-)] - >=dev-ruby/rbs-3.4.0[ruby_targets_ruby33(-)] - >=dev-ruby/rexml-3.2.8[ruby_targets_ruby33(-)] - >=dev-ruby/rss-0.3.0[ruby_targets_ruby33(-)] - >=dev-ruby/test-unit-3.6.1[ruby_targets_ruby33(-)] - >=dev-ruby/typeprof-0.21.9[ruby_targets_ruby33(-)] + >=dev-ruby/minitest-5.25.4[ruby_targets_ruby34(-)] + >=dev-ruby/power_assert-2.0.5[ruby_targets_ruby34(-)] + >=dev-ruby/rake-13.2.1[ruby_targets_ruby34(-)] + >=dev-ruby/test-unit-3.6.7[ruby_targets_ruby34(-)] + >=dev-ruby/rexml-3.4.0[ruby_targets_ruby34(-)] + >=dev-ruby/rss-0.3.1[ruby_targets_ruby34(-)] + >=dev-ruby/net-ftp-0.3.8[ruby_targets_ruby34(-)] + >=dev-ruby/net-imap-0.5.4[ruby_targets_ruby34(-)] + >=dev-ruby/net-pop-0.1.2[ruby_targets_ruby34(-)] + >=dev-ruby/net-smtp-0.5.0[ruby_targets_ruby34(-)] + >=dev-ruby/matrix-0.4.2[ruby_targets_ruby34(-)] + >=dev-ruby/prime-0.1.3[ruby_targets_ruby34(-)] + >=dev-ruby/rbs-3.8.0[ruby_targets_ruby34(-)] + >=dev-ruby/typeprof-0.30.1[ruby_targets_ruby34(-)] + >=dev-ruby/debug-1.10.0[ruby_targets_ruby34(-)] + >=dev-ruby/racc-1.8.1[ruby_targets_ruby34(-)] + + >=dev-ruby/mutex_m-0.3.0[ruby_targets_ruby34(-)] + >=dev-ruby/getoptlong-0.2.1[ruby_targets_ruby34(-)] + >=dev-ruby/base64-0.2.0[ruby_targets_ruby34(-)] + >=dev-ruby/bigdecimal-3.1.8[ruby_targets_ruby34(-)] + >=dev-ruby/observer-0.1.2[ruby_targets_ruby34(-)] + >=dev-ruby/abbrev-0.1.2[ruby_targets_ruby34(-)] + >=dev-ruby/resolv-replace-0.1.1[ruby_targets_ruby34(-)] + >=dev-ruby/rinda-0.2.0[ruby_targets_ruby34(-)] + >=dev-ruby/drb-2.2.1[ruby_targets_ruby34(-)] + >=dev-ruby/nkf-0.2.0[ruby_targets_ruby34(-)] + >=dev-ruby/syslog-0.2.0[ruby_targets_ruby34(-)] + >=dev-ruby/csv-3.3.2[ruby_targets_ruby34(-)] + >=dev-ruby/repl_type_completor-0.1.9[ruby_targets_ruby34(-)] " PDEPEND=" ${BUNDLED_GEMS} - virtual/rubygems[ruby_targets_ruby33(-)] - >=dev-ruby/bundler-2.5.11[ruby_targets_ruby33(-)] - >=dev-ruby/did_you_mean-1.6.3[ruby_targets_ruby33(-)] - >=dev-ruby/json-2.7.1[ruby_targets_ruby33(-)] - >=dev-ruby/rdoc-6.6.2[ruby_targets_ruby33(-)] + virtual/rubygems[ruby_targets_ruby34(-)] + >=dev-ruby/bundler-2.5.11[ruby_targets_ruby34(-)] + >=dev-ruby/did_you_mean-1.6.3[ruby_targets_ruby34(-)] + >=dev-ruby/irb-1.11.0[ruby_targets_ruby34(-)] + >=dev-ruby/json-2.7.2[ruby_targets_ruby34(-)] + >=dev-ruby/rdoc-6.6.2[ruby_targets_ruby34(-)] xemacs? ( app-xemacs/ruby-modes ) " @@ -84,7 +98,6 @@ pkg_setup() { src_prepare() { eapply "${FILESDIR}"/"${SLOT}"/010*.patch - eapply "${FILESDIR}"/"${SLOT}"/013*.patch eapply "${FILESDIR}"/"${SLOT}"/902*.patch if use elibc_musl ; then @@ -105,25 +118,30 @@ src_prepare() { # Remove tests that are known to fail or require a network connection rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb \ - spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die + spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb \ + spec/ruby/library/socket/socket/connect_spec.rb || die # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them. rm -rf tool/test/webrick || die - # Avoid test using the system ruby - sed -i -e '/test_dumb_terminal/aomit "Uses system ruby"' test/reline/test_reline.rb || die + # Avoid tests using the system ruby + sed -i -e '/test_\(dumb_terminal\|tty_amibuous_width\)/aomit "Uses system ruby"' test/reline/test_reline.rb || die # Avoid testing against hard-coded blockdev devices that most likely are not available sed -i -e '/def blockdev/a@blockdev = nil' test/ruby/test_file_exhaustive.rb || die # Avoid tests that require gem downloads - sed -e '/^\(test-syntax-suggest\|PREPARE_SYNTAX_SUGGEST\)/ s/\$(TEST_RUNNABLE)/no/' \ - -i common.mk + sed -e '/^check/ s/\(test-syntax-suggest\|\$(PREPARE_SYNTAX_SUGGEST)\)//g' \ + -i common.mk || die # Avoid test that fails intermittently sed -e '/test_gem_exec_gem_uninstall/aomit "Fails intermittently"' \ -i test/rubygems/test_gem_commands_exec_command.rb || die + # Avoid test fragile for git command output not matching on whitespace + sed -e '/test_pretty_print/aomit "Fragile for output differences"' \ + -i test/rubygems/test_gem_source_git.rb || die + if use prefix ; then # Fix hardcoded SHELL var in mkmf library sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die @@ -152,6 +170,7 @@ src_configure() { # -fomit-frame-pointer makes ruby segfault, see bug #150413. filter-flags -fomit-frame-pointer + append-flags -fno-omit-frame-pointer # In many places aliasing rules are broken; play it safe # as it's risky with newer compilers to leave it as it is. append-flags -fno-strict-aliasing @@ -196,6 +215,8 @@ src_configure() { # #564272 # except on Darwin, where we really need LIBPATHENV to set the right # DYLD_ stuff during the invocation of miniruby for it to work + # + # --with-setjmp-type=setjmp for bug #949016 [[ ${CHOST} == *-darwin* ]] || export LIBPATHENV="" INSTALL="${EPREFIX}/usr/bin/install -c" econf \ --program-suffix=${MY_SUFFIX} \ @@ -205,6 +226,7 @@ src_configure() { --disable-rpath \ --without-baseruby \ --with-compress-debug-sections=no \ + --with-setjmp-type=setjmp \ --enable-mkmf-verbose \ --with-out-ext="${modules}" \ $(use_with jemalloc jemalloc) \ diff --git a/dev-lang/rust-bin/Manifest b/dev-lang/rust-bin/Manifest index 6fd4f3283398..29a3d57276be 100644 --- a/dev-lang/rust-bin/Manifest +++ b/dev-lang/rust-bin/Manifest @@ -168,22 +168,24 @@ DIST rust-1.78.0-i686-unknown-linux-gnu.tar.xz 219666344 BLAKE2B 9302eae6c99af55 DIST rust-1.78.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 8c23ee14f8db7c4a776f4b5b986384c9e2c79e6449e019c67b526ec219e92e35be5c46a4a2d8187aee0ab958c7ba5f2e10ae40f4c7cd083cbef59bbfc96b0c13 SHA512 ea13084528d4b8d558309a0d5c392c734140a854d9543beb0c9b3c5bd2fb530ba154c608920ad125683e1e9888228422352c3b1c1fdfa9d70df1bd4728193944 DIST rust-1.78.0-loongarch64-unknown-linux-gnu.tar.xz 170256096 BLAKE2B 07507d4517a9e421bcaa763cc93956d5c57d458f7b20f97f186f902702675b305e79c89142f5c9774b11e0842a82c8cb63247b71dacf1c362c0588b52dd86d3d SHA512 fc21d32b4ec72a3a5a353cbabb902df2676e3341a1f38ee45654eaf960bc677b0316af0474e5ce9d346d285a6f7f03ebeda7302b49650cd1ff8371c27166fd25 DIST rust-1.78.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f99580babc5356c579b81fc0a4168dc1a57432d898e8e2422f00f9027477d704421cb217b5d56fa15a6fe9c01cbf8d4a727c6b01eedddbbcfe9d78e3cdfd24b5 SHA512 ab1ac741f6d71517a510a48fff1b903f325a35b83e35b7b73f4751c1f22e6944044d7a46f21e018659d7cf4ab5b430f6a4ff79971712af46a0d7705faf60e506 -DIST rust-1.78.0-mips-unknown-linux-gnu.tar.xz 70122976 BLAKE2B 78cd77109402f9121539db99bb263f37b9e8dbcd7d0fa102bd40437c4c051bb66d426fd223f062bd9715ce19f8b5f49ecc28ce59c0647dd4a29d9bc91fa68269 SHA512 85e8bdbfb750a20ce56756034f5b8a9a063baf38462ee9c47d0f495e09838b3d51db5428f56e4ca29f0d8bf5d8d7aac6508fbbefbc21b144230111683e2623ef -DIST rust-1.78.0-mips64-unknown-linux-gnuabi64.tar.xz 71942612 BLAKE2B 5735673c7c02f49193d69d02276f7eb1f380f487777a6e8751012ceec1a690dadd88e4b51ef6e393a7bcc066968eb306f4ad1df206bc48e0aab7bea40fc7373e SHA512 1cf95c52279b7ee3a003e2667004494f90d50ef84f57930b6682588c502c9ac1e441e9521d0888e3286cc97628fc0445fb5e5adb8c03ff1da9aca7a10a172d62 -DIST rust-1.78.0-mips64el-unknown-linux-gnuabi64.tar.xz 71921684 BLAKE2B 3aacca634a1749e43ec3d84c5388a16cfc0bef94e27c3221c40b43a296e0a79044af314b1704638f8f8ee9a03cc3f8a3932a252a19c7b91bd43b8b8e4f50dab3 SHA512 1fa047f55f4539fd16110525dbf94b3121e05513f25d81c6e95a30b2f6b099e30292545808a861816c779f060cf7ee9235b11311d1b0005e1c54ed1dc2dbd005 -DIST rust-1.78.0-mipsel-unknown-linux-gnu.tar.xz 71388596 BLAKE2B b0d87f4297f2b1fed10308ceb8809aec9323c2754212481ecf7c080ce993f485612ab5c82625feac644f14499c38780b3d1ea5af7c85f0167c26de5cda461332 SHA512 12a5955673f17243ada754bac4afdadc8ab6d3d6e4fc157328ab0067372d4206ace6ad99c168033cba23481167c24bdc4eafa0de24fd033ff7cf6ba1e16baa21 DIST rust-1.78.0-powerpc-unknown-linux-gnu.tar.xz 183422544 BLAKE2B a37b4b4c3ba381e0456f46ac7d311ff6b11701026d568653f86d08e5170f9f21177e87efe329ea8fe259a6ab7991f096bb716af2bf3000569c9797db61a41c72 SHA512 eacce0850bbd9dd9a8a94177234d867dcf8d94c7c2e9f4260207b25364abffc8523e2b85e868b9dd9d4bd02ea4be06fb0c5fbcf5621ace2c0e93041a96cf7ad3 DIST rust-1.78.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ad0201eb1760590381c0e7ee30f612a44157e10a634eb585f253788702653b3658c636c3f8c971a0c96de8944cb4c6960fd555f35dc1ee45fad18c7410ab4b7d SHA512 de5026257f1bd95146cb8057569d643a79ba440aab21efb4ea7df985a527654234c499f16cf75a29eb29cf9d7771893f0d4cfabc3483435ab73ce781aa573ebd DIST rust-1.78.0-powerpc64-unknown-linux-gnu.tar.xz 181366112 BLAKE2B c6edeeddc3934e6b93e65776a01c7f19c5e560716490eac2f52b56ba0ff58b974ee2be8e858265c4242d017106880a368244f5565e6f0438258b0cb0bfaa9a0e SHA512 7e0182680d216757d62627b07041d1e36eaae47ed341a548e29d6fe192f5e99a7f933461da025f4341d4c9b816ed3d8d3224bee12e29a0e7fc8bcd9a93c5069c DIST rust-1.78.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B eb94775f878935e94b7a678d4588dd586de8ddd47120670326b6b9ed891edb009d637a2c99b0548e8d74d07960a02558f8421e0754d487e93b57bc2bfc19f052 SHA512 490b0ff842eafdf23adf754051c0f4abec2bfda438bc2e3f57cfe5232f1358318c31bcf6a9ea89284f26389f2f1212dc3ad467b14da465d655bbc6974981cd58 DIST rust-1.78.0-powerpc64le-unknown-linux-gnu.tar.xz 192130524 BLAKE2B ca961dcd50d9071f0bf7b8f354aa0e78b4e3d4c9bd0b6c72f7a712bbe906833aa8982eb87d9065644c65e57e395ab09ed85bd24cf43477071e0c5cd8ed8590e7 SHA512 c890386b3a82ea36aca2f8753b0fc81a956ce3157b89ccd573403ec99b257299f84c976dc7972278371cca1b3945b21a50d276e10b4cd42647a9d26e0ebdd947 DIST rust-1.78.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 2bf8596c462d1231ad884a417c5b676447b8474023b5769343ec5a7788cb42c89b937987226db9bd526b3f4ff0a39648e4ee1136c3733d316e35b8ff7295b6ea SHA512 6bc9965d32420bd86422e4d5fefd82a46a169d5d80d298ccca08fb421858d5bc077f785a52f3404f29f394f2dc471a747fec208931d19358aebadab6d9952e0f +DIST rust-1.78.0-r101-mips-unknown-linux-gnu.tar.xz 70274408 BLAKE2B f5d23c8cf4e21036b0f8377551d6bbc8d89e3b1cdecf14beb710dac45df05ba79d97e49eb4e6b80b4698bb3de0c1972d4b0bd8f70a0d62e68fc3845a161d609d SHA512 989476ea8efb7cfd569ec5a553e41581ab0f54e8c315f8105fedc5c3ef8fa8d0264d5042d22b66042c58c58e9c16c9d3f1d5e72cd00c41d8a10afaef40003023 +DIST rust-1.78.0-r101-mips64-unknown-linux-gnuabi64.tar.xz 70394716 BLAKE2B a22fb1ad2b88d9722cfc7cdeb4d31c2e62ab74a8ad79c21fc010f908baf09f82ef2b7947820e175036648a45481132617317ae57e1bcef2b37aac365f2d62f16 SHA512 71f575192dfb89d9419efb3a3015a645658e1f62983211635b6fbef99500a21ade5ccb4db505bcb7277506bfd48a8eccc7f9e6d5422241eef8d9ee1e8ba6f3cf +DIST rust-1.78.0-r101-mips64el-unknown-linux-gnuabi64.tar.xz 71914956 BLAKE2B d1384ddd387b283b8d2a5311c2069850c65ae92ac6e07ed9ebc55dc08bdf09d6258127e1515f2d033feab705342be7faaf045ae0e0f8d7894d8802c4274c94f3 SHA512 269ffec27fa609f0b6eca7ad6e97949f2c54d5c51b24acecace11404f4b773d46cf306ed49913fb5d4dc0283aa2f3da99b45dec1579a88b153d70c384fbdb1b0 +DIST rust-1.78.0-r101-mipsel-unknown-linux-gnu.tar.xz 71873968 BLAKE2B d52864914342a9f7454f0edb38246e02d78027f8e5ab38392ca5df9918ca0ce69f2628b1ded7c6d51ac30e3e482389a2c7a719deb207061c5896a5ae83706c04 SHA512 23ace566cbaca65fecb3168e1feecbeab9b3774cdabf6e4a44133d9f30dffc382411611131da793879e17766b4f56fb1917714c1f4aae17f1b9f788e02bdbebf +DIST rust-1.78.0-r101-powerpc64-unknown-linux-musl.tar.xz 73110652 BLAKE2B 2756c47f66fee7de77a856dcbfa508add0ad5912c9b212604135b92da16150e3d7bf4c81b96c86ad76ef43579a511ac6203374899077087c2d043fd451846c01 SHA512 0280ed768ac92311369a0d8db9f8db77796dd444bf8f58294a9132079fe97b131fdec2cb5d8836a0f16226f27fa314d5dc56331d46966faf1f17f5cbea97d2c5 +DIST rust-1.78.0-r101-powerpc64le-unknown-linux-musl.tar.xz 75237408 BLAKE2B 6ce4dac16d4a6a75063f1d7636cf77544ebcdc5654de9110892edda0ac8c9a3b9b9aaa658923f5b50abaae7c3e7ec1f55a45ae7be3ad1de3af3fa9f6602c2093 SHA512 211870a247513b6788992e39689b5a538f4955225586104b1d22f5a0ee5441a367c66e2139cbdd747f5a295d1fe3680fdaa4bef600151e8b1133d3e57461fad8 +DIST rust-1.78.0-r101-riscv64gc-unknown-linux-musl.tar.xz 80098596 BLAKE2B 3444867bec7a545bfb421e23ae5322170caff2b7c14abc286111c6ac5fe14d52edd30be66e83719bd810cb421bd6dade204828c7623ed11da5d266778c6376f8 SHA512 5b634320e9376b03e3c77a0113d64b8f8de83997468cdf2dee6c362079dc7dd8c063e9a946b845655c0029b07b5febee6a1e5612068995483fd07898ba2f70c3 +DIST rust-1.78.0-r101-sparc64-unknown-linux-gnu.tar.xz 68488956 BLAKE2B c77189fd35f8704c8cd9575976dc01158d43b2db9ec16e4114b6599a06c134fbcb85e6f1701915c72f909c28707def1799a37879f6cd2740e27473c81ddb2fa7 SHA512 4c7f783aa93efaa7d570f6e4fd35af732d4649f5b9bb7c5f79bec0e9f874e58ca63875dcb79777f7bc97c915aa1b44a3704819efc1d0e0cf557be79b15e934a7 DIST rust-1.78.0-riscv64gc-unknown-linux-gnu.tar.xz 194762504 BLAKE2B b3a802e4b6efcd6c0c3155258b57483c24731e0564d0077f65706ac46898828c4e4d612996c16b63f9dbd5770ac6ab05cad27a27f1083f431e13aeb68e1e77be SHA512 530e5409755dcef86a9d074a3d387dedb5966689d7f47706e43daa5a9a8c65249f4d2b42916363b14924c11e1a5f5d934e9a1d9b47b1ed7206e85496fee27604 DIST rust-1.78.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6b8f4a535ae61cf04523254267c2f816e51e459a670b5c2aaa1a28d44092745d7c64baa399583a18cf84e03df2a910409cf99140e3337654a1a051e84d3865a1 SHA512 b226ead3b0dd067eea71d3b5088925f0cfa381aaab6f809e58dff83d00c17da4d99a9d241d49eb66e5db381cd9c63a21c2f5be3ab85658b0bf00b91e970c271a -DIST rust-1.78.0-riscv64gc-unknown-linux-musl.tar.xz 79587932 BLAKE2B ef34a7416459f50e9d8e6c8dc7f07435eb9bb93b8e07ba2211d539f9955b102c85a591706bc332127e246eeb842d1308a0568147ea3ba10463a6eb27a1fcb075 SHA512 53b28404505217a80369631e8630df21058f4d0eca4e9503f817b7960ddab95245303c571c0ec03208e5f550f239b247354a63b32c07eb6856e78ee70a02661a DIST rust-1.78.0-s390x-unknown-linux-gnu.tar.xz 207632244 BLAKE2B dd548d618a050991121afe1d8ec7d9fa5eab19d9fead94440f34627562bda9b5f544cbb03a06cd6e85eec4c8d5279b4237cd14c9754f95795e7a26f0b20036e6 SHA512 f17a472ba144efd41f791854931e1e2eb566f126037a1f234b0b54191941a77d8c340687c4c47e0bd4fbe306079cddb36637e998439845ec82206e4c567979af DIST rust-1.78.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5ea16c70fbdcce4cc17c37e9c3b642fc6deae9e2033821d21d3598652b8ed2dbab58cf09dec4e5b2f913cb9fb25820ccf3511af5eb84441e9bee6ba702005def SHA512 8384b20c9f9b6654fd69e90a91aa8572d22b4abbf83ca3b349b7672a5d8db131053ad1b6f8a48881be0060d3db2eaef52075d3a9b15a3c9ef9bb366d592fbcf0 -DIST rust-1.78.0-sparc64-unknown-linux-gnu.tar.xz 61524980 BLAKE2B 382473f85771b60201a27d4a7812b7a76953f800fb780f415cdedc1e183d6142f4e2cca6d0ad7718c80cd7a181652b175e6c2b51f8f0f303db6fe58b59afaa40 SHA512 0049d8262cd426f1f368919f13969f57ea724ceb15f257c71af7d831e607de874344b3be8a38c10f0d87a4fb72b6b69b77459a63f72ae5e1acbb5c601f30eaff DIST rust-1.78.0-x86_64-unknown-linux-gnu.tar.xz 163959816 BLAKE2B 1987a6a0ea169d67214bf403cb1e6ada022eed163be6ac72e6e46d1596eba6f282cf87e0581e9ac1b264dee4c59edececc9085b0d16cacabc79f9375da652a24 SHA512 6bb0481804a1de8ee9fde7d4793d45e80f071534f2c3756867d95e99bfc4766de2618b5fd6b1d5e8f4794e54c7056124538fd301c5ec20351f8dada54ef4c20b DIST rust-1.78.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1b6b8e54c0eebbde2a803d14db3d75363c306c621845cad89c927a51a5df0ccb5d1406c8806a82d5d611d0a12c6d6c5ed0f113fe802e4b6a8e504e64562e168c SHA512 10072d0684b40a71176f36ad85b7161e1392b3f52c035bfd0c6bbf5889599234a7201d85a13f04de0269ef9d8e0c51d15a4e9a9151b3fa27cf9a6e8663203786 DIST rust-1.78.0-x86_64-unknown-linux-musl.tar.xz 245914600 BLAKE2B 66cc40b70ca70eebee5c173eefb07758a8a7421cbf421329b3b405bdab1651334a5ff1202b450139c89039a4c3fd6ecf8b78ed218c62e81c983e6bb7353a335c SHA512 21190a0034aab2757cdcbc2e456fdacc972634f25f5c75daa089030a82b407037d3c7d3528c8d126d48d2a6840edf97526007bef41689a86ef1eec8f8c569f08 @@ -202,22 +204,24 @@ DIST rust-1.79.0-i686-unknown-linux-gnu.tar.xz 220956232 BLAKE2B ab8bfc213938a0c DIST rust-1.79.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 838bd51b74f1f6c77a5ad10cf992f3e398f2f68510685d1146ea3b15bdb2ab7a994aec3e96b5b3a1a14a82c082a87c8cbfc77f01609bde2e096f1934a1fa61eb SHA512 f8a2aa8271348761c5c8c93406c65fdc05502c8d21d67fff82f1a706770891a820bd05acf8d3e8401a44a66c35a11f40e3594d5b42b6554060b3bb58a0dc6afd DIST rust-1.79.0-loongarch64-unknown-linux-gnu.tar.xz 171612592 BLAKE2B d06003c1817a191d8aea38068ad03449090538962aa9ae74423343032b2e1aae4784daa702fdee4f4b089341fcbac1d03048783b7cf082eee46df1a2b6323b31 SHA512 86c39ca2b43fd58893e490008c99ce7f8e8c8e087701b90838de8f589a3e5b5b0d3b20c86ea9803da2ed72301d44b68866fe219b65a5af9f0e7e3120b3d9b994 DIST rust-1.79.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6f826cc05d126b8c6422674c9dfb496a61424144d7a76bf4e5225d7bc782c0d63dd55ea03c534494b633601bd027a922458d9f06dec5f5cf701c8907fe53cbf6 SHA512 c443a8a08ae2e65e3ff46e4b5f910ac24b8dda0ba62b67dd41888cf1504a78e9a6ff9415480b8c684a7f9390bf7b279e3fb7a7a22bc4139d6a91457753df4131 -DIST rust-1.79.0-mips-unknown-linux-gnu.tar.xz 70170340 BLAKE2B d9283d882f7206ec4cbfc18ca3df426e224a65773744738fa526d076cbb39e3c5b70b9f05c0a56d8f12acf1341aca21956326e8ce1351ae3d96b8f5519540545 SHA512 344e1285e19aab88091e74c13ded45a796243dc80f87bd67d3af42c2f0c6dfae4d2504dbd3ddc576f31354b3145f7b8d6028a0ca1eeb279ba116b8a4ad37eecc -DIST rust-1.79.0-mips64-unknown-linux-gnuabi64.tar.xz 70583384 BLAKE2B 352e491cbd7c24ea39431ac835d86a8587abe64b1bb675522b7ad710c70a25ec461d63d3aee7e764f171731b8b568d618e9cda374ac2f9552a0713f7f2ade50c SHA512 ad844420ad95ee20713cecfa3e97e9e9bfbb31de74b17afc66a4e1be6b174d00cb2b5948c89ccb574ad1cc37cc1b6e8d161c72931420f617d6db7c65eb7d4764 -DIST rust-1.79.0-mips64el-unknown-linux-gnuabi64.tar.xz 72593292 BLAKE2B 2643741c2fb44bc2b2509d00ebd5818a6bfa6b77f4c79e2039ba46c41938036707423fa4d92e6fc412ce160c657ef75efaea0910cd4350a96c4fd88a49494cb5 SHA512 d9a5aff946452b459a01fd0bcc2f900ac2d6665b0285d3fa8913e7e0c481cd527089e4eef4616939796df6d892ef2369af1f87552e6f5a1571576592cd76c6e4 -DIST rust-1.79.0-mipsel-unknown-linux-gnu.tar.xz 72133948 BLAKE2B 0eb5a697129d053142f77e5c84dabdc8d0183c61396d7b4a18ddeb2c8c008c790e25382ed320292e9516e80d55d683697752001a435315a3aec5b81fec2f96a6 SHA512 5051499a4a468761a22e3887a2de114a328c8f82ba3f8044134b8c257ed773a4c980dc8c91e91fd4897aa23ce64277686a87565baab5b4cb8139c73396761ced DIST rust-1.79.0-powerpc-unknown-linux-gnu.tar.xz 184251688 BLAKE2B 372338527063379f922bb3ea83c98f21b2201cf0e75f61cb0a42c1c1c6b651eeab1532d972af72a2afdc7afb5e7a96c40b0482c248350b7886a1274c869d2a08 SHA512 e1a26ddaf53b070edaa630bfcf6ba94659f841804e2feb90fab05e8856cc616d413f5af45b67cab57fea2483221c8caa52e373e7e7d29039541ab2142c4187a3 DIST rust-1.79.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 22c2867d40f0fe13888112294ea2571718064a30983903f7ce8b13a4a13684c34ac224990ebb0254e262686c097bed6e46d9a70e86bb282c447c9e690ef551d8 SHA512 68ea8142bb72430fadf274549d1830a8348ba74a02a52bdab1cf1b811e70592896f8cf9d34687bacc34aaa06603f89e5794211227c573a4f29ed34744b0f5a2d DIST rust-1.79.0-powerpc64-unknown-linux-gnu.tar.xz 182063040 BLAKE2B 0bf5d662cf69bff1a345dc54525319dfec98b2743744eb03712e9a2cce8cd45d968b9cc67ffa33a5b5a5a47f3a0a5568103d4e3de3efc7c2d837453dcdc077c7 SHA512 f65745bdb3c98f20c37c7bbe737ebd3b1107868fd56f1a9c42a4adfc14592e853cdd19217354070e5d18d31145be18c3b10681768d9f025b5846488937bd8a78 DIST rust-1.79.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 80be893561f5021b4e57843a5a6c9db7f97d9e31a0748c2ef1768fe0074f29401a39de781d1eadadfe760e8d7f9a286045c6bec2bee1b2a889ccfb9625ae8477 SHA512 843e1cdda3dbceb93cd0b345ef0f551946cc37dc5085f52cfcc3c9f6e31f8d4d6b176afdf1c255f5bd7283473b717963aa0e6bd905c2eb89f3543cf5e88dfff0 DIST rust-1.79.0-powerpc64le-unknown-linux-gnu.tar.xz 192753084 BLAKE2B ba53cdb229484dca210de50bc7cd493fae04b4c664551fb5b7f7bd6bc7dc3bbb59b79d183f20a9dada393d586eb49956fda1a358bb5b5761fe8d65f7ab58b3a1 SHA512 d8db247ecfb154247d7243e8caaab0680bb81e11aa0ed3e627b6a0d96a21a0a2099a7bdcdacb57a8b84910d6716754843d80a9149a8ee02fdbb6bc411a352112 DIST rust-1.79.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3e5ce77c7a2afdf0ddc4d8d53bf7ccaf8506986c1cf196837a3a6d82d648b4515b4c8cbeedb2998df233a1c5428ccfd82865482c0d0493248fb0631e100d4986 SHA512 5e63caeb8b20c7dde37099cdc0c246694b67dc2380104c83d3cbff7810cac521104d4d6cf6763559e13cc9e4bb5387bad761e79fc7bacf48536db1918b59246d +DIST rust-1.79.0-r101-mips-unknown-linux-gnu.tar.xz 70843208 BLAKE2B 402910e3fdfa17d56e8f95e4859a9d5343fc70023f801024f01d73e2b516419cae61723518a04043b84f406efc6fa91f3a10186e34ab15a816221646cf6d74f7 SHA512 14e398476644885a5c7c16cc37ef024f52694520ed778c8c156b728c09f031c67cf3a2cbe9ef67f7ebc7f5848763517e1ad018ed96743549eb3273d71111bfbf +DIST rust-1.79.0-r101-mips64-unknown-linux-gnuabi64.tar.xz 70537948 BLAKE2B e0a0a9df7b8cbecbb6567444e768e74de19dae8afea4e7de1014d6184f3a46fd0c9b95b8d26453b69fc174e50816d4250d2514419ac4cb6655faaab79fe5d08f SHA512 35a56f902a06a68734a7065e376d9e569d7e04c5cfc7455b426780ffb54875bfb6162404579f5f17d3501474b1a88c85719b59dd6696cf27834898ca28174e4c +DIST rust-1.79.0-r101-mips64el-unknown-linux-gnuabi64.tar.xz 72112728 BLAKE2B e8583fa5d898f5641c03e9af9cd43a657bf4fa89bc1e2b7dbccddde434611adc48ff15ee2d8e6022dab848503669c96cdf3eda73117c8d6cacec87369c779c6c SHA512 a35cdac30641fc3e6bf4ab53ca9c8814ec11a358dcb035641bd142f8aa72a5a06e59b4841f81a2a8a2c827492465542ec9ab4011d347e73f3dbebef682af8aca +DIST rust-1.79.0-r101-mipsel-unknown-linux-gnu.tar.xz 72401632 BLAKE2B ab52f9ddbc12124acea6c8b81a00b1324c7bffab7a01d654b909cf70342da9920440cea8d1602796c75875b6a9f36a62fb663221a916dfe709045a6be1379a53 SHA512 0d7948972091449e551881d0a4d51d3c7142347c8b8469759ed41c2dc0d03171e271ed9e6d1d4611495fbda07fec543a5801cce8e4adadd0f7341cea184254cd +DIST rust-1.79.0-r101-powerpc64-unknown-linux-musl.tar.xz 73678376 BLAKE2B 9fcb25f118f86b6f877b19e59735b1bcda53c9e0ea65951ee1a589e6f9e8c85ceeac8a26c20043fdce1d2918327aea945616b4f11c3041cb722734f9640b4dee SHA512 fea61ac81ebdab075a832ff9e0e9b9b0ecc8f72d6c51f597749879caf746a4f903746408613522409d33b71a5b2088adf6485cac8857ff3ace8722ceee682234 +DIST rust-1.79.0-r101-powerpc64le-unknown-linux-musl.tar.xz 75735992 BLAKE2B 5cca64b3a6d625b45e7d455816d4f887f994d8e82c8fe09c7435767cb445f629dcbb87c1459d86319152ba7acec4113517d5d84b41bc1487d6d09f99bb6bafec SHA512 184feae95423d55c0d8292756c1e5b02308175a6e504c94e2032f278ed0cf7426d707d21ecfaaf87f9b30a0f13af62ba4afd7684ac4d9d7bdf64ebf1d25839b9 +DIST rust-1.79.0-r101-riscv64gc-unknown-linux-musl.tar.xz 80781040 BLAKE2B 1209e2c8392962677b982a0b28c60987effaad247bbf98d951cff570321463fd5ddf7846657ea2290a8de84876cbe1c0043245f9ada313c3cdcc4a78f7a43beb SHA512 82eb5392b58e282aeb8c1779336922b15479667b369c2f646f8cbef35bfc181cfeab2d2cca6c3c273f0f52125026f2ba0f8c5ac0b98b18a0146679c22d939f5e +DIST rust-1.79.0-r101-sparc64-unknown-linux-gnu.tar.xz 68919800 BLAKE2B 709aa35596a19acac927eeb9e479980eb4d9cd4eeda019993ba8ad290d28363c3ced6c22bfc24551a6d61340242a39b40557a9d69ae424f0d585bc8b130be169 SHA512 accdbc3d32b4339c3e2c6b572e78f7358c03d7ccfbd41a2eb341aff7cdf0d6c9550c11c85dd00c5614417424f5c0c02fe0c463d92a8d441900a547a83e674523 DIST rust-1.79.0-riscv64gc-unknown-linux-gnu.tar.xz 195616336 BLAKE2B a17b0f9022681233e23ae3c3eaaf93da6d730ba604a9d327cd4a2553cd8c7321929e294de27866e995a591554db4f31f2b9f371747e4b45e473ac2c2a466ba63 SHA512 8a8c6be44ecf5d4cf35bdb32c2a56136fb007e9502f7f42980b5cec135bc481252b890be74d6ba638c2d885d1fb9bea58349e6ba67dbbb8efccdfe7bd6c7009d DIST rust-1.79.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a20afcbcc4814988594537e0ef1ded539c29987941044d2174c5f16b84286d3d8b29321bcd205f5081dcc8ed487d21f88396a0420a7fc3626748b8ad1e0ca2be SHA512 cee5e0ebd5e7fd00ddda6549f749603376284071db7f806175b1913b39a94a5540cf535f30d45afd06ae95ea42b0fc6b71517bede7f09dc0221d5516abf32450 -DIST rust-1.79.0-riscv64gc-unknown-linux-musl.tar.xz 77667868 BLAKE2B 004083faaffc342458cc90ddf34a56f4e3091beb1c4e3e5fd1872f3bfe7488b64da5c9ce7995483b5e4dbdf138c007ce1d08879ad3046587dc498687d3fbb538 SHA512 f14610a48d5898f0c47f1a3896fbb3abe85d57a062388f532e1150e3585f8c099c345c972d7f187bbb56074828f6f6e7ee54221127c5425f98856f62fd16b361 DIST rust-1.79.0-s390x-unknown-linux-gnu.tar.xz 208109368 BLAKE2B 8c110bff01f7a7456a6044a782198c74a793af0fe4acf6881fb9af4c8193cb6c513cbcc8113320fee027a6eb046a0ca4319d014379c6f670f915314448fb927a SHA512 07de1f7da8d8d23c63ed081cd56c96a9becbd4b7149f87636918bce8155a25ea95579ef8694adf6e455ba6cdc19776677f430713a6ef6c607a7efd26db4658a8 DIST rust-1.79.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 28a2586c96e2ee2263cae8c2dcd21a0017d09969114cc905a37408717c412a162fed12023df801497906a6aa77b294121699a56d05e270b28e2831796a15f4e8 SHA512 64c85ecf772b73e2e6f2002053a8bf659d518e7be2a9d0056fe38e991e47304471372206a8e45250d6a143086b3b1f4fc68f4e19388c040735e8475c981fd8a0 -DIST rust-1.79.0-sparc64-unknown-linux-gnu.tar.xz 62007828 BLAKE2B 7348970911c9661b2099f2c5d3309efb25e2906b0c560828c1bd877f145350d4aed594e52a7cee078abd523fcee13a0783b655696378d0119ebdf265606b40d0 SHA512 0afbd7cde595eb9a3c80ccc0943c1b5676cd1db9a2e78fb8e6af375424d8f7e67690ea9799961ea356f77dce15a347eedd5332dfc07dd8aa74b2aa2e6b5beb81 DIST rust-1.79.0-x86_64-unknown-linux-gnu.tar.xz 165014992 BLAKE2B abd9f73c8439f6f4f9ea1b586cb0b2d3ddf3351e42dd49e01e2267d1bc2f9dc27dbbe9b866d5a571a983e3c537f003ea9a6570258af64edc26cb86fdd8e64d86 SHA512 c027a015cc6544d288b51bad6ebf8a9afd40932a06972cf61bf64bfe4997dda7ecaa2d53c4f4fb2200bcf1a7df16c3a44ade1b8366a32ce9a4c85357cc76dd0c DIST rust-1.79.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9cd1a51580d9f70f96c83b603716a5edbd8e1c4d4c2f53c07aa9d37c6c47f3bd252c0a1cf26b77bcd60842fb83ed74cd7b6e4ab3a039c3938423372485f8c1f4 SHA512 b65621f91085f4a5c6f84ed5e530fe56502ca12c5b18486afb1197156c5f6087110578647d428a58a1a6c04765569a28c38ae40a14c72fd41f39948349e8115d DIST rust-1.79.0-x86_64-unknown-linux-musl.tar.xz 247326760 BLAKE2B 36bf6787c69971ba7c445d1895001c005af0aeb48aaa3309e971237125a2b6de3ef5f1534572f8a3f4c1bc024962a8fd030e91b63c02f03444b5aec1a3ed2e5a SHA512 02e5c2a67f5470f3320b04e7c4f0a6f5dbd361d5a97aee7e5860d04224683166b21375794c94ae040a2cc6fc119380be9d3465b8c5e1798abd4142d621cf9f99 @@ -236,24 +240,24 @@ DIST rust-1.80.1-i686-unknown-linux-gnu.tar.xz 221151480 BLAKE2B 01c4a29b5cdc47b DIST rust-1.80.1-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 549b27298fbed09727ae6c6086127aab9c0ebf9a6fce70c2e102fd29e983e31b1907f3a2e7c18800ff7b2efcd6f49c36aa11a5021fb9f57e6148e62628cc56a2 SHA512 c20ea2b577aa263e70211198a9fe896b9d560b737d74d640ee107a89dd9d5b31bc843e2fdda75bf21318fd3aaaea58c4ee918d003f7bf7636aa5636fb657133a DIST rust-1.80.1-loongarch64-unknown-linux-gnu.tar.xz 172528232 BLAKE2B d308b0aab1ef8dc338025d9a106920f507035efdc04390e9618b6a936ec117b70c791d14d5a73aeb0533f1e8d1952ae36bc3d4e624239d5a64ecfaefa70aa5ab SHA512 1c6d689e43cad549f2f8aa96fd5bf52080276c1de386b771206c7533feb11a47bf515ea72dc7f406852ca7dc5632f1436dde69014d8bf35bd0f25bcc85c3cfa0 DIST rust-1.80.1-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 92b347907616b18ae06d85a1380d01bd078c3ea4a03fdf808b79794ffeb1d6661057688050130aec61d29062f07a030ebcf15fe3d866cb411325c44a2c393a33 SHA512 7245d91fc398d787e8bfa2e0bbceda9aa30665699f01bc5490f29f690fc1f8fd5d5ee8d4a941d38f0dc5c4cb7c275bf4b6d4bd3727b1bad65326594101f90cf4 -DIST rust-1.80.1-mips-unknown-linux-gnu.tar.xz 71930732 BLAKE2B 5e0bf58d3080f7250ebab43548ae90ed948237e6169852c18fb488c7f8b7c0d5eaaa2746627fe991b5344cdd7249e94c4fa71ff42a6055e505d4a99c59fbc643 SHA512 838ccea7a5c7a81af5c35901e574b8525978bb1afa8263ee266d0a2acaf7d62aa3da045b1451d6c068b5c25e97813b429fb79d1f62628d6f41e254fb94c1f38e -DIST rust-1.80.1-mips64-unknown-linux-gnuabi64.tar.xz 71570392 BLAKE2B b36ba5ccd967bf4c99dcc66f9331f805e14a95465eff69b9bfadadac9f65ddf92f2dcf4b955c8faa8ff872b0cad42f1716074e23ff0aac6ef6f9740fe588119b SHA512 80e930c81d0f0febf61a5ce082967ce519711b18fbf7f7ea6665697caf3de345a690fa618d46ebe5b0068f0d578f23b9424af2d59afd47ed42f1649d9488d77a -DIST rust-1.80.1-mips64el-unknown-linux-gnuabi64.tar.xz 75794060 BLAKE2B 26bb87e1be2ee3c311cba20df47da1728c2c5a395b366707ac2a5e5ff602b99ce24fdb0fb5495f687a1489b1889153bc764820ef481ecd9db19ff9d8e34a5bc6 SHA512 8781deaf66d84e87ed5d7fc10988c9417d98c45dae2cde2bfba817c74020faa9daf512c141fe92753a53113c96a4ece06738d7dbad626b901aaaad835df6d300 -DIST rust-1.80.1-mipsel-unknown-linux-gnu.tar.xz 71170176 BLAKE2B 26f3833281d3d0acbfd8e0c5bbe5f9fdd77e76d16080d23fbf81d4b8abfd7940bd73657afba835be4f584161e1e147406072cc77fe3e4be797848983fcce075a SHA512 f909b5e630dc155ef807e248e620c29ffcc18ef5bb4b2c5aa836afd754974f10dcf82efdda3b47c58778d1ab63fe98095fa4a051885763645b27fcce46dc0718 DIST rust-1.80.1-powerpc-unknown-linux-gnu.tar.xz 185400364 BLAKE2B 2b37d052d0fc4f612c298e87be9a0afcac3ef8548f3914530737d0435cbdf270e0c3b8422c08f84f96192f89805a9bff9d3fe570eb056afc1fd902202a806025 SHA512 1350aa8c105555778231b4ef7ce1c4c8850cc112ccc2f72621bbb3c011a0733da91df7521bbab0aa3269b4ad61231a631660593d7608d017083cd7af375fde30 DIST rust-1.80.1-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B da5dfb8d287b7a30a32443b0edb80a3994c68f732ce02a6f6d735d589db2c273962e02925fa88311698672eca10441850066c2f1ab2e48ded8ca33109e298509 SHA512 f0d381594d6b164e068cb80e39a508774633db64abd4a9ba68eba48fd627fbda6c0cdf849137f61e196ab44e0f93eba5d08f3dd60fe5820259b8d9fafdd51407 DIST rust-1.80.1-powerpc64-unknown-linux-gnu.tar.xz 183179096 BLAKE2B 0b7b7af392b8aa1a1df14ea4f53fd231c5c475eddbadd2105a5222393162b187109201f96dbb30c9877ff1c684af48b9868d17dbf26113193cab572d8ea40852 SHA512 67ce98a6f89997c13f576493644634f8ee5055952500e4f6d6ae096fee9570d6e5938c483892e76325905fec35184ff7f7edc21e4ec30199e821017890825289 DIST rust-1.80.1-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b5b296291d031d254a4be6f000abade2b5d67cea8cecb332505469af3ec3ed1e21454ba41f96ed4e77dc2324c339f136ad04f034191a639394e6d9390065ac19 SHA512 9ddacb0ccd9da29fb93c66a2d701a03af6a4a2e9911c06a09d9fd5bde2647931e6c61e623d418200038e232227010206561e431331ef866324e9020dfba4597b -DIST rust-1.80.1-powerpc64-unknown-linux-musl.tar.xz 74338592 BLAKE2B efa136a4510c20928dad1a15271620515f57d43473bcb9e0d4c5935e4dfbb535a6ddfd0d26576d3b0b354014a4d54606900afc32485cdf60be61bb6cb100ef18 SHA512 d330b0c1a046b754400e7ba48e9657c07ccb3f0aaace45600ca4649bb8df5aaf01664b8b967940e5e992347e05ed7249e5ed179536896e63a1a0ba6f21c1db0b DIST rust-1.80.1-powerpc64le-unknown-linux-gnu.tar.xz 194097292 BLAKE2B 1134beec940443b111594c86f912b2bf26bf3ace83cab3f0176175a6e891d047701e08e8ebc62094fdb4bd7b4d2de115ba0125ecd5ff6b3a20906db30c86c480 SHA512 4275343153b6acec8ba3a25dd4e85abc3ea7872a9cca4cea6f394fc24db6461db7fe7c047d158b61bb0635983a6a033f25da39f5fa1d6d9ee6d3eb956799dafa DIST rust-1.80.1-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 280558f7b575a5b79c7367715e74f333b7e9bb0d4f6ffd9939ed9daf33899dfc19cf59eca2cfafdd2ad1d6d71ea58486d04931fc3d089c9c491c8374985a1960 SHA512 6c784aa10878531b44e5927b2cab5a81efd4767a5e723747e4a9c506b4c48141b44c98ce364459db47ad8f03f4f066fe96d070806695d76a6abc9e0c7a53a09c -DIST rust-1.80.1-powerpc64le-unknown-linux-musl.tar.xz 76407768 BLAKE2B be93308a381a7d96d5bfcb6cfbdcf722d8b4a8c5a497f12bad8557758efb2e62e35332486cf9fcb5c29874fe172cf696d0370158e1a139f77d637490422ba7ff SHA512 cd5c6dd81997923c7bf719852fad819be7f24bbbc97a6fcd8d463a38e26784d3bf19aae62a3d2ee3643571b78829b78602746007128d9e160b26f293b13381f3 +DIST rust-1.80.1-r101-mips-unknown-linux-gnu.tar.xz 71802316 BLAKE2B b3fc9cd96d911fdb02ee26385e3110f6007feccfea11d8572aef51d0e1a964c4ff286e89fd294da89bb2b9bb2971a9851e180dbe1bdbbc328f1643e6ce09cd05 SHA512 40702ec4f97ee76193dd56d3aa1c78f67c0a496f3dd179d7ae114c8c59b2bba62e415814e9b05f7d2a703d9b38aea12ac35ad5d0541fa0c5006f0f849b85b134 +DIST rust-1.80.1-r101-mips64-unknown-linux-gnuabi64.tar.xz 71450476 BLAKE2B 275f24f77916d0473a60d2988138dd2f9c4496e8d8eedcf6e005ed655a4711e532d21bbc6d123d2043839439073cf86647bb2be61ed35c389b49dba718e9ef65 SHA512 905ce07d8263eccbc2a07abdd8039db758bca977e29462c5133de28e89754d7ecae5609ea577c9a2a050aa2de61ad72522764c3e023d579131406a4860104f20 +DIST rust-1.80.1-r101-mips64el-unknown-linux-gnuabi64.tar.xz 72935280 BLAKE2B 8b85067f15786b833c86b14e0dca4e36a99f50a6a645c510bfcbc9869ebb5d4b15521c293015eb4bf6e2d505ede4fc24e1f9729f402719b379233f6adcc85ca8 SHA512 4322e156d60a185217515809f4e1f72ac53d30321f5f6cec73e3f31ea0acf40ec9bf62bf4567b7d90117ccaf397a9961987631679125a74c3f354db8f72950d8 +DIST rust-1.80.1-r101-mipsel-unknown-linux-gnu.tar.xz 73461432 BLAKE2B 94a9d427fa16935bb2e319591413e489f1d0e0f4f5cd2d9435424a1013f676a79ce009575a7dde35c7b4718d8300131dc3049a8677885ebc118983bfa4527c92 SHA512 6551dd2e0d3d170d47d3e13c81872fa54caf2ed498a200bdff5ebb7dcd6a9e25b1fd11646d3376c6191f37ba494c931cd348546e3099f784af25821f08b7c600 +DIST rust-1.80.1-r101-powerpc64-unknown-linux-musl.tar.xz 74442008 BLAKE2B 1dbd23082c7b30021f8cdf0ac3adab6ceef4f852e8c6d13ab21936e8415addd6c581a029d2482f9e6299f6311bcee1158ef9cadd264d81e6cd7ab9814100a57c SHA512 bfef13e66c7f8ed34361b27387993b5caa3b2408f45646f2e4b4a9c6ca7b855700f04ba02fd2e501a09e16fb0a004082fd882ed2fc1caa611ad44a597ed89d19 +DIST rust-1.80.1-r101-powerpc64le-unknown-linux-musl.tar.xz 76588376 BLAKE2B c3a846c054bafa89413225dec32ef9d32bae853f38eaef3e574c7b1c7a9032b686e22b400e6891f82b02a60dc0445b604de73e9d771a5b3ce0377a39770e0b0e SHA512 7ecfc90d96588482c01ecb32e57f713c81abe0258c84eca18f85902c8095a382f87e8dd8147d77a13d6f6305c952058090666ff70606ad6fdc6f8b5825da1f95 +DIST rust-1.80.1-r101-riscv64gc-unknown-linux-musl.tar.xz 81741252 BLAKE2B a91073a86147649110440cc9793f20bf217b713a771b504aea1d48ede0a21b53d83c3e95e36f3d3fcbf77cfcd69b3c085fb4a436dcc20385f69a6c6debf9e972 SHA512 71b101688cd0cfc5ecad6830a72387c05acda4c900329c31161110d1c7d7aa684e2a3fc315b127b4af91790d2817e213b5eed5becbe87061b7b5f3769596c7e3 +DIST rust-1.80.1-r101-sparc64-unknown-linux-gnu.tar.xz 69865020 BLAKE2B 16b37864349bd32d9554f3e101a7da225d13f96c928ad1d0dd6adc708559d9572f3ae88fb05cfe9382e95a292d215f9000f18473237e30f60bd0cfbeba698203 SHA512 12cd53f0287bf74848ee3c9ee71309f9b25eb38317f554ebbe4d9a5006a124950e05e0a9e07056fc213380b81009412e42d6d36a0ac9129d6e0f26e9c4c0b987 DIST rust-1.80.1-riscv64gc-unknown-linux-gnu.tar.xz 194141700 BLAKE2B e174c185d35d3974c923233807ff1a27f6736af2a8b97f92153c0518aad4f46653d5e5bab219b51ee1b58cac7216a29e5ad6499a982de8f52f6871903a307b71 SHA512 4d69bfd0fdd2de634a3ab873e8e2929c53baec12e4edcb220b8054c672324dba7a94d06a9c35474b8ba74b2e408d7b42a857ad11a4b7a346509b5fde23e8c779 DIST rust-1.80.1-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 274048978581a816fd8a9c396e7adffa509004121d5e9dc8df53a9f4a850dc7a0bca8652760c1f27c1c0dd57be5a91ff60e2d39ad7681b17efdea91312d0fc40 SHA512 5c34ff90acd4307a57733f8371abf4712c3ca06bf9db88f1d3e3ed9dda1c16a7775d713804ec4f1bc46089428b6b5472ab7e416f10e21d33f10b84b1a33d1957 -DIST rust-1.80.1-riscv64gc-unknown-linux-musl.tar.xz 83359176 BLAKE2B 27ed3232a01fe69a7ebb6c18c7caede9d5ca6f755b52ca0f4a2f3faa073762638b13cec4f4c63602ec709d70d3c4333db5bdb97468e77a3c3a491b44060c484b SHA512 858f2366104e368efc5564228c9247d110b57fc3a196b4c56077fccda104fd8ed87f93a6e3ba2291203d05041c819555f87736c1ff3f5b494f47bdccc1a0874a DIST rust-1.80.1-s390x-unknown-linux-gnu.tar.xz 209785288 BLAKE2B 01792daab79e7abed8bdeca53295928429b6814672aa4e0426316ec790d22b22abf25d3d5513582206d18f53147e60d252a0557ab9cca3b594c89ad603d94ea7 SHA512 66b20f5d001e978e2db5277da5f01271f0500a59877a849ccadebd5823eaeee35066abdd5d449e024cd5ae8ee41dd60fad77a00648cac1db62137d6722729fd6 DIST rust-1.80.1-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5c0a1a6036d3c3e9af835c281fd347a842cea15bea5f3d5f109f4080a2f93020d5e1c1a7de1894c03e8a2c87c6560f792a0c8024e68eb55d10e50da098f1e621 SHA512 7bbc3e8d3b039b522e62101714f5edb85046cfc06375df4b49c9ece891f8fc57e86027e1fd12a5837be7623c9137840551389e7dec4b2700e1dac0ae69121729 -DIST rust-1.80.1-sparc64-unknown-linux-gnu.tar.xz 69671332 BLAKE2B ae9d7c680dc77bb2beec0e80aaf59768a21091814247b74ac1930a7c66f7b6426fa35e772b97e2aa1983cbaf37981df47e39c5b940ba4288e1791ede7b1a0bae SHA512 dbc895498ae43921d6a15c4d36d9e35756ae8660782a07cacd607d1ebdb75982d67ef78ae2803160c07c2f9067b608aebbec7812799cb45bb893c936379fa9a7 DIST rust-1.80.1-x86_64-unknown-linux-gnu.tar.xz 167553060 BLAKE2B abc6430cfbbea5dd0ea42a6a3e2796b6f499d5a8343616d310ed22b541bdb15803d882dca9be743a81768bdf55f78c7a803bb594844d7dc3d2bdf09bd3f3d312 SHA512 73e6000af98efe5d90ab484ad88f455f07ccdabe49400d25ac16eeaa51327a5d17eaaae5ef3eb0b04b9aba2015c379eeb2a00076d82ba959e53e3dba470a228b DIST rust-1.80.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B bb52100a14bfa2775ca7cab5cd0f9dbc489ec3b26a8687876c97b666435c44ce58d86fd9f11d4f4832e79c05fa3ddefd7157edc91a3da25ffeba07da61fbddf9 SHA512 08aad912e47341bff29ee1d1b52cd02df8e609747f7061e61ed6a401d798140a8587378aa992b0d52af955a44d2284eefa00f27a6e94b4ed561c06eed60ad6fe DIST rust-1.80.1-x86_64-unknown-linux-musl.tar.xz 248220632 BLAKE2B 7f0954379658df0a5cb0bb4bd49fdd1d216bfa5a200789124667d13ad97f0a5278f57e5b6278a969558c834de43a5d7e3f5ad3e331cc5a4c428dc097453a9394 SHA512 079cd3384c0b7f85d5fb2f02f27febe423ff533d71463097fbaa90449a955699fc25d8e4ae16489f7d7920c34c318c0f2e8185eeb9c6fd64c0851e4366c5eca2 @@ -272,24 +276,24 @@ DIST rust-1.81.0-i686-unknown-linux-gnu.tar.xz 224016868 BLAKE2B cbc147e42563ba1 DIST rust-1.81.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3cfb29d5ff9f00e5f14631466a3a5bc5ae0a3dadeed3e2b22ee000ebc57bf02ca6db5f2ac01756a6fdc753bb4cd83e5e6ed8fd9e356b6325f5b7eb17e7714d7e SHA512 1fd1ca2016876f2456eb832bc9c6d1ab2be237a619d5f6fd4e1ee0f31bdad3d3c1c95d5f45069512d0c8a140115a594be3d1f888fd9b5a342ddd7cda1d5e5ce7 DIST rust-1.81.0-loongarch64-unknown-linux-gnu.tar.xz 200885152 BLAKE2B 46b23442632d7c3368454a031643a795cf54b732d2c180960008e38be97070708a433d1094f529aa78479fbd89adf1c4ceac38af919f28577e8f766029cf40c3 SHA512 2e090423c8c5ddc1dc29d5ad19cdaebb9abad45bc7a229f911385f50cd2951b587a187ed8deb01aa41aa643465d7c7ac2b91d94c80265c03362de39b99eba82e DIST rust-1.81.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 70aa0a550992b32ef666751336ebe2c81f3834d4117942cdc7f8b1eeadb1e5efa5fc63e283517e5535f406ff0e36b4577e559e24281e388a362463ed046fa340 SHA512 70c85d06e5b29968b6efb10efbece2761f81697395bf037581adf9e3aec0141266ae59644b6951e646749bcc23b038d5601b804c6d389b64c87b4be24847db42 -DIST rust-1.81.0-mips-unknown-linux-gnu.tar.xz 73640352 BLAKE2B 91f833acb8378361428112a802b1ca3a92a08ac86922161bf7d8c5f5f8c2fa13f5f8eee655363dcdcb853211e4575b3d1161f4b914d7dc8ba005f4fd681198e7 SHA512 abb641fbd5c0f895e2401045cdaba390445af5004e04f090218bb8a098e487e6844280cd162873a0664e7fbaf25227477f2ccf6da9c20568dcf332d9ad713ede -DIST rust-1.81.0-mips64-unknown-linux-gnuabi64.tar.xz 73301608 BLAKE2B f9190465942a0b85d810e3a16f4f1850b70d29409743496b22a01621640a86213c82cbffc45d630ee604aba34fe5ee0783cf018af85b037660c4ca61a57ce9b7 SHA512 51305596f1a2462b03c74c7c0789c5d2c4f7094caef5753a1cefab8b4371ca57cd0d91528b1a6e957151b2484cff5b45f3341a48196bd095212657483ce94f6a -DIST rust-1.81.0-mips64el-unknown-linux-gnuabi64.tar.xz 74961740 BLAKE2B 6a712c1c1485be3e7f8a2599c13c0f296c38c77771d635d1099608a3ee1fe6ed3474876f5518c6a417456ac8087b0f4b415fde371873f81d9d3bd778721bf917 SHA512 5eefdf363f13afee128745cdde805794a88bb63151b6f18598096c3ba0f826aae2519cfc61f93b458de5da1d0765d9e48beb844f226346f54dedadfc19f3840d -DIST rust-1.81.0-mipsel-unknown-linux-gnu.tar.xz 75296988 BLAKE2B e0f030e08fe4aaeade0637e601c5c71dd49dc65ba1b9a8a9cffe48b66b6c38547b745cc2d2802232e914fa1e8d01725b57a7b92a5b5986b752fe5e6c480de080 SHA512 90bf79b7f83eeec7729b8fb4cadad33c1ce7c911457fae8d2c4d0e2ade68675e4aad484fe8f41163065e7a9096d36f0045c95aa24bb097e00122ed31a1c24544 DIST rust-1.81.0-powerpc-unknown-linux-gnu.tar.xz 213304904 BLAKE2B b9d126cc787323ec18e978aaccbb8f92ccf753314fcc6a5d2d496400f4bc7885b543bd7ecae782a6c1dba737708358be26be68f69b47e982617e9a80af47d279 SHA512 a84bdad9877f7c8df2cd495447cca2a0e1448a8a13ee0fbcd2ca6f662317cbebf9425238edf3b5a1277b723b9c44eb4d363339c00a35e0ff86b6a568b61ec2f2 DIST rust-1.81.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d2fba08b5be0026227e071993272a12e0d27af3b8e3b2fbd039a9c9a229317e9014d2e0f2c981387e6b46907e258e309424c2aef22d3512743d28ce035a85dc3 SHA512 156319d1904834794476d80a3b047a4099b983cb950ab3e9882ff34c0451eddff7cad8b160406abf23df40d195fdce925052177de2243ec8e8415edaac3c643c DIST rust-1.81.0-powerpc64-unknown-linux-gnu.tar.xz 210257620 BLAKE2B 686cb5e08befb0d4a19a7e34478c6916abd6aa7a05f09d83a7f8c4fcf59e144371a7442a1f14cd34b149dd056df119d5748ece4311d69af79725cb9b3b662126 SHA512 14f5feaeba8cb9e0a3326e5d74cba9be832fe6570308d5735f7fe7486fe240ef0f3cd2396c853bf34cc784f05fedd7a975dcb922775c59f3262a67fac1383839 DIST rust-1.81.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d30e35436bbe3869278f4936b2b132d0a243bf0288470e837246a59239c2813025757f684f23c639517836e25895835a7ab0fd488834e2f53cfd1155e1c8a2fd SHA512 3b302c6c999df3e9aa0ab1a0638692cb6f88d44598e00bc862ecd2c384afffb259b8072738055800efc9f0c5b8de07a0fe3de1cab1bde28a9faf1951411a9bf6 -DIST rust-1.81.0-powerpc64-unknown-linux-musl.tar.xz 76312476 BLAKE2B ab03fcae936cce1f2d4890d91e2e10b21ebdde72fbfb3d766436dc2ed18946e498e90c68158182c949ab92f0be02276fdd21d33ed17439d6bcc50526db1c386c SHA512 5812da254dbffa39c6ec6d2208d5223d7a2b57adc597fff2980c9f7f40ef7b9614ea43354840acd87f8349165b7df2d79974f0acb7ef71046bbba86653c982c1 DIST rust-1.81.0-powerpc64le-unknown-linux-gnu.tar.xz 224307656 BLAKE2B 3891f93aa2bfb62fe23b463cdbd7db50182bb175cfadf2969b32d093897f517afb7dd97ecaefe90f220998f7436d41651c32e5a46957c2114d1ebc70834dd917 SHA512 9f6fa6bf0d5ba935b9ad5661287ad8aad5fc8d6b28fdbce6cd81730539d087ea512dba7b0133de08761d12b580b8b1c5d7ca35a4f1277a8bb683c109177ce83a DIST rust-1.81.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e96b56de2542596db2db9030382e8d87a9fee884888b58c0050b81487eaf22c2e6d62d11dfc7763a1f647318c2bd0b29e03dcbbe1809ea8162432874758caa7c SHA512 0e568a763276ca4e9c359d6dfc32d1f369ee04e160026c7660ff5f14175022175d23589df9c03c0c8c270d7e74a5e54754d23c8a1b0545b67b6d6c3d3ee82628 -DIST rust-1.81.0-powerpc64le-unknown-linux-musl.tar.xz 78549196 BLAKE2B 09c359d64f54a6fd4a2ed2e05007bb18ac9abd5223486c8ecd3f08c4f6a0c0de5e22e5f2bd8ba7759949945045e9c84074cb9a133802f3f5a8fe10d97b3e777d SHA512 6345439d1f8e93a47b41593b3a815e23087b77d20722531f05d197e6a96e1699955aac48846a94caa6580e8fc5f30ea7f6edc45fa2e3c5308dc95728c12813e0 +DIST rust-1.81.0-r101-mips-unknown-linux-gnu.tar.xz 73402288 BLAKE2B 7c9a140a71d933be17d1d37f50ea1e99b85d517e1fa71946e23cd52b63e8c0bd8c1745da62e8409a51e68a1c4c7b0c87d3835d152905d1012f5c02023aac1725 SHA512 3892b1709f60c770036342c68ead1fe2a0423dd0673b1d276d1a4c7c293e6336374fb2086416ee3a9235099c3a74c3b85e6bf0e5c32262f8d453b000afb162ed +DIST rust-1.81.0-r101-mips64-unknown-linux-gnuabi64.tar.xz 73118804 BLAKE2B 06952eab52e267c3e62d075b5ce78f03ab2df82f0a5cbc6af533271ead719ad57722f1cc736d65f5d9cf8f397487fdd72c734feb9a78b13faf48b7fcb306741f SHA512 871fc5144fd519aaeb4ed8ead742f5c4e2bb2316244e9f3874666b9a6c2daa6db9ffec2bdc3f0b7d342f578cad7c0ea821968b706678b2c2bebf83b0d92d27ee +DIST rust-1.81.0-r101-mips64el-unknown-linux-gnuabi64.tar.xz 74730252 BLAKE2B 9a7e17498595829f7be1842b62404faba0c1dd50bcd80ae276b9440e0aa4b8d5ad0cac76507b03f5cf1819c8b3abde5a12e74cd947a62e6c6c1111d043158930 SHA512 1fdcf19f726bc60fa9ebc77b49a49becfa430b5ee857fb8e202048905f6dcd9dbf681c10c7b0fe857041a00d1d66406b1d92d4ded2e82d8ca69992e67496a6d7 +DIST rust-1.81.0-r101-mipsel-unknown-linux-gnu.tar.xz 75069920 BLAKE2B 572d9816ab022b6ce3b13738b218cd80e704f63e3cb452ec9eafb78c92f27a81ffcf91e981dd9a676c95abae1d9df86e974d6911f2fb95d72b7de11d5634aad3 SHA512 2561fb6180bd2fc56e9d317ee049b79bcf05517a32b3e12e507d665a6c8499a5543eba213bf825431597bf3816655288c675cf7784c3cf0eabcc03a457a16ba6 +DIST rust-1.81.0-r101-powerpc64-unknown-linux-musl.tar.xz 76092208 BLAKE2B 4574cc1cbebbc5fa489941b31479744816731e372ad62b0540253eeaf8f236b4d933801e6b92ceca356a487a199c934766c6c2a8a465844728653a60ff8f7153 SHA512 1c635647eb3aae80f0f2351bfbf00975572d3b0b35b800de4b5ecebcf36fe6ee5b617747b79d2268bfe9f3b2a36d42128a600ee344ae7d3efae93f133e2a78d3 +DIST rust-1.81.0-r101-powerpc64le-unknown-linux-musl.tar.xz 78292868 BLAKE2B f0c31989811c4e713e1eae6d0240c83abe02788aeb0bd226f3eb6056615fefd1d05f846476de45421acf0246d064587af1df40ac5648aeac290fa4bba4e4a839 SHA512 c7e773fdf013d42a20d73a0b1c13f7752fd8d16f02f0c785dd3548b34977ba60fe8f664d7839ce45cb88f4592f46b706b716e5edbb888b29205a292979950f5a +DIST rust-1.81.0-r101-riscv64gc-unknown-linux-musl.tar.xz 83525016 BLAKE2B 186275fa3c6214541fce09c0203f61f168c4b2a9dab64ed5c0ff3c472ae387592db2a886c31ea39488d8010f414c4e6b9a19066214b1abab15822faa0c167fde SHA512 54654cefbdec5be8530b4af75d71f979a278d33959b21d5f04653adcd168a5212e61a646c1e38e5e07355c169bd19ad2794763d4c8838d962e17a64078a4b0e9 +DIST rust-1.81.0-r101-sparc64-unknown-linux-gnu.tar.xz 71277824 BLAKE2B ad0c0ef5a45010dfa4c7bb2cc3e8368378772ba32f6e464ab802a5ef8ea5f0cf671fb052a01cbd2da8f7e02e63e59ad0f544893686774999dd72cbb92a52c5a6 SHA512 515c4562378bc66acf96bb61a6675e56b57f97fb905a6779d78e1a6904a8108a89b847952e261447c35252518e1862eb994735ea884a75c8437c4fda7b63d347 DIST rust-1.81.0-riscv64gc-unknown-linux-gnu.tar.xz 223006516 BLAKE2B 5627ee83ed51726bcdb50757393f2333d76d705e18d65681c1872df6dd3e2beb9a18910b4d5e7da5c30f83b4c9f80117f2ef9c212cdd92eebc6cfce182ef579f SHA512 57cf209d364d43164402cddeed0ebe41b3e3ca69f79cec4f83055cf999493ed1cd87bc852b90707b2809cacceb39a83c4236712220105cd6a71be30250d4ae6e DIST rust-1.81.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0eaff43543493165dd86a2ffa30a4039b599302970e5c4380e8640c8c61881480c86b2ef98159ccf464c2fe39e23d14191aa11fccecb8ea8f56feebabfcd0d2a SHA512 4b5b7f01801692aa4087b5f010993d4b14b73be9c2dc964555ba140a939e434400cb4ed4756238725dcb2ab66e5ed67bb1d4688a92fcbc6c8af23f21fdaee568 -DIST rust-1.81.0-riscv64gc-unknown-linux-musl.tar.xz 83775176 BLAKE2B 6022f9c9ca652de040157434052dbe6079b03e1fce14880b3484599da0a217bd1da8e829e7fd1ec2f783a84873fd8b93138a5824e3628d6099ed92f47963f799 SHA512 16441a47b6cf4b7291d42d9ac07ad1e6a1cfc36d394d533517866f3ac66d240cbcd40bfde157de1b3161d55cf54b285cd36dc4758592c073cb6b8ed3e4d7cab8 DIST rust-1.81.0-s390x-unknown-linux-gnu.tar.xz 212322092 BLAKE2B 11237159a0e70c84e296cd54ac52721a887057ad12269328cf67483d55e603df3f55381c4413871b83fe58a26a52c32ba5e77e7b3426016eb35a207275598c29 SHA512 1ca177d52cd897da497191c4ff869ad9e22047d37f4955e134d51a8ac5a5c24d9ff109a6e955e71df0ac0fa1776939ee39ae384f2fa12ac4740e2aecf92dfd61 DIST rust-1.81.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a982e7308aca7fac8a93d299a9dcb00f5bea71e1b7061fada84fdf2cbe1cc5bf7ea65abff857a234896b950e06e1bc76c0e796a9570039b2314ac17dc4e9f4ea SHA512 cf8cfdecaeb589db64df6ff0418d68332c8b516d401f0e9bccf9651bb085f57d3bef4941fa60788ca372a9a2407a406dfb24c153a64549925a47c15196815683 -DIST rust-1.81.0-sparc64-unknown-linux-gnu.tar.xz 71498356 BLAKE2B f987c017bc779fda3d74cf8bb845ae5bb5e1ffb146a0ee58e413ce6b726f475d457d2ab95cf0342d48ba6e74aeb43ed94a200fcf8f4dda8a86d4f796d7c6a152 SHA512 7c88530c718e377c44a54399af0f1b954e86b3040eb49b2a1ae7caa08e33a43073d65b1a027147675fb81f7ae983cff5eb27230bd5da33a9c16689a924606b43 DIST rust-1.81.0-x86_64-unknown-linux-gnu.tar.xz 170439044 BLAKE2B 5377d8972a729b0135c2461adcdc179719a0af99e8e9656b3c9eb487144c306d49dd42737d71195773e4b03e4287215955a7bab34094c19a9f07fba04a706a62 SHA512 a648b735d91348dfda6a66b4ca09f3449ff4abbd1d727fce8c91ec409a82bfc873988b06aa0907e145c486d035df12c68fa14466ccd2148ac0a99d5934335ae2 DIST rust-1.81.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9f39dedf33efd6fe4d66e10e3cb064851b1637a50e97d3bc19c48bf989e1e94d694df493eb437d2c2e58989933dbb05a7d25c276b26331475f44ea2d9d52909c SHA512 37908051e511cf223e92379ecf577ee1644d6aa13583b622b78d445367ca9e8a4253d77a5237831eeef15607c71e99ae3ef42451803466fad303bb523e13475c DIST rust-1.81.0-x86_64-unknown-linux-musl.tar.xz 251142276 BLAKE2B da30177914f8574ff896b64a60279913d48330818c6e96e10d3180964ed542697f29c6ca7e7c81fb1b814e1d9ceb8bbf6e119596b59564a64a08e30ce72ce4b8 SHA512 3b772269362556bebbff72a13abf05f745fd88128367ab1e5879ed3c0f3f5a1f7370faec1b2bce521a38662d58d94a8e4eb6b085c8e0f166979af490492e17c8 @@ -308,24 +312,24 @@ DIST rust-1.82.0-i686-unknown-linux-gnu.tar.xz 232183760 BLAKE2B ce60a1471dee755 DIST rust-1.82.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0deea40e9b63bd697756d46c1810938c03c9eab4401ca63d7294f991ec4e084ca51dc71853f5e9a7c32c895ae07a010ca2c9b83c78ec538ac3ca0306388a4884 SHA512 92eac1413e2af6e209ae03f43e642410e324bf043fb1ea152c60505adfa00100d205fb0175d63361633594a4ebb6e6c9494d73493aaafbf991afe7305bc76e21 DIST rust-1.82.0-loongarch64-unknown-linux-gnu.tar.xz 214922428 BLAKE2B 73ddfe865cbd529ca7c1550b989e173542aed51a27e20c2a29cb7c93b3b19e6a30c3eccddf123dbaa8d58672a13aff3443ab34e4634a9f98f7c572ac49ff7af1 SHA512 c75039a73becfe8c0990105ff16fab5ea16db30dfeb1eb85b3778ba070acaaab120bfa9e326b621a6fb34a5576cc829d76153d3376be9c5db74c3ee933571780 DIST rust-1.82.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 402210132f85edb9c31eda041a9978a3ec60eac8b31bfbd4742fb47afce36979e89de544f88aed7205a97e36ca9dec8d7d4a71890f197fdf93a0b3e252c2eb6c SHA512 53ccce83866480bb36b0fdda23ca1dade3f9bfac05b1ab49a8df3e5076d9acca57dd474e1587bcd91b4f286ed38738b5826bb355c903edd2ac257a9daf5d8442 -DIST rust-1.82.0-mips-unknown-linux-gnu.tar.xz 75893764 BLAKE2B aef2ccf94b0e4dcbbd369abfe9bbe3045e62fa0ce1fae3ddc34c9dc3af2828be0b6c18d265b0cdded27fa4ca5449f03fb53a4f5e7a0e5b410723e6ddf42b31dc SHA512 9289961d0542aa0f78195a976b3d8d9791d048883cff1d0c2d597f2a2eb53bc107bf2ff646124e3dc60f9bfca10c417b54623f2308e56b61525d7e607ac697d6 -DIST rust-1.82.0-mips64-unknown-linux-gnuabi64.tar.xz 75620212 BLAKE2B d016e3c1a58e3354b33731b90f33bb36edb49fd3fd7f2cba842dd5ca7a8dcf62741c5ef9a6715ca0a7dae027bd5ec8949000cb1f1ff35f9323b7c6dd5c76708c SHA512 5b2e28010648506846d3eb9ebbb98e405d2e8d982d193aed963f43461ec4b7181e62fe0aed0fd9d95352dfa5504420684ed3edbc7ae27190ab847c8fd68ba5a2 -DIST rust-1.82.0-mips64el-unknown-linux-gnuabi64.tar.xz 77251292 BLAKE2B b07ed9b53fb157b2d7d938d376e88cdc394b1cb40e2c46e3211b0885edb474e54cfa1f0a00bdabef179285415fb62ad22066682becfb86c577a819a21d13bed2 SHA512 ca7c0cc9c755e0bcd7a754f5f9f729583bbe396fa740feaad3d8d711ec0f5b802fe3cda7ac17d84ed4ce43e3e436f11240a2914d9f03097d78557a56fc103efc -DIST rust-1.82.0-mipsel-unknown-linux-gnu.tar.xz 77645292 BLAKE2B 8e7c8c8976a89b5787f721fdf1731426caf6895a744265ee79cf91e1c8a32071dcde73a2e3c36b6bb06ca830343534ff0018c0f6058337d2ea729dd5592916ec SHA512 20452b798f29078e2f8fb676808dd1472f6b6f794b4338522af55e095afc7d97d96bfaa8e547c6a050fba0603387201ab7dc0b5cae1233063987f5df137d978b DIST rust-1.82.0-powerpc-unknown-linux-gnu.tar.xz 220809284 BLAKE2B 3f87e36e6e635be68329e80a4273c1f538ee912c8cc29572a2b06cb04920239385f93ed2aa364667599df17962d3ca0b2625448643445921c44afbe3a718efad SHA512 59fb1570d46b717a118d832fc1f4928337ed525128dca72104ec2ab59f424b665bb7676a6757faf50f81e5365f332d409dcd01a8f49b57c834c875aaafa5c8ba DIST rust-1.82.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 4058694cec8383fb53982cc6a7c05e476b5460a5d43fdbbb95b07e36006cbf9eac7536002295853df5f14cdba0f25cbcfba96f527592fb6f6089e58e7aafb8f8 SHA512 3965cdcdf359cf62b8ead06d0720093c3853242555afa83a8b0f48876d623db1259e5373b7c96b550f7203abeec6f5f697fd24d56f178ce969816d583119fc1a DIST rust-1.82.0-powerpc64-unknown-linux-gnu.tar.xz 218119856 BLAKE2B 82c61658d4cd4d755dc4c058c15826a1ac0167da8b4c0ba842ee4f709cba4b584b9f505a816c7bd4cb49258a037ac3f34bb7a7dc0f52e32d57b2545e3a4c607f SHA512 9d2bf19f84c0cd03307be7b7b3687364966c2cfc646b8a9b21a6cd7b6424978c3559a26db6f46818cad543eac556689ba2ede976ab5efa63062cd4421b097dfe DIST rust-1.82.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a38307a4e0ccdc64632a688b2e5fb9448e63e26045fca2af4fbf72de6dcf6b201dafb4df4c56ac20832738959ca13abb56901cf5f718d7d4046ca13d600b6c5d SHA512 c821fab5da52e50e95253d4aff61292b5155c736df75b27095c8ea40d6893cc2786dd148db71f68e1b0635eb740cbba6de0cbee01b5e4a603ce61a7abc3fbc28 -DIST rust-1.82.0-powerpc64-unknown-linux-musl.tar.xz 78453804 BLAKE2B bd6bef9a710d6c0aba9bfec0a77f6442e48124a195a02f6d1d76b3d1c3bce18c9a748fe463420ea50ae097601e9cf0885b953b0ff548313d1fbb7bc818270e79 SHA512 4db950c8d0ef642e9a1177c0a2691b7f6107b243ae163423c25f3eac1cf443356ae91c43328e7d30ce4990e3b094c4145674728da6ac08c501172907a917bb4d DIST rust-1.82.0-powerpc64le-unknown-linux-gnu.tar.xz 230915544 BLAKE2B 74d5bc710e370775a7b83232dae5442d251e6c02516dec8ef3bbf33f81cd877448f66b760f27705bdaf9c9637bd43f2c38502c5186c6582c4bc541e2c2c1d1a2 SHA512 1f82a50445e08eff5101c6c2a4b4d03d288bd6d8331ce2e36a2a8c826a93a1267c333b14bac84e6b943c9fe1ade6706e793dbed8ca158f184c3f74b3f116e0d8 DIST rust-1.82.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5287810a0750010ca193a713591fe95bf7ff9f706116caceba0d44763d9263b6e783defa1b9de543cecab36521168f78ed4166d13ac2638e1c18b317ed29531d SHA512 f3b4a607cc1d07bce086073caf3245335c0b03a9847922dac36491b5c3d7f6cf2b156bdc8cc0cf99c513057928a7931a82ccab077cfdd2620e0a77426b88a1c8 -DIST rust-1.82.0-powerpc64le-unknown-linux-musl.tar.xz 80767512 BLAKE2B bfb617107f03e9feb94df00570662727c44c14973ba7b88691a53b40778d8946ab95792fce0951e4e62143b6158b71e0c46a2836c7ff229fc0f49f40700285f3 SHA512 750d243dece6d9a6d1c16ef34cfddbb2632c8b65459b0eea1e13f695e9e92e622de7b9e7e8cb068fe45e1b1d5415bac6f2b24fa3a869341cd13f7e46d5e7fc5d +DIST rust-1.82.0-r102-mips-unknown-linux-gnu.tar.xz 75945532 BLAKE2B ac2cfca6177d445e5b569a96cc9f6107d76d4f88008036ce74a46ccbaf6b43d13df685ded80236ed099fae01a093551c954c7a59c7d1c46082f69589739662c1 SHA512 6a29118d05c7834aaa9de5bdb103edcc4a09a7acb423040d501db4c2f79ecb5a2af35d5c04f2589561f6792ad77c6aecbba9776b7d0d3f91c631b1865b5da9cf +DIST rust-1.82.0-r102-mips64-unknown-linux-gnuabi64.tar.xz 75619292 BLAKE2B c9376df707b9a1b4cec6a9b456c7c4f82c1babf1193bffb71ed45f7a59eed8372e61b1638c28d68ef86f01940c8ee8f3b9ffe9a38110846133c7b76d00c890d1 SHA512 759aafe631d8afbe4560a96b96602a2a12bf2f0e6382fb0ec36a6d466130b8352bb27152fb843d3a0aee84d7e8a87ebe42be9f77687816d6d9f00585679b3ac2 +DIST rust-1.82.0-r102-mips64el-unknown-linux-gnuabi64.tar.xz 77229084 BLAKE2B 9ae826a05192371fd1042af4dedb2e1034b4baae54803209a46d378c606baa0600d5a47fcb9b3572a38303830934820fe0c251691aa411c24133fa887493c86a SHA512 b5496de43cd80e29794491684f9f18a9b20e6fb776a2a86f191ef86905f281d96388a25aa424d31f361763b80c2582b3dd89767d5d653dac5115a5b1c70d4d38 +DIST rust-1.82.0-r102-mipsel-unknown-linux-gnu.tar.xz 77620820 BLAKE2B dd9311c53e5ea2e910bc20bc0c58c86b3f3e9971f5e290e68db2c9371ea62a9e8f992e0e45bc40af38b25f40f0168c280ea71044abc5281e8e9be7bba61569e3 SHA512 54e27887d8c280872d6beb0e7dfda0cfa978105241fa5599ef92c5bdf2f1e12cb39ec10a7f1ca4ef60b617af9739e8f8c14ba75453ff6ea17cc82fcde7f7e098 +DIST rust-1.82.0-r102-powerpc64-unknown-linux-musl.tar.xz 78493856 BLAKE2B 4ec6ac6c649ebcbd6fef3aeddff744833a297d457163b9a0a5ce21bb4223d9614530280603028137a8998a99a0ca8b44c67110c0f6b40df342279cebba62b47b SHA512 3c7345ef3127e5d093ce5e1e722c7f51b5ec1e3fd269e1a71ab34926f26b623cf0afdcd1fbb04b773dd1c00207da307b840cd25f53f38bff3ffc969420558313 +DIST rust-1.82.0-r102-powerpc64le-unknown-linux-musl.tar.xz 80786464 BLAKE2B 49de93234d90935c13faa1fc6cda78b48ce869207361a1c02a9715dc56a3c44e7a0854d1b7b524d32d4f020f7d90f97e602130a8d50e758da7f0f204862bd056 SHA512 42ba3d2e80e057f068ddc0d6d3e98afb6f448be1491c50111aee0140e0ecac977f81fb8bea5471328421ead3346f3cad3225cb568cc40519c14d63410e50b0c5 +DIST rust-1.82.0-r102-riscv64gc-unknown-linux-musl.tar.xz 82227072 BLAKE2B edbf2d8e9d354c17adac951a594c3eee10363f90ec06940801d1f097116abefa0f211b73391333878b366c98dfd03cce468a46547a68048daff77d19882abe70 SHA512 7de5fba216655d1bd6d4bdc9f0246d77247bc4839a580acea814a9bf6219a47602ed864febd064da4dce3cf051aec4fd1d15289f90b1f2638defb0e8a2a5e35e +DIST rust-1.82.0-r102-sparc64-unknown-linux-gnu.tar.xz 73900436 BLAKE2B 19bcf8702279e4ac923cca095d8ea1b267ac9aaca3f5f0921a9f96b387f64886722afeb1eca2400d163cf61509fe01b824f4271accf99ec5110e7b15bcd13a06 SHA512 02d479f0a8e9ace652a166e458b193228ecee25eca5215dd3a084ea3c350d2e848f9c351645ed4408f2eaf2846b3faba4b39d5d3a65b1926e79846d6f4996e6a DIST rust-1.82.0-riscv64gc-unknown-linux-gnu.tar.xz 217304308 BLAKE2B bc2a2af8119892842d188db23576f3952243f3a798e23f22d07444063a997223d11a23b1c256a665fd04aa608083d4f26a97c72c4ac36cedcd99a6ca157140a9 SHA512 9ba01e196be7ce7c62fc7c2ee9041e2cb30553f376eb6b3dce97121cc6052632f8867869383edfb02b47ce848d19a137b19787454eb424bd69c7749d10282731 DIST rust-1.82.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e41f6fcf79b8f017e60a0c3383f2619b857a1e9c74e45b3978a5e54de3804e2873a1a3a511bfdcd7b7bafc95de692ae2a02abe54153c97188e8a663f95c03967 SHA512 c99d3aa7c94c3a8e170f6eba054382d39ba35d4f83e5d1c550efa97b72060a198167da984ad301b304d0fe2f5145655498986571df27c102df25620db2e80ee6 -DIST rust-1.82.0-riscv64gc-unknown-linux-musl.tar.xz 82214464 BLAKE2B 37e4e2da7208df74daf9bc7293d22cdeba225d3824203cd6b5e2512522b10b9ba0ce3ec4a0b7ac41a5b3f27a6a363c5691087d11327eac62eb96f102a29673f9 SHA512 e0fc51143b85881218766adb777634cf1c5dc22ca65aa07616d903f6b8be294aa497331ed68300dc04ad7d2eaeaeb460c429172dbb313b7aad3fe76f4234db1f DIST rust-1.82.0-s390x-unknown-linux-gnu.tar.xz 219317068 BLAKE2B fbad24615d53a5d3ff9761f976d43aa969b208bde2ae87857c7389a97252de00df5f54bcd9b06c53c38ac3a6a49e1a47a06de3788c9a7693e937b3e12864c671 SHA512 1fa0cae2d2c857955c4fe981bf042cc20062b8c1805c2839a37825f2f914858ce7915f706a73a851d90cbb5de7446deafadfbe6d68ba01c0a03e2687d5dfd06e DIST rust-1.82.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 577b5759c302865372cbb882bce2160036a3d30cdd3852e7893f35a0c798e0292becf04ea8243f2c2fdc571cbe62693b2ead64635d8d15e943a72fab09dbb6bb SHA512 cf1e235feb153cc305af741f3fe3d23e90aed9b586cecfdbca94289a9673dcd844d471cb63d9222634a387b08919d8b9b48d30c9538ab4ffc4fcdbba00382b85 -DIST rust-1.82.0-sparc64-unknown-linux-gnu.tar.xz 73813440 BLAKE2B f0708d1425e59d533ed49e10581e5e1440a6e40b72c518caa5ab25d14a6970b38030f52661c22baf6968a0170e854e33ffeb61fe6e9890c05048f6158f7314fd SHA512 1c226cc73e87ea3635e5f0321ed3949f2bb1f77f62c1ee5ebf3c7619c516b2994f6a8347cbbb74f19d2b375d7f8c3df0d62b59929e79ef444f5ad33a7931d218 DIST rust-1.82.0-x86_64-unknown-linux-gnu.tar.xz 178075016 BLAKE2B 799dba2583b40f8b43cbc1370d32fddbd6c65787b601a5fa60eb3ae4113057a6c1bfb8f54046fb5c004d7e200d47a42f5bb1cca8382d7536b4b02462d1f00f6d SHA512 63f0b35fbbfef024ce2901aef4c924858f50246d682e4d11f93154f33267662319b043003a48fc9fe0631dd8385a6a4172399ad0257167b148ced4ac5eb62494 DIST rust-1.82.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0506992a71455ce0d4f76d4e6af6ef687ad772e75f9b251b4ecd1b6482b2abf0f7b32267795d7d87bba07d7f38e1612c0281c87ba0d07156c90e44175ab3a11c SHA512 59c56ceefc1228cff372cc4f3ae40e04da58f90abd6647fe4b0a11e760c21902f58dbafbb48e7ad868ecb26b162ec3641587ff8b5366c16cdd6e28f4f457390b DIST rust-1.82.0-x86_64-unknown-linux-musl.tar.xz 258823060 BLAKE2B 71e284a1a62944677792a8f9b9c78eb1750afea218f9846859de52dfe24a98c467a8d1787a0d5d72f761c36ba20f4000e1ed193e11db28d7ca3ccccbeac51f0b SHA512 eac9e504c3dc230a3923cbfab01d4ce3d5639f7c8213d8c8c3e007fa6045e1f56a4f5e6ddbe2e6259fbbac2a3944e8b351d270d4f8ce20aa8e4843a7572e8931 @@ -344,24 +348,24 @@ DIST rust-1.83.0-i686-unknown-linux-gnu.tar.xz 233693080 BLAKE2B 16a77a02a2a4f33 DIST rust-1.83.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 96b38ba9f35d825723b04395f2d6dae8b652c8c2604d724183c328432a991c9cfe9efe35bdb7a8cb32ce74b29be953cf71f782a369a975272f1a1b311bda74a6 SHA512 875298edf8769158e89b7e2c7fc939dab1e738021b8bfecb9bb1a7b287ff0bd87bf49e1784c567f7c63d7149b8348a06b9222d1071980d3128fe826c42549e2a DIST rust-1.83.0-loongarch64-unknown-linux-gnu.tar.xz 230967340 BLAKE2B b1356c331f85ca97717dcaab94aded8f20c577bf61051583e03b8530127e5cd3688f92ff920a6b2083d3d59b7d9faeea2a2de4382cf49766a74a71fe76214bd5 SHA512 68ed82264a89c8bed255ecf1b92279c8de1446186223f1d44c16eab263749de06cf1e8e07720f1326abe4663006ee636089db788124f3f0c7c9adabd3f2a68aa DIST rust-1.83.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7aaae04be9c09c8775ce6713f172f3523a7b008c921c68f1cd751f0bfea8144ac2bfb454fa1fa0d5e8486e62839737ad08d3381acaed633dc62c67abea65cd9c SHA512 b55652804fe3e5a574bd84fcf099e5ae733f211c87c5f3352660839f5ad2c29efbc02e553971734bcb6e7cd6f389bc875bfc92043c68339d8eaac797b1b6742e -DIST rust-1.83.0-mips-unknown-linux-gnu.tar.xz 72991436 BLAKE2B 8403529314903f0312f08b2b74ea95215f24cfa935eb582419c693fc57612a1b99d4e6ab69c47ae581e300248870742b81c88f6a39b621c28e52af3e4e550945 SHA512 790209ab21a5e2687df22681e1f79520ec04f3a6b53e8f6f206597c96356186c32df0a10dcfa21d0db80fa34c6ec5599ba1ad37dbbd0d7ea76fa823d5bfc0c94 -DIST rust-1.83.0-mips64-unknown-linux-gnuabi64.tar.xz 72669108 BLAKE2B 2158004650406ac248c6df07b6adb9bfa0f7005b79624fb23e9597f69a6fdb1c2d1f72af4d617b41259bb1ea8b25255382374113de085c2e74414df21f9a07f3 SHA512 b88df5767f0d30f3f1ceeb6354f2463f28abae2752fceb6ad9676475b4e29fa5d27d2d4d9431e0ffa1735270aaf39df72d398dc07b23d140b7c4a03794113d0b -DIST rust-1.83.0-mips64el-unknown-linux-gnuabi64.tar.xz 74172208 BLAKE2B a4bada0ba428b92f2c97a6791c337cf24a1b0e477a92bae57c29ff56c9019da9fb50289443ad01f9b50d6644426d56791b5f141c6c3d3de38eccbefecc899135 SHA512 711c87b06d02cc919a54d017a3ca704dca75b33cc0027927c244cc1c9e3d7433313b88dc05de9afb31159e8ef3a8f6a014e9f74c0bc63039bc4127cef5da6460 -DIST rust-1.83.0-mipsel-unknown-linux-gnu.tar.xz 74567868 BLAKE2B ac2a7d3ef64108a14447f35fba5c04920027ce42de26d8da8eaeb9f991d8dfc7bbe58ee7c667784647901c4f8271dc650424abf3572741ffa95c6e6ea9931bde SHA512 a247496009f59e29319f34f92238ea7b0d0be7ea66f1af1197d1de7bee65bbb743b208b0cc4110dadf145d5bde7fbe21f751bfc08fd44559b491366d9028394a DIST rust-1.83.0-powerpc-unknown-linux-gnu.tar.xz 222744280 BLAKE2B e32f9066394634d5855395d202256ba67c58d55bbc675bd440ac4d051260e7d2d237d0f8c35d3ef02f33512279aa3298c1993b2084b27fa017e18f1debd1b15a SHA512 ef67f29075d4248361885d0860d3040797d6a7a941e99ad49d6249e78fec00e306153fc28bf907a0cb4c58ecac73d92c4d8287b56132469eeeb18983ee84f01a DIST rust-1.83.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 16cce0091bc65719fc410e4b76fe3bdf4b3774402d300b72f46dbf1de55ef6ae29adbe0fa2c66aea119536b9446a0eeb70789cc9db2a36b64ba8cbdaae707f16 SHA512 cf94525aa6a868d1825d5fcaadc82190a6866a107aeee8884b7fb56b5ac427436be91737cfcaa0d5f7a44f21833127ff028e9247f8626f38a98e40282feb63f9 DIST rust-1.83.0-powerpc64-unknown-linux-gnu.tar.xz 218928260 BLAKE2B cdb8b3e0eb20df2ad4415a991c535c4db36fcfd45364adc415c870acfd5c61953d5b95c173213fb6c420a354adaccce2afc60d63c5afa21c77ecbcfecb99245b SHA512 0b39efed4cd9f5d176d81be196948697b72686cec907a075fac8d052197838f0ab536fd995952b56f58ad45bf2a5d89ba46bbd97cc2bf9b166658b508a959c11 DIST rust-1.83.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B bd67bf4a611f731cb950240811504262d666656a891ee25f61dd12090e6176527c5d68a83c9fba7613e6523397aee4dc5aeb97706f80120e1b66738cd9ca1451 SHA512 fbe15871b6bca6fa89cb47df24e5621046e6ee5b5e008c2a738093c85d8130abee507eeaab5cb83af27dd079094fd6dd6a9597b6eb712eaa00e7f0b8c85aaae8 -DIST rust-1.83.0-powerpc64-unknown-linux-musl.tar.xz 67433444 BLAKE2B 0f1426eb3f60cb1f731b8e35f20a6711e6a900413480bc33a1f7da9ddfea26e947a33c9162ce78ab6a3623bff8aa83d0aa27b82109b22b201fff8482c3b480fc SHA512 d3e17f4a35062be865e29169e41ba93b3f8fb78b73bbe50a9330ecac29442c8d1ad6e68ba1422585e49a09de215cc7fb9d6d798c3aa60c8211f4a88fae3c32da DIST rust-1.83.0-powerpc64le-unknown-linux-gnu.tar.xz 231986816 BLAKE2B daf72e5a6382ec93d7222b624ebc8c2f27d4b4a0448ad227615f4f7c9e8d87b2d2a7c182d6f0f61a20b4f737e5f70467a0c2b6024eeeeb248cbfb37d655841f7 SHA512 6735080308340072dc3f258b755889c7a9f6e79b85c46e38de074823b6814289b1f9862a1ac69d3027386560ffe3c2eab339438a536e717f7b099f0de75b6b64 DIST rust-1.83.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7c88fadadd58fb4e2c63f10f01b1b3b719e1917f5c1217b5a858bf347483f0b71016107045f34916fa53e493b47532a94148c4fe95db6ec23222e8e6f70dd98f SHA512 da5e64c245bc962447384db3876f3d3724ebddacddf35b7fa47e2e7b408ffaaffe303549fba9c07af8a6974ba32da823989d1929068e0eb5c781881511012a6f -DIST rust-1.83.0-powerpc64le-unknown-linux-musl.tar.xz 69860332 BLAKE2B 63a29db5bf9b1664fa95a902c222430b1a38b6dd8e4093333bc65f0807023fcd20566654df2b666eb7729c4053c4ee848ca1cbdea8e47afa08fd391a515d51df SHA512 6ba407ddfc00c6e06365e014b7cdd54ac5b529d998c5c743ca5fe70f2da20c2067182e9fef1c4d43934d8fe9b87a73bcc48f3514da3c0f0ad07e09e4b9922eb8 +DIST rust-1.83.0-r2-mips-unknown-linux-gnu.tar.xz 72983684 BLAKE2B 5594646a37808d7e1549c7d4b94afda6e8ecae49168f9de262f0ce3000f96a2383a738c4a2afc6a767ba8df0a96e8b7a7abbc251d4b9998c3311684ecb195abb SHA512 36a10dc6e3c138e02cc2a6c07d5dbb15a91239a6a08e2232721d44b6985692acceb69858792d0597c6854b0ad00a92886bdae3c1bf3ed40c9534c7db6d19ad80 +DIST rust-1.83.0-r2-mips64-unknown-linux-gnuabi64.tar.xz 72710016 BLAKE2B 0c078a93d19120be58857349ff8349f49909174e8b4a9753dee859208fbb50c311a1fdbfab8f7226d9c9e1587d26db0afc2386ee33d234003d9221698379be45 SHA512 6a7ff1647f791bd4b93dcfdb37bbf1c184d45ea99bbb05106eb94540a3bcd361ed82336a9022278eede425331a5d813483b98fe49bcde7c6e4f5753f1df7f3ea +DIST rust-1.83.0-r2-mips64el-unknown-linux-gnuabi64.tar.xz 74143428 BLAKE2B a07103a332aa499d7c04647b36bc53bef7cc4ff32baaba6377a2b0ef698616be7f7bf69d08e17732a54e4ffbfdc3882374c62368349d9bfbc5b56a13adfc2c72 SHA512 f2b0f0241d2d71998d48f96868e33d8ecc112ee2f2a4831ea12b20817733d2f8c9c970741e40d69d2049d4034bcba49867eca09fcc6803f0a119d891f7fb6da1 +DIST rust-1.83.0-r2-mipsel-unknown-linux-gnu.tar.xz 74601216 BLAKE2B 6c571feae459eaed7d2e6f4255602bffe2c280f17c250a2245452bb76cd04dfd8c59e57c83553382deea2da278d3559c1b11b93ea82c167383bbdfea47d357e2 SHA512 6c450eea8076481d6b84adea87e1fec50f46a96c0d7cb7360753f07fcc5f6a9e3eab5ca84c3b95b899ed8a41ccb45948096f1dca376347a619ae00b76b2be100 +DIST rust-1.83.0-r2-powerpc64-unknown-linux-musl.tar.xz 75476800 BLAKE2B 35514974b5085ae00ff6745bd10cf9cdf571b18c6616508310ec8a9bbe37cd9ed0a432f3a954f0d68c102d63dfdb42be336845b8fca5fc2ec8b890edb2d22328 SHA512 9fec95767d39bf05d372c5eb4fcd55bb5f2c8b7aaadfa4e7c50dcab2291360286a2cd82b3c98413f79eac2dadc3ece0dd952b7a7a1aa782e9bc82edc4f5ffc4b +DIST rust-1.83.0-r2-powerpc64le-unknown-linux-musl.tar.xz 77797252 BLAKE2B 04502e1d3bb5694613b3fa5154b11020ded2e8989831bb57a329346d7d89bb2847fd228427cfade8d4a446b389021060f19d574303993d4081b6d74993d7dd22 SHA512 0e194fa74a7ed86c7486732e743fb8bb3b9b182f8711da0cd346dbe809dabe73c692e323685ce08868b2ac0f897fdd2b82134e5c452a7486d1a4e813f6ab0241 +DIST rust-1.83.0-r2-riscv64gc-unknown-linux-musl.tar.xz 78940572 BLAKE2B 8afb9b4c86b63c0c032cac0271e680cbb26e3aeca3c0424eef9c98e5cddc36ba12f401a90b55ed43294a496092fa00c1c0ed64660d307fa44d49a0f21a58799f SHA512 4900ed3f5192379fea443ff5b1c324af7f8dc2f5677fe8d13d18e283db56f48aac4e7e69c36ba4cd34580c83b333d998fbb79c7924bcb210dd8fb703812af085 +DIST rust-1.83.0-r2-sparc64-unknown-linux-gnu.tar.xz 70733240 BLAKE2B 731f040cfc2e8e34a6fb27a751cf20bec70e29a22b8c2a96c382a06583916f08c250dd8a6c593a6c2097128b33ff60b6e47e8efe5fb1a8b9bce65e68fe0a4d56 SHA512 2157b0a29df123126d711f91d7b09a2a48befbc5f76780f7420136d5fe7d6a8d53c0222a45e5f542c0d712df2e497245c4884962135b1aafbc9e4e1d5979bf2e DIST rust-1.83.0-riscv64gc-unknown-linux-gnu.tar.xz 218315040 BLAKE2B 91139066f3ac6a652db13985a225547eed242a6efaab0021bcf78b31e9e98fbedcdfe932110fa4c918f5eb3d8336b9b41a15dc2fcd316561d56e5bf205dd1567 SHA512 9bc1b82aff2e2447cb16680a8125378e33b7ceff4fdae7855bd7a79437f2df5b3989e82ffd68f157d50144018a74e6cc2053bda21de31d2c694aef29bf4e8bfc DIST rust-1.83.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e51ec506c4897e5e57cc94bfd3ba15d64e678a67b50acf48b8c69a5b95223006451d543275fc5291bb69369bead17a01d4934cda5b4744adfae2423200a002d0 SHA512 2d705740d928d49bd0eafe26cccf997f81c1f7ddd72bf6c4a4abe89e1984dca8e1b57af4b997939df355dea19abea2f45d430edafe88e7bb207abc0dc8d8ce3d -DIST rust-1.83.0-riscv64gc-unknown-linux-musl.tar.xz 78884296 BLAKE2B 1f59571a700a2e2547897f5b1ca7f447669e60c3b98995a0599ff98905b107e6b4d5cd74c6941bc5765a314723f8ef0b2583dde891a165d62d03c5e70900ea9f SHA512 99976036200eebac27453f06f41b6e347767576f619d6dbd74ea0c5a7fd888636f9c39fd6cc7c50d3fc91b429f710cbd7ca9fd7a036f3b30a89eb718a641dee1 DIST rust-1.83.0-s390x-unknown-linux-gnu.tar.xz 221194604 BLAKE2B 5d625e48296c171fe6da8ec70fa4daaf1632f6b63404d30ca0e908d63fcac3abc39f6fd9762d3670aa94f9a2587202d1b66f9751fd04e5e99f00caf8748243d6 SHA512 3aece2baaf66134ca339f3a9239c92ab7969c064eb35ede5dd61a3c2eca5eee4053b581edaab0acd6ba60cb7600b47902697e71c41873357fd53dbbe5c867d8b DIST rust-1.83.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B bf07a1e0454e46e030918a44bfb04e54bc49266951ee7d88f13f7a66da7fba0b4d65022248fba1e51248a69e1a1975246f81cdecd56cbedb6ecb69e54eabe39f SHA512 6412d9b17f2c1d63c7b2c44a38dbde01670dd96bced6384b826abea8402608f239acb6eaac273f9a02b7f593b58e84ac0cebc854d2213350a000be139cbc5a47 -DIST rust-1.83.0-sparc64-unknown-linux-gnu.tar.xz 63906648 BLAKE2B 2026153aa2e91a005be65e1602bfc1c6371835339a86722b47163bfa83d1ff0936223160704c6f8e5af0ed826487c27fd31a18bf904e608851e7ceec4e31af80 SHA512 8af0c1266e98f9d741c20d3e4046a6e57f18d951353d8764d633ca157db74f5747f3d0d2b9122a21ef49ac91ad8502dc01a1bee3c5c95caa62c4e0ebd3dd9ee3 DIST rust-1.83.0-x86_64-unknown-linux-gnu.tar.xz 180329116 BLAKE2B e2c661061e21c3ea6a75c0c9f43d0558405fe4f16f75d763f5a80c1d0c4d7cacd7bd7136e625872f9c22455439ee070ed9f84d661b9cb2d74b0f436153a34ffa SHA512 d4e05dc817f1fcde4b46b82300a95d79f7d908e804534b223a396ff27b19f195fcdebdc933204fab3e0a45202e394722fdfb217ecbb1c1332394e97200ffe089 DIST rust-1.83.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1453c9047b590358731d4ea9e8d6dab0da1ea937fd9b9f6ee2137459d0a426df6333a9dc53dff65f6c82a17b93a98efc5dea33f9218145070a7605baffebc1da SHA512 f6a3636611d0bb5cb41989547388901bed0dbe54fe3d99d94391bc815718a85af52d0110747c3d7f1b6a455ebaa221b74c2c9fe11403b147325b6ec0c4bf46ef DIST rust-1.83.0-x86_64-unknown-linux-musl.tar.xz 260755616 BLAKE2B 0a61fad7f03645a9b4032fe4ca910663f0406a64a42cd113a09019199e6deceefce2a450ca14bc47745db08a9fe8970897fd01c2121f9b6bcb20b23652ada5de SHA512 2e219eec7b28a60e9bd160972042316460d91fe60f755c625bee30724059f4f9c4a29d567bea54718f9b8d739cc1c81cb4dedff0c868270861c866452d5cf8a3 @@ -380,28 +384,157 @@ DIST rust-1.84.0-i686-unknown-linux-gnu.tar.xz 235927300 BLAKE2B f0825b843745562 DIST rust-1.84.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9b8d092db5f894f563bbfb45666430f231ccdebcf05a811c3546be167d851a84891122c29ba3bceb6a2bf71e87817a29d703a40cad4f8fcdf3968d391347578a SHA512 51595e120a71958ed6551ff102f7891cdf3d9a6b9adaa990525b82ec75eb1c0266dce6350775139052a27d787612596cf083e9b0c3b9e7de5db8eb65a2546c59 DIST rust-1.84.0-loongarch64-unknown-linux-gnu.tar.xz 234981212 BLAKE2B 1e6616834440eac754ad0725ce88ec7d83e6804bf084bb2ab1c2adff1fbbbb0861780ebf57116f4fa38ad67667b89d0d7e9ca7184f0c0ee65f7b23886652ee10 SHA512 47671edf5c751bffcf87ab3a76cdb1233eb64c3d6815825ff0130bbb8956e6bc452bd75395bf8f44abd7b78c23db8d9f0047b6538a4f9c12d729d25ba43d038f DIST rust-1.84.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 4cb2035ed10a735a688b2b80975aa16b2a311c9ccf5c8b6ec63af4dbe30e06713621c119721cde6e44d504133343ea2aa5158dc6bbb6253aa330894161559374 SHA512 ec74e916f9479ab046f0d997f4eee99b1c23028a3aa207fa7be71762ce7cf428af53a6d172714653fb30e5d6d8d42936cc7fe3d9c7f3a33262703d15fc9baffb -DIST rust-1.84.0-mips-unknown-linux-gnu.tar.xz 75963912 BLAKE2B 228b0605577f889d782fe468f5598e88df27a77453acca5e3a74e009cdd1463ffd2449f638166862ae4c0b84577ef4c11d0f7ee9198d653716fcf53fb54955de SHA512 dd636652841fdaa13c8c25b331f604060d4e232610098b524ed593164d60b59fc91c0325bc08afad301a9c221c08f015affc9f6f988d250dbc1051b76039a463 -DIST rust-1.84.0-mips64-unknown-linux-gnuabi64.tar.xz 75736380 BLAKE2B bfb81353be437e6eca4fa2133439e3774b42e388c21e64051073738165b7454e1a98d0f4d3c74bf668d789f622ee38c06f2e6ac5e9acbcc35351076f4baedf95 SHA512 e5ddca3ebfe1c952b3729c77ca6ae0dc429fc95be63e26dff26a0724e4b7c00faadda7c13267ddf8edff9af1bdf5c4c8ef8ad67439d509f3ee4038e95d245804 -DIST rust-1.84.0-mips64el-unknown-linux-gnuabi64.tar.xz 77348484 BLAKE2B 9c6bbcf37929e6da2459c498bb47027954b7b99780de35f0ac3e549d3779a0f74e81276015cccafdd75a2da4d2ecf7838aebf0420e2132979d40b7f66666051a SHA512 fe8aaa46773ca38f192befbf2adb11d66f50856778f8c54d2d9064681110fee7b32a1749871fbf32c83da4a867c668b81fe14f4596dd276a748c909d12fdb676 -DIST rust-1.84.0-mipsel-unknown-linux-gnu.tar.xz 77647044 BLAKE2B 7779f6d6e86eceb3f3e28c771745a2b52856504c8819ae515d34003b4454c967ac5481f36bc8cce9e75289c75eb2df3b966eba629b25afedfca2b1543e65b28d SHA512 3b07c7e45fdcefc327e1d0bbb76a55a8edb62fb1cfd5551c18210460153c1b00ef9e6fbb77e65c4cc2d7fd938f31e1a39a50dbfe836c65cc2c6397b26d1a509d DIST rust-1.84.0-powerpc-unknown-linux-gnu.tar.xz 226162544 BLAKE2B e1bb743b29f8dffed0e5b7f83da5ec58b4977dbb7621eb1a66f7d42dc9e588eecbd51013d2bca3dd24e679ec1f57bd8d1b9d5bd44fb155b8757b75c61f2649e1 SHA512 d09d52c64c097f9e8238c64a5e69530c8e7fc72db6c48c76f5118598d0c2c1186b40b053aa78b8b1d071cc716cc50ab7d824655af777b8a76c4131edac44e813 DIST rust-1.84.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 8eded34d62506f87d38ef3c503f62d5687a646aec8a0ff699d73d1b0907d0735aa7f7893d3b5ee481f069a01998182c70e10d48f664268bdec44655449825e78 SHA512 a3a5a6ae3ac2f210253c2eae61b0c0647cf5f526866e0f5c0141a07f9587cd614573bb2728186889483806a1a3ab5885c9abcca91a16dc36d042bc78239592d4 DIST rust-1.84.0-powerpc64-unknown-linux-gnu.tar.xz 222899356 BLAKE2B ff9b3bc680cae85485131d23fef5d04abffa69c7d4f4ad254a868707b1206bec543faf20a0be5c287c83165680da8dfbb9a0ce8c688e4f29231df2a589125450 SHA512 16440b2c604061dff6ebdb60af6697d3064ce6ec740c617968b22d8479cdb16cfb61330b2afeadbb544826c6fe90b245eba0de3956ae2924cf77ef8565defae0 DIST rust-1.84.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 67fd274e3315a21ed0b23fc8bcf013ab20b905c373785b74bada5431d0d1cc1b63e7ea3dcbfe4bd8def0861d08ce13cf769796e244437cc6beab6db95f01c6b6 SHA512 87ea6ead36d9dfddb5a71690f4d434978dcd73264c32e93ab7d3ef74f7c5835fd5e73316f1bb827c418492dd30f3a5bac752054ce1e27d99600249b64412d1c2 -DIST rust-1.84.0-powerpc64-unknown-linux-musl.tar.xz 78604816 BLAKE2B 5955afafb06908ddc25e469ff609bab22ca0bfb3d7ae84ab82232cc2d9534e944a2813f513f1b690d6736d0bc496ec6d7239e84e7449c08ac48d8490aef74e04 SHA512 066a192edc3519ee1bf18b8aaa4e0e1f49306985c3cea6ca8c60e3cf257b29cc72fa605c65a55e39f408168e7a09cc371efa42f8ec783ce6bdff37de5450a479 DIST rust-1.84.0-powerpc64le-unknown-linux-gnu.tar.xz 235629500 BLAKE2B 32903240ada4cf2640814374c55d71e3351a0dcf413d54041117a3f6603ddd6c19033368382bbb18c5d1f278c9bb3f5d6d0ace966bb1fcad9cc9389fdd066135 SHA512 626476e551869a066600f459e7a6e9c8435f61b4018efba5b3102af72ec7508cbd4464d0b60adce5c669d34adf4315ec3529d0ebdac6d294de7c7437da264367 DIST rust-1.84.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3e762822c5563db6efc128aab7ff704165dbe35cd06dda07c677ef2b94084a2ee37fdf77e8aaeaec4987de2f5bc73da9a2ab572e4e4d2b64a775a447b548e40b SHA512 113b7ef16977f24ad6acd72426ce389492aad7d8fc36bd3feeb921a21563e20c0144c3eaba3c63818556794df7904def0e83e5645cd4c766724898baca9ef208 -DIST rust-1.84.0-powerpc64le-unknown-linux-musl.tar.xz 80982656 BLAKE2B 9986395107b386ed047bb9843d46da27c44b5ecab77abec3902761b114131c5a28683cc52a19887af4a8d665a2e5d35146bfe0d358175de412673eda8cac8060 SHA512 13e0bcbcfcd3e0745b5d1c7b9ae379c7da3a629ec7467b7b8b0d7e623ccd314823162955157aa487927511934515f85b8847c5a7b14e5e1938884eca1a848777 +DIST rust-1.84.0-r1-mips-unknown-linux-gnu.tar.xz 75947332 BLAKE2B 80ffe16aa2f822e093b58990c1d2befc503148ea0a6e06a752200a412bbd4301de57d05c4b97474ecce425e3f182efd8101a60c5cad6bd47460ae2096bcce59a SHA512 b9241ba740b436945a5282d014b4fc52a66cdc2d6e20d96c344edc384154674e7f3d8c9a2de3f38d1b322d1f73b274906ad93f779603426be8945e6f3689accf +DIST rust-1.84.0-r1-mips64-unknown-linux-gnuabi64.tar.xz 75753700 BLAKE2B a34f243cccddeab3365d219c39830eff3ab25f117cf98103648605653d2028cb574264ad372aa1d31321ca1da7b8c81653fc119df8f572aa706e02c424484910 SHA512 b65036f08ca6f448cebd4d2ada9fd760f9a7830d977583e12ea800c42bfbb59fdfd5120fa6a9f9497fdc061d20703fe3d455770ad3b1cd278c440c799c0ef1c8 +DIST rust-1.84.0-r1-mips64el-unknown-linux-gnuabi64.tar.xz 77344736 BLAKE2B 4d482f5f0b9ec5b567e6a55b5fd067997b7742a733a5ce09ec121b6c5757b2adab2dc53e787260ebc2cb45a3c5ad45c0249693dbff92324ce5c27a95be6359ba SHA512 5b30df97f3d4d7cc0c3080c49c7277f875ff60ba955bba7e9e1e0296ef45f1c9c7e71728f446b66da59f8fd8a341454a95e9cb68f7ee391d5e12adf91eff6591 +DIST rust-1.84.0-r1-mipsel-unknown-linux-gnu.tar.xz 77659468 BLAKE2B d543ac0c8836d1582b3f439b44048cb13c3a7c8c9b1a5198da94d7588316668fd8e9bbad7ba924efeaf62f908c6d8ba8e910117e9188567ef9cdfc6cb4a79d86 SHA512 7866fe762670ba8a4c375247353c1395866ca1263c1fbc7094e8e2600ef60e8311a561b81d68890fe59a029e3c9ad508fad5a51402846fe5c0e5a171e281ad45 +DIST rust-1.84.0-r1-powerpc64-unknown-linux-musl.tar.xz 78546896 BLAKE2B 0aa687d9af4e4d4a869ea5bd446f96b02181a6ac6a679b93440f5c1561b31c2d900ff26a04a7b36f35d88af6afc5b347ef54bcc68405e3405c567cd62ca7ced5 SHA512 37330dab5c45c8c04b42789cb0be801df0488d913942d70ee0d325095861cf740f6df9fdcc27cb39538944a3bcc7e6b4b988c2a9e8d72aea1c2793461d3265f2 +DIST rust-1.84.0-r1-powerpc64le-unknown-linux-musl.tar.xz 80969948 BLAKE2B 72cc650959a8552d1e551d1df4c1c1dd416af9e39978f036ec1b5134d1fdff3d9fcdf58de9605f9474ee1549d9eb195299dcf28f07e2e987086b229c157b1d5e SHA512 538f2c81dda0d78f79631d631a3668869e30fa0e494692a0056319cda72d1c646f509eb7ee1fc970ad0346577d97a41568eeb98a8b15f6b6d98fbd80d2245725 +DIST rust-1.84.0-r1-riscv64gc-unknown-linux-musl.tar.xz 82863916 BLAKE2B 1ca9d7ad04cc9d095e326b7a8668f2020428e511a7ff42cc52aeac1e315f068858e5e02fa65311acbc62c80b645bf7298ba5a0eee7e8efdd97f8a5cd95a19234 SHA512 327372b80939c6936b68dca8f18f5f10827cafdb9befff64387adc901ed4566643fa3fd9009b3b2416121fd15e25e560a15aee7825bcc9d6a9b570ec01c2a9f5 +DIST rust-1.84.0-r1-sparc64-unknown-linux-gnu.tar.xz 74128656 BLAKE2B e6efe38ba9d6b222f21e909e467dc649c6584b363ad2ca31cd67707501f1e0f58a608a1554a92dcadc91d2c7c9839caf1236bfb3fca25429f485ec02f06fec21 SHA512 bfaa4e56e79d3cadc5f4d6598c06502b97c2337217dcfb6ca9025c261e98828d2ce017ec3fa675b996db18ffa183cccbd4b5e3126db0404d0ed872f0e9325900 DIST rust-1.84.0-riscv64gc-unknown-linux-gnu.tar.xz 221099540 BLAKE2B 0941d02fed906487753188150220c7e5a957e68b40e2e33929a74c6c520d34b2547307f74738ca6728f7e68213da81c5d2b07bc8b5ab7c0048bb222cc4aa2d6d SHA512 fe57aa11719164bb3865049ac91d1739f02e098f096db77a290f55f22423a870e1e0bc19d3ae2fd0bf32e5c6c9b10d5f3884b0070c5ffcf58b5d77598653b811 DIST rust-1.84.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e1100cd2dc56582472c312ce4d2a161a85cd371fc42bd281b14475f4ed922a38e8b79068aad5cf66c2c489965f782733edec1f72414f4b88628e4d661fea9014 SHA512 d54d69eca7651d166fa9c52bba562ce5008d5e6fd96eab8499a8dc9dcd178f009228e1d6788a4023478b29c2e477a379c6a2cc2b5c015072d87bbe929493eaab -DIST rust-1.84.0-riscv64gc-unknown-linux-musl.tar.xz 82884604 BLAKE2B 98fb594e11c35e2b93fc6bad089ee8d3a036b648eb2e7a5e5ea7a353291ad746d99f70949a3f12d884eb01dc881d8a521a877d7a54a81f9b72931f489d5a5575 SHA512 4133c5afac78201f72626c26d3359f5e4228be2f0a7f39e4c7c95e3797345fbe24e8c4a7daafb56836a8f00071d40916887a35656b7d9ebe43fd468f824345b0 DIST rust-1.84.0-s390x-unknown-linux-gnu.tar.xz 225691648 BLAKE2B e007b7c08998a488162721b418c9bd22dcb8ffbe450da543be285d4708ed366fc01f0bc6f668b7058e544c3df7025977454e3aa98fd98d29970be28e2a6d6438 SHA512 cafcb20513a27bfdb9d4caf0e53f929f30f40592f340ee6683294ef52c438c913381c677b6c266efe85b2980ddcddf7d2f90fd22b2482a6ea7348084e5638598 DIST rust-1.84.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 27b6afef3ca0c4df951e678469548784cbbc339772297966a449f17869ff7c47bad72c114edaca66d79dea6a63cf38755fa2c439e9283c7bb786a9c4eab02fb9 SHA512 6656f2ea30758ba23f7a1ac330695c262cea1c82d33bc64e968d8bbd5b39366e8d8e0983f6bdcbfa818225b63863fd941eeb9090d024e3d8ba254cb99f214a2e -DIST rust-1.84.0-sparc64-unknown-linux-gnu.tar.xz 67048992 BLAKE2B a84fcd2139ecdf9a5bd071518f7880e015a611a1d1ea9176ba3f8ed935e52254359bad0c15fb3d5e5fb2fb20913fcd3e3d4d29c764c04eb5269026d93c13dbf1 SHA512 47d0eee57de82fb155957631103399e2da1cafd74f7f16115549b4adde49fc58bd3a405acd0fc2e5095d89e3fbc5fa835a37f64b3e6f9079584de9b111a5cd60 DIST rust-1.84.0-x86_64-unknown-linux-gnu.tar.xz 183288052 BLAKE2B 6a9bdf25e8ebdad1e8b36feee4d152235397eb3a52351a166905f350a8fccabdc4f03f4c1e490bc81d4f403f2810b37aeee964b49f4c375a9792ca8a054c61ac SHA512 4d37691577636ecd233e4c507da4aa2c6c31f965fec29a59eb22bbc6c8d765eaf95d63fc1ffe8ba9ad309f5a0a712e60c5a94a832164bae283f06b41fecc2579 DIST rust-1.84.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3ceb1130faa28ed9caf86b0c66471b04aa2663bf6188230fd96a0c0d4ff7a4255cb0e7e3e6e71d8a3de86798bd7f53ccdafe21285ae247d1f1718fbd0aa04d31 SHA512 bb782d01731f8aeb4a54555ac2163bbf625e83a17f5d8e10fa76217b345b247b4d653b5bada065fe647c8b19e1dc66316b1ebea252525fa194cb7bdc6370c59b DIST rust-1.84.0-x86_64-unknown-linux-musl.tar.xz 263170948 BLAKE2B d4e43adbcc8ab3f49306d5ae624340f7e7b0844821c74140997510ca40d4bf252ff698e1295ab8138bae237d079c1e3cff6a46f895f55fbb7ba2c93054e1648c SHA512 6cf083cc2cda4591314ba49a302aba2aec8fd036eb9a72b775d16561d0739df23a1f3b0cb44d6539a068a47730142b09aeaafa1b0756703c51b539851e59bee5 DIST rust-1.84.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 9abf6ad52601fa64e807a71bb6af5a9fd8c3ecda5589ec7232ffdbd7884db67535a5845216fe7ab9133fc114fdc12caee436bc1bb78a163f94a021060459b1e6 SHA512 f9a0c7fa85668b034f0a0891ddc0b9d8f624589c8c9485421e199abc9a82dec481ef3491a4e1286fdf6c6863221e7761cada393697ff1da93716321bcbca679c +DIST rust-1.84.1-aarch64-unknown-linux-gnu.tar.xz 241951328 BLAKE2B 39af8e2258ee496150c12204975c44ddf8dd54f4bdd9414d774444403b9d9f997d6b0ea06c86a850ce75f8bdfb2049076b0487132d3df69fd0c36c6d290dea7c SHA512 285720f5da5eb6fc4d10c98e0d5e5961ec73fb8c99f2fdd60e7954c5fbae27f01ee1f97542af4c6181b2f8071ff0e0f4d7fb53d4019f355eedba19698af93c45 +DIST rust-1.84.1-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b9624946128ad2d054d9f4ae3b54aa40657c4deb92a6fb44ad4f38f79ab24afa0c5a568b21ec54e62862ff7abf57102b424cc1383920f67f23be20902e1e5ab8 SHA512 23bba5bd8cf9c3ae591c6f48261b7e54be532dfcb6ffe133c6b374b831e3e00df54c89de4b6f34787dd1c5801c130b1d7b8a3168be46a97d3e412832f56c11e3 +DIST rust-1.84.1-aarch64-unknown-linux-musl.tar.xz 218987176 BLAKE2B a5ce111633f0a999754878b1ed77c5ba2fd3e3649fea2c23c85709b168bea49c110a1f04e35b67381e724c0a942837ebfce1a06f4dbe545ba2edb64943d39265 SHA512 c3d9c0c25a0a722f21cf9515ac4f9f2cdc8b37bc0c8cae2239fd9924748f92d10834a41a85672b63740a6687c0cc75be33e2aab5c982acda7cd0c0571ad89641 +DIST rust-1.84.1-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 7cbe4b2adf445585b3535d7590ebb8b362f5f138b3bf8d7b5b766153fa3b24dba78e41d53686693016e53abfa2e9f4dd553b61254c699c7263a37a7f9c7d8eb1 SHA512 0a1d82e92bc1b1b4997f3d60562e13aa9af578052d72c63d2f0dd4c73c8e86422882051dabaa14dcc73b15a951043a6bb8f8bcb94213a757fa373bb9b3acfea1 +DIST rust-1.84.1-arm-unknown-linux-gnueabi.tar.xz 203627060 BLAKE2B 3d6294d3d594dac9468104d5b04f087862776084d3b6f21252bab9c5f084c193cdc520e68aacf161e940efa26446183705a76c0944a7e93229a88d6bdffceb90 SHA512 18e57c4c880c88773cca087614de1a2e77c9d1977d76960fb6041fa8e89ee851ac7dd4080ac37e07afcb780186a9cf8f5f76c3c0e8eea742adacacea38d105a4 +DIST rust-1.84.1-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B d84feab18653894552eb42aef01582eb8ab76f4ebf6c7eb9760ca6058a610cd7ee8f68990ead59293bfb568423fee3174d8b3e6d35b286b6e944af8f2a5f35a5 SHA512 7e8c9022e96b03dfc5dab4401d630f626cc0c49bd4969de060beb67ce0bb361bfb09400e91a08a00b5ddcb445dfe26db650ead495a3128bcae17776c970fb6e5 +DIST rust-1.84.1-arm-unknown-linux-gnueabihf.tar.xz 204000836 BLAKE2B c2708c8225c7acc8c5ff958ae107bb767769442f863c52f706bdb003dc4986a3a1f69ac9bd8c6024bfc76d232a938e056532314b01eb93bfe2280f3704010527 SHA512 81f308af5dbfedbcb7e77e571dace7378fc6a85a26f1a6663f932cab718742087f9ab178a45087a27e08a67bab10563c0eaf756b75b2e245ce1dc16f23886a33 +DIST rust-1.84.1-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B ac95d48013eadc0d1b4f69396ac8f461edaaae396d1e917524d9138061c122004ce598de86bd392bd573cc50cc91038d741234355fe0051bf15ec176718f92c9 SHA512 2e3d06ddb8c6a8201580f726ce239edc687970e8d8ac5df201026de260d2893dd84e622fd35e28bdfc98f4eaa19802e7588ff90930a9fdc3daf565907e62a0b5 +DIST rust-1.84.1-armv7-unknown-linux-gnueabihf.tar.xz 209293460 BLAKE2B 847b7ceebffe51508f0c59c26f17344e8a30ecd0eec1f777af5314a96a17522c889d1803cceceeb5a1e240ca5aadcebfb626d4f83bf276aaf2a7a57a4ee303b2 SHA512 023293e977ecdfc50454a171751755c48916aeb5301bff166dbbd3835bf849bbc0f85c08b61c7411938e696e5394c8bcc6cb6bbe135dc8b899c6d0a010da92ea +DIST rust-1.84.1-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B c9043e263fea338940d5f7f3d45de307a0595106c5ebd4ac1f9f10fbb37d937ce51e845efbde6b093f66ceba40607d632b9f23d2ea885dcf9b887eb371225e31 SHA512 076aee4f5b93ec6478bdfb9ccbe614073fe4ef0c195b60b5c70e154e429765516a522d5c4a2bdb6fa1df0110d8fad60b354791c4c65ae01c014e2a9b4580f853 +DIST rust-1.84.1-i686-unknown-linux-gnu.tar.xz 236617104 BLAKE2B e4120991b23f8a253be7e9bcebcdba2947b9d21cbedcf02e4275fe854472fc9ba6ad87946c31c5aee0e46757b41ee393d35d5f3bb1a9eebc4a50817e4bd267ea SHA512 3b4e67c34fdc906a781de545bb82cf95f90bf762592f22f262a5efefbc5726c06575cc5c3ebbf8ca8c7d45950368cadcd6f6dcc208f096d811a8bfb0ad53b6f5 +DIST rust-1.84.1-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e18c919dccd29dc5521265db6f985ac53e9ccc2f4d7e07aadec2587e2a769acb72ee3249dbf2793679953b42e18fd957fff7ee3344b207ea1cda1e56dd4e91ab SHA512 60b34315ac9de14986d9cc05b1c40e4611ade8c568a288969d4f2d5a42cbfc930f11e7c628af9ad9707180cbbcad3c4e566f54538f8c36ff867663a25e2dbf8f +DIST rust-1.84.1-loongarch64-unknown-linux-gnu.tar.xz 234696928 BLAKE2B 947b5e165c1763f6d24778d8eb88c4779e68e4f1b6333ebd429795c1e61bef773a33bea4450bfe16951c00e45e5e3eae2a1f80c9f127b57c08858f504d9f2e8e SHA512 edaaec4c8c260ffbb4f78c4c64fcf23573055fac6de3f545100efc266b0f41a35f4f49964c404efa7950fda1434ca061063d6d0e354b6042dd2b64f3b16fe8ea +DIST rust-1.84.1-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f4c848f1f0f9b77c128e848b62d1f91b2b20e6ffcc4038da6556ffc59c5bd6f5d4139f8e617f5a1ebe8106e702123a69ac6d8c8be95d189cc933bd21248563fa SHA512 2bce7fff1c7370ae3af8f9ac4c75ee3d503a9bf85b605a98442a1fbe7b88a89ef194b7d1c34bb6a08d6696bc675cd220e787e05b4955b0e12f0aa62ef2545497 +DIST rust-1.84.1-powerpc-unknown-linux-gnu.tar.xz 225950144 BLAKE2B 036db582096a06fedf5e97467d02ddd75dd027836f38814c0fb52aea46afaf7aa769c030d572099adcf2e541df9d85ae6fbf9ad806af5a443bd2507f359ac2f9 SHA512 27cd36ef0243bdb367ddeb941654227eae2a412036f9d7dcd8d8c78651ab83bc9e5313fafdad355a155b726aba9b32731a66f88cb9ab91e30dd7abdf5803e1b2 +DIST rust-1.84.1-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1fc0a161cac7ba4aaf273d3a6f130ff86beb1ca7e539b50cc948a4e4b5bb8bb857e963d4d3ce2ca4573800336791d4bb1aef9236cc3ee228500feb48b0800584 SHA512 8d77554d446a7e696d0ddba29ad4578629678c88a2ba905415e4207c608cade8da2c67b7dcbd446210dc1a4e3639f20bebef1a15a9629da95a5a1be65e4872da +DIST rust-1.84.1-powerpc64-unknown-linux-gnu.tar.xz 222960252 BLAKE2B 56271e4c45216bdd422b5281022cc8db1b9a87475e983e1a7b43ace3937fe3f3743f6af6ff30eefaf1d16a147e273ab240b451b57108bf80112980b641ff8847 SHA512 1aa08a1cf7c3e40a6adf763306fe73197e8663ecf7d29cd266acb68ff60d7743836d7f7d9e9cd7c8f6bfaf61ed5452dbfb176b6c61181774b4fde7321e0c7941 +DIST rust-1.84.1-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c174fb8700c97b07c6e573ca8ae2df57daa9bff308584f2855289fe7eece81ba72eefd0e01cee29a694cf3eddb25da7f492c4369e5360fee62692ae2fb2f1315 SHA512 3532057cd95219cbe7483376ceee24b3844f4148b9436bc6da0c9ec6c75a6b7e5896044d06b53d7e4b0965498693fd22238b9a7d2bc5eaaec8abb55cdae084f3 +DIST rust-1.84.1-powerpc64le-unknown-linux-gnu.tar.xz 235702728 BLAKE2B a3d113abc5eb3855e9abb4aa8428843f2ef682ae2786612370e4dfce662afd00ef665fa4325d0b270703e6a0e3fc52214e20713169c46bb1d9fe0bfb5ebd1273 SHA512 3962689137db3f59a4894b1f6b5ec87da7f96a384da0fec8d4722589b1852ba8ffd3ceb5de5f1d83f8d3d4eecdf38bb54b8b913907f13a681849e5e50ec643b3 +DIST rust-1.84.1-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b12ca2366aa878274e24ed2d72db053d82b6b7c79b52e015841d708be8a0ff4d2950dedbd46916b0b3bca5a459b8abd674b7ace7fcd7f75d2728574f43e8a57a SHA512 1dc026ce19e375a0075df381e35921d841ad79d9be440dcc602810114d2bfad0eebd3c1cf99559fe30da599a0d3d995ff2579bb75a535c92091b0d6d579da316 +DIST rust-1.84.1-r1-mips-unknown-linux-gnu.tar.xz 75885456 BLAKE2B cb3e217ddea4a5bd0f6720fa119c5bf895e1762cec241a38421331fd61e1e6b7a6ed3f355ccfcb993412e2a7d2e6177ebbb80705314459cb117ae4a5f825fd9b SHA512 3e7de6d22ac261761889ef9b170307be14f63718e1b29028ca124409bed79774ee8505fc21126b02f73c109656efeee826c86d28469cac841af53c0ae29d1dc3 +DIST rust-1.84.1-r1-mips64-unknown-linux-gnuabi64.tar.xz 75708448 BLAKE2B 7a1fd05e33a7b1bfc10172c7dc8ae94b7ef51c8cddaa6fe14637f57edfe5616cf0d482845f8777fbd243a5f4a18aa23d79743e84bd3f288ac9579280a40e4dd2 SHA512 1d1a1b728939c5f9114ec26d559bc7e0845fb124f9929469eab748cf085e9a1a5e77ef1e9afac0e13bc54bdd07945c2dd9bc1df7532ebccd270837f3350da0bd +DIST rust-1.84.1-r1-mips64el-unknown-linux-gnuabi64.tar.xz 77288560 BLAKE2B 49161afe2beb0d41cb0acf8ac2d902c515ba4a00aaba3454f30e9bdd1852dad31336b5b8f1c13970183c5f45061485451a4677f8720fcb12ae95d35ea62a5f0f SHA512 8d14b64e15dbdf263d371eb3ba94b2a2bee8697ad41c54acc7fbb5fae0f238cf6a92ccd274896a87da6a227fc2b929b2f1ebe1f5c217700e6784639b515c4650 +DIST rust-1.84.1-r1-mipsel-unknown-linux-gnu.tar.xz 77640732 BLAKE2B e0f4ce16b345bec7faca84d0f643edb49880170c6a47390fad19b2a1cfc62b5b145dfa9b82e09e32c069734a14f959d171bdf96ae4ba31baff6d521e460d7af8 SHA512 e7423b959a2a8551842582f1559d260263cebaaad1ebb7f7818e1174f8cdbcfbfeea6dc9080825052367d73e99b428a59b5ffdf89e3b63dd9784969166202f58 +DIST rust-1.84.1-r1-powerpc64-unknown-linux-musl.tar.xz 78616944 BLAKE2B 756d3465e763bfbe2980089b9645a213bfe8e455a8de47cddc2317453d92038190fbf292908bdf319b753b36abf78771bc6b2dad15951bf5bc8452f5b57909ad SHA512 d23a95fcae389d77d2cda00b04e8902e73ed3d6edc6a6002685f527f6b529338bc61c112ddea7b4e2bb093ed94de51aba294f6f3b4a9da04a1e57939a45229ea +DIST rust-1.84.1-r1-powerpc64le-unknown-linux-musl.tar.xz 80956700 BLAKE2B 3e481a4054c59d598a063c0fb5fc40e23054dfb61a0eaf4184993288481357257ef79c1019d2797544fa642a711ee48eedfb606ede0e69fa004773f7a4399b4c SHA512 894d588d06c8633bb7cb3fb9c694013b87d711b7f955d92c0a567b64f35baa714048497929596f4a94f1301f3ce948072e55dcf6b860fbc83f1257fc0d11f9dd +DIST rust-1.84.1-r1-riscv64gc-unknown-linux-musl.tar.xz 82846388 BLAKE2B 6085c2d031de35dbe8b68536d23965ada580a9c1202a9c95cd0c3ec4df144f5e0a2a98e193452438802bf3cd3decbf8392762f6d8c80b8aebe6a04333f6be67f SHA512 06bea02d66b3f62cd56b60d6fc368c4ec720945196a392c6ff86d71293b10646feeda33d6cfbb613e514f0598182affcfe97439df5a9c4b6a4de539c5cd9525c +DIST rust-1.84.1-r1-sparc64-unknown-linux-gnu.tar.xz 74126868 BLAKE2B 11df438996a53a905aac4809b905735c28bfaec98fc54d357b923f5f4d285738cb5af957c633fc709185a029bdf52f84a7042d204257ea3601ba462aae75e213 SHA512 f205976c8d5e420eeb7c33a7624a3cbd65539a02e5947db3e7f28832f2b6923070c3728ebb4f4bf0397448becf48cc27719ce060a053d004462d2d76a93b984f +DIST rust-1.84.1-riscv64gc-unknown-linux-gnu.tar.xz 222166452 BLAKE2B 9a0835109e1343f745db303d44deacbf81e0fc8f8d1ac4724dd503a6a6c394c82da3bf677d32bc72355606bc065c69fc37a3af1740d6b4e22d3dd4b12f1bc764 SHA512 788febdfdb46e41092665b828bd53fe98eb0bc04ba750845a5308b6069364dfb71b06f18c293d42bd0f608910c294595ecba821335cbe2f5a4499e663e74db36 +DIST rust-1.84.1-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7ccccbef2b78d73eb2526d1c33adb20b145acf3ba1db234ec88a6b512c5bb7e0236892bd3593431eaaa670c98aa44d93ccf35ade406ab4321d058f6338fe37e2 SHA512 554b2cc566a5cc366eddb6de3c62862c0a39593e5331fb1f50138f5abae521e52e397470e1c841734d29a49ab31a24c02201c0fdf42c37a75673cb29e3744b95 +DIST rust-1.84.1-s390x-unknown-linux-gnu.tar.xz 225661352 BLAKE2B 1ca5afa5c46eb65acbd85925971ed8eeb2bf87aaeb1158616e5ed0f7aeac1a44e262b333a56672a56bc52730cdb0cee56c825d4c45f0ce016591b3996b07e32f SHA512 4f8e1a74a8c29243f6220b1ff4cf694f7ad8afacb5884b05ef88d7bedb05fe2b4a34b38d614e7d72b94c2a923c0c7de733c36f3d51e8dbf3bae9aadcc01d45df +DIST rust-1.84.1-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 44d6ea57f512ec3ae7e10bf475ce50eb1d4955de64033ae2c4f715be3323ca0c308d3049f3b18f194569ab6eca47abaa205607c8efb5d99432f5bae5311581d8 SHA512 fd447b1655a7033c5b22cbf4401e52b755867ec60e5bca1fa01e9b05e730c20f9c23d6eaff2c3e71287406ad823b25eec252d41187703937b638fab15c1c49dc +DIST rust-1.84.1-x86_64-unknown-linux-gnu.tar.xz 182944280 BLAKE2B ad8fd7b70e8687802e79a31eb913aa5f3dec61521bb98667c250988ccf69932d36fa94d15de3219aeb7820e776a818dbfe9a16ef9cc59059a7ac2d8e8e4e92f0 SHA512 cdc3ac3f8a3fd890bf6d43cd920bb72a077c66f273077409a8dea6d8a9a1f747169aebc5f645202a422c50b1bac5c55691e57a7b46b5b24bf2f1bfe8ad7ddb13 +DIST rust-1.84.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B cc4f3a136c7b137743792db470427a0d7823ae37a88c52b7dce35cdb72602557119fa68d01e4fec338556148dd7d760b3b95740b6e23bf45e80042d9203b50c9 SHA512 1b6e80910fc91997badc3113412b177d136495c22c02a4483e0bf221e609617ba05a30f8756ad72931fa92cd1d837ec15c579ce27bcef65629622648880a9fd5 +DIST rust-1.84.1-x86_64-unknown-linux-musl.tar.xz 263174048 BLAKE2B b3ec6201d10e5044ab27954a515a27d582a5aba75bb32437d4df2037225fc13fdaed68537add5baff1f390600ebdeab451a000624cab3a0a34b178043f0007b8 SHA512 f0c40edfdfcbef8472d0cf3c1bd167b2c7d9c238147048ad9d45ac8fac7d41b1e311757974fd6478b531c6788005aa4003c22ce223b47a2ad6444df10cfe4805 +DIST rust-1.84.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 9424c40f72bda9334c904fea44d91ecd229c15e571bc6840831d90ce8e535cd9bfc472925baf155ced21626aa74afdc8f1d143233a24952a1bd59d84c8e56322 SHA512 0cfd282306cc4596d6c10f927277532be276e06c0ecde2e695d06159729ac4a99148b0a8db3de3ede4e81e1bd4a67be74f8e9e696f445e83d10394f1834b73e4 +DIST rust-1.85.0-aarch64-unknown-linux-gnu.tar.xz 241942608 BLAKE2B 2ef6ad834df56ecf2e67c98b9153474aa35531460d8968d3f1f17fbb4c1883ffc71c7aa55b6cce1980b07e45fa3a8405267d41477d230cdaf42da3aa28cf8be1 SHA512 259e091f46983170855fd7968dc7185bd91bd27e2786f054a5b6275bbdbac270b5cfffbf854ba5b2144bd200ec5d27a74044c67084fe7eda539619f2efb910f8 +DIST rust-1.85.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d2f1a6fff81e39a1e6c4f8812564f2700af2143b8ca8996dc1dc7039f58eb5f65b87365da4ae49761cdba7c0daa686de12925680cd2800864e986d80bb7dba60 SHA512 b69f894550b1d2b90efcab7170fdf2ab60ca3a66d726b77e486e43ed6224d8d747550e6adb3b98267428e566d491aa3136df7c072c44d80a1c36783bc6abd56c +DIST rust-1.85.0-aarch64-unknown-linux-musl.tar.xz 218899980 BLAKE2B bd6368e55b92577f5a2caf7a22606042853c4ee9c78e981196e5eed3ba808d15124bed30389846ad3ad3681006ce5d6748261937d25f55f8a7bdb8ea7f5a5b90 SHA512 2bee33ecf5b59c3b800de40604bd8ebccf2319cdc8eaf9e47f1ea6bf773cb2be19ba285a19fe40384f7e875a71bff43e5303dbbefb8a90d8cd70e60b13b6eed5 +DIST rust-1.85.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 4d64fd7558849092846f1dd3f8a934cb34729bda8086eb4277fd796a1abbf71acee9889e8b7bc23d5bc16410b74a8d233940daafc377e169b02f56d82f791ccd SHA512 3a62980e54ecb41e6479683dc8f06905a7e942c95bc71aaf79f6fec709003400bc9fa102a7f8388fb8710324053a209a94fb0453fe496c1d3ed87b22f7d28c59 +DIST rust-1.85.0-arm-unknown-linux-gnueabi.tar.xz 203320248 BLAKE2B b812310e77c30c751a2a413f01d0b3166651703b14975616858d2b994f9fd7c5f2b5d3a8d45b276423094eb7646d7be2295b861c781eb379730c8c206bd17bea SHA512 0a4fca498049d49331267d2e11e717dfc2ef2e87fcadb2fb645c5c88b70383390c33b7e72a79cbe98c81fb568da00f470c616f3d8becf1259118b9f1ea9620c1 +DIST rust-1.85.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 198a7e6fc724210b2216d8e5f56b5620fbba48d6258afd6e3afbbf7fd03ee338b653e57a29029933ac076a41d485d95ba64d95782ecd40597e7f177733547f70 SHA512 d77e6714ae17070834276dabc2437967febdb0f516d2785464fd24fef06b1c3383e6b014e1d0515bd8f60a192696cdf6a03df511d0bdd4ac14ec368b81d2cf5c +DIST rust-1.85.0-arm-unknown-linux-gnueabihf.tar.xz 204317348 BLAKE2B ec8dcaa36b5e177d63286fbf9d439b7b81643ead39f67c734d8864def5610fcdebb6b72f9a9a2ee56eac3ad29aad960681d33ddf5e3fa0b617c4bf560a493646 SHA512 2eb64a306c09920d3e239062591d364d82a34f9391cb6dc7bfde1a7419efa7582722e59a204cd1b7cc36723b0f74d50b8f8e9a527910300b334596827c1c7283 +DIST rust-1.85.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B cb5cdd491c659459c5c25ab30de1844e8fbc6a1b1c1ee3b0e990acea1c190ae00bcdf320b18b5c59aa81216e620f56204dabd08aa85d98cf5dec0df892b7de46 SHA512 5a0e0ff1e8340b3321ad5a5e5d837178583167153bd4b54cf3130292c324b276bb102fb2e102f16d09d59ee56dda6b725793725d6415b8b2c8c2b05677623e93 +DIST rust-1.85.0-armv7-unknown-linux-gnueabihf.tar.xz 209707420 BLAKE2B fd8edfbb889b0403a54342d9caa5a31c1e33b2e4acc818940f1c610bc3d5999e669bf95f226c6eda50e7291afac4693a1684437a9fef550b6591507d4f754bd8 SHA512 3b5bf6384de1cb53ca86debc15980eb297be7673fb27b05321bdc1711cdbfaaae0bccb9f036f15097016480eda07c300c4726b26d221b30de12bc7bbbd68ce29 +DIST rust-1.85.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 453021674f3737d5b8806f7740a8b937e7a89e2bf239a438123f82b0c36be31ac1d1e689434f206cef8dee64a0c497152b40c9023a010b2d3cbd03c046b2f936 SHA512 d4872e54e67bf364f39ec88ff4a5e63dfd912d498b298bbab0773238ecdf7c6fbb5bcb8c14bb4bb93b8c7b0703e6777949306ff9fc15d376393a719a5b43fe8d +DIST rust-1.85.0-i686-unknown-linux-gnu.tar.xz 235842204 BLAKE2B 9cd592c7cd70e705b137868ec553a1bdbcf4e69912e4e493eea195d857978183d1820c07e41f0dd46f196f8ca90afbeb78f1be1e25a10c120ffb7e1c23b34197 SHA512 f3a40d5b20031f4c0af0923a5568b362279db79044f033d7633478ebfa5e422f699d35fa76cdfa63f0e9188bf620af9585237b8f10d2011b37f44259add7b8de +DIST rust-1.85.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 406ed1133cb7d206dbb6c9e27b08e898464111e45bcf5060abf03580794cb7c847f9ae9d6ba80ff3b69e8593aa83313d208361ba30b2fbc1118b444de4c65775 SHA512 486a857ad3da7b47026b368d041820421745aa52c3bb2c13c853e1eefaa9a11d18914b18203262f6c1c2d8bbb881923f89884fe08202274790fc626464a6a462 +DIST rust-1.85.0-loongarch64-unknown-linux-gnu.tar.xz 234279384 BLAKE2B 425c1fffe9aca9cf41b9233f045666afcd732cb497261bc778ab655fa4bcf0b373dd51f4e153b5d74c00c4ce27c2054b63d063738c3d5c4bb34b4cc96e0523ea SHA512 6463ed75683b9c2f23669887d45cebb8eb3f0a375fa416e2ca2e0a8aef3b1c5520ac5c410c8158db2597f869266193d18b24903c085c1d312f0da18d8ad0d8aa +DIST rust-1.85.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 378beb36636925c7c8bbd49ac63548b52c758dceb4e83001757aa82e782c7e3b691dec11de0783afc4a064d2e02ef3737eb6577f28a5f44eccd927fcc056bc74 SHA512 9e0404924b419c7de3b07f245addaad6297b8f9ca3804d4d5bdebea7d40b6d207959e9fe70de92121afe9d0cb1a7ec726de64974c79a783569e7ff7a77c67850 +DIST rust-1.85.0-mips-unknown-linux-gnu.tar.xz 75862360 BLAKE2B 77b171fdf853930c1e8c3b225c05b15c3fb63ced5edad8b236adcb627a14c746052d4e59c2b5c8a49371915baaf48d5d924b151ea1c18d0aed0c62c393725e77 SHA512 e137ffca4a92e13d34e10720e09f560cc7ea4ed2a1ceb5824ee5847086654ed33f4a0be7ae4789c7d2d0bdbcf99e6f55d6bd3965c2a327b3f6e0487beab466ed +DIST rust-1.85.0-mips64-unknown-linux-gnuabi64.tar.xz 75572076 BLAKE2B 8f4952c93d74a0bc9a55519f4fbad22552d19440b47f92e742f0dbca109c243e7e5ac6b538597d18709c261c6ea29826594dac670439735de0e1cabeefbb0c8d SHA512 df7d08c006a4762499ec03b2afbde55ec9e38891313d6de455f9f88b889ca70ddccf977db78761bf7feadd7d9e6480d0033ffc050f5a9efa6ab67a8087b8e147 +DIST rust-1.85.0-mips64el-unknown-linux-gnuabi64.tar.xz 77077460 BLAKE2B 3ea75c95d344550b26449e3f30a374ad992f33d9ca38b9ff427d784cf371c94f36d1c65e230b1a51fb48ec641979aa0319eb3e7a8c4b4355ec6a9a7cefe00a38 SHA512 307f754765b8691d1edbaba7c6e80f7fefb146876cd13b3b7ec6bc9be107a6533f13d4b0300c8cb6d3bdacc49bc1f2d03c0b2af8480cfd7611620b2f829d090c +DIST rust-1.85.0-mipsel-unknown-linux-gnu.tar.xz 77505076 BLAKE2B 6f2f566fe9847007aa2aa926c6548fbfcbff1fe2694ba6e3849aff0152e81a3355eba345ece81b5e3c5cdccb24cb6568ecfdeb25a09142e4266d5052c46acb9d SHA512 352f48315cd0ed02a993b30bbc8a53acf3c9eb6b17320135fbee0413643c2da0d598668a028ffb90c7f88f61a171807c9d0454248efc62ef7fe6fa0ed0bf38cb +DIST rust-1.85.0-powerpc-unknown-linux-gnu.tar.xz 225995380 BLAKE2B fafd1fa46ecbd1add28199c00c91a363489c2931c1421f7a1b037a601a83831df9c5d0f04a95671ab87b1c35a54da7fabab677ede949a82f86e63f8fc5da0a62 SHA512 12299822a2e880141ed67a745c6ab29105f5167157cef9dd44ff84cb8778a46b40e2576bb47614e15801b45b13b186c1c49510465fb22bf1e4854de169d4dd83 +DIST rust-1.85.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7234b0a8ba935400b48036468497f1b1112a895f6a8ca62504332f615f350702460d5cc85343e346dc036e8f457144eb3da29c9b0517977b0768096c9db012e8 SHA512 f1937b4005f621213b863d190e38197b25f32de9ed52a3530b8164ebae4dab1d98a1d1bfcf1794a345c754d2e51ebd7cb04f289e783feddbd4628048a9141388 +DIST rust-1.85.0-powerpc64-unknown-linux-gnu.tar.xz 222816236 BLAKE2B 504e0082efb54c1b0b3810a787810a51c8c580ac16d0e1ade9f40f25d8f7b1400efceff17216194e243154b33362942644120110bad66db0ed41868c084cddb5 SHA512 3768134d99794d728fe919cab2721e2c473a75d9ade567deffdfbee968eb0b45c08ce93f3e7de6ab1fe5f140c20b3e6ce9d905a64d38d9659f2f80ca18bfee2b +DIST rust-1.85.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 14286c91f2df48c3b089e6900e23d9449ba4c9ffb0b8c54c2f6c7fc8c5a9554b32aaa81ff13966bf0af5671e906f2bdb024256bcbac107429aac9a75a0aaa24d SHA512 7eda585c5b5b81a8ca7bfcfd9f7536395c1ce63509ed3f1c8533c71ba95b346f70dcef39b86409b3042fdc76ac456eab94b628011c3bd7e9b1127cb1b9210312 +DIST rust-1.85.0-powerpc64-unknown-linux-musl.tar.xz 78304100 BLAKE2B 1db726eee4c923b324dc756d6e35f9f8e9e0733daf1ede21d1f2524d8d504468575e0acc98cd891a18fca80ebb367e6857a2c28dc995270ef47ae50c0f9acf88 SHA512 bec44fb7d74174d01d13ed387665a323daf3397a48f1879f6ba55e35721a58b5c4049c7302275675e8f378fb04581ccdd25d45eec7c3cd1a6ca71b8d227b9dfc +DIST rust-1.85.0-powerpc64le-unknown-linux-gnu.tar.xz 235325072 BLAKE2B ea6b5eb1b1e9ae9fdb93473f57c44efa57841d737025f206830cce9a3bae9f7bf8d0b52c2670c3da0fc949418c9ce11d15f2f7e9de8254f78184d9fbce20ddf5 SHA512 6c30cb1eb9c03a2950ab45316676a3f9dc5f3fc47426dffdd18791462ee9acafc9961ba075503c013f80c9234283bdc9cdad5833f8d39f0dd8428ec6c511dd5d +DIST rust-1.85.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e1277a410aa2185d80fa3f21ecbccd6434358f44b6ab1ec69084c04145fbfbd7d7c3327bcf05541f263aad93c7df2bb0044a5772a4cbab254467ef0a7665a0b4 SHA512 427850d45fb548827a725811c39d36d5268799b2fa6f852788a81d0547c20659c2bdec5dc86c3b7b08dfe0e62276dc181541ae804dce60cde64a0cf7343355d9 +DIST rust-1.85.0-powerpc64le-unknown-linux-musl.tar.xz 238652320 BLAKE2B 71dbeb007cb6912ef39cbfb07376fc1828442076eb752a8e4e820fcd53307658e5662c82691e7ec210ba6323b7fc600880bd33ea05230d48bef49b650d346a15 SHA512 d02316027f69c2d73d8c4b16840e9aca8725fa10057894ff63391234d027a776c5aa6017e7fc63e483b82b96315b8682e0900d6b5dc2b374eb2206265b7d9b14 +DIST rust-1.85.0-powerpc64le-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 3f7bada6bad051693c5cf00b268fdb464f7b196e99a17d975749cc4393399902021cb3fbe80d151297d15bff95e78e12e42765df982d8713f1c3cbd5688778dc SHA512 e9a9ae04f0072072d5cb6f39e73733f7279618a87a1391d3a5d74057c9727374622e51cde2c323f93bab0853bba3007ef542b8a3dac1c0aefe3b96a19686bb2c +DIST rust-1.85.0-riscv64gc-unknown-linux-gnu.tar.xz 222050624 BLAKE2B 79122ef27b8a45b20603f7387e413da0fb1e2211681c8837fd03a114d01b3f8964f2c149fba9c8a80e0a3dd2915a348ebf2983e9ead11d597c69ec4d0a05097e SHA512 6bc4aa613689d8e061b9a61cab038785cdb369440315912004b064b4b2bd94be9e990f8c6ea7862d7f11a74154dc4d8f7058b25d6c08cadccbc55b886764dc26 +DIST rust-1.85.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a7b8934e9c87ecab26e42dc80b50ebdc1bcb72fd92ce6e37043f41ee63e4d8e04dab694ea0a392fa9ba2f505ec582d4f1725941a47e0df0c5cc6918e1c5f6a6e SHA512 ed36a3dd44abb8b37935e49210735c9efe748397af561ea7831c16dfed8c5cc14d34072a8d755a01a9817a7371656132efc08c324b157c858e8135940b69cbd4 +DIST rust-1.85.0-riscv64gc-unknown-linux-musl.tar.xz 82029208 BLAKE2B d9f64a4f869f10fd3648e029f82c41d023345871eae268752a4c132156caea3f3a0eb2c342927e7b25fba4329e11a91fb8b3f67a3226f94e6e15d26152b76529 SHA512 c26768e0e06c7367f65f2dca919426aeb3d9c35286379f8c64d6466e155c8c42149c6aaf25e08a8dc35117df280006b700dd103f82867915979fb06328065141 +DIST rust-1.85.0-s390x-unknown-linux-gnu.tar.xz 224665232 BLAKE2B 8312c7be936cd2b72b0eae88768dd9743f30547371f2e4cb3b53014d62128c7b2f33541d55929056f4b5768f98a0b9bd879998386675c504a0cf620a1448751c SHA512 39066b86e6bd7353bbe14a0fc134e83581e50277834de8c9de9410c7d075f51b7ef7d8fedf8f306be4524d80d9922a79e5df33680ea414d0c0f2724984c20cc3 +DIST rust-1.85.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 537f4602af42132ceb43178b2284b174e454167aba9b13b6e7617c2057a1dda63d206e684c483c3fcdb60d9fd18a1bc796f65dbdb7d98971938b50163f8eadbd SHA512 4016d04dc0f74976ec184c71b899919ffe7f1fb57037b9acfd3a48959235e0cf2ea22872dcde7d3bef63dff6e74a9a56e63f1ad424fb6ada44c1b16949f856ec +DIST rust-1.85.0-sparc64-unknown-linux-gnu.tar.xz 73889324 BLAKE2B 78bc1235716b655d32fc8c658df65fce0e8dafa0b12c250689bde721c864793d59d46d0446d1e45eb2c7b02e67c949118a485d8f2eb4c756c48f54c082dad43d SHA512 1b73f2112b85b976421ef387132384e683be00a4fc05c6b263233487521757a4051978156833a192c39fdb54b35980eca006d26d63cab37e48bd5d37b6ae730c +DIST rust-1.85.0-x86_64-unknown-linux-gnu.tar.xz 182464920 BLAKE2B 42169d926f43b9e883c9d2e632fc38047e6c21464b852bbaf4a1f09e2c772e24ccb2ebf73b10afe26158fbe9089c3e0fda0bfabda79a871a1f1aa2249a79eae7 SHA512 281891a1b8da021ca4c3d1d23353f2cfd138158c03f466786cc3d6730a069b51c4d70e684f22a59e838f800b00b0b3f6a04e7433123733fb6cb4c1b2f2a4307d +DIST rust-1.85.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7c84bfee06171633feecb2a3be2e85a9fff8941098cbe2b42c4b77b5c8d253f09a0e954fc6ac3c1073aa2999211f059ea5c20a483e5fe2c075997fe1c942b4f5 SHA512 7b4a698cfc41b23c9015e0b00d4ef377cb452992e15ae8d2faac6d1ad7dca3d59e80993be30c1d240fd2e732355d1941b348069c3da27f0a9df6dee637175967 +DIST rust-1.85.0-x86_64-unknown-linux-musl.tar.xz 263244196 BLAKE2B 5e8391ab184a3ac641aef3c4e8a6a4c90ecb12fcfd1264d2dd6c1a062af96bf40c0e7940521eff5f86614b6e8b6ee9a1d6dab4240be9accd8a4316403bd46841 SHA512 18c8a3cdf4f57465417930c6dc83cb51410b4b882e80f86b959c945167e1e0c04f4b5feb3c65ef9f2f9be1f10975d8e7424a8ad4e92ca4de843d0c7c83c9dbed +DIST rust-1.85.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 123423d989204841da45e388589a0c1a4fa4d9102f691686d79502288f7a6d882055497f22f3ed63229d78c22c843a802abad31089035769123618d35da915a6 SHA512 da076d70fe804ebbc02df656fc6e384b03ac2d2f0fc36fb536b877b81a81fb45b5faf1a60e5a4d7b99d6d9b873382f67a3242d6299c2e85321a2842d6ae08c55 +DIST rust-1.86.0_beta20250218-aarch64-unknown-linux-gnu.tar.xz 241961984 BLAKE2B 9553edf94165922470e138a62f2baead6e04aaa81384d22f5b6628462a1c5bbc2387fff5ff05a9efbb81aec5f28301f94d3c9b53899e80afc7997323dd44e089 SHA512 c846832d71d7203759749d8e3aca6c718b91b7e075e02a0a0eac71302d5ed2e23a23c611efc93c3dedec26e9e8931e819eb1d9fe757e9c7b51a6abc1cd6f0598 +DIST rust-1.86.0_beta20250218-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0323dc2fc992e29d8619978d560c888f1873df3b403a7e2a25ab06ae5979d2eb6c42481612f9fcf0b5e435ede3735603d8c1eda733e0f3523b3bddb055d6662b SHA512 f17268a0c2b6568da4c621c23a2b43f2645a3cf2355d4eb7af22be6c6b11df23053eed35fb891f7bcaaff0400910bb7d0e7749d87b0541c401b8ece37d994c90 +DIST rust-1.86.0_beta20250218-aarch64-unknown-linux-musl.tar.xz 218887600 BLAKE2B a2be264a1d7c9b78209484d175c959278a9b9596a1a917c1033d04061ffa42d3e1aac491ea02fef1d5d2c3642be72ca04c912f581a5fdcf216a9bd86b3567d3c SHA512 d391a7cb96dc34cd95b862c888d7c5fa199de6924726c3e5b82de96296e890913716083b11f9e7ecb153531b07bc98fec753be4d94cbc57f27c7bff4f31db203 +DIST rust-1.86.0_beta20250218-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B c7267af92640e3b302b4d640e1239ded358b9595d601947371663da6aa26c3c7a2ef67aaa02563d583441888f771c118fdb718cdb002fbdd95d864c3914bdd90 SHA512 2b538a1601b1cc97c95b6b582bb5edd92a4b13222469bd35d04161d4c17c9ff5e9b26d0bfd59e893bd59a07f4a81c7bc25e8d6cd66a22b9d73c5108a8fa23592 +DIST rust-1.86.0_beta20250218-arm-unknown-linux-gnueabi.tar.xz 203409584 BLAKE2B d696b495d48a31cb684722648ace6f4366c8b6f60a06bb7bcd5eae8ae43d700e2d52134e0c79ce8f06cfbd63edf9a732fa5e882c7d8018aa0433404816d2f241 SHA512 37496d82befcb09b4dbc08c1f8786f96d6bcddfc56cf4abf27a17942d43bd3a4ffa3290c274e8ef7f3bce973e575ebe0cb167dd8955babb1dc9d918cdf5370be +DIST rust-1.86.0_beta20250218-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 671a4c2f524b2d92d6a6bc680921890a283adb6885e8e71974255ac637a9409579a9c6306b39967fb4637ca5e10f2409b8079dc5489c079a718a7994ea7eb09f SHA512 f6af86317c175f32e4a754e295f67787ac9d8e53e1b5338c17481f3ce2e95a3213fe2090ab268c0d62a31d9b41e9321e975cab28c61f7e3e6baa2dfdb40322a8 +DIST rust-1.86.0_beta20250218-arm-unknown-linux-gnueabihf.tar.xz 203645720 BLAKE2B 8dc6adc0de500d3ec04734c6517d0db29cb0a318ea6fd09a32dd01dde29f32730d851ddd37543798d649eb5384b529a6956419c32a4089ac5b41e57dbb205fdf SHA512 5d2e069bb09bc4a3039eb3d0b2a8748d7ab615feb312f612d24329dde791b88b63f577f7abe1522262145044225ccca7e7f42b6821f922972703ea6f0a06bbe2 +DIST rust-1.86.0_beta20250218-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 7eb7dad663c6d93267387d1c23eeaed237443fadc990e0c03846441b3e42ff837d79772067abac23eb5945af05b030049486236b1895e2824779c2c6857fd9e1 SHA512 9bf603601a935b8ee099d590bf75ed7d3ff97b02491f2b003455ed700f020e915b00fb0a86324900871037a042a1fe48c063a15e419349de68bb50b054d2de64 +DIST rust-1.86.0_beta20250218-armv7-unknown-linux-gnueabihf.tar.xz 209642508 BLAKE2B 0c10989b96bbaabf9d3d3f3a7fc827a94f10bd64c52dd4315ea1dcb7c375a6429f5dd2270504bae87a89a7f283579cc85848c16736e520b710d00ca0e3a69dd1 SHA512 17578a5739c9725ac435a9cecac094ea33478145089b307977a2473d8192c1a82faa856c6acc456285d68a5fd36aaea7e87d8599986091633cd4ad2052b55b99 +DIST rust-1.86.0_beta20250218-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 849ea0c53e4760159dd020a89c06841cb94e8bced3bf9559d3caa8fecd4cb176363f06197bbe89af9f2dcaf9d390e398d4d621dfeb3bebad60f891a8dd25ff6e SHA512 1d11e90ba660af35f3e6c151a108c46b7a2e4dfb00b89f09747b3ae04e5de57cbddc2603bac428deb2a4e259d19eab91ef1a11c5dfac06f7582253aff8e24aa9 +DIST rust-1.86.0_beta20250218-i686-unknown-linux-gnu.tar.xz 236420288 BLAKE2B e850782dc7712b0f33bc2c1aa4a4f9948c897d26fc21d3a3f5c82288dda6aec1ce641cc80ec05e80706616f8ba4c63d55138a0cdde3c69f5783ec459d298b0c5 SHA512 830ca4e65229c0e3aac37ec9686aded2d9e687f99f0575b2e82baaa1210a426f20c1ca0780c08e80b00f8669cc3ec34579150c6169e71620b9a6359624b91f16 +DIST rust-1.86.0_beta20250218-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 4bb60878bb7c2d01a9abf974b3153237bb5f193b826b048fa94efdf77f9c2d300c58d2faa8b154347d2483edf6a6a8a207b9b58a7aefaaf6e7ce0486fac8b039 SHA512 7b73d0974d0d1ef0f03a77e1eb18fd3dc49b1a46dfcfc787b97e6e85e467610f1cf248d552e6e2a2a2e018e451cb7b68b29492d4955e53258b4a0d83f06d536b +DIST rust-1.86.0_beta20250218-loongarch64-unknown-linux-gnu.tar.xz 234064868 BLAKE2B 7f79933f9bfc1423a0380264569717ae24de9a61a00d32e98eecf208a19dc972c45a75622d8e7beca4378f844d70e290a8367a4b7d6ac20a93852281cf88e359 SHA512 b3cde10427f8b86997a9a59c1a20629c2e26c7e02315a30c23ecc67dbc12a08bf65ea2c5f900ed2a5ff11cdc1c7f5c4a6a09396bf747662ddbdc635c9c7fa5b6 +DIST rust-1.86.0_beta20250218-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 05475853833084fef51946dd71bb53210b67880aa5231d85457578e78458827769e4e96ddd63360ab77dd2100b5025c33db297528b6a9f281076bfff690cbd79 SHA512 f7c3d430d55c1125256a111afa9986a71c5e003d7872b3fb2d5814ab6c9d01db27a325df484095f43926a00acbf8fc269e0b3db0300bb496b0bae176d77b16fe +DIST rust-1.86.0_beta20250218-powerpc-unknown-linux-gnu.tar.xz 226058044 BLAKE2B 8d9dc5a74f571266c80450b514a7ec31ff885b40c66a5f49ccac98ff211da57bdc069a38425603527b3ef16917e9f1ff58969444149ff3d2e748bbc7379ac622 SHA512 bd8babeb25a256a56b3fda300963834326fd97f2bfb14e3f93ff41737242bcb6b354a5e2b1260e25eb25a22d8304d9782a7cbf0e3219adde534dc6b2332f9c6c +DIST rust-1.86.0_beta20250218-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5387f2d7ef2f6a0228ed8512ab431f05ffe885a1223fbd2e81be37536a0b55bfe1331654284bb70f9f1061173a31e9b09fde15f65af74c93f9fede5f0d435a4e SHA512 0611673cca4faebc7863f28e5c0fb60a9364ed980b1d025352cba9b1a64ce3778f4ccd149c1dd1d98fceeee144db5438f360ce0ce33682231203e9eb1ec5f812 +DIST rust-1.86.0_beta20250218-powerpc64-unknown-linux-gnu.tar.xz 222607376 BLAKE2B 474d684c6d04101200acf157389f11a8bb4759f90b27997e698a79bb117b47fca5441e42688198f87c9c05bd186c5e1a116ad095287c928c312d979df56f1f20 SHA512 b28c976ebdedbcda8113432b4cc03be379f58511bdda97831019fa2f8a9881baae9b5a1bf587e1de7a59f2aac00cec95f168d739769518ad31f27ae3a8ce2255 +DIST rust-1.86.0_beta20250218-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 8612b4387f98ac3e0e1cef6201b5afe4e76f58372f6bfbbaab3070e35fdc0fa6972ae6a85c8f8a9e9db07537fec0891adf6ca6eb64dc70d818c236bed4037f26 SHA512 e3c4a3f7b3c9304726502a398610ed9c8149b05a8bf33a5feb97be8600c0fec79456bf2556ddab4200ab3f410544b147703a69cc97db26bcbf33866e108f5bbb +DIST rust-1.86.0_beta20250218-powerpc64le-unknown-linux-gnu.tar.xz 235353360 BLAKE2B d0dfa8d88db47ebc5e73b9550cefb684832a6238376eadffcac2ee0bee25dbc836bc76439d59d84ddc4d63d8f92251791a47462ac0fb0294460c5e3170cd2b1f SHA512 97380f0f812c89e71056c09d55e7f4bf016a1dc82995d37bec1e4dd942cdbcdaa09347080bac08a0917b27e83dafc3c7ef2c18547b593b97ca9c1aeb796c7f58 +DIST rust-1.86.0_beta20250218-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 10b90d187f86edefea27d695b20d1b89d4c5fd71e3acf60c518c30254b428f96bb4abe78111949c3f921e30c2e652e61ad86e56e037d4f20b10eeb64470ee3bf SHA512 28c69aea648cc08b5c78f96a8359b8c15bb51401c8cf267b5dae1f4b6460e779981a82e60f1ff1d8636e5167eaa5c0e193645ca23aa6e20b445afabb9fe21c92 +DIST rust-1.86.0_beta20250218-riscv64gc-unknown-linux-gnu.tar.xz 221919388 BLAKE2B db2ebd1c76b198ec6fcc481918da3954663163be90eb81c5d3c7a92a124bdf7112d9d8fc67f20ed5d621a3075fb610bba45de41d3c44c9fcecc0681ffc7462f7 SHA512 418e16c07215463bed4093cd44cfcfad91948e24f20109de8c54e8e2a941b5ab3434a6e9e1fe829c57c4f6312e258b5470ceb0c1c7a86af53ed81221d8d52436 +DIST rust-1.86.0_beta20250218-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1e06c31dcaaf1ce82b0c9cc913d7e3e23aef3ad7a58f2a6713896edd25e2fdff48a5ea9515382f149b59347afbeec5bac3525ad41b46523efb311105b15e3e8b SHA512 2c54c1fa5cb4b868222a7273b531ec8808a89ccb3686fd9cdc70c61b4a572493bf09659ef8c90b3e430cb153693191f505c62102cfcfd42b81a4bfc4b0adcb65 +DIST rust-1.86.0_beta20250218-s390x-unknown-linux-gnu.tar.xz 224063628 BLAKE2B a699b0e1f65270600139c20b5c730a6bd4d163a51fa1d25a14f79b617d491022b95afc6e4a5545367be3f3c15a531b09ebbb747697fe9507eaf72ca9dcce35ec SHA512 11e6d3f56f4f1f449f382be1fede741f6137371ff87cf31166af2d58949225988a9c1a6bebb1b72e399d2a07ccd67bff860b7b2f258e38fe779363089a91df75 +DIST rust-1.86.0_beta20250218-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 745a4734949b577804360bdbce5814ba2daafacc29148fd0278d8443dfc54412e58b34745e287d39ea03a61e9bacc44aeb8ae47111e63b4aa572427e68cfa8d9 SHA512 88e444dd8d78f7c9075f61e1f223cbb63683579aed03a6f68c80c0b6e68ec4fda561020af4d2a5360c01cc04415cecafad2b54809e3060280201caf017068079 +DIST rust-1.86.0_beta20250218-x86_64-unknown-linux-gnu.tar.xz 182371436 BLAKE2B 1859fdb803b9da3433460fbf73c52b37dadc95f1b1760f90ad23f93342a230cd7a95ab1bd3e3809e2979126e155deef7cec38888a4c2fce410371f8033a67a2e SHA512 0f4756631ababb4e9961b7ae380cd39e2c3c1a7415bdf07519d2553e95f6d710573eb3cb6a84eca9bcb03af6e557a81cd35771bdf839d3e4ade39238a5744c63 +DIST rust-1.86.0_beta20250218-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 56f1e00d3e7ca2092ab7a5cc3e8465af4037ba99100e0773c4a65867428fc8adbeb0a571cae36ac1dd182c24eb5e5b89e306f476ae357ab387f6d5ff4d6a6bcf SHA512 bf17821fe53a0de5bb58ab03e87a9cd326bc4c97941a306909375285014bcd1126e5e32d62dac4a522f7a72b892c8371dfa3111f25d661a5d4e1a2ea802d3cee +DIST rust-1.86.0_beta20250218-x86_64-unknown-linux-musl.tar.xz 262699948 BLAKE2B 2197f33e5ccbc2e31925457c3af92ffe90dc258e66e9788a7520ab7a9ff3571214f099b14f4db80dff38e519a6f57784e85f335765816c7f44ae2edd96ea04a7 SHA512 a074b931d940bbc0cefb2d56fb9437afa1d002cc599a1779422d0f215eb9382b5b0322e31e0c92408d958ee561dcc9eabe237a6f8c7158986cd10ae550f4d9f6 +DIST rust-1.86.0_beta20250218-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 2b0c359da43e5b3645632f88bf6f776763571ef7d08d043ee806dc4991fc84b9d0c0b87b10cf12cf354c3a026d0665e17baf1316d00b10f3fdb1f47d834dbf6a SHA512 30013c2d6ebb6d63a49f0a54be584e7dbfe24ae4065313e70cae138c8533bc0afc2c46f05862828f1a97d3c398be91e140380b1d3d83c0a54976dfe3b5314efb +DIST rust-1.86.0_beta20250225-aarch64-unknown-linux-gnu.tar.xz 162271496 BLAKE2B 22059cb1174fd4fd4b603e10049e76fd2054c45352275abdf4a4183a38d4cefc7092d04d8f14329f60e9e4df0cd61cd1cd3cb46e148220a93e0484c55e7bffcd SHA512 aaa94fb98888c59da5dc59cab31d028248e15ce458b6589383a3ff54833783906580f40d2fe62e119cd7a22e1cd443724d61b4be4e81d30cb233a76afcadebbe +DIST rust-1.86.0_beta20250225-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0697cf3f3bf9e1d56ac12dd223d47ca9311569a6f2579892628217567994ea29f5e3bb13479a0cf0ca6ef52864bbeb8f59349d0de08bc56e4afe1171e87011c5 SHA512 1c179f33aaa106d4a3f28c552ca298ebe2e9015faa63d40e97f0ceea45bde9408bb3a6c5a599c5a43ab71e6fa2fea1c4f066d0b951ed08377bc8c4121c9392c9 +DIST rust-1.86.0_beta20250225-aarch64-unknown-linux-musl.tar.xz 235432052 BLAKE2B 72bd9899a4c2cc68557e4513c164dde533fe74e1f34ab4579ad3cc595b8df5a6d93fe42d36b50e2ffc20b6bb5dcb92c6512cca63899c64b9f7664495adc4d68d SHA512 d1024147ce447b039b3a9bf09b258ee0cc4e4bc9a3e033c118e00859377766d832c2f5642116eb8a5e7f18814f7e1d459de7c30d13f284ab5e6919644a1cb248 +DIST rust-1.86.0_beta20250225-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B b281059472df1c4d8667303a30a1dbc5ca3664606c44ff257015c29685f321cb0085cd89778458f510775f18cda00408ee113eec8117ee111f3f92218ebd620a SHA512 c7b5de9c70562da1e5a4c306983b7e4ce89942c46cfeae68ee622b098b389d41a0196566e16d218f5f4a3c1019c96ce04ab574a56e0ff750ee5b69b9c4ffc26f +DIST rust-1.86.0_beta20250225-arm-unknown-linux-gnueabi.tar.xz 219585140 BLAKE2B c61538b9a86311691cee13e4113416e62801b9d1e845df73e5769e14b5c400607c797e0f37bf211811d21f31af297a69800af409180ae5eb908dfc2814033ce0 SHA512 54c569ced50acc9895029eccfda0767f980e0a23066142d4b3675408b023105ccd6f706b3726bd35bb49cec4c9510adb7cd7c353e7be1cf6d1f69db4548499a5 +DIST rust-1.86.0_beta20250225-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B d969bc52bc28db30754e180e3427cbb39c376c6ac1eebbaa7cc00d2016726f0adac2d39ba348f5b1ff79e2a1c728cad3eb9c4cc1c972b399ecbf15fde0486a0c SHA512 586fb0eceaf36ec9017da40365ba8fc87eaa21a5533dc30d92c62d63bb02a2b80a8e712d0b449e06ee374ff797a1c9b0902491bebc94c179d938c6cd9351eda8 +DIST rust-1.86.0_beta20250225-arm-unknown-linux-gnueabihf.tar.xz 220847580 BLAKE2B 227afc76a06443fa9fe0d6295c6758760fc541f586b76378a23c88ec3bcd8bf65aed2ec4c17d448202635fc75473f907888c657392eff470b76db745f9bc5f39 SHA512 7d2a15c3dbc741240302dd08219df6171d0f7d1132e68695ab1c6a080790cff413c8824c5bddf8ffb82173f0516f47f6d0c805cbcc8565379cae7e8bbced1874 +DIST rust-1.86.0_beta20250225-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 3c63b838061849ba629dd0a59b96105f2745f47066d8e61f1b201841022c3da628f325776a3f56c6cfc0bff90e7a49b008eef4d8299f05e0b2cdb4b3c1e5434b SHA512 e28d8fcd075cb3b681262cd68797b0d25d241a81b6f2617ddba4b56bfc97a1122f20874c20f3e20ac5102db8cc561d0cec6790e4ebce206b919bff96118a8911 +DIST rust-1.86.0_beta20250225-armv7-unknown-linux-gnueabihf.tar.xz 225818148 BLAKE2B 0f256ffe120a1c1b658a32b1fb00698786e36efa831cb31d8229eb48aa942ec68188e0a5065d8d6f8480081d09848d81aea1699fea4804edcf4fb14ae02bfed7 SHA512 ee275b10a1dc24d27e1215a21b633e8c8df21dbf441bae2bb8ae0e03a86e03403ddf0cf53d721e0f3af9faab4bf68d0f126fb08e1409d8e287b41231dce84efa +DIST rust-1.86.0_beta20250225-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B dbec13daecf280cc954f8b696c258da43f8ac17ab5c2a5e33b58e38206bcc547ec07ef3ba751cde3d7e55fb78bd3894707d144749578888e42b2ab5435f94640 SHA512 458c6428dcccd6de45745c1350a9f6cb3ce13e974a5d2b8473be863cd0fed1eb504dc771b243ee19fac056b4113ea81c030a032281f5cee8372aa0c82cd5488f +DIST rust-1.86.0_beta20250225-i686-unknown-linux-gnu.tar.xz 255115448 BLAKE2B 112a9fc6c4c6dbc022536e561b35dc89051f26eb458cf38633c7f7d2911d448d8a55a135efa0b3cead6267a9018bdc6218abffc967624f95193fe5d6dbac10ca SHA512 a60c5e3f55d30967314ec9b312a439b1302d5cd18d0dd8ca3666f3344cd9512b7cf7bccce8002af1d7eb4db082ec7ce3b3b59b9abee23a803175e6780659e89b +DIST rust-1.86.0_beta20250225-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3b68d39f4780ac9fa2fbbf6b0c73e8d6ec91bd37951fa33564bd654ebb51c26d0726108f9ffdb39c570b73d736eeb922b17a76bfca0cd8386dde87d902d8e111 SHA512 ccf36b6f2fbdd5ad48de463164b6b5f9e53c70a7b9146295d482dc1e89c4eef79bc26306c49a73ad22c42840023cb72f520bb5a8e1c496f5025646b1530d5a59 +DIST rust-1.86.0_beta20250225-loongarch64-unknown-linux-gnu.tar.xz 251914240 BLAKE2B 99744c8f40dc90e17471995aa1d4087b40603d20f9114972cd860b00ec546c6828c364d5b7a86ace8d7f87cdc829e0711f758e495a7e188b0e264a0ef705cc44 SHA512 25cbe1f3167b560d31b7b41635343f4819b90bd83ae76dfcafe61169b7d0a37e5f68784ea3a7a659a05aa649b040f9b62864cff6139190a3e009be1f589b0d55 +DIST rust-1.86.0_beta20250225-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c49018b1dab4948842839424b62f6339253d6dd89ca3aca52bb83a337327329341824bfa7b0aed5f8450c694cf90a2ae39381ed6bda3a2ba98a0ea5021da10b1 SHA512 c2bdc1386c905ab7c0bc5cfa0eaf9aa5f45500b8889a872131ed44182839cfb447719fc6fc2f5ed6fb9aff2ba732dd640448f848e282dd532b52568641e1add8 +DIST rust-1.86.0_beta20250225-powerpc-unknown-linux-gnu.tar.xz 243643276 BLAKE2B 31291d0ee4fd5aad13d6fa05226ad5cf189627aa0abea3e1a2f540bf77ce5fc6167ffbec96a64e515baad7288559bd40e7f464fed2ced361d201df0d11880ded SHA512 110b2d9138024cdc5cc0a6e6f34961e4b3eb16409816d72d0bda63b5cc4044e7f6a4fab10c69737ad362900bac36d4721a9579e176989a9f9442eafca02219c9 +DIST rust-1.86.0_beta20250225-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B eaf72f9496626ce42a3006d31856e5da84da35573b825531c9969aeb05f6c4bddec6d771252056376c7c511ffdd0b56b95f4e5c87b29dbdfc338cf89d1976fc5 SHA512 f669a60884700029bd38602163c310854091b6658681afecb73c4b209ff91c11b79836e01758c384cd52dccf8919b37874865e7292d1f0b029c455073ae0319f +DIST rust-1.86.0_beta20250225-powerpc64-unknown-linux-gnu.tar.xz 239855984 BLAKE2B 758f1e7b7c34cdcdd5d901616200eacedaccbfdc86de066b4b14d4e8106c4850e732ef29c530018bd6da27d1e6f3105abdd1d887a4231a35e77bc4c240c52b43 SHA512 43a77d18a640dfb6ec0bc04b67eb85b7ca40fbc27c4b165db1ff53b1caf9a024bb4a4441be3944ab1b2b4eee56c2001d076ae4c48a5aac3ee01d5df87a0ea95a +DIST rust-1.86.0_beta20250225-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 24a8e9c459fdffe21f85af6106b691beb60a8536e33422eb3f9cba9c428cd8045f82c58766ee59860e3044e1240f1f576da5456da3df01c29fdc318b3eb2c7dd SHA512 d6b8b731057529396fb6e00891a77e27ccebf70454e3557fb56051a62feceff6d7c42564eb82772b30f5159ba736ef03173a7723bfe31222164ccc48fbc40110 +DIST rust-1.86.0_beta20250225-powerpc64le-unknown-linux-gnu.tar.xz 254298220 BLAKE2B 07d6e7fde5a6ed8191003bd52e1968fce10bc05c18a2d17d771358f329523b4edaff6773ec8c0d1182bea6f4e5644caf72305765ae2aef8a9adf0ee5ba689885 SHA512 040a81b3fb1a8f5ef9cea89a43395dd616a9671eadf1ceb7a47fdb0733bf7e26f10afae6a4000f9f2271dd8a683d508ef7c82440758dea91ac4672ccc5344012 +DIST rust-1.86.0_beta20250225-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6e1b092134967544131c707cf5d7c58a456ab5da3ac67834ec6b5cb96a9229d83c34e0fff5557c7790357e47d3d85d230362f5af786dd6c0e6e5c44e16c29799 SHA512 58e303ff074c58365b208e75107c4d5b42a4c9c9ba3546db1f792cee361b05428e5dfaac39c3a74d65b09822269e596ff97684cb43dccbee1ea47ae21c460370 +DIST rust-1.86.0_beta20250225-riscv64gc-unknown-linux-gnu.tar.xz 239076740 BLAKE2B cb669a3fdeffb8e7258beed158ecf651dde434b8efb58cbc2b3f495674e579ac9be906bc609d3274dcf8652a9277f599884ef4c06271f41a7f781bdb1faecf1b SHA512 0cb72f0ad90624e841b12553fca2244714bdfc10c3c936a85cf89660b14f9ba37fe6b067f1c9189ace57215a7e2e6fe438b8e35bc255ab9374bdf05f748997a6 +DIST rust-1.86.0_beta20250225-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B eb2cf05cbf16ff7c80fdbdef9a8f29100bccd672583e862bba97f004480664831d6f0edebf409c22fa4dba56dc9d62f3f4c2a15f1351b0b28866bf88ec702f9e SHA512 a680ad3394d3b9bccbf4024c527dee201b7c915062e891c414317575da78edb46be9c392efb94edab8a305103c806140e9dce0cc25ab9a6a3a4c8336f026d12f +DIST rust-1.86.0_beta20250225-s390x-unknown-linux-gnu.tar.xz 241511808 BLAKE2B aae89cf0a53b5763632eca6f4b033e6254f19d0a2ca88351dea14347b52d7ebb406a899fa788cd0d402172e8af754d0a2b67ca077f93495e2f6030118f36a0f6 SHA512 92661da8e796e6a29809fd000a2353de29a4442ace6a4c42f338149066dad85e30759f7c13438a7dbbc4104639d4114a6b135143ed54f12d4a0ef2fb07357603 +DIST rust-1.86.0_beta20250225-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a0dbaee450c0e8b9fbe4348cad60ca9bf5955f2f9c22b2580f9b43af5dcde3317647e4396266ec7e7dc8ceda4c05e0fa1cbc786e4673038ac664cc9909d5e66e SHA512 4ade36c52247a40973766b8428714f2d8d6ad2314f45f550dfdd90ce24d7445ced977723f55aec2d4d5fb162d4ad5371c25012dae64d835b6637df851d831dbb +DIST rust-1.86.0_beta20250225-x86_64-unknown-linux-gnu.tar.xz 192552128 BLAKE2B da3d4634b7a57a5b438b6ed8e1e37f155b7c9c141ead0e6861b173938c9e1fda3e1e6da0fc966e089645dd93d32354ae29b8b1f1f5b04a05548004692c4fc379 SHA512 0580762b898ef905739e7fcf097408737e3bd3afebc6b3bcf2db54d98eae0b0cc38121c2f22bb28524ed0b29e4c2446eafdd895283f7ff479df14a1760e979b3 +DIST rust-1.86.0_beta20250225-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 615efe0198fd03883301d6e205577a05fda902d47ffbf9ef90fbb96c8275548b490c5ec2c530bd6dfdf18e1596b6c427f00724a3adc3860e107df03c864ea7ee SHA512 d10f522df9bfdb515f725acd018298fecb90a70171956f5c48e62522f596d34496d76ace0e05606cf9077c6e797e17ea4d086f6d4c055f53fa8d12aac1e93ced +DIST rust-1.86.0_beta20250225-x86_64-unknown-linux-musl.tar.xz 283004932 BLAKE2B e0639e06159347d160d0d90f9ecc0739cfa7da07895250d8b9debbfcfbc689e5ddbd0d8a4c1d08d61f8b5ab05b9b2f50613798ce78d57b4fa274b4a3c28d60a5 SHA512 03515dddb9820b3c159d358388a78def71879aa4e02735fc69aed6a6eddeec457f4b231b9d6ae3daac7310e6370bdb368b65749f869182640319ac983c7b7dc4 +DIST rust-1.86.0_beta20250225-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 89ce6eb6a52f7bcdcf5d5001c823c2d596e1e186d7a91c834b893b7be0af1ef442dd588398b05f60eb9f94777395b59bd72e0943a2e2c3c4a1d27147a62f18fb SHA512 f58230280ed4743a8b298fe45d36fbc44742f1e0e7867b95d47d3fcfcf723de5302a489a150a011864b5cbc7707ae0d340e45d9f013a0224e8c2fcfc57f4d5bb DIST rust-src-1.71.1.tar.xz 2460244 BLAKE2B e3a5b5bfb808310f96e760aab55310c7a790fa551d248c9c5dbb407e0a80653563d8df73a9e0973aa63d3286aad6c755b78098dd8db2dc1a2ed3cadb926b40e1 SHA512 659cc46e1ece2ddbcf5ab748bae48843bd36353cc633b59e4ac062d843af66919e8d5c39ccb72ebdbf94a0e26a8056ade6bd1c8fe9a936469bd405122a8ae35d DIST rust-src-1.74.1.tar.xz 2544036 BLAKE2B d95431b69f102782f51878ff73ce8802cac6dab7909497c3231d1c479b95dc2a618cc6efd8bac9c6bd59a2b10dc6be05199f1e1bd74e45cc640ee52352c29268 SHA512 11467d0936193c5a5be8c2eba1aefe2b7028af48494698863de2c4057d68ce33dcee1fc66dc2d68b1d32f0202ce49e9b906727849de8f8d904dd07930e76d5a4 DIST rust-src-1.75.0.tar.xz 2570256 BLAKE2B 9db7ccff07ffe6991233e9f530321fd6ba48c561dcf1226537afa70c7d045421d8e83c5300b0866ec6fccfaae96dd67b9f204e9e0e12108c0c766d467cd78909 SHA512 e7565cea2f1658a05237a698e38880df2544319b41b6d8b0805db5f1f94fd3bb4f986967d0440fcdfe3a135e33246f3c747665b964f57ff5942f56133af78cdd @@ -414,24 +547,27 @@ DIST rust-src-1.81.0.tar.xz 2901440 BLAKE2B 7ad2855c21728cc323108f7e45416a425a22 DIST rust-src-1.82.0.tar.xz 2966368 BLAKE2B 4162e7393ac21a095ac1541ea7b62fafa561ce2153bdd2b3723d0f2e0130fb2fb1325ac8583d87d64b6cf6b76400d12aaac144c781e89a177483adb46854c81b SHA512 4f7817eb16dbddf15ab09206738569370c42abe117086b085a7cc8f7174f9c2b42571707558642c72597236610eeeca32575b665acbc2cbc4f7709e624c16cc4 DIST rust-src-1.83.0.tar.xz 2998424 BLAKE2B de758c5bfb29865a3ab7ab02d17b0282272fa7d1cf5da333a6a19d6a16813320317785e9bab02e3ba9ca6ee9f26e0c96b00a117f33b74c82b13ece44133e3130 SHA512 e1f0ccae1fd4202d86cde1f1e2f4491983ec49fafb2b9eaca6260e9173bea0e0cc2567946e48e3ce48f0a620f63dc44d30334f06c935628158de110d43c7d53b DIST rust-src-1.84.0.tar.xz 3016148 BLAKE2B e948d4edb88f81ecfb49f56a3ca6331c4e9de17bd9f56af823e1cefdc5098abebc2bb013d7c12ca1713a43fec588f33befcb7146713eeade1511914f70146d62 SHA512 ccb45d57c7cdac311478a5b4689144297717e6404f9c4fb168127804f13f72c15433b32765f90ce56e6f34435229e754241cb3656b28a4b33c6070b6f79b7c53 -EBUILD rust-bin-1.71.1-r100.ebuild 7172 BLAKE2B f8b6f4910cf00212f0d7288d10d29c72d88826728fddfc77f47a782103564a88252837931c699ea9cf7586e4d9507bdae2a3354df262414c368af95a2d0bbfb8 SHA512 24aa046084a58816a2d3a949826945e294ab2ddacbc1e2ccb4cf1914065f3e52f7c3f680330939194b29149a3384c711efa09a261277d4b2dec6aff6660142a9 -EBUILD rust-bin-1.71.1-r101.ebuild 7172 BLAKE2B f8b6f4910cf00212f0d7288d10d29c72d88826728fddfc77f47a782103564a88252837931c699ea9cf7586e4d9507bdae2a3354df262414c368af95a2d0bbfb8 SHA512 24aa046084a58816a2d3a949826945e294ab2ddacbc1e2ccb4cf1914065f3e52f7c3f680330939194b29149a3384c711efa09a261277d4b2dec6aff6660142a9 -EBUILD rust-bin-1.74.1-r100.ebuild 7515 BLAKE2B eabe846ec482e04cfe068420c8315eead88dbe229bedf5f2809b492dc360bf5f34023c89a68b62d1f92c5a3ba628bfd8c861e83980925f74c61d95d3f106db2e SHA512 e40c66befee2c16b579b630de2e0aae00eb5bd72680bd6ee724ab52f434dfc725b2c377d725d95a3500be818acad973202e9b802762adcb1b54cab0251280d2b -EBUILD rust-bin-1.74.1-r101.ebuild 7515 BLAKE2B eabe846ec482e04cfe068420c8315eead88dbe229bedf5f2809b492dc360bf5f34023c89a68b62d1f92c5a3ba628bfd8c861e83980925f74c61d95d3f106db2e SHA512 e40c66befee2c16b579b630de2e0aae00eb5bd72680bd6ee724ab52f434dfc725b2c377d725d95a3500be818acad973202e9b802762adcb1b54cab0251280d2b -EBUILD rust-bin-1.75.0-r100.ebuild 7515 BLAKE2B fdf3b9befaf1983494e42fe9ad17eb52dd14b0551f113a0d7d276dde05402d53d0d59a9ff1547e6df22e12a7845bda581239badeb5d80bcb144201d473227042 SHA512 88b9790f929d48440533b82aa9fe3300ecce75ca74f517076186a1cff3cf360aaa38f06b454ad93b429dfbf69e482af0add2ae1ca9ed1ee8e085ba9b3ea0eecf -EBUILD rust-bin-1.75.0-r101.ebuild 7515 BLAKE2B fdf3b9befaf1983494e42fe9ad17eb52dd14b0551f113a0d7d276dde05402d53d0d59a9ff1547e6df22e12a7845bda581239badeb5d80bcb144201d473227042 SHA512 88b9790f929d48440533b82aa9fe3300ecce75ca74f517076186a1cff3cf360aaa38f06b454ad93b429dfbf69e482af0add2ae1ca9ed1ee8e085ba9b3ea0eecf -EBUILD rust-bin-1.76.0-r100.ebuild 6888 BLAKE2B bd2c113dc06a5db834e0955110a9f81fcc7897b74c5e41b25521b01b8eec6180fc0785eb2f2a00562dc473a3935bb5b85fe3d904a2bad057288672402232d674 SHA512 41bbbd4ead8a4eca64f78116d47659e884d23dac551b333f05fc6a873a1677a4b8f4770115b35bcc6bf18cd400a679983e639be1d87bcacbe7acc0d31c8e4798 -EBUILD rust-bin-1.77.1-r100.ebuild 7554 BLAKE2B f758b72f8e36eb8dfb9df428344e6bbf445dc3fcab2f1aa30712c957e3fba85d283277790f39f7fd1270bdbf576ece89bc148cca2defbcc312b2863403122404 SHA512 b3effcf3c371c52f0c6d6f82c3ebf712bade202d2e8df45d886ee6077b3b0e5cb5fb102f55743ea13795b1a0c4a79e093c5a0e9bfb0c8127961d5779e0a21be4 -EBUILD rust-bin-1.77.1-r101.ebuild 7554 BLAKE2B f758b72f8e36eb8dfb9df428344e6bbf445dc3fcab2f1aa30712c957e3fba85d283277790f39f7fd1270bdbf576ece89bc148cca2defbcc312b2863403122404 SHA512 b3effcf3c371c52f0c6d6f82c3ebf712bade202d2e8df45d886ee6077b3b0e5cb5fb102f55743ea13795b1a0c4a79e093c5a0e9bfb0c8127961d5779e0a21be4 -EBUILD rust-bin-1.78.0-r100.ebuild 7661 BLAKE2B d9b43e4bd25938edcf9c0aa8bc68dd7a4cf14313602c7ebb5d616f5a2409f5f3c15dcffd8dfe24c581fe2fcf79cb7df6dfd04b57c9ba7410ab6b7bbdbcc1984c SHA512 0d6871a894c48936a56733e6edea73cf9a197618c4238f79df253846cf9cc619ac755bb27d67fd130871e40c3e91dcac9ba960a958fabe409469bebde52d1646 -EBUILD rust-bin-1.79.0-r100.ebuild 7661 BLAKE2B 0c003da9b7ef5b5fe204735836da0e2c0bac283486eb0382defe27598f9a0ea0e38dd67e57d4fa90567f8ce6f4e59602d6b2d1afe83f582b2eb8e0da9e5d14fc SHA512 1434345f981e692f50840d27140e8a8e9b2d9eb557e7250f032db02321d839fde70609399645ae38f2e78cf79049eabf447d96340c43cb03891a186d1fe07439 -EBUILD rust-bin-1.79.0-r101.ebuild 7661 BLAKE2B 0c003da9b7ef5b5fe204735836da0e2c0bac283486eb0382defe27598f9a0ea0e38dd67e57d4fa90567f8ce6f4e59602d6b2d1afe83f582b2eb8e0da9e5d14fc SHA512 1434345f981e692f50840d27140e8a8e9b2d9eb557e7250f032db02321d839fde70609399645ae38f2e78cf79049eabf447d96340c43cb03891a186d1fe07439 -EBUILD rust-bin-1.80.1-r100.ebuild 7870 BLAKE2B 335d40c75cd61578b055a6ad5d03a182304bfb94b8df09503a802fda905e9c40cfa968e138fb6170734339e5af3d1794b38600b9df6b25abdd5c5a40d4d5637d SHA512 b7dd088309c9da903b1ed24d94c2ac697c1c800ed1c5708572afa5ac3497636811efc5123c390b545e8100a5a8140dc9a49a682ac43fac4821e52c7e8528dad4 -EBUILD rust-bin-1.80.1-r101.ebuild 7870 BLAKE2B 335d40c75cd61578b055a6ad5d03a182304bfb94b8df09503a802fda905e9c40cfa968e138fb6170734339e5af3d1794b38600b9df6b25abdd5c5a40d4d5637d SHA512 b7dd088309c9da903b1ed24d94c2ac697c1c800ed1c5708572afa5ac3497636811efc5123c390b545e8100a5a8140dc9a49a682ac43fac4821e52c7e8528dad4 -EBUILD rust-bin-1.81.0-r100.ebuild 7796 BLAKE2B d4fa84b38416621e531c0fa8721d7d4c351da246324a691cceaebcc8379c5c9003dc5a0c95353b94ab8b1ab1905fb9578d3d951d1c8a986dd720d2282ac76b12 SHA512 4972eef30629e93301d931f56354008a1184acf209740d1cfde93440023e9ca0c8ffb4d7c218ab6930724b827a796f102d56eef73feb378f3be5a7eafe55cf35 -EBUILD rust-bin-1.81.0-r101.ebuild 7796 BLAKE2B d4fa84b38416621e531c0fa8721d7d4c351da246324a691cceaebcc8379c5c9003dc5a0c95353b94ab8b1ab1905fb9578d3d951d1c8a986dd720d2282ac76b12 SHA512 4972eef30629e93301d931f56354008a1184acf209740d1cfde93440023e9ca0c8ffb4d7c218ab6930724b827a796f102d56eef73feb378f3be5a7eafe55cf35 -EBUILD rust-bin-1.82.0-r100.ebuild 7824 BLAKE2B c62734b23b47f074ec71ef4c9ef362551a94a0d8e2949573433a34809647d93e86ff7afca3d017dab587f5789a36789fb955776641d96c32acfb58fc4845a526 SHA512 af1536ddff50283b2712f8d383daedf3397705a26a9b8d8f1ce802cb5e5c2e04fdd23fa1ff87dc4ef9a9be597504bf828fed578c22d87bd57f93055177656c19 -EBUILD rust-bin-1.82.0-r101.ebuild 7824 BLAKE2B c62734b23b47f074ec71ef4c9ef362551a94a0d8e2949573433a34809647d93e86ff7afca3d017dab587f5789a36789fb955776641d96c32acfb58fc4845a526 SHA512 af1536ddff50283b2712f8d383daedf3397705a26a9b8d8f1ce802cb5e5c2e04fdd23fa1ff87dc4ef9a9be597504bf828fed578c22d87bd57f93055177656c19 -EBUILD rust-bin-1.83.0.ebuild 7810 BLAKE2B 484806eca705b0b19f0c99fd9c131fed70c1b64e516a92fe7b7d54935757f1e2ea150269cb105bf6436e462ef1cecbab277786113f6d0201b46c92a7b71e043c SHA512 f1ee0bac3e9895824a918a83a96027bdc8acb5d61aef72ada1c416b4fe11460523ed24944e9ecd3ecedad18a6d656023d6882d6808562f5d62d7d6563b2a6936 -EBUILD rust-bin-1.84.0.ebuild 7817 BLAKE2B b037a3419c1de744417db49366f198de35ff73f3ea3d9aefe5c0d00c3f9bd6f438ed35f6258fe184857788864797b204ffd0e2bb6df07ff3308f4b568cd59497 SHA512 f6c12ce632f940528478f04678a15c5bc8f8368fb2613e6d8347dff29e05efb449d9e8ee878d71f93fb3f78f3ee328cc9d04154d1c3aac115d834121fd196017 -MISC metadata.xml 1062 BLAKE2B de2d2adcb691a3e614457dd9a7f5d4a8eddffd548b2de8a229b6d397ae79f7e24484512a1fb2a85e02aa98c240ae73420dbe48e45790c0cd3f6381ef5a4ac24b SHA512 ee4d08b8eec8abd89e051ee5ec6cc928bfde7039b815d4539558d71d7c0576aea939b7781b4998d3fcf2c2e8752791d53c0ba6115df07fc2243c470b2a7467b9 +DIST rust-src-1.84.1.tar.xz 3016012 BLAKE2B c9edeaf0797a22e384c54b3fe3e7c833464c09f8828474e05400a561a369d836626387caa495689e4b14fad691a85d6859098c84347211a6f79e2ef2c8d9d6f2 SHA512 564c440a05b67fd3a5dcb4dea21800d32ae65ca12230b804b5efa4bd468fe1b185bd7ed89041782018f70f60afd7554d7755edbe20e9cdc930a9fad390deb317 +DIST rust-src-1.85.0.tar.xz 3036988 BLAKE2B b7281b23eef60cf052e1641a29915c02c590166a73e5ae75890072ce80f95a2ab71cead3e3da7adf757ec0352d1dcc87ba4c3070282a27657b34420fe24a0c16 SHA512 613cfa603dc457cee34b154acef9573d766ce5757c9e8342b13d362f2e62b4cee47071a59df9fd5fa42ecade1a9efdada5784402aaf7254d5996558533bff8db +DIST rust-src-1.86.0_beta20250218.tar.xz 3035860 BLAKE2B 506df30188382d43798c6661a8b730c10a74a230bf5ceb7c04f2892f14a45630182ee174f79b564dc5a6dd8e3bc84963b8391fc9641efc57d0ed90e69b89d545 SHA512 4c7cc4d1860f7d97f615ff5dc030754a7fb72d1eb47b27a2e25dbb5a9b0326b8a1b82b6b60a784da910c4730d3b728bb27e1d27f30dabdb7e455143550f0c424 +DIST rust-src-1.86.0_beta20250225.tar.xz 3053616 BLAKE2B 19abffb74a9926c73fd112589be340b2955e3117d4344f4185de08899be5a5ac9835395e601224f21e63fa0f91053fb39ca02e98a6442570dd54c6b0a39f85a9 SHA512 57b8eb0fa06e5ee37d89ee486375b7022d2085fcd88061a20c3e8406c312fa912bc0b52c9259bb3682bbba1e2ea4b044eab9f9ae66262a67c19657033fe918e1 +EBUILD rust-bin-1.71.1-r102.ebuild 7569 BLAKE2B 6a90be3ab0cd5104b2ec5b9dca4f75b806cc48576f27a3cb84475ce4c8c6b7eaaa09a090d2f203675835b4197bd135491449278a2f8e1f65d34a5b0151c65174 SHA512 f9e1aad059225a6cb45d88c733c6c58b12db1cf046171c9be59f39b7904013b1a67b949bf8bbaa8285b20f7f45037b29a11ffc99e24a087cc9f19f93b25aca1d +EBUILD rust-bin-1.74.1-r102.ebuild 7468 BLAKE2B f8e0ef5f3a53f862c10c100ffd886eee06c1b7543856e154756884467f8115bdaa39569a47d789166d625f68f53a657eb535b29ba76aa363d15699ae65c0b3c4 SHA512 9df89cf28b5300a0023915138a05d74b6219632d6e95b056f412070302270e4101b7de5edcb881f917e5c32b787711996b7fb05355d915174764257d75735083 +EBUILD rust-bin-1.75.0-r102.ebuild 7468 BLAKE2B 026bd2e1337b6f6e4922e857d9ab07d4aa2311688aa9743c1b8c6a04ae63605bb5d66f429b03196f1fb4adbd64007f5421f0c26f3b04ee544926296a4e4c3499 SHA512 984d8dcc758db097f013864d619f70509ff32b530bdc77d92c45aee0ae097b612dd2fe0f0e82570fb8fb753645c530b44e02b87465e6f95490ac08789ae123f7 +EBUILD rust-bin-1.76.0-r101.ebuild 6841 BLAKE2B 0a2f4c01bf5f77264e0d879ecb42535fd70b1167cd96be38cc5f25098fbbac36ebaa786290b8ca08e95218c4de2339bb2bf7f1c4aba87bf9a5b54c6bfb19210e SHA512 918f8e38f0740606b0537c45810b91fd8eddbadcec63018d22981ede24f493ecebbcf54aa936300c3f56ef1d2ce93fe0a47d86c862b9a6b465dddf6043667054 +EBUILD rust-bin-1.77.1-r102.ebuild 7507 BLAKE2B 50bdfc349a1969d1c23a48171fc8e1672e19d0156d931c75d6a70e6ba2055973d578227971677d68f6a83ab20d6a379a61ee495261837eb0e2030ad8ff83cc7b SHA512 d75cd61fcb9f823b8d86dfd065af8a1ad29f0a677c22d5401a2eafc00d5da3ee21f1eca984b3cb12d01bcc579c5b936c19b50116355e7ecb3fe9af5ac8293e43 +EBUILD rust-bin-1.78.0-r102.ebuild 7842 BLAKE2B c1444d579ab6c91a82ad7f001930a765ee8d0f4b86a44769853df1dd5d7b70e18257f2810ba7229ec5f9e4e2fdcf2723b063b100813b589490e49f53a07f45d0 SHA512 5cdc9976d4cfff9908f20f9e88b33eeccc551234960aaa0abd68e59c1ceaf1d13b77ed1db02610a35048d85d3ca1b337434b21096411ae2508adb995ea2a4b2a +EBUILD rust-bin-1.79.0-r103.ebuild 7842 BLAKE2B c1444d579ab6c91a82ad7f001930a765ee8d0f4b86a44769853df1dd5d7b70e18257f2810ba7229ec5f9e4e2fdcf2723b063b100813b589490e49f53a07f45d0 SHA512 5cdc9976d4cfff9908f20f9e88b33eeccc551234960aaa0abd68e59c1ceaf1d13b77ed1db02610a35048d85d3ca1b337434b21096411ae2508adb995ea2a4b2a +EBUILD rust-bin-1.80.1-r103.ebuild 7842 BLAKE2B c143d63ce8046d461f1a435d29a582d3e1d987291dea6a47deb95dbd7aed19d0034ba02792dc82ce9c50340925dd8b7aaf9c469e9cd7688490b9b70fdfaf1407 SHA512 2f91114f6d82cb9ccf4bd6e0905cbe33a18f83783f00db83ae58b4d4326b37e63aa7e4e9d441e3d04191e809f4259972b958c6fa09759773a294a44e01fa0c89 +EBUILD rust-bin-1.81.0-r103.ebuild 7768 BLAKE2B 8d4f88d4e81bf1003e42f6fd4b5f6442b49c5b0422b29054ae33a0be67c7416ae096b00311cadbb7a951d27b1eb4213e5185d8d633f8de961dfc9bcd08067fce SHA512 4ede6ad19626537878e0bc416274be19aff2d06776372f54a54a2bc5b63ea8d3ff0a00150d998e8c29bb862fd17acaf154adcfe1c0389e5a5dbbf53132f8369d +EBUILD rust-bin-1.82.0-r103.ebuild 7796 BLAKE2B 0deef6089e8367ecd6d00bedf195e89e1f9c221df35454afbdf8fb523ac16eb72a6858dfd6821c9cc4ae170902b0c6dc3f7919419f4de22801153f7caca5a7ad SHA512 2a356772507a0759e0650aa90959d56feb057e1a223cc09b2a53ecf40ae0ca51bcc2247a36da6615504cb9518897dfeae513305e1d47caf455fe2956c4f4d255 +EBUILD rust-bin-1.83.0-r2.ebuild 7778 BLAKE2B 1c5bbb409a74d5d4c80f41cc909635e0c8eb6d8ebf83388c56216f5f5be5cf8c99ef719154a2091508620bc7f765b5098b86ec2a9a31f89fef22a8c563d4bcf1 SHA512 4bc009b4bd35c828eed84e1ed645ce7ff097ffbe03feb3b8d2350b895d9147f1925ff48423a4a86efe5747fc2d83398b17fd446c4f86b945295c2656e8d9cba7 +EBUILD rust-bin-1.84.0-r2.ebuild 7785 BLAKE2B 3c77531f6388de3063f4c34b7fdfebe6f1806fc8e9e4546ef683aa53b9754baef480be52ef08ca84f139312f8d620d2632be8ade920f006fe24386e1a3fe2a10 SHA512 37639ee057c9ac217416e9bf09e32be3f8436ab280a5afe7b7510b8e1efddc695a6ddf800661d382760320850ff101a6e214c686cb8b48c58aa5864233727862 +EBUILD rust-bin-1.84.1-r2.ebuild 7778 BLAKE2B e00b6cda1cbdc70ad3b33ae2625df528214e0975f5e12ec07baec5808eeed6e1de01d34334875efd9059fa3084b699c469afe4e4cec50e43bb5a1ce6f291d51f SHA512 b996e931d7fa1bf7b7c2984316c6cf7f512cdc13c20c059db8bf55621a88140b093961777b2cee6429fa0bed0b66fe8fae8468afa130da0dbdd160c352d33a99 +EBUILD rust-bin-1.85.0-r1.ebuild 10842 BLAKE2B c2f2fe8b83e74402ea3064d4b1a9ee195b43c3f7762a38a77215e5f13df30acef8f0699692c7260f732147ea969bfef41f592a2711522213fb087691085922bb SHA512 54508d439129bf47dad37ad70169fabc102c86f43626f8d8bd390f458924193ed72ce8463a3887af3cd5d78bdbfdb16a9977b3874779cf56c8d5adaf3925cbb5 +EBUILD rust-bin-1.85.0.ebuild 10809 BLAKE2B e55e9cf45d34ba2369e9fdb5b8ace0efed19d897ef51fd68550e12e02193a55309c8c320e6c9f2704635d58a458dcdcacb1521449cc47622d40d67e6235f6e97 SHA512 37a008f404b5fc4f7233d3268a1e7c764c5c4ec30f7d27a839f0a9f64093b0a24a95284044b0b0b9c83615d29b3da0bb09da6cbc391a59709181aade8b8f30c3 +EBUILD rust-bin-1.86.0_beta20250218-r1.ebuild 10831 BLAKE2B 6676174f4042a57ec5491ab76c7289d9c6d327be0384446a92e38ae002c8687be6006c29ca1daa2fd8d5da022e301ffc54725bbab1bc6279c7e729f17d6147cc SHA512 a7ecaf5e566dd65d962c2ca8b8659e00bc1430263e7298929d6d581638fb2af731d9e5247341440542b80fa6164fa81b7408619067099ff9586dae921c4a7600 +EBUILD rust-bin-1.86.0_beta20250218.ebuild 10798 BLAKE2B 671d50e2ffcead1bbb5731ae3a78fd5d688b3070885ab8ad20a39a7b5b0db4e3c8b39a4651c03b2fc15b4ba662c227ac65a1cb0a7cb894a7f1b9c128e0005267 SHA512 116b3e538b32f80472e7966db8f9c6253571eec6a403146632b322cd0d4f6dd1571f1d83f47afb644ff594ca50d8325ff05093b0cae4d794a14879869cd87a26 +EBUILD rust-bin-1.86.0_beta20250225.ebuild 10798 BLAKE2B 671d50e2ffcead1bbb5731ae3a78fd5d688b3070885ab8ad20a39a7b5b0db4e3c8b39a4651c03b2fc15b4ba662c227ac65a1cb0a7cb894a7f1b9c128e0005267 SHA512 116b3e538b32f80472e7966db8f9c6253571eec6a403146632b322cd0d4f6dd1571f1d83f47afb644ff594ca50d8325ff05093b0cae4d794a14879869cd87a26 +EBUILD rust-bin-9999.ebuild 10831 BLAKE2B 8c5925157322aad9d43d2aadb0e37fc6fccbfdee769ca1e3824f8512c1ce5438a5f8155a0677b8fb6674ef69ab1214215a2fc6d3ede1c57890d6f4d1f330c8a1 SHA512 66a0b47cd1b8b458ac555e764da9dd0b44fe4cd470376bd7afd520776959600a0eb01cbf28f12adab0f081fa44981873013d18d29af6fe8869db33323dfbaa2c +MISC metadata.xml 1123 BLAKE2B 8beee99782782c58cb0c43f9fc5548bd8eec40d305ce8b916be2b78b65899eaaeda625225ff0c9724a93b2a350510c97171def95001059943501a6af9248310a SHA512 e944a0c04416ca40de6956d2d7a950e3c4be9f1b1754f0b46263fbdd2ace292b959bfb6a264ab479c0576a05835b4e44ed62260c181ce5590cb859e1dcdc0e41 diff --git a/dev-lang/rust-bin/metadata.xml b/dev-lang/rust-bin/metadata.xml index bc1f3f39e1de..b5d78dd6edde 100644 --- a/dev-lang/rust-bin/metadata.xml +++ b/dev-lang/rust-bin/metadata.xml @@ -25,5 +25,6 @@ </use> <upstream> <remote-id type="github">rust-lang/rust</remote-id> + <remote-id type="github">projg2/rust-bootstrap</remote-id> </upstream> </pkgmetadata> diff --git a/dev-lang/rust-bin/rust-bin-1.71.1-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.71.1-r100.ebuild deleted file mode 100644 index 9e716ace2e5b..000000000000 --- a/dev-lang/rust-bin/rust-bin-1.71.1-r100.ebuild +++ /dev/null @@ -1,234 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( 16 ) -LLVM_OPTIONAL="yes" - -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal - -MY_P="rust-${PV}" -# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" -MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2023-08-03/rust-src-${PV}.tar.xz" -GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash - -DESCRIPTION="Language empowering everyone to build reliable and efficient software" -HOMEPAGE="https://www.rust-lang.org/" -SRC_URI="$(rust_all_arch_uris ${MY_P}) - rust-src? ( ${MY_SRC_URI} ) -" -# Keep this separate to allow easy commenting out if not yet built -SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz -> ${MY_P}-sparc64-unknown-linux-gnu.sam.tar.xz ) " - -LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA" -SLOT="${PV}" -KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" -IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" - -RDEPEND=" - >=app-eselect/eselect-rust-20190311 - dev-libs/openssl - sys-apps/lsb-release - sys-devel/gcc:* - !dev-lang/rust:stable - !dev-lang/rust-bin:stable -" -BDEPEND=" - prefix? ( dev-util/patchelf ) - verify-sig? ( sec-keys/openpgp-keys-rust ) -" - -REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" - -# stripping rust may break it (at least on x86_64) -# https://github.com/rust-lang/rust/issues/112286 -RESTRICT="strip" - -QA_PREBUILT=" - opt/${P}/bin/.* - opt/${P}/lib/.*.so - opt/${P}/libexec/.* - opt/${P}/lib/rustlib/.*/bin/.* - opt/${P}/lib/rustlib/.*/lib/.* -" - -# An rmeta file is custom binary format that contains the metadata for the crate. -# rmeta files do not support linking, since they do not contain compiled object files. -# so we can safely silence the warning for this QA check. -QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" - -VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" - -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - -src_unpack() { - # sadly rust-src tarball does not have corresponding .asc file - # so do partial verification - if use verify-sig; then - for f in ${A}; do - if [[ -f ${DISTDIR}/${f}.asc ]]; then - verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" - fi - done - fi - - default_src_unpack - - mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die -} - -patchelf_for_bin() { - local filetype=$(file -b ${1}) - if [[ ${filetype} == *ELF*interpreter* ]]; then - einfo "${1}'s interpreter changed" - patchelf ${1} --set-interpreter ${2} || die - elif [[ ${filetype} == *script* ]]; then - hprefixify ${1} - fi -} - -multilib_src_install() { - if multilib_is_native_abi; then - - # start native abi install - pushd "${S}" >/dev/null || die - local analysis std - analysis="$(grep 'analysis' ./components)" - std="$(grep 'std' ./components)" - local components="rustc,cargo,${std}" - use doc && components="${components},rust-docs" - use clippy && components="${components},clippy-preview" - use rustfmt && components="${components},rustfmt-preview" - use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}" - # Rust component 'rust-src' is extracted from separate archive - if use rust-src; then - einfo "Combining rust and rust-src installers" - mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die - echo rust-src >> ./components || die - components="${components},rust-src" - fi - ./install.sh \ - --components="${components}" \ - --disable-verify \ - --prefix="${ED}/opt/${P}" \ - --mandir="${ED}/opt/${P}/man" \ - --disable-ldconfig \ - || die - - if use prefix; then - local interpreter=$(patchelf --print-interpreter "${EPREFIX}/bin/bash") - ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" - find "${ED}/opt/${P}/bin" -type f -print0 | \ - while IFS= read -r -d '' filename; do - patchelf_for_bin ${filename} ${interpreter} \; || die - done - eend ${PIPESTATUS[0]} - fi - - local symlinks=( - cargo - rustc - rustdoc - rust-gdb - rust-gdbgui - rust-lldb - ) - - use clippy && symlinks+=( clippy-driver cargo-clippy ) - use rustfmt && symlinks+=( rustfmt cargo-fmt ) - use rust-analyzer && symlinks+=( rust-analyzer ) - - einfo "installing eselect-rust symlinks and paths" - local i - for i in "${symlinks[@]}"; do - # we need realpath on /usr/bin/* symlink return version-appended binary path. - # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver> - local ver_i="${i}-bin-${PV}" - ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die - dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" - done - - # symlinks to switch components to active rust in eselect - dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" - dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" - dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" - dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" - - # make all capital underscored variable - local CARGO_TRIPLET="$(rust_abi)" - CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" - CARGO_TRIPLET="${CARGO_TRIPLET^^}" - cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" - $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") - _EOF_ - doenvd "${T}/50${P}" - - # note: eselect-rust adds EROOT to all paths below - cat <<-_EOF_ > "${T}/provider-${P}" - /usr/bin/cargo - /usr/bin/rustdoc - /usr/bin/rust-gdb - /usr/bin/rust-gdbgui - /usr/bin/rust-lldb - /usr/lib/rustlib - /usr/lib/rust/lib - /usr/lib/rust/man - /usr/share/doc/rust - _EOF_ - - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" - fi - if use rust-analyzer; then - echo /usr/bin/rust-analyzer >> "${T}/provider-${P}" - fi - - insinto /etc/env.d/rust - doins "${T}/provider-${P}" - popd >/dev/null || die - #end native abi install - - else - local rust_target - rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" - dodir "/opt/${P}/lib/rustlib" - cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ - "${ED}/opt/${P}/lib/rustlib" || die - fi - - # BUG: installs x86_64 binary on other arches - rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die -} - -pkg_postinst() { - eselect rust update - - if has_version dev-debug/gdb || has_version llvm-core/lldb; then - elog "Rust installs helper scripts for calling GDB and LLDB," - elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." - fi - - if has_version app-editors/emacs; then - elog "install app-emacs/rust-mode to get emacs support for rust." - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - elog "install app-vim/rust-vim to get vim support for rust." - fi -} - -pkg_postrm() { - eselect rust cleanup -} diff --git a/dev-lang/rust-bin/rust-bin-1.71.1-r101.ebuild b/dev-lang/rust-bin/rust-bin-1.71.1-r102.ebuild index 9e716ace2e5b..4a8c1bec782e 100644 --- a/dev-lang/rust-bin/rust-bin-1.71.1-r101.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.71.1-r102.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -18,6 +18,20 @@ HOMEPAGE="https://www.rust-lang.org/" SRC_URI="$(rust_all_arch_uris ${MY_P}) rust-src? ( ${MY_SRC_URI} ) " +# No point keeping this in the eclass; this is the only revision that needs the logic +SRC_URI+=" +mips? ( + abi_mips_o32? ( + big-endian? ( $(rust_arch_uri mips-unknown-linux-gnu "${MY_P}") ) + !big-endian? ( $(rust_arch_uri mipsel-unknown-linux-gnu "${MY_P}") ) + ) + abi_mips_n64? ( + big-endian? ( $(rust_arch_uri mips64-unknown-linux-gnuabi64 "${MY_P}") ) + !big-endian? ( $(rust_arch_uri mips64el-unknown-linux-gnuabi64 "${MY_P}") ) + ) +) +" + # Keep this separate to allow easy commenting out if not yet built SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz -> ${MY_P}-sparc64-unknown-linux-gnu.sam.tar.xz ) " @@ -164,8 +178,7 @@ multilib_src_install() { CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" CARGO_TRIPLET="${CARGO_TRIPLET^^}" cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") _EOF_ doenvd "${T}/50${P}" diff --git a/dev-lang/rust-bin/rust-bin-1.74.1-r101.ebuild b/dev-lang/rust-bin/rust-bin-1.74.1-r101.ebuild deleted file mode 100644 index 23d2616783ae..000000000000 --- a/dev-lang/rust-bin/rust-bin-1.74.1-r101.ebuild +++ /dev/null @@ -1,244 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( 17 ) -LLVM_OPTIONAL="yes" - -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal - -MY_P="rust-${PV}" -# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" -MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2023-12-07/rust-src-${PV}.tar.xz" -GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash - -DESCRIPTION="Language empowering everyone to build reliable and efficient software" -HOMEPAGE="https://www.rust-lang.org/" -SRC_URI="$(rust_all_arch_uris ${MY_P}) - rust-src? ( ${MY_SRC_URI} ) -" -# Keep this separate to allow easy commenting out if not yet built -SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " -#SRC_URI+=" mips? ( -# abi_mips_o32? ( -# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) -# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) -# ) -# abi_mips_n64? ( -# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) -# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) -# ) -#)" - -LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" -SLOT="${PV}" -KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86" -IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" - -RDEPEND=" - >=app-eselect/eselect-rust-20190311 - dev-libs/openssl - sys-apps/lsb-release - sys-devel/gcc:* - !dev-lang/rust:stable - !dev-lang/rust-bin:stable -" -BDEPEND=" - prefix? ( dev-util/patchelf ) - verify-sig? ( sec-keys/openpgp-keys-rust ) -" - -REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" - -# stripping rust may break it (at least on x86_64) -# https://github.com/rust-lang/rust/issues/112286 -RESTRICT="strip" - -QA_PREBUILT=" - opt/${P}/bin/.* - opt/${P}/lib/.*.so - opt/${P}/libexec/.* - opt/${P}/lib/rustlib/.*/bin/.* - opt/${P}/lib/rustlib/.*/lib/.* -" - -# An rmeta file is custom binary format that contains the metadata for the crate. -# rmeta files do not support linking, since they do not contain compiled object files. -# so we can safely silence the warning for this QA check. -QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" - -VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" - -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - -src_unpack() { - # sadly rust-src tarball does not have corresponding .asc file - # so do partial verification - if use verify-sig; then - for f in ${A}; do - if [[ -f ${DISTDIR}/${f}.asc ]]; then - verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" - fi - done - fi - - default_src_unpack - - mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die -} - -patchelf_for_bin() { - local filetype=$(file -b ${1}) - if [[ ${filetype} == *ELF*interpreter* ]]; then - einfo "${1}'s interpreter changed" - patchelf ${1} --set-interpreter ${2} || die - elif [[ ${filetype} == *script* ]]; then - hprefixify ${1} - fi -} - -multilib_src_install() { - if multilib_is_native_abi; then - - # start native abi install - pushd "${S}" >/dev/null || die - local analysis std - analysis="$(grep 'analysis' ./components)" - std="$(grep 'std' ./components)" - local components="rustc,cargo,${std}" - use doc && components="${components},rust-docs" - use clippy && components="${components},clippy-preview" - use rustfmt && components="${components},rustfmt-preview" - use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}" - # Rust component 'rust-src' is extracted from separate archive - if use rust-src; then - einfo "Combining rust and rust-src installers" - mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die - echo rust-src >> ./components || die - components="${components},rust-src" - fi - ./install.sh \ - --components="${components}" \ - --disable-verify \ - --prefix="${ED}/opt/${P}" \ - --mandir="${ED}/opt/${P}/man" \ - --disable-ldconfig \ - || die - - if use prefix; then - local interpreter=$(patchelf --print-interpreter "${EPREFIX}/bin/bash") - ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" - find "${ED}/opt/${P}/bin" -type f -print0 | \ - while IFS= read -r -d '' filename; do - patchelf_for_bin ${filename} ${interpreter} \; || die - done - eend ${PIPESTATUS[0]} - fi - - local symlinks=( - cargo - rustc - rustdoc - rust-gdb - rust-gdbgui - rust-lldb - ) - - use clippy && symlinks+=( clippy-driver cargo-clippy ) - use rustfmt && symlinks+=( rustfmt cargo-fmt ) - use rust-analyzer && symlinks+=( rust-analyzer ) - - einfo "installing eselect-rust symlinks and paths" - local i - for i in "${symlinks[@]}"; do - # we need realpath on /usr/bin/* symlink return version-appended binary path. - # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver> - local ver_i="${i}-bin-${PV}" - ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die - dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" - done - - # symlinks to switch components to active rust in eselect - dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" - dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" - dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" - dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" - - # make all capital underscored variable - local CARGO_TRIPLET="$(rust_abi)" - CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" - CARGO_TRIPLET="${CARGO_TRIPLET^^}" - cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" - $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") - _EOF_ - doenvd "${T}/50${P}" - - # note: eselect-rust adds EROOT to all paths below - cat <<-_EOF_ > "${T}/provider-${P}" - /usr/bin/cargo - /usr/bin/rustdoc - /usr/bin/rust-gdb - /usr/bin/rust-gdbgui - /usr/bin/rust-lldb - /usr/lib/rustlib - /usr/lib/rust/lib - /usr/lib/rust/man - /usr/share/doc/rust - _EOF_ - - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" - fi - if use rust-analyzer; then - echo /usr/bin/rust-analyzer >> "${T}/provider-${P}" - fi - - insinto /etc/env.d/rust - doins "${T}/provider-${P}" - popd >/dev/null || die - #end native abi install - - else - local rust_target - rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" - dodir "/opt/${P}/lib/rustlib" - cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ - "${ED}/opt/${P}/lib/rustlib" || die - fi - - # BUG: installs x86_64 binary on other arches - rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die -} - -pkg_postinst() { - eselect rust update - - if has_version dev-debug/gdb || has_version llvm-core/lldb; then - elog "Rust installs helper scripts for calling GDB and LLDB," - elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." - fi - - if has_version app-editors/emacs; then - elog "install app-emacs/rust-mode to get emacs support for rust." - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - elog "install app-vim/rust-vim to get vim support for rust." - fi -} - -pkg_postrm() { - eselect rust cleanup -} diff --git a/dev-lang/rust-bin/rust-bin-1.74.1-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.74.1-r102.ebuild index 23d2616783ae..e7490ef7bbbf 100644 --- a/dev-lang/rust-bin/rust-bin-1.74.1-r100.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.74.1-r102.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -174,8 +174,7 @@ multilib_src_install() { CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" CARGO_TRIPLET="${CARGO_TRIPLET^^}" cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") _EOF_ doenvd "${T}/50${P}" diff --git a/dev-lang/rust-bin/rust-bin-1.75.0-r101.ebuild b/dev-lang/rust-bin/rust-bin-1.75.0-r101.ebuild deleted file mode 100644 index 9bb32c144c66..000000000000 --- a/dev-lang/rust-bin/rust-bin-1.75.0-r101.ebuild +++ /dev/null @@ -1,244 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( 17 ) -LLVM_OPTIONAL="yes" - -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal - -MY_P="rust-${PV}" -# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" -MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2023-12-28/rust-src-${PV}.tar.xz" -GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash - -DESCRIPTION="Language empowering everyone to build reliable and efficient software" -HOMEPAGE="https://www.rust-lang.org/" -SRC_URI="$(rust_all_arch_uris ${MY_P}) - rust-src? ( ${MY_SRC_URI} ) -" -# Keep this separate to allow easy commenting out if not yet built -SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " -#SRC_URI+=" mips? ( -# abi_mips_o32? ( -# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) -# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) -# ) -# abi_mips_n64? ( -# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) -# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) -# ) -#)" - -LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" -SLOT="${PV}" -KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86" -IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" - -RDEPEND=" - >=app-eselect/eselect-rust-20190311 - dev-libs/openssl - sys-apps/lsb-release - sys-devel/gcc:* - !dev-lang/rust:stable - !dev-lang/rust-bin:stable -" -BDEPEND=" - prefix? ( dev-util/patchelf ) - verify-sig? ( sec-keys/openpgp-keys-rust ) -" - -REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" - -# stripping rust may break it (at least on x86_64) -# https://github.com/rust-lang/rust/issues/112286 -RESTRICT="strip" - -QA_PREBUILT=" - opt/${P}/bin/.* - opt/${P}/lib/.*.so - opt/${P}/libexec/.* - opt/${P}/lib/rustlib/.*/bin/.* - opt/${P}/lib/rustlib/.*/lib/.* -" - -# An rmeta file is custom binary format that contains the metadata for the crate. -# rmeta files do not support linking, since they do not contain compiled object files. -# so we can safely silence the warning for this QA check. -QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" - -VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" - -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - -src_unpack() { - # sadly rust-src tarball does not have corresponding .asc file - # so do partial verification - if use verify-sig; then - for f in ${A}; do - if [[ -f ${DISTDIR}/${f}.asc ]]; then - verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" - fi - done - fi - - default_src_unpack - - mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die -} - -patchelf_for_bin() { - local filetype=$(file -b ${1}) - if [[ ${filetype} == *ELF*interpreter* ]]; then - einfo "${1}'s interpreter changed" - patchelf ${1} --set-interpreter ${2} || die - elif [[ ${filetype} == *script* ]]; then - hprefixify ${1} - fi -} - -multilib_src_install() { - if multilib_is_native_abi; then - - # start native abi install - pushd "${S}" >/dev/null || die - local analysis std - analysis="$(grep 'analysis' ./components)" - std="$(grep 'std' ./components)" - local components="rustc,cargo,${std}" - use doc && components="${components},rust-docs" - use clippy && components="${components},clippy-preview" - use rustfmt && components="${components},rustfmt-preview" - use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}" - # Rust component 'rust-src' is extracted from separate archive - if use rust-src; then - einfo "Combining rust and rust-src installers" - mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die - echo rust-src >> ./components || die - components="${components},rust-src" - fi - ./install.sh \ - --components="${components}" \ - --disable-verify \ - --prefix="${ED}/opt/${P}" \ - --mandir="${ED}/opt/${P}/man" \ - --disable-ldconfig \ - || die - - if use prefix; then - local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) - ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" - find "${ED}/opt/${P}/bin" -type f -print0 | \ - while IFS= read -r -d '' filename; do - patchelf_for_bin ${filename} ${interpreter} \; || die - done - eend ${PIPESTATUS[0]} - fi - - local symlinks=( - cargo - rustc - rustdoc - rust-gdb - rust-gdbgui - rust-lldb - ) - - use clippy && symlinks+=( clippy-driver cargo-clippy ) - use rustfmt && symlinks+=( rustfmt cargo-fmt ) - use rust-analyzer && symlinks+=( rust-analyzer ) - - einfo "installing eselect-rust symlinks and paths" - local i - for i in "${symlinks[@]}"; do - # we need realpath on /usr/bin/* symlink return version-appended binary path. - # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver> - local ver_i="${i}-bin-${PV}" - ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die - dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" - done - - # symlinks to switch components to active rust in eselect - dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" - dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" - dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" - dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" - - # make all capital underscored variable - local CARGO_TRIPLET="$(rust_abi)" - CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" - CARGO_TRIPLET="${CARGO_TRIPLET^^}" - cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" - $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") - _EOF_ - doenvd "${T}/50${P}" - - # note: eselect-rust adds EROOT to all paths below - cat <<-_EOF_ > "${T}/provider-${P}" - /usr/bin/cargo - /usr/bin/rustdoc - /usr/bin/rust-gdb - /usr/bin/rust-gdbgui - /usr/bin/rust-lldb - /usr/lib/rustlib - /usr/lib/rust/lib - /usr/lib/rust/man - /usr/share/doc/rust - _EOF_ - - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" - fi - if use rust-analyzer; then - echo /usr/bin/rust-analyzer >> "${T}/provider-${P}" - fi - - insinto /etc/env.d/rust - doins "${T}/provider-${P}" - popd >/dev/null || die - #end native abi install - - else - local rust_target - rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" - dodir "/opt/${P}/lib/rustlib" - cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ - "${ED}/opt/${P}/lib/rustlib" || die - fi - - # BUG: installs x86_64 binary on other arches - rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die -} - -pkg_postinst() { - eselect rust update - - if has_version dev-debug/gdb || has_version llvm-core/lldb; then - elog "Rust installs helper scripts for calling GDB and LLDB," - elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." - fi - - if has_version app-editors/emacs; then - elog "install app-emacs/rust-mode to get emacs support for rust." - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - elog "install app-vim/rust-vim to get vim support for rust." - fi -} - -pkg_postrm() { - eselect rust cleanup -} diff --git a/dev-lang/rust-bin/rust-bin-1.75.0-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.75.0-r102.ebuild index 9bb32c144c66..bb60f0c714ad 100644 --- a/dev-lang/rust-bin/rust-bin-1.75.0-r100.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.75.0-r102.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -174,8 +174,7 @@ multilib_src_install() { CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" CARGO_TRIPLET="${CARGO_TRIPLET^^}" cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") _EOF_ doenvd "${T}/50${P}" diff --git a/dev-lang/rust-bin/rust-bin-1.76.0-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.76.0-r101.ebuild index 1768a0889eaf..a1a14f630402 100644 --- a/dev-lang/rust-bin/rust-bin-1.76.0-r100.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.76.0-r101.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -162,8 +162,7 @@ multilib_src_install() { CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" CARGO_TRIPLET="${CARGO_TRIPLET^^}" cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") _EOF_ doenvd "${T}/50${P}" diff --git a/dev-lang/rust-bin/rust-bin-1.77.1-r101.ebuild b/dev-lang/rust-bin/rust-bin-1.77.1-r101.ebuild deleted file mode 100644 index 5eb6567f5cdd..000000000000 --- a/dev-lang/rust-bin/rust-bin-1.77.1-r101.ebuild +++ /dev/null @@ -1,246 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( 17 ) -LLVM_OPTIONAL="yes" - -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal - -MY_P="rust-${PV}" -# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" -MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-03-28/rust-src-${PV}.tar.xz" -GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash - -DESCRIPTION="Systems programming language from Mozilla" -HOMEPAGE="https://www.rust-lang.org/" -SRC_URI="$(rust_all_arch_uris ${MY_P}) - rust-src? ( ${MY_SRC_URI} ) -" -# Keep this separate to allow easy commenting out if not yet built -SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " -SRC_URI+=" mips? ( - abi_mips_o32? ( - big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) - !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) - ) - abi_mips_n64? ( - big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) - !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) - ) -)" - -LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" -SLOT="${PV}" -KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" -IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" - -RDEPEND=" - >=app-eselect/eselect-rust-20190311 - dev-libs/openssl - sys-apps/lsb-release - sys-devel/gcc:* - !dev-lang/rust:stable - !dev-lang/rust-bin:stable -" -BDEPEND=" - prefix? ( dev-util/patchelf ) - verify-sig? ( sec-keys/openpgp-keys-rust ) -" - -REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" - -# stripping rust may break it (at least on x86_64) -# https://github.com/rust-lang/rust/issues/112286 -RESTRICT="strip" - -QA_PREBUILT=" - opt/${P}/bin/.* - opt/${P}/lib/.*.so - opt/${P}/libexec/.* - opt/${P}/lib/rustlib/.*/bin/.* - opt/${P}/lib/rustlib/.*/lib/.* -" - -# An rmeta file is custom binary format that contains the metadata for the crate. -# rmeta files do not support linking, since they do not contain compiled object files. -# so we can safely silence the warning for this QA check. -QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" - -VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" - -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - -src_unpack() { - # sadly rust-src tarball does not have corresponding .asc file - # so do partial verification - if use verify-sig; then - for f in ${A}; do - if [[ -f ${DISTDIR}/${f}.asc ]]; then - verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" - fi - done - fi - - default_src_unpack - - mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die -} - -patchelf_for_bin() { - local filetype=$(file -b ${1}) - if [[ ${filetype} == *ELF*interpreter* ]]; then - einfo "${1}'s interpreter changed" - patchelf ${1} --set-interpreter ${2} || die - elif [[ ${filetype} == *script* ]]; then - hprefixify ${1} - fi -} - -multilib_src_install() { - if multilib_is_native_abi; then - - # start native abi install - pushd "${S}" >/dev/null || die - local analysis std - analysis="$(grep 'analysis' ./components)" - std="$(grep 'std' ./components)" - local components="rustc,cargo,rust-demangler-preview,${std}" - use doc && components="${components},rust-docs" - use clippy && components="${components},clippy-preview" - use rustfmt && components="${components},rustfmt-preview" - use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}" - # Rust component 'rust-src' is extracted from separate archive - if use rust-src; then - einfo "Combining rust and rust-src installers" - mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die - echo rust-src >> ./components || die - components="${components},rust-src" - fi - ./install.sh \ - --components="${components}" \ - --disable-verify \ - --prefix="${ED}/opt/${P}" \ - --mandir="${ED}/opt/${P}/man" \ - --disable-ldconfig \ - || die - - if use prefix; then - local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) - ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" - find "${ED}/opt/${P}/bin" -type f -print0 | \ - while IFS= read -r -d '' filename; do - patchelf_for_bin ${filename} ${interpreter} \; || die - done - eend ${PIPESTATUS[0]} - fi - - local symlinks=( - cargo - rustc - rustdoc - rust-demangler - rust-gdb - rust-gdbgui - rust-lldb - ) - - use clippy && symlinks+=( clippy-driver cargo-clippy ) - use rustfmt && symlinks+=( rustfmt cargo-fmt ) - use rust-analyzer && symlinks+=( rust-analyzer ) - - einfo "installing eselect-rust symlinks and paths" - local i - for i in "${symlinks[@]}"; do - # we need realpath on /usr/bin/* symlink return version-appended binary path. - # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver> - local ver_i="${i}-bin-${PV}" - ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die - dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" - done - - # symlinks to switch components to active rust in eselect - dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" - dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" - dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" - dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" - - # make all capital underscored variable - local CARGO_TRIPLET="$(rust_abi)" - CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" - CARGO_TRIPLET="${CARGO_TRIPLET^^}" - cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" - $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") - _EOF_ - doenvd "${T}/50${P}" - - # note: eselect-rust adds EROOT to all paths below - cat <<-_EOF_ > "${T}/provider-${P}" - /usr/bin/cargo - /usr/bin/rustdoc - /usr/bin/rust-demangler - /usr/bin/rust-gdb - /usr/bin/rust-gdbgui - /usr/bin/rust-lldb - /usr/lib/rustlib - /usr/lib/rust/lib - /usr/lib/rust/man - /usr/share/doc/rust - _EOF_ - - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" - fi - if use rust-analyzer; then - echo /usr/bin/rust-analyzer >> "${T}/provider-${P}" - fi - - insinto /etc/env.d/rust - doins "${T}/provider-${P}" - popd >/dev/null || die - #end native abi install - - else - local rust_target - rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" - dodir "/opt/${P}/lib/rustlib" - cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ - "${ED}/opt/${P}/lib/rustlib" || die - fi - - # BUG: installs x86_64 binary on other arches - rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die -} - -pkg_postinst() { - eselect rust update - - if has_version dev-debug/gdb || has_version llvm-core/lldb; then - elog "Rust installs helper scripts for calling GDB and LLDB," - elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." - fi - - if has_version app-editors/emacs; then - elog "install app-emacs/rust-mode to get emacs support for rust." - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - elog "install app-vim/rust-vim to get vim support for rust." - fi -} - -pkg_postrm() { - eselect rust cleanup -} diff --git a/dev-lang/rust-bin/rust-bin-1.77.1-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.77.1-r102.ebuild index 5eb6567f5cdd..701e6ea24605 100644 --- a/dev-lang/rust-bin/rust-bin-1.77.1-r100.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.77.1-r102.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -175,8 +175,7 @@ multilib_src_install() { CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" CARGO_TRIPLET="${CARGO_TRIPLET^^}" cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") _EOF_ doenvd "${T}/50${P}" diff --git a/dev-lang/rust-bin/rust-bin-1.78.0-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.78.0-r100.ebuild deleted file mode 100644 index 80ef90b24dd2..000000000000 --- a/dev-lang/rust-bin/rust-bin-1.78.0-r100.ebuild +++ /dev/null @@ -1,249 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( 18 ) -LLVM_OPTIONAL="yes" - -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal - -MY_P="rust-${PV}" -# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" -MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-05-02/rust-src-${PV}.tar.xz" -GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash - -DESCRIPTION="Systems programming language from Mozilla" -HOMEPAGE="https://www.rust-lang.org/" -SRC_URI="$(rust_all_arch_uris ${MY_P}) - rust-src? ( ${MY_SRC_URI} ) -" -# Keep this separate to allow easy commenting out if not yet built -SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " -SRC_URI+=" mips? ( - abi_mips_o32? ( - big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) - !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) - ) - abi_mips_n64? ( - big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) - !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) - ) -)" -SRC_URI+=" riscv? ( - elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz ) -)" - -LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" -SLOT="${PV}" -KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" -IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" - -RDEPEND=" - >=app-eselect/eselect-rust-20190311 - dev-libs/openssl - sys-apps/lsb-release - sys-devel/gcc:* - !dev-lang/rust:stable - !dev-lang/rust-bin:stable -" -BDEPEND=" - prefix? ( dev-util/patchelf ) - verify-sig? ( sec-keys/openpgp-keys-rust ) -" - -REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" - -# stripping rust may break it (at least on x86_64) -# https://github.com/rust-lang/rust/issues/112286 -RESTRICT="strip" - -QA_PREBUILT=" - opt/${P}/bin/.* - opt/${P}/lib/.*.so* - opt/${P}/libexec/.* - opt/${P}/lib/rustlib/.*/bin/.* - opt/${P}/lib/rustlib/.*/lib/.* -" - -# An rmeta file is custom binary format that contains the metadata for the crate. -# rmeta files do not support linking, since they do not contain compiled object files. -# so we can safely silence the warning for this QA check. -QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" - -VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" - -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - -src_unpack() { - # sadly rust-src tarball does not have corresponding .asc file - # so do partial verification - if use verify-sig; then - for f in ${A}; do - if [[ -f ${DISTDIR}/${f}.asc ]]; then - verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" - fi - done - fi - - default_src_unpack - - mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die -} - -patchelf_for_bin() { - local filetype=$(file -b ${1}) - if [[ ${filetype} == *ELF*interpreter* ]]; then - einfo "${1}'s interpreter changed" - patchelf ${1} --set-interpreter ${2} || die - elif [[ ${filetype} == *script* ]]; then - hprefixify ${1} - fi -} - -multilib_src_install() { - if multilib_is_native_abi; then - - # start native abi install - pushd "${S}" >/dev/null || die - local analysis std - analysis="$(grep 'analysis' ./components)" - std="$(grep 'std' ./components)" - local components="rustc,cargo,rust-demangler-preview,${std}" - use doc && components="${components},rust-docs" - use clippy && components="${components},clippy-preview" - use rustfmt && components="${components},rustfmt-preview" - use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}" - # Rust component 'rust-src' is extracted from separate archive - if use rust-src; then - einfo "Combining rust and rust-src installers" - mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die - echo rust-src >> ./components || die - components="${components},rust-src" - fi - ./install.sh \ - --components="${components}" \ - --disable-verify \ - --prefix="${ED}/opt/${P}" \ - --mandir="${ED}/opt/${P}/man" \ - --disable-ldconfig \ - || die - - if use prefix; then - local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) - ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" - find "${ED}/opt/${P}/bin" -type f -print0 | \ - while IFS= read -r -d '' filename; do - patchelf_for_bin ${filename} ${interpreter} \; || die - done - eend ${PIPESTATUS[0]} - fi - - local symlinks=( - cargo - rustc - rustdoc - rust-demangler - rust-gdb - rust-gdbgui - rust-lldb - ) - - use clippy && symlinks+=( clippy-driver cargo-clippy ) - use rustfmt && symlinks+=( rustfmt cargo-fmt ) - use rust-analyzer && symlinks+=( rust-analyzer ) - - einfo "installing eselect-rust symlinks and paths" - local i - for i in "${symlinks[@]}"; do - # we need realpath on /usr/bin/* symlink return version-appended binary path. - # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver> - local ver_i="${i}-bin-${PV}" - ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die - dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" - done - - # symlinks to switch components to active rust in eselect - dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" - dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" - dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" - dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" - - # make all capital underscored variable - local CARGO_TRIPLET="$(rust_abi)" - CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" - CARGO_TRIPLET="${CARGO_TRIPLET^^}" - cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" - $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") - _EOF_ - doenvd "${T}/50${P}" - - # note: eselect-rust adds EROOT to all paths below - cat <<-_EOF_ > "${T}/provider-${P}" - /usr/bin/cargo - /usr/bin/rustdoc - /usr/bin/rust-demangler - /usr/bin/rust-gdb - /usr/bin/rust-gdbgui - /usr/bin/rust-lldb - /usr/lib/rustlib - /usr/lib/rust/lib - /usr/lib/rust/man - /usr/share/doc/rust - _EOF_ - - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" - fi - if use rust-analyzer; then - echo /usr/bin/rust-analyzer >> "${T}/provider-${P}" - fi - - insinto /etc/env.d/rust - doins "${T}/provider-${P}" - popd >/dev/null || die - #end native abi install - - else - local rust_target - rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" - dodir "/opt/${P}/lib/rustlib" - cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ - "${ED}/opt/${P}/lib/rustlib" || die - fi - - # BUG: installs x86_64 binary on other arches - rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die -} - -pkg_postinst() { - eselect rust update - - if has_version dev-debug/gdb || has_version llvm-core/lldb; then - elog "Rust installs helper scripts for calling GDB and LLDB," - elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." - fi - - if has_version app-editors/emacs; then - elog "install app-emacs/rust-mode to get emacs support for rust." - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - elog "install app-vim/rust-vim to get vim support for rust." - fi -} - -pkg_postrm() { - eselect rust cleanup -} diff --git a/dev-lang/rust-bin/rust-bin-1.80.1-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.78.0-r102.ebuild index 8b3aab679bda..1b4245794425 100644 --- a/dev-lang/rust-bin/rust-bin-1.80.1-r100.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.78.0-r102.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -8,14 +8,14 @@ LLVM_OPTIONAL="yes" inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal -MY_P="rust-${PV}" +MY_P="rust-${PV}-r101" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" -MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-08-08/rust-src-${PV}.tar.xz" -GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-06-13/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PV}-r101" # omit leading slash DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" -SRC_URI="$(rust_all_arch_uris ${MY_P}) +SRC_URI="$(rust_all_arch_uris rust-${PV}) rust-src? ( ${MY_SRC_URI} ) " # Keep this separate to allow easy commenting out if not yet built @@ -96,7 +96,7 @@ src_unpack() { default_src_unpack - mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die } patchelf_for_bin() { @@ -182,8 +182,7 @@ multilib_src_install() { CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" CARGO_TRIPLET="${CARGO_TRIPLET^^}" cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") _EOF_ doenvd "${T}/50${P}" diff --git a/dev-lang/rust-bin/rust-bin-1.79.0-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.79.0-r100.ebuild deleted file mode 100644 index 55b9d0d15962..000000000000 --- a/dev-lang/rust-bin/rust-bin-1.79.0-r100.ebuild +++ /dev/null @@ -1,249 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( 18 ) -LLVM_OPTIONAL="yes" - -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal - -MY_P="rust-${PV}" -# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" -MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-06-13/rust-src-${PV}.tar.xz" -GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash - -DESCRIPTION="Systems programming language from Mozilla" -HOMEPAGE="https://www.rust-lang.org/" -SRC_URI="$(rust_all_arch_uris ${MY_P}) - rust-src? ( ${MY_SRC_URI} ) -" -# Keep this separate to allow easy commenting out if not yet built -SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " -SRC_URI+=" mips? ( - abi_mips_o32? ( - big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) - !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) - ) - abi_mips_n64? ( - big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) - !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) - ) -)" -SRC_URI+=" riscv? ( - elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz ) -)" - -LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" -SLOT="${PV}" -KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" -IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" - -RDEPEND=" - >=app-eselect/eselect-rust-20190311 - dev-libs/openssl - sys-apps/lsb-release - sys-devel/gcc:* - !dev-lang/rust:stable - !dev-lang/rust-bin:stable -" -BDEPEND=" - prefix? ( dev-util/patchelf ) - verify-sig? ( sec-keys/openpgp-keys-rust ) -" - -REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" - -# stripping rust may break it (at least on x86_64) -# https://github.com/rust-lang/rust/issues/112286 -RESTRICT="strip" - -QA_PREBUILT=" - opt/${P}/bin/.* - opt/${P}/lib/.*.so* - opt/${P}/libexec/.* - opt/${P}/lib/rustlib/.*/bin/.* - opt/${P}/lib/rustlib/.*/lib/.* -" - -# An rmeta file is custom binary format that contains the metadata for the crate. -# rmeta files do not support linking, since they do not contain compiled object files. -# so we can safely silence the warning for this QA check. -QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" - -VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" - -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - -src_unpack() { - # sadly rust-src tarball does not have corresponding .asc file - # so do partial verification - if use verify-sig; then - for f in ${A}; do - if [[ -f ${DISTDIR}/${f}.asc ]]; then - verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" - fi - done - fi - - default_src_unpack - - mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die -} - -patchelf_for_bin() { - local filetype=$(file -b ${1}) - if [[ ${filetype} == *ELF*interpreter* ]]; then - einfo "${1}'s interpreter changed" - patchelf ${1} --set-interpreter ${2} || die - elif [[ ${filetype} == *script* ]]; then - hprefixify ${1} - fi -} - -multilib_src_install() { - if multilib_is_native_abi; then - - # start native abi install - pushd "${S}" >/dev/null || die - local analysis std - analysis="$(grep 'analysis' ./components)" - std="$(grep 'std' ./components)" - local components="rustc,cargo,rust-demangler-preview,${std}" - use doc && components="${components},rust-docs" - use clippy && components="${components},clippy-preview" - use rustfmt && components="${components},rustfmt-preview" - use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}" - # Rust component 'rust-src' is extracted from separate archive - if use rust-src; then - einfo "Combining rust and rust-src installers" - mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die - echo rust-src >> ./components || die - components="${components},rust-src" - fi - ./install.sh \ - --components="${components}" \ - --disable-verify \ - --prefix="${ED}/opt/${P}" \ - --mandir="${ED}/opt/${P}/man" \ - --disable-ldconfig \ - || die - - if use prefix; then - local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) - ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" - find "${ED}/opt/${P}/bin" -type f -print0 | \ - while IFS= read -r -d '' filename; do - patchelf_for_bin ${filename} ${interpreter} \; || die - done - eend ${PIPESTATUS[0]} - fi - - local symlinks=( - cargo - rustc - rustdoc - rust-demangler - rust-gdb - rust-gdbgui - rust-lldb - ) - - use clippy && symlinks+=( clippy-driver cargo-clippy ) - use rustfmt && symlinks+=( rustfmt cargo-fmt ) - use rust-analyzer && symlinks+=( rust-analyzer ) - - einfo "installing eselect-rust symlinks and paths" - local i - for i in "${symlinks[@]}"; do - # we need realpath on /usr/bin/* symlink return version-appended binary path. - # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver> - local ver_i="${i}-bin-${PV}" - ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die - dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" - done - - # symlinks to switch components to active rust in eselect - dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" - dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" - dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" - dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" - - # make all capital underscored variable - local CARGO_TRIPLET="$(rust_abi)" - CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" - CARGO_TRIPLET="${CARGO_TRIPLET^^}" - cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" - $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") - _EOF_ - doenvd "${T}/50${P}" - - # note: eselect-rust adds EROOT to all paths below - cat <<-_EOF_ > "${T}/provider-${P}" - /usr/bin/cargo - /usr/bin/rustdoc - /usr/bin/rust-demangler - /usr/bin/rust-gdb - /usr/bin/rust-gdbgui - /usr/bin/rust-lldb - /usr/lib/rustlib - /usr/lib/rust/lib - /usr/lib/rust/man - /usr/share/doc/rust - _EOF_ - - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" - fi - if use rust-analyzer; then - echo /usr/bin/rust-analyzer >> "${T}/provider-${P}" - fi - - insinto /etc/env.d/rust - doins "${T}/provider-${P}" - popd >/dev/null || die - #end native abi install - - else - local rust_target - rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" - dodir "/opt/${P}/lib/rustlib" - cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ - "${ED}/opt/${P}/lib/rustlib" || die - fi - - # BUG: installs x86_64 binary on other arches - rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die -} - -pkg_postinst() { - eselect rust update - - if has_version dev-debug/gdb || has_version llvm-core/lldb; then - elog "Rust installs helper scripts for calling GDB and LLDB," - elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." - fi - - if has_version app-editors/emacs; then - elog "install app-emacs/rust-mode to get emacs support for rust." - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - elog "install app-vim/rust-vim to get vim support for rust." - fi -} - -pkg_postrm() { - eselect rust cleanup -} diff --git a/dev-lang/rust-bin/rust-bin-1.79.0-r101.ebuild b/dev-lang/rust-bin/rust-bin-1.79.0-r103.ebuild index 55b9d0d15962..1b4245794425 100644 --- a/dev-lang/rust-bin/rust-bin-1.79.0-r101.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.79.0-r103.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -8,14 +8,14 @@ LLVM_OPTIONAL="yes" inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal -MY_P="rust-${PV}" +MY_P="rust-${PV}-r101" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-06-13/rust-src-${PV}.tar.xz" -GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash +GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PV}-r101" # omit leading slash DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" -SRC_URI="$(rust_all_arch_uris ${MY_P}) +SRC_URI="$(rust_all_arch_uris rust-${PV}) rust-src? ( ${MY_SRC_URI} ) " # Keep this separate to allow easy commenting out if not yet built @@ -33,6 +33,10 @@ SRC_URI+=" mips? ( SRC_URI+=" riscv? ( elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz ) )" +SRC_URI+=" ppc64? ( elibc_musl? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64-unknown-linux-musl.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64le-unknown-linux-musl.tar.xz ) +) )" LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" @@ -92,7 +96,7 @@ src_unpack() { default_src_unpack - mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die } patchelf_for_bin() { @@ -178,8 +182,7 @@ multilib_src_install() { CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" CARGO_TRIPLET="${CARGO_TRIPLET^^}" cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") _EOF_ doenvd "${T}/50${P}" diff --git a/dev-lang/rust-bin/rust-bin-1.80.1-r101.ebuild b/dev-lang/rust-bin/rust-bin-1.80.1-r103.ebuild index 8b3aab679bda..9f33d6b27976 100644 --- a/dev-lang/rust-bin/rust-bin-1.80.1-r101.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.80.1-r103.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -8,14 +8,14 @@ LLVM_OPTIONAL="yes" inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal -MY_P="rust-${PV}" +MY_P="rust-${PV}-r101" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-08-08/rust-src-${PV}.tar.xz" -GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash +GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PV}-r101" # omit leading slash DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" -SRC_URI="$(rust_all_arch_uris ${MY_P}) +SRC_URI="$(rust_all_arch_uris rust-${PV}) rust-src? ( ${MY_SRC_URI} ) " # Keep this separate to allow easy commenting out if not yet built @@ -96,7 +96,7 @@ src_unpack() { default_src_unpack - mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die } patchelf_for_bin() { @@ -182,8 +182,7 @@ multilib_src_install() { CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" CARGO_TRIPLET="${CARGO_TRIPLET^^}" cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") _EOF_ doenvd "${T}/50${P}" diff --git a/dev-lang/rust-bin/rust-bin-1.81.0-r101.ebuild b/dev-lang/rust-bin/rust-bin-1.81.0-r101.ebuild deleted file mode 100644 index aabb1ed9c384..000000000000 --- a/dev-lang/rust-bin/rust-bin-1.81.0-r101.ebuild +++ /dev/null @@ -1,251 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( 18 ) -LLVM_OPTIONAL="yes" - -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature - -MY_P="rust-${PV}" -# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" -MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-09-05/rust-src-${PV}.tar.xz" -GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash - -DESCRIPTION="Systems programming language from Mozilla" -HOMEPAGE="https://www.rust-lang.org/" -SRC_URI="$(rust_all_arch_uris ${MY_P}) - rust-src? ( ${MY_SRC_URI} ) -" -# Keep this separate to allow easy commenting out if not yet built -SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " -SRC_URI+=" mips? ( - abi_mips_o32? ( - big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) - !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) - ) - abi_mips_n64? ( - big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) - !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) - ) -)" -SRC_URI+=" riscv? ( - elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz ) -)" -SRC_URI+=" ppc64? ( elibc_musl? ( - big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64-unknown-linux-musl.tar.xz ) - !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64le-unknown-linux-musl.tar.xz ) -) )" - -LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" -SLOT="${PV}" -KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" -IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" - -RDEPEND=" - >=app-eselect/eselect-rust-20190311 - dev-libs/openssl - sys-apps/lsb-release - sys-devel/gcc:* - !dev-lang/rust:stable - !dev-lang/rust-bin:stable -" -BDEPEND=" - prefix? ( dev-util/patchelf ) - verify-sig? ( sec-keys/openpgp-keys-rust ) -" - -REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" - -# stripping rust may break it (at least on x86_64) -# https://github.com/rust-lang/rust/issues/112286 -RESTRICT="strip" - -QA_PREBUILT=" - opt/${P}/bin/.* - opt/${P}/lib/.*.so* - opt/${P}/libexec/.* - opt/${P}/lib/rustlib/.*/bin/.* - opt/${P}/lib/rustlib/.*/lib/.* -" - -# An rmeta file is custom binary format that contains the metadata for the crate. -# rmeta files do not support linking, since they do not contain compiled object files. -# so we can safely silence the warning for this QA check. -QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" - -VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" - -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - -src_unpack() { - # sadly rust-src tarball does not have corresponding .asc file - # so do partial verification - if use verify-sig; then - for f in ${A}; do - if [[ -f ${DISTDIR}/${f}.asc ]]; then - verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" - fi - done - fi - - default_src_unpack - - mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die -} - -patchelf_for_bin() { - local filetype=$(file -b ${1}) - if [[ ${filetype} == *ELF*interpreter* ]]; then - einfo "${1}'s interpreter changed" - patchelf ${1} --set-interpreter ${2} || die - elif [[ ${filetype} == *script* ]]; then - hprefixify ${1} - fi -} - -multilib_src_install() { - if multilib_is_native_abi; then - - # start native abi install - pushd "${S}" >/dev/null || die - local analysis std - analysis="$(grep 'analysis' ./components)" - std="$(grep 'std' ./components)" - local components="rustc,cargo,${std}" - use doc && components="${components},rust-docs" - use clippy && components="${components},clippy-preview" - use rustfmt && components="${components},rustfmt-preview" - use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}" - # Rust component 'rust-src' is extracted from separate archive - if use rust-src; then - einfo "Combining rust and rust-src installers" - mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die - echo rust-src >> ./components || die - components="${components},rust-src" - fi - ./install.sh \ - --components="${components}" \ - --disable-verify \ - --prefix="${ED}/opt/${P}" \ - --mandir="${ED}/opt/${P}/man" \ - --disable-ldconfig \ - || die - - if use prefix; then - local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) - ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" - find "${ED}/opt/${P}/bin" -type f -print0 | \ - while IFS= read -r -d '' filename; do - patchelf_for_bin ${filename} ${interpreter} \; || die - done - eend ${PIPESTATUS[0]} - fi - - local symlinks=( - cargo - rustc - rustdoc - rust-gdb - rust-gdbgui - rust-lldb - ) - - use clippy && symlinks+=( clippy-driver cargo-clippy ) - use rustfmt && symlinks+=( rustfmt cargo-fmt ) - use rust-analyzer && symlinks+=( rust-analyzer ) - - einfo "installing eselect-rust symlinks and paths" - local i - for i in "${symlinks[@]}"; do - # we need realpath on /usr/bin/* symlink return version-appended binary path. - # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver> - local ver_i="${i}-bin-${PV}" - ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die - dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" - done - - # symlinks to switch components to active rust in eselect - dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" - dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" - dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" - dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" - - # make all capital underscored variable - local CARGO_TRIPLET="$(rust_abi)" - CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" - CARGO_TRIPLET="${CARGO_TRIPLET^^}" - cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" - $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") - _EOF_ - doenvd "${T}/50${P}" - - # note: eselect-rust adds EROOT to all paths below - cat <<-_EOF_ > "${T}/provider-${P}" - /usr/bin/cargo - /usr/bin/rustdoc - /usr/bin/rust-gdb - /usr/bin/rust-gdbgui - /usr/bin/rust-lldb - /usr/lib/rustlib - /usr/lib/rust/lib - /usr/lib/rust/man - /usr/share/doc/rust - _EOF_ - - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" - fi - if use rust-analyzer; then - echo /usr/bin/rust-analyzer >> "${T}/provider-${P}" - fi - - insinto /etc/env.d/rust - doins "${T}/provider-${P}" - popd >/dev/null || die - #end native abi install - - else - local rust_target - rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" - dodir "/opt/${P}/lib/rustlib" - cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ - "${ED}/opt/${P}/lib/rustlib" || die - fi - - # BUG: installs x86_64 binary on other arches - rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die -} - -pkg_postinst() { - eselect rust update - - if has_version dev-debug/gdb || has_version llvm-core/lldb; then - elog "Rust installs helper scripts for calling GDB and LLDB," - elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." - fi - - if has_version app-editors/emacs; then - optfeature "emacs support for rust" app-emacs/rust-mode - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - optfeature "vim support for rust" app-vim/rust-vim - fi -} - -pkg_postrm() { - eselect rust cleanup -} diff --git a/dev-lang/rust-bin/rust-bin-1.81.0-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.81.0-r103.ebuild index aabb1ed9c384..1f1b15fc8244 100644 --- a/dev-lang/rust-bin/rust-bin-1.81.0-r100.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.81.0-r103.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -8,14 +8,14 @@ LLVM_OPTIONAL="yes" inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature -MY_P="rust-${PV}" +MY_P="rust-${PV}-r101" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-09-05/rust-src-${PV}.tar.xz" -GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash +GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PV}-r101" # omit leading slash DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" -SRC_URI="$(rust_all_arch_uris ${MY_P}) +SRC_URI="$(rust_all_arch_uris rust-${PV}) rust-src? ( ${MY_SRC_URI} ) " # Keep this separate to allow easy commenting out if not yet built @@ -96,7 +96,7 @@ src_unpack() { default_src_unpack - mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die } patchelf_for_bin() { @@ -181,8 +181,7 @@ multilib_src_install() { CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" CARGO_TRIPLET="${CARGO_TRIPLET^^}" cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") _EOF_ doenvd "${T}/50${P}" diff --git a/dev-lang/rust-bin/rust-bin-1.82.0-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.82.0-r103.ebuild index b1a1d5f9037b..9ac8de92f2e8 100644 --- a/dev-lang/rust-bin/rust-bin-1.82.0-r100.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.82.0-r103.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -8,14 +8,14 @@ LLVM_OPTIONAL="yes" inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature -MY_P="rust-${PV}" +MY_P="rust-${PV}-r102" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-10-17/rust-src-${PV}.tar.xz" -GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash +GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PV}-r102" # omit leading slash DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" -SRC_URI="$(rust_all_arch_uris ${MY_P}) +SRC_URI="$(rust_all_arch_uris rust-${PV}) rust-src? ( ${MY_SRC_URI} ) " # Keep this separate to allow easy commenting out if not yet built @@ -96,7 +96,7 @@ src_unpack() { default_src_unpack - mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die } patchelf_for_bin() { @@ -183,8 +183,7 @@ multilib_src_install() { CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" CARGO_TRIPLET="${CARGO_TRIPLET^^}" cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") _EOF_ doenvd "${T}/50${P}" diff --git a/dev-lang/rust-bin/rust-bin-1.83.0.ebuild b/dev-lang/rust-bin/rust-bin-1.83.0-r2.ebuild index eae591d46115..6f9f25068b5f 100644 --- a/dev-lang/rust-bin/rust-bin-1.83.0.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.83.0-r2.ebuild @@ -8,14 +8,14 @@ LLVM_OPTIONAL="yes" inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature -MY_P="rust-${PV}" +MY_P="rust-${PV}-r2" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-11-28/rust-src-${PV}.tar.xz" -GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash +GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PV}-r2" # omit leading slash DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" -SRC_URI="$(rust_all_arch_uris ${MY_P}) +SRC_URI="$(rust_all_arch_uris rust-${PV}) rust-src? ( ${MY_SRC_URI} ) " # Keep this separate to allow easy commenting out if not yet built @@ -96,7 +96,7 @@ src_unpack() { default_src_unpack - mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die } patchelf_for_bin() { @@ -183,8 +183,7 @@ multilib_src_install() { CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" CARGO_TRIPLET="${CARGO_TRIPLET^^}" cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") _EOF_ doenvd "${T}/50${P}" diff --git a/dev-lang/rust-bin/rust-bin-1.84.0.ebuild b/dev-lang/rust-bin/rust-bin-1.84.0-r2.ebuild index 48da1d3e8bd5..99ff19978b18 100644 --- a/dev-lang/rust-bin/rust-bin-1.84.0.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.84.0-r2.ebuild @@ -8,14 +8,14 @@ LLVM_OPTIONAL="yes" inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature -MY_P="rust-${PV}" +MY_P="rust-${PV}-r1" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2025-01-09/rust-src-${PV}.tar.xz" -GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash +GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PV}-r1" # omit leading slash DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" -SRC_URI="$(rust_all_arch_uris ${MY_P}) +SRC_URI="$(rust_all_arch_uris rust-${PV}) rust-src? ( ${MY_SRC_URI} ) " # Keep this separate to allow easy commenting out if not yet built @@ -96,7 +96,7 @@ src_unpack() { default_src_unpack - mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die } patchelf_for_bin() { @@ -183,8 +183,7 @@ multilib_src_install() { CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" CARGO_TRIPLET="${CARGO_TRIPLET^^}" cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") _EOF_ doenvd "${T}/50${P}" diff --git a/dev-lang/rust-bin/rust-bin-1.82.0-r101.ebuild b/dev-lang/rust-bin/rust-bin-1.84.1-r2.ebuild index b1a1d5f9037b..c55c998662ee 100644 --- a/dev-lang/rust-bin/rust-bin-1.82.0-r101.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.84.1-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -8,14 +8,14 @@ LLVM_OPTIONAL="yes" inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature -MY_P="rust-${PV}" +MY_P="rust-${PV}-r1" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" -MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-10-17/rust-src-${PV}.tar.xz" -GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2025-01-30/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PV}-r1" # omit leading slash DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" -SRC_URI="$(rust_all_arch_uris ${MY_P}) +SRC_URI="$(rust_all_arch_uris rust-${PV}) rust-src? ( ${MY_SRC_URI} ) " # Keep this separate to allow easy commenting out if not yet built @@ -96,7 +96,7 @@ src_unpack() { default_src_unpack - mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die } patchelf_for_bin() { @@ -146,7 +146,7 @@ multilib_src_install() { while IFS= read -r -d '' filename; do patchelf_for_bin ${filename} ${interpreter} \; || die done - eend ${PIPESTATUS[0]} + eend $? fi local symlinks=( @@ -183,8 +183,7 @@ multilib_src_install() { CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" CARGO_TRIPLET="${CARGO_TRIPLET^^}" cat <<-_EOF_ > "${T}/50${P}" - LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") _EOF_ doenvd "${T}/50${P}" diff --git a/dev-lang/rust-bin/rust-bin-1.85.0-r1.ebuild b/dev-lang/rust-bin/rust-bin-1.85.0-r1.ebuild new file mode 100644 index 000000000000..e37377ab23b7 --- /dev/null +++ b/dev-lang/rust-bin/rust-bin-1.85.0-r1.ebuild @@ -0,0 +1,322 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 19 ) +LLVM_OPTIONAL="yes" + +inherit edo llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature + +if [[ ${PV} == *9999* ]]; then + # We need to fetch a tarball in src_unpack + PROPERTIES+=" live" +elif [[ ${PV} == *beta* ]]; then + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep "xz_url.*rust-src" + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + RUST_TOOLCHAIN_BASEURL=https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/ + SRC_URI="$(rust_all_arch_uris rust-beta rust-${PV}) + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/rust-src-beta.tar.xz -> rust-src-${PV}.tar.xz ) + " +else + # curl -Ls static.rust-lang.org/dist/channel-rust-${PV}.toml | grep "xz_url.*rust-src" + SRC_URI="$(rust_all_arch_uris "rust-${PV}") + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-02-20/rust-src-${PV}.tar.xz ) + ppc64? ( elibc_musl? ( !big-endian? ( + $(rust_arch_uri powerpc64le-unknown-linux-musl rust-${PV}) + ) ) ) + " + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +if [[ ${PV} != *9999* && ${PV} != *beta* ]] ; then + GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PV}" # omit trailing slash + MY_P=rust-${PV} + # Keep this separate to allow easy commenting out if not yet built + SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " + SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) + )" + SRC_URI+=" riscv? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz ) + )" + SRC_URI+=" ppc64? ( big-endian? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64-unknown-linux-musl.tar.xz ) + ) )" +fi + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable +IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" + +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + dev-libs/openssl + sys-apps/lsb-release + || ( + llvm-runtimes/libgcc + sys-devel/gcc:* + ) + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" +[[ ${PV} == *9999* ]] && BDEPEND+=" net-misc/curl" + +REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" + +# stripping rust may break it (at least on x86_64) +# https://github.com/rust-lang/rust/issues/112286 +RESTRICT="strip" + +QA_PREBUILT=" + opt/rust-bin-${SLOT}/bin/.* + opt/rust-bin-${SLOT}/lib/.*.so* + opt/rust-bin-${SLOT}/libexec/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/bin/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/lib/.* +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + # We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch + local rust_bin_url rustc_src_url + # Cut down on webrequests by fetching the nightly toml once + curl -Ls static.rust-lang.org/dist/channel-rust-nightly.toml > "${WORKDIR}/channel-rust-nightly.toml" || + die "Failed to fetch nightly revision info" + rustc_src_url=$(grep 'xz_url.*rust-src' "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + rust_bin_url=$(grep "xz_url.*rust-nightly-$(rust_abi)" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + einfo "Using nightly Rust from: ${rust_bin_url}" + + if use rust-src; then + einfo "Using nightly Rust-src from: ${rustc_src_url}" + # We need to fetch the rust-src tarball + einfo "Fetching nightly rust-src tarball ..." + curl --progress-bar -L "${rustc_src_url}" -o "${WORKDIR}/rust-src-${PV}.tar.xz" || + die "Failed to fetch nightly rust-src tarball." + # no verify-sig here, just unpack it + tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die "Failed to unpack nightly rust-src tarball" + fi + + einfo "Fetching nightly Rust tarball ..." + curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball" + if use verify-sig; then + einfo "Fetching nightly signature ..." + curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature" + verify-sig_verify_detached "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" \ + "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz.asc" + fi + tar -xf "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" || die "Failed to unpack nightly tarball" + else + # sadly rust-src tarball does not have corresponding .asc file + # so do partial verification + if use verify-sig; then + for f in ${A}; do + if [[ -f ${DISTDIR}/${f}.asc ]]; then + verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" + fi + done + fi + + default_src_unpack + + fi + case ${PV} in + *9999*) + mv "${WORKDIR}/rust-nightly-$(rust_abi)" "${S}" || die + ;; + *beta*) + mv "${WORKDIR}/rust-beta-$(rust_abi)" "${S}" || die + ;; + *) + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die + ;; + esac +} + +patchelf_for_bin() { + local filetype=$(file -b ${1}) + if [[ ${filetype} == *ELF*interpreter* ]]; then + einfo "${1}'s interpreter changed" + patchelf ${1} --set-interpreter ${2} || die + elif [[ ${filetype} == *script* ]]; then + hprefixify ${1} + fi +} + +rust_native_abi_install() { + pushd "${S}" >/dev/null || die + local analysis="$(grep 'analysis' ./components || die "analysis not found in components")" + local std="$(grep 'std' ./components || die "std not found in components")" + local components=( "rustc" "cargo" "${std}" ) + use doc && components+=( "rust-docs" ) + use clippy && components+=( "clippy-preview" ) + use rustfmt && components+=( "rustfmt-preview" ) + use rust-analyzer && components+=( "rust-analyzer-preview" "${analysis}" ) + # Rust component 'rust-src' is extracted from separate archive + if use rust-src; then + einfo "Combining rust and rust-src installers" + case ${PV} in + *9999*) + mv -v "${WORKDIR}/rust-src-nightly/rust-src" "${S}" || die + ;; + *beta*) + mv -v "${WORKDIR}/rust-src-beta/rust-src" "${S}" || die + ;; + *) + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + ;; + esac + echo rust-src >> ./components || die + components+=( "rust-src" ) + fi + edo ./install.sh \ + --components="$(IFS=,; echo "${components[*]}")" \ + --disable-verify \ + --prefix="${ED}/opt/rust-bin-${SLOT}" \ + --mandir="${ED}/opt/rust-bin-${SLOT}/man" \ + --disable-ldconfig + + docompress /opt/${P}/man/ + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${SLOT}/bin" + find "${ED}/opt/${SLOT}/bin" -type f -print0 | \ + while IFS= read -r -d '' filename; do + patchelf_for_bin ${filename} ${interpreter} \; || die + done + eend $? + fi + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + einfo "installing eselect-rust symlinks and paths" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver> + local ver_i="${i}-bin-${SLOT}" + ln -v "${ED}/opt/rust-bin-${SLOT}/bin/${i}" "${ED}/opt/rust-bin-${SLOT}/bin/${ver_i}" || die + dosym -r "/opt/rust-bin-${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym -r "/opt/rust-bin-${SLOT}/lib" "/usr/lib/rust/lib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/man" "/usr/lib/rust/man-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/lib/rustlib" "/usr/lib/rustlib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/share/doc/rust" "/usr/share/doc/rust-bin-${SLOT}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${SLOT}" + $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") + _EOF_ + doenvd "${T}/50${P}" + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${PN}-${SLOT}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${PN}-${SLOT}" + fi + if use rust-analyzer; then + echo /usr/bin/rust-analyzer >> "${T}/provider-${PN}-${SLOT}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi; then + rust_native_abi_install + else + local rust_target + rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" + dodir "/opt/${P}/lib/rustlib" + cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ + "${ED}/opt/${P}/lib/rustlib" || die + fi + + # BUG: installs x86_64 binary on other arches + rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die +} + +pkg_postinst() { + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/rust-bin/rust-bin-1.85.0.ebuild b/dev-lang/rust-bin/rust-bin-1.85.0.ebuild new file mode 100644 index 000000000000..29341043072b --- /dev/null +++ b/dev-lang/rust-bin/rust-bin-1.85.0.ebuild @@ -0,0 +1,319 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 19 ) +LLVM_OPTIONAL="yes" + +inherit edo llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature + +if [[ ${PV} == *9999* ]]; then + # We need to fetch a tarball in src_unpack + PROPERTIES+=" live" +elif [[ ${PV} == *beta* ]]; then + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep "xz_url.*rust-src" + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + RUST_TOOLCHAIN_BASEURL=https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/ + SRC_URI="$(rust_all_arch_uris rust-beta rust-${PV}) + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/rust-src-beta.tar.xz -> rust-src-${PV}.tar.xz ) + " +else + # curl -Ls static.rust-lang.org/dist/channel-rust-${PV}.toml | grep "xz_url.*rust-src" + SRC_URI="$(rust_all_arch_uris "rust-${PV}") + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-02-20/rust-src-${PV}.tar.xz ) + ppc64? ( elibc_musl? ( !big-endian? ( + $(rust_arch_uri powerpc64le-unknown-linux-musl rust-${PV}) + ) ) ) + " + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +if [[ ${PV} != *9999* && ${PV} != *beta* ]] ; then + GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PV}" # omit trailing slash + MY_P=rust-${PV} + # Keep this separate to allow easy commenting out if not yet built + SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " + SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) + )" + SRC_URI+=" riscv? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz ) + )" + SRC_URI+=" ppc64? ( big-endian? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64-unknown-linux-musl.tar.xz ) + ) )" +fi + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable +IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" + +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + dev-libs/openssl + sys-apps/lsb-release + sys-devel/gcc:* + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" +[[ ${PV} == *9999* ]] && BDEPEND+=" net-misc/curl" + +REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" + +# stripping rust may break it (at least on x86_64) +# https://github.com/rust-lang/rust/issues/112286 +RESTRICT="strip" + +QA_PREBUILT=" + opt/rust-bin-${SLOT}/bin/.* + opt/rust-bin-${SLOT}/lib/.*.so* + opt/rust-bin-${SLOT}/libexec/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/bin/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/lib/.* +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + # We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch + local rust_bin_url rustc_src_url + # Cut down on webrequests by fetching the nightly toml once + curl -Ls static.rust-lang.org/dist/channel-rust-nightly.toml > "${WORKDIR}/channel-rust-nightly.toml" || + die "Failed to fetch nightly revision info" + rustc_src_url=$(grep 'xz_url.*rust-src' "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + rust_bin_url=$(grep "xz_url.*rust-nightly-$(rust_abi)" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + einfo "Using nightly Rust from: ${rust_bin_url}" + + if use rust-src; then + einfo "Using nightly Rust-src from: ${rustc_src_url}" + # We need to fetch the rust-src tarball + einfo "Fetching nightly rust-src tarball ..." + curl --progress-bar -L "${rustc_src_url}" -o "${WORKDIR}/rust-src-${PV}.tar.xz" || + die "Failed to fetch nightly rust-src tarball." + # no verify-sig here, just unpack it + tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die "Failed to unpack nightly rust-src tarball" + fi + + einfo "Fetching nightly Rust tarball ..." + curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball" + if use verify-sig; then + einfo "Fetching nightly signature ..." + curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature" + verify-sig_verify_detached "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" \ + "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz.asc" + fi + tar -xf "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" || die "Failed to unpack nightly tarball" + else + # sadly rust-src tarball does not have corresponding .asc file + # so do partial verification + if use verify-sig; then + for f in ${A}; do + if [[ -f ${DISTDIR}/${f}.asc ]]; then + verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" + fi + done + fi + + default_src_unpack + + fi + case ${PV} in + *9999*) + mv "${WORKDIR}/rust-nightly-$(rust_abi)" "${S}" || die + ;; + *beta*) + mv "${WORKDIR}/rust-beta-$(rust_abi)" "${S}" || die + ;; + *) + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die + ;; + esac +} + +patchelf_for_bin() { + local filetype=$(file -b ${1}) + if [[ ${filetype} == *ELF*interpreter* ]]; then + einfo "${1}'s interpreter changed" + patchelf ${1} --set-interpreter ${2} || die + elif [[ ${filetype} == *script* ]]; then + hprefixify ${1} + fi +} + +rust_native_abi_install() { + pushd "${S}" >/dev/null || die + local analysis="$(grep 'analysis' ./components || die "analysis not found in components")" + local std="$(grep 'std' ./components || die "std not found in components")" + local components=( "rustc" "cargo" "${std}" ) + use doc && components+=( "rust-docs" ) + use clippy && components+=( "clippy-preview" ) + use rustfmt && components+=( "rustfmt-preview" ) + use rust-analyzer && components+=( "rust-analyzer-preview" "${analysis}" ) + # Rust component 'rust-src' is extracted from separate archive + if use rust-src; then + einfo "Combining rust and rust-src installers" + case ${PV} in + *9999*) + mv -v "${WORKDIR}/rust-src-nightly/rust-src" "${S}" || die + ;; + *beta*) + mv -v "${WORKDIR}/rust-src-beta/rust-src" "${S}" || die + ;; + *) + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + ;; + esac + echo rust-src >> ./components || die + components+=( "rust-src" ) + fi + edo ./install.sh \ + --components="$(IFS=,; echo "${components[*]}")" \ + --disable-verify \ + --prefix="${ED}/opt/rust-bin-${SLOT}" \ + --mandir="${ED}/opt/rust-bin-${SLOT}/man" \ + --disable-ldconfig + + docompress /opt/${P}/man/ + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${SLOT}/bin" + find "${ED}/opt/${SLOT}/bin" -type f -print0 | \ + while IFS= read -r -d '' filename; do + patchelf_for_bin ${filename} ${interpreter} \; || die + done + eend $? + fi + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + einfo "installing eselect-rust symlinks and paths" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver> + local ver_i="${i}-bin-${SLOT}" + ln -v "${ED}/opt/rust-bin-${SLOT}/bin/${i}" "${ED}/opt/rust-bin-${SLOT}/bin/${ver_i}" || die + dosym -r "/opt/rust-bin-${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym -r "/opt/rust-bin-${SLOT}/lib" "/usr/lib/rust/lib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/man" "/usr/lib/rust/man-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/lib/rustlib" "/usr/lib/rustlib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/share/doc/rust" "/usr/share/doc/rust-bin-${SLOT}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${SLOT}" + $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") + _EOF_ + doenvd "${T}/50${P}" + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${PN}-${SLOT}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${PN}-${SLOT}" + fi + if use rust-analyzer; then + echo /usr/bin/rust-analyzer >> "${T}/provider-${PN}-${SLOT}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi; then + rust_native_abi_install + else + local rust_target + rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" + dodir "/opt/${P}/lib/rustlib" + cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ + "${ED}/opt/${P}/lib/rustlib" || die + fi + + # BUG: installs x86_64 binary on other arches + rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die +} + +pkg_postinst() { + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/rust-bin/rust-bin-1.86.0_beta20250218-r1.ebuild b/dev-lang/rust-bin/rust-bin-1.86.0_beta20250218-r1.ebuild new file mode 100644 index 000000000000..ab225d2c1246 --- /dev/null +++ b/dev-lang/rust-bin/rust-bin-1.86.0_beta20250218-r1.ebuild @@ -0,0 +1,320 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 19 ) +LLVM_OPTIONAL="yes" + +inherit edo llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature + +if [[ ${PV} == *9999* ]]; then + # We need to fetch a tarball in src_unpack + PROPERTIES+=" live" +elif [[ ${PV} == *beta* ]]; then + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep "xz_url.*rust-src" + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + RUST_TOOLCHAIN_BASEURL=https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/ + SRC_URI="$(rust_all_arch_uris rust-beta rust-${PV}) + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/rust-src-beta.tar.xz -> rust-src-${PV}.tar.xz ) + " +else + # curl -Ls static.rust-lang.org/dist/channel-rust-${PV}.toml | grep "xz_url.*rust-src" + SRC_URI="$(rust_all_arch_uris "${PV}") + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-01-30/rust-src-${PV}.tar.xz ) + " + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +if [[ ${PV} != *9999* && ${PV} != *beta* ]] ; then + # Keep this separate to allow easy commenting out if not yet built + SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-sparc64-unknown-linux-gnu.tar.xz ) " + SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) + )" + SRC_URI+=" riscv? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-riscv64gc-unknown-linux-musl.tar.xz ) + )" + SRC_URI+=" ppc64? ( elibc_musl? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64-unknown-linux-musl.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64le-unknown-linux-musl.tar.xz ) + ) )" +fi + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable +IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" + +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + dev-libs/openssl + sys-apps/lsb-release + || ( + llvm-runtimes/libgcc + sys-devel/gcc:* + ) + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" +[[ ${PV} == *9999* ]] && BDEPEND+=" net-misc/curl" + +REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" + +# stripping rust may break it (at least on x86_64) +# https://github.com/rust-lang/rust/issues/112286 +RESTRICT="strip" + +QA_PREBUILT=" + opt/rust-bin-${SLOT}/bin/.* + opt/rust-bin-${SLOT}/lib/.*.so* + opt/rust-bin-${SLOT}/libexec/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/bin/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/lib/.* +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + # We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch + local rust_bin_url rustc_src_url + # Cut down on webrequests by fetching the nightly toml once + curl -Ls static.rust-lang.org/dist/channel-rust-nightly.toml > "${WORKDIR}/channel-rust-nightly.toml" || + die "Failed to fetch nightly revision info" + rustc_src_url=$(grep 'xz_url.*rust-src' "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + rust_bin_url=$(grep "xz_url.*rust-nightly-$(rust_abi)" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + einfo "Using nightly Rust from: ${rust_bin_url}" + + if use rust-src; then + einfo "Using nightly Rust-src from: ${rustc_src_url}" + # We need to fetch the rust-src tarball + einfo "Fetching nightly rust-src tarball ..." + curl --progress-bar -L "${rustc_src_url}" -o "${WORKDIR}/rust-src-${PV}.tar.xz" || + die "Failed to fetch nightly rust-src tarball." + # no verify-sig here, just unpack it + tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die "Failed to unpack nightly rust-src tarball" + fi + + einfo "Fetching nightly Rust tarball ..." + curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball" + if use verify-sig; then + einfo "Fetching nightly signature ..." + curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature" + verify-sig_verify_detached "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" \ + "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz.asc" + fi + tar -xf "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" || die "Failed to unpack nightly tarball" + else + # sadly rust-src tarball does not have corresponding .asc file + # so do partial verification + if use verify-sig; then + for f in ${A}; do + if [[ -f ${DISTDIR}/${f}.asc ]]; then + verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" + fi + done + fi + + default_src_unpack + + fi + case ${PV} in + *9999*) + mv "${WORKDIR}/rust-nightly-$(rust_abi)" "${S}" || die + ;; + *beta*) + mv "${WORKDIR}/rust-beta-$(rust_abi)" "${S}" || die + ;; + *) + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die + ;; + esac +} + +patchelf_for_bin() { + local filetype=$(file -b ${1}) + if [[ ${filetype} == *ELF*interpreter* ]]; then + einfo "${1}'s interpreter changed" + patchelf ${1} --set-interpreter ${2} || die + elif [[ ${filetype} == *script* ]]; then + hprefixify ${1} + fi +} + +rust_native_abi_install() { + pushd "${S}" >/dev/null || die + local analysis="$(grep 'analysis' ./components || die "analysis not found in components")" + local std="$(grep 'std' ./components || die "std not found in components")" + local components=( "rustc" "cargo" "${std}" ) + use doc && components+=( "rust-docs" ) + use clippy && components+=( "clippy-preview" ) + use rustfmt && components+=( "rustfmt-preview" ) + use rust-analyzer && components+=( "rust-analyzer-preview" "${analysis}" ) + # Rust component 'rust-src' is extracted from separate archive + if use rust-src; then + einfo "Combining rust and rust-src installers" + case ${PV} in + *9999*) + mv -v "${WORKDIR}/rust-src-nightly/rust-src" "${S}" || die + ;; + *beta*) + mv -v "${WORKDIR}/rust-src-beta/rust-src" "${S}" || die + ;; + *) + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + ;; + esac + echo rust-src >> ./components || die + components+=( "rust-src" ) + fi + edo ./install.sh \ + --components="$(IFS=,; echo "${components[*]}")" \ + --disable-verify \ + --prefix="${ED}/opt/rust-bin-${SLOT}" \ + --mandir="${ED}/opt/rust-bin-${SLOT}/man" \ + --disable-ldconfig + + docompress /opt/${P}/man/ + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${SLOT}/bin" + find "${ED}/opt/${SLOT}/bin" -type f -print0 | \ + while IFS= read -r -d '' filename; do + patchelf_for_bin ${filename} ${interpreter} \; || die + done + eend $? + fi + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + einfo "installing eselect-rust symlinks and paths" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver> + local ver_i="${i}-bin-${SLOT}" + ln -v "${ED}/opt/rust-bin-${SLOT}/bin/${i}" "${ED}/opt/rust-bin-${SLOT}/bin/${ver_i}" || die + dosym -r "/opt/rust-bin-${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym -r "/opt/rust-bin-${SLOT}/lib" "/usr/lib/rust/lib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/man" "/usr/lib/rust/man-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/lib/rustlib" "/usr/lib/rustlib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/share/doc/rust" "/usr/share/doc/rust-bin-${SLOT}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${SLOT}" + $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") + _EOF_ + doenvd "${T}/50${P}" + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${PN}-${SLOT}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${PN}-${SLOT}" + fi + if use rust-analyzer; then + echo /usr/bin/rust-analyzer >> "${T}/provider-${PN}-${SLOT}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi; then + rust_native_abi_install + else + local rust_target + rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" + dodir "/opt/${P}/lib/rustlib" + cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ + "${ED}/opt/${P}/lib/rustlib" || die + fi + + # BUG: installs x86_64 binary on other arches + rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die +} + +pkg_postinst() { + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/rust-bin/rust-bin-1.86.0_beta20250218.ebuild b/dev-lang/rust-bin/rust-bin-1.86.0_beta20250218.ebuild new file mode 100644 index 000000000000..97bd2bca573d --- /dev/null +++ b/dev-lang/rust-bin/rust-bin-1.86.0_beta20250218.ebuild @@ -0,0 +1,317 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 19 ) +LLVM_OPTIONAL="yes" + +inherit edo llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature + +if [[ ${PV} == *9999* ]]; then + # We need to fetch a tarball in src_unpack + PROPERTIES+=" live" +elif [[ ${PV} == *beta* ]]; then + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep "xz_url.*rust-src" + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + RUST_TOOLCHAIN_BASEURL=https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/ + SRC_URI="$(rust_all_arch_uris rust-beta rust-${PV}) + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/rust-src-beta.tar.xz -> rust-src-${PV}.tar.xz ) + " +else + # curl -Ls static.rust-lang.org/dist/channel-rust-${PV}.toml | grep "xz_url.*rust-src" + SRC_URI="$(rust_all_arch_uris "${PV}") + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-01-30/rust-src-${PV}.tar.xz ) + " + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +if [[ ${PV} != *9999* && ${PV} != *beta* ]] ; then + # Keep this separate to allow easy commenting out if not yet built + SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-sparc64-unknown-linux-gnu.tar.xz ) " + SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) + )" + SRC_URI+=" riscv? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-riscv64gc-unknown-linux-musl.tar.xz ) + )" + SRC_URI+=" ppc64? ( elibc_musl? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64-unknown-linux-musl.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64le-unknown-linux-musl.tar.xz ) + ) )" +fi + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable +IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" + +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + dev-libs/openssl + sys-apps/lsb-release + sys-devel/gcc:* + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" +[[ ${PV} == *9999* ]] && BDEPEND+=" net-misc/curl" + +REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" + +# stripping rust may break it (at least on x86_64) +# https://github.com/rust-lang/rust/issues/112286 +RESTRICT="strip" + +QA_PREBUILT=" + opt/rust-bin-${SLOT}/bin/.* + opt/rust-bin-${SLOT}/lib/.*.so* + opt/rust-bin-${SLOT}/libexec/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/bin/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/lib/.* +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + # We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch + local rust_bin_url rustc_src_url + # Cut down on webrequests by fetching the nightly toml once + curl -Ls static.rust-lang.org/dist/channel-rust-nightly.toml > "${WORKDIR}/channel-rust-nightly.toml" || + die "Failed to fetch nightly revision info" + rustc_src_url=$(grep 'xz_url.*rust-src' "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + rust_bin_url=$(grep "xz_url.*rust-nightly-$(rust_abi)" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + einfo "Using nightly Rust from: ${rust_bin_url}" + + if use rust-src; then + einfo "Using nightly Rust-src from: ${rustc_src_url}" + # We need to fetch the rust-src tarball + einfo "Fetching nightly rust-src tarball ..." + curl --progress-bar -L "${rustc_src_url}" -o "${WORKDIR}/rust-src-${PV}.tar.xz" || + die "Failed to fetch nightly rust-src tarball." + # no verify-sig here, just unpack it + tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die "Failed to unpack nightly rust-src tarball" + fi + + einfo "Fetching nightly Rust tarball ..." + curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball" + if use verify-sig; then + einfo "Fetching nightly signature ..." + curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature" + verify-sig_verify_detached "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" \ + "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz.asc" + fi + tar -xf "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" || die "Failed to unpack nightly tarball" + else + # sadly rust-src tarball does not have corresponding .asc file + # so do partial verification + if use verify-sig; then + for f in ${A}; do + if [[ -f ${DISTDIR}/${f}.asc ]]; then + verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" + fi + done + fi + + default_src_unpack + + fi + case ${PV} in + *9999*) + mv "${WORKDIR}/rust-nightly-$(rust_abi)" "${S}" || die + ;; + *beta*) + mv "${WORKDIR}/rust-beta-$(rust_abi)" "${S}" || die + ;; + *) + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die + ;; + esac +} + +patchelf_for_bin() { + local filetype=$(file -b ${1}) + if [[ ${filetype} == *ELF*interpreter* ]]; then + einfo "${1}'s interpreter changed" + patchelf ${1} --set-interpreter ${2} || die + elif [[ ${filetype} == *script* ]]; then + hprefixify ${1} + fi +} + +rust_native_abi_install() { + pushd "${S}" >/dev/null || die + local analysis="$(grep 'analysis' ./components || die "analysis not found in components")" + local std="$(grep 'std' ./components || die "std not found in components")" + local components=( "rustc" "cargo" "${std}" ) + use doc && components+=( "rust-docs" ) + use clippy && components+=( "clippy-preview" ) + use rustfmt && components+=( "rustfmt-preview" ) + use rust-analyzer && components+=( "rust-analyzer-preview" "${analysis}" ) + # Rust component 'rust-src' is extracted from separate archive + if use rust-src; then + einfo "Combining rust and rust-src installers" + case ${PV} in + *9999*) + mv -v "${WORKDIR}/rust-src-nightly/rust-src" "${S}" || die + ;; + *beta*) + mv -v "${WORKDIR}/rust-src-beta/rust-src" "${S}" || die + ;; + *) + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + ;; + esac + echo rust-src >> ./components || die + components+=( "rust-src" ) + fi + edo ./install.sh \ + --components="$(IFS=,; echo "${components[*]}")" \ + --disable-verify \ + --prefix="${ED}/opt/rust-bin-${SLOT}" \ + --mandir="${ED}/opt/rust-bin-${SLOT}/man" \ + --disable-ldconfig + + docompress /opt/${P}/man/ + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${SLOT}/bin" + find "${ED}/opt/${SLOT}/bin" -type f -print0 | \ + while IFS= read -r -d '' filename; do + patchelf_for_bin ${filename} ${interpreter} \; || die + done + eend $? + fi + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + einfo "installing eselect-rust symlinks and paths" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver> + local ver_i="${i}-bin-${SLOT}" + ln -v "${ED}/opt/rust-bin-${SLOT}/bin/${i}" "${ED}/opt/rust-bin-${SLOT}/bin/${ver_i}" || die + dosym -r "/opt/rust-bin-${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym -r "/opt/rust-bin-${SLOT}/lib" "/usr/lib/rust/lib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/man" "/usr/lib/rust/man-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/lib/rustlib" "/usr/lib/rustlib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/share/doc/rust" "/usr/share/doc/rust-bin-${SLOT}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${SLOT}" + $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") + _EOF_ + doenvd "${T}/50${P}" + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${PN}-${SLOT}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${PN}-${SLOT}" + fi + if use rust-analyzer; then + echo /usr/bin/rust-analyzer >> "${T}/provider-${PN}-${SLOT}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi; then + rust_native_abi_install + else + local rust_target + rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" + dodir "/opt/${P}/lib/rustlib" + cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ + "${ED}/opt/${P}/lib/rustlib" || die + fi + + # BUG: installs x86_64 binary on other arches + rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die +} + +pkg_postinst() { + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/rust-bin/rust-bin-1.86.0_beta20250225.ebuild b/dev-lang/rust-bin/rust-bin-1.86.0_beta20250225.ebuild new file mode 100644 index 000000000000..97bd2bca573d --- /dev/null +++ b/dev-lang/rust-bin/rust-bin-1.86.0_beta20250225.ebuild @@ -0,0 +1,317 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 19 ) +LLVM_OPTIONAL="yes" + +inherit edo llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature + +if [[ ${PV} == *9999* ]]; then + # We need to fetch a tarball in src_unpack + PROPERTIES+=" live" +elif [[ ${PV} == *beta* ]]; then + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep "xz_url.*rust-src" + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + RUST_TOOLCHAIN_BASEURL=https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/ + SRC_URI="$(rust_all_arch_uris rust-beta rust-${PV}) + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/rust-src-beta.tar.xz -> rust-src-${PV}.tar.xz ) + " +else + # curl -Ls static.rust-lang.org/dist/channel-rust-${PV}.toml | grep "xz_url.*rust-src" + SRC_URI="$(rust_all_arch_uris "${PV}") + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-01-30/rust-src-${PV}.tar.xz ) + " + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +if [[ ${PV} != *9999* && ${PV} != *beta* ]] ; then + # Keep this separate to allow easy commenting out if not yet built + SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-sparc64-unknown-linux-gnu.tar.xz ) " + SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) + )" + SRC_URI+=" riscv? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-riscv64gc-unknown-linux-musl.tar.xz ) + )" + SRC_URI+=" ppc64? ( elibc_musl? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64-unknown-linux-musl.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64le-unknown-linux-musl.tar.xz ) + ) )" +fi + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable +IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" + +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + dev-libs/openssl + sys-apps/lsb-release + sys-devel/gcc:* + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" +[[ ${PV} == *9999* ]] && BDEPEND+=" net-misc/curl" + +REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" + +# stripping rust may break it (at least on x86_64) +# https://github.com/rust-lang/rust/issues/112286 +RESTRICT="strip" + +QA_PREBUILT=" + opt/rust-bin-${SLOT}/bin/.* + opt/rust-bin-${SLOT}/lib/.*.so* + opt/rust-bin-${SLOT}/libexec/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/bin/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/lib/.* +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + # We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch + local rust_bin_url rustc_src_url + # Cut down on webrequests by fetching the nightly toml once + curl -Ls static.rust-lang.org/dist/channel-rust-nightly.toml > "${WORKDIR}/channel-rust-nightly.toml" || + die "Failed to fetch nightly revision info" + rustc_src_url=$(grep 'xz_url.*rust-src' "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + rust_bin_url=$(grep "xz_url.*rust-nightly-$(rust_abi)" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + einfo "Using nightly Rust from: ${rust_bin_url}" + + if use rust-src; then + einfo "Using nightly Rust-src from: ${rustc_src_url}" + # We need to fetch the rust-src tarball + einfo "Fetching nightly rust-src tarball ..." + curl --progress-bar -L "${rustc_src_url}" -o "${WORKDIR}/rust-src-${PV}.tar.xz" || + die "Failed to fetch nightly rust-src tarball." + # no verify-sig here, just unpack it + tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die "Failed to unpack nightly rust-src tarball" + fi + + einfo "Fetching nightly Rust tarball ..." + curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball" + if use verify-sig; then + einfo "Fetching nightly signature ..." + curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature" + verify-sig_verify_detached "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" \ + "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz.asc" + fi + tar -xf "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" || die "Failed to unpack nightly tarball" + else + # sadly rust-src tarball does not have corresponding .asc file + # so do partial verification + if use verify-sig; then + for f in ${A}; do + if [[ -f ${DISTDIR}/${f}.asc ]]; then + verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" + fi + done + fi + + default_src_unpack + + fi + case ${PV} in + *9999*) + mv "${WORKDIR}/rust-nightly-$(rust_abi)" "${S}" || die + ;; + *beta*) + mv "${WORKDIR}/rust-beta-$(rust_abi)" "${S}" || die + ;; + *) + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die + ;; + esac +} + +patchelf_for_bin() { + local filetype=$(file -b ${1}) + if [[ ${filetype} == *ELF*interpreter* ]]; then + einfo "${1}'s interpreter changed" + patchelf ${1} --set-interpreter ${2} || die + elif [[ ${filetype} == *script* ]]; then + hprefixify ${1} + fi +} + +rust_native_abi_install() { + pushd "${S}" >/dev/null || die + local analysis="$(grep 'analysis' ./components || die "analysis not found in components")" + local std="$(grep 'std' ./components || die "std not found in components")" + local components=( "rustc" "cargo" "${std}" ) + use doc && components+=( "rust-docs" ) + use clippy && components+=( "clippy-preview" ) + use rustfmt && components+=( "rustfmt-preview" ) + use rust-analyzer && components+=( "rust-analyzer-preview" "${analysis}" ) + # Rust component 'rust-src' is extracted from separate archive + if use rust-src; then + einfo "Combining rust and rust-src installers" + case ${PV} in + *9999*) + mv -v "${WORKDIR}/rust-src-nightly/rust-src" "${S}" || die + ;; + *beta*) + mv -v "${WORKDIR}/rust-src-beta/rust-src" "${S}" || die + ;; + *) + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + ;; + esac + echo rust-src >> ./components || die + components+=( "rust-src" ) + fi + edo ./install.sh \ + --components="$(IFS=,; echo "${components[*]}")" \ + --disable-verify \ + --prefix="${ED}/opt/rust-bin-${SLOT}" \ + --mandir="${ED}/opt/rust-bin-${SLOT}/man" \ + --disable-ldconfig + + docompress /opt/${P}/man/ + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${SLOT}/bin" + find "${ED}/opt/${SLOT}/bin" -type f -print0 | \ + while IFS= read -r -d '' filename; do + patchelf_for_bin ${filename} ${interpreter} \; || die + done + eend $? + fi + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + einfo "installing eselect-rust symlinks and paths" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver> + local ver_i="${i}-bin-${SLOT}" + ln -v "${ED}/opt/rust-bin-${SLOT}/bin/${i}" "${ED}/opt/rust-bin-${SLOT}/bin/${ver_i}" || die + dosym -r "/opt/rust-bin-${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym -r "/opt/rust-bin-${SLOT}/lib" "/usr/lib/rust/lib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/man" "/usr/lib/rust/man-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/lib/rustlib" "/usr/lib/rustlib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/share/doc/rust" "/usr/share/doc/rust-bin-${SLOT}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${SLOT}" + $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") + _EOF_ + doenvd "${T}/50${P}" + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${PN}-${SLOT}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${PN}-${SLOT}" + fi + if use rust-analyzer; then + echo /usr/bin/rust-analyzer >> "${T}/provider-${PN}-${SLOT}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi; then + rust_native_abi_install + else + local rust_target + rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" + dodir "/opt/${P}/lib/rustlib" + cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ + "${ED}/opt/${P}/lib/rustlib" || die + fi + + # BUG: installs x86_64 binary on other arches + rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die +} + +pkg_postinst() { + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/rust-bin/rust-bin-9999.ebuild b/dev-lang/rust-bin/rust-bin-9999.ebuild new file mode 100644 index 000000000000..6338d2da2419 --- /dev/null +++ b/dev-lang/rust-bin/rust-bin-9999.ebuild @@ -0,0 +1,320 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 20 ) +LLVM_OPTIONAL="yes" + +inherit edo llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature + +if [[ ${PV} == *9999* ]]; then + # We need to fetch a tarball in src_unpack + PROPERTIES+=" live" +elif [[ ${PV} == *beta* ]]; then + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep "xz_url.*rust-src" + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + RUST_TOOLCHAIN_BASEURL=https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/ + SRC_URI="$(rust_all_arch_uris rust-beta rust-${PV}) + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/rust-src-beta.tar.xz -> rust-src-${PV}.tar.xz ) + " +else + # curl -Ls static.rust-lang.org/dist/channel-rust-${PV}.toml | grep "xz_url.*rust-src" + SRC_URI="$(rust_all_arch_uris "${PV}") + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-01-30/rust-src-${PV}.tar.xz ) + " + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +if [[ ${PV} != *9999* && ${PV} != *beta* ]] ; then + # Keep this separate to allow easy commenting out if not yet built + SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-sparc64-unknown-linux-gnu.tar.xz ) " + SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) + )" + SRC_URI+=" riscv? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-riscv64gc-unknown-linux-musl.tar.xz ) + )" + SRC_URI+=" ppc64? ( elibc_musl? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64-unknown-linux-musl.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64le-unknown-linux-musl.tar.xz ) + ) )" +fi + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable +IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" + +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + dev-libs/openssl + sys-apps/lsb-release + || ( + llvm-runtimes/libgcc + sys-devel/gcc:* + ) + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" +[[ ${PV} == *9999* ]] && BDEPEND+=" net-misc/curl" + +REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" + +# stripping rust may break it (at least on x86_64) +# https://github.com/rust-lang/rust/issues/112286 +RESTRICT="strip" + +QA_PREBUILT=" + opt/rust-bin-${SLOT}/bin/.* + opt/rust-bin-${SLOT}/lib/.*.so* + opt/rust-bin-${SLOT}/libexec/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/bin/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/lib/.* +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + # We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch + local rust_bin_url rustc_src_url + # Cut down on webrequests by fetching the nightly toml once + curl -Ls static.rust-lang.org/dist/channel-rust-nightly.toml > "${WORKDIR}/channel-rust-nightly.toml" || + die "Failed to fetch nightly revision info" + rustc_src_url=$(grep 'xz_url.*rust-src' "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + rust_bin_url=$(grep "xz_url.*rust-nightly-$(rust_abi)" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + einfo "Using nightly Rust from: ${rust_bin_url}" + + if use rust-src; then + einfo "Using nightly Rust-src from: ${rustc_src_url}" + # We need to fetch the rust-src tarball + einfo "Fetching nightly rust-src tarball ..." + curl --progress-bar -L "${rustc_src_url}" -o "${WORKDIR}/rust-src-${PV}.tar.xz" || + die "Failed to fetch nightly rust-src tarball." + # no verify-sig here, just unpack it + tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die "Failed to unpack nightly rust-src tarball" + fi + + einfo "Fetching nightly Rust tarball ..." + curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball" + if use verify-sig; then + einfo "Fetching nightly signature ..." + curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature" + verify-sig_verify_detached "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" \ + "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz.asc" + fi + tar -xf "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" || die "Failed to unpack nightly tarball" + else + # sadly rust-src tarball does not have corresponding .asc file + # so do partial verification + if use verify-sig; then + for f in ${A}; do + if [[ -f ${DISTDIR}/${f}.asc ]]; then + verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" + fi + done + fi + + default_src_unpack + + fi + case ${PV} in + *9999*) + mv "${WORKDIR}/rust-nightly-$(rust_abi)" "${S}" || die + ;; + *beta*) + mv "${WORKDIR}/rust-beta-$(rust_abi)" "${S}" || die + ;; + *) + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die + ;; + esac +} + +patchelf_for_bin() { + local filetype=$(file -b ${1}) + if [[ ${filetype} == *ELF*interpreter* ]]; then + einfo "${1}'s interpreter changed" + patchelf ${1} --set-interpreter ${2} || die + elif [[ ${filetype} == *script* ]]; then + hprefixify ${1} + fi +} + +rust_native_abi_install() { + pushd "${S}" >/dev/null || die + local analysis="$(grep 'analysis' ./components || die "analysis not found in components")" + local std="$(grep 'std' ./components || die "std not found in components")" + local components=( "rustc" "cargo" "${std}" ) + use doc && components+=( "rust-docs" ) + use clippy && components+=( "clippy-preview" ) + use rustfmt && components+=( "rustfmt-preview" ) + use rust-analyzer && components+=( "rust-analyzer-preview" "${analysis}" ) + # Rust component 'rust-src' is extracted from separate archive + if use rust-src; then + einfo "Combining rust and rust-src installers" + case ${PV} in + *9999*) + mv -v "${WORKDIR}/rust-src-nightly/rust-src" "${S}" || die + ;; + *beta*) + mv -v "${WORKDIR}/rust-src-beta/rust-src" "${S}" || die + ;; + *) + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + ;; + esac + echo rust-src >> ./components || die + components+=( "rust-src" ) + fi + edo ./install.sh \ + --components="$(IFS=,; echo "${components[*]}")" \ + --disable-verify \ + --prefix="${ED}/opt/rust-bin-${SLOT}" \ + --mandir="${ED}/opt/rust-bin-${SLOT}/man" \ + --disable-ldconfig + + docompress /opt/${P}/man/ + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${SLOT}/bin" + find "${ED}/opt/${SLOT}/bin" -type f -print0 | \ + while IFS= read -r -d '' filename; do + patchelf_for_bin ${filename} ${interpreter} \; || die + done + eend $? + fi + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + einfo "installing eselect-rust symlinks and paths" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver> + local ver_i="${i}-bin-${SLOT}" + ln -v "${ED}/opt/rust-bin-${SLOT}/bin/${i}" "${ED}/opt/rust-bin-${SLOT}/bin/${ver_i}" || die + dosym -r "/opt/rust-bin-${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym -r "/opt/rust-bin-${SLOT}/lib" "/usr/lib/rust/lib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/man" "/usr/lib/rust/man-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/lib/rustlib" "/usr/lib/rustlib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/share/doc/rust" "/usr/share/doc/rust-bin-${SLOT}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${SLOT}" + $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") + _EOF_ + doenvd "${T}/50${P}" + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${PN}-${SLOT}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${PN}-${SLOT}" + fi + if use rust-analyzer; then + echo /usr/bin/rust-analyzer >> "${T}/provider-${PN}-${SLOT}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi; then + rust_native_abi_install + else + local rust_target + rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" + dodir "/opt/${P}/lib/rustlib" + cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ + "${ED}/opt/${P}/lib/rustlib" || die + fi + + # BUG: installs x86_64 binary on other arches + rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die +} + +pkg_postinst() { + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/rust-common/Manifest b/dev-lang/rust-common/Manifest index bd4112bc7f4b..9e317733bbf3 100644 --- a/dev-lang/rust-common/Manifest +++ b/dev-lang/rust-common/Manifest @@ -4,10 +4,17 @@ DIST rustc-1.82.0-src.tar.xz 219769328 BLAKE2B 611f33e134c2d459c9af1695c0a4d033d DIST rustc-1.82.0-src.tar.xz.asc 801 BLAKE2B 8138fb15b8d7ec15be45378fe663207a8e87e3c527348ab079995b1840a771ed6e9d5464eb8855ac9e006c0cfcf54b1a4fea489d31e6c9899cb03e6f4c737b67 SHA512 3cd6b27e72041baf9996efa10f25aca2e04f3e3727b60ecfd90c1bef9c52d216d2dc130802f935b110e35766645a27637a01661aa8d5acf02bf64b02a107c93c DIST rustc-1.83.0-src.tar.xz 353808388 BLAKE2B 217c85f7351a7c57a2684da2c7c81a32094187b3812dee628b327a5b2faca57235abc54d033c586c071c8bfa0c7360bb28761aaa42fe18414e388db704d81231 SHA512 64db57949c6ac1df6a3f4c6bd0938685a5fb1bc3d318b34ccfcfccb0f9eff1cffd4d8a53a190ef0409eeca9ad12bc6234c2c1de69196cc74ae02d6afa20d0ce6 DIST rustc-1.83.0-src.tar.xz.asc 801 BLAKE2B 3bacb43d50ebba579dc2d4f1726298a7887e303e15f039ef72b840e30d90bc2cf9cdbe4617a9ee113a2b1a48f1982e72cf30323d72cdfb9a65b5b4d734ca0024 SHA512 84b252ccaddc06cb05858ff64f582dd25823818c81b1e3a00362deeda06f09e6c36948fd316d5f0ca5e24949e6f99bb14a14dbd2af1cfbb85e679e27ab0a813c -DIST rustc-1.84.0-src.tar.xz 354993944 BLAKE2B e4697d8a9f42484556ed490390aef535b2214ccb3715ade57936211c1c637737da5f2b9a6c53a30df0fba1744fbd80d4d1382c0b74f6b36b36098bf187557201 SHA512 9e964c1b964e74083a9002fa04b072fa8fe7a520b24ad55e88a89bb2a2a2cd5727c5438d6db425b824ae7502ab215c2dd3f49777efd65f76bae09965df2e070a -DIST rustc-1.84.0-src.tar.xz.asc 801 BLAKE2B b1846702f36b92c479499f5eb704ce1e272131fc1b6b625c8d64c873a82ed79b1de8cceb1f21ae4b9dccf81e258547debf367b7b769ac94ed10a59dee18f79f1 SHA512 5ada0e0fed9901044eaa0d7cb657f685c7e183e91245714abe4a0a8bf3062a7de281932c7de7587220df0542511f6011d057bd8bed19d98c755eab74091cdfdb +DIST rustc-1.84.1-src.tar.xz 355078168 BLAKE2B 849e8c909493bf76ce9749b9dcb1967180223b91a41d690bc477e78557d4e24949c9a8d8276d824af8c54ad62bc4a998e7a8efbc0bbd2008a4f64f51a7690d48 SHA512 f1cc4765736551508408126e44086988e8ddc30c1a929bf7b61c6be85ad0d65928dd5fb1041cfaeee8eb37d2208f2c1917e276aef2bc9a8e40e34f6713b349e1 +DIST rustc-1.84.1-src.tar.xz.asc 801 BLAKE2B f3decd3470fd1eff33adbb376490a30eb8db28dd4176bde0fefe4f60acf79c3dd0e1a330d519b5319360136ea7d0a124f6720dea08617202d9e9298da992ccf6 SHA512 a241fe3efba293f3e872b74f09dd0d184e0239afd1416326d57bf1134d92721c65b187f5c99962b51671877a539f18e82d2d797c76af42615c11a8bb3905f796 +DIST rustc-1.85.0-src.tar.xz 274011696 BLAKE2B 9cb1c5b9fa9b0ee8a3150d634b58f4d14c38342f19cffbdcaa4e783150f9b3c516763d549d9998d90e11377cd59e9d9442a99079aafccdc005739b075574447a SHA512 3e9c933d1d9b6e5fb081837cf07eb1638b1a6b4fd1cb607dd860c5021ba7b521edbaf8ba0fa8f182f62178b72a3e1a3e6b26675e8fb6530871137852a074443c +DIST rustc-1.85.0-src.tar.xz.asc 801 BLAKE2B 8168c984f69356898f7a51199f3250a51c58a6512463cd5011acdff8c63754ba196bb050dba95b73d37c7e6d4bbcd3d1cb471d067a6615cd81b8969394e3539a SHA512 b96fffde7eb3d98cca6abe44e671fd4752416357ab3180d2a09a60fc022ac03d10e64ae285ef6276b8d881d6154fd7398f46666f5a2ea6f3023ea38fd543f59e +DIST rustc-1.86.0_beta20250218-src.tar.xz 280540916 BLAKE2B ed3fe1b1ce392ffd264dd78c00e43b478d14c6bf9bc7120aa484c46a72ff904abf3ed1d1d539828a22071997860d186ecf9d5d4abed25f14cbbe0068dee06a5e SHA512 bd8982d6adee08e0b39a58786741594e0c651cd107818178aca0ded3c3272239be3c4f0f6b617679bc8b1cea67e4b5924d6bb1ae8a9d5903fb77245dd8ac528b +DIST rustc-1.86.0_beta20250218-src.tar.xz.asc 801 BLAKE2B 8a7c489f9087342074262c64089922b97e886aa6d3f89c2a0ed1185e084c8bed07d57c363608f26536ca884d764aa43e3ade214ab4fe4e67e9c6d7e1338e93aa SHA512 d34b536200fdb4c7e85af005b1753ce88f32a1faa418a01de21de992679d744ec396fd0f9aaaf851569de1f4f06f14a6481b68b1378659b3475d30818421ea3a EBUILD rust-common-1.81.0.ebuild 1442 BLAKE2B 2fca9110584bab02d27116bb7384ef4cdc0cc42323b469473f76fa09bd15fd4dd24a4597769d453d12c8e06b4305614d50120099feaeb142c2aafe29dd610348 SHA512 b948bc84b48deb6249c61d977dde1489374f5e0df679540a254ce4211f148eb5fff00fa4970bc63a07d4d08328fa821cee1172c388ddd8b48c1c0117a1c0259d EBUILD rust-common-1.82.0.ebuild 1442 BLAKE2B 04d044c0a244ce4e62fd4a8ae096c29c1972677e61ea3c8dd267817deafcdfc305087dc17b021e82376f96888d2374a9de774dbeb6067ee335a2f41dc87918c3 SHA512 279e84b9fba7fcf68c7b8666882411dff77d056258f8e315c141b736a910377bec28020d11fe09ec42921ddeb746e34cf2b8ef3f0503d4578cd8faeb416f257e EBUILD rust-common-1.83.0.ebuild 1442 BLAKE2B 04d044c0a244ce4e62fd4a8ae096c29c1972677e61ea3c8dd267817deafcdfc305087dc17b021e82376f96888d2374a9de774dbeb6067ee335a2f41dc87918c3 SHA512 279e84b9fba7fcf68c7b8666882411dff77d056258f8e315c141b736a910377bec28020d11fe09ec42921ddeb746e34cf2b8ef3f0503d4578cd8faeb416f257e -EBUILD rust-common-1.84.0.ebuild 1449 BLAKE2B c75e4ec75e326ac31c632fee456df989b0eb24dfefa8b34c10b28223c67778343eb0c3f00be3e956949a46b912d321f9632ce07d1fb1dbe0bfa3d5ec3e6cf96f SHA512 110b0a401b560ff5f55075dc84df869a48257231de52cc8cd0661c50060963c9a1d32f96b149a5bf44dd3f79ab9a2140664ef39dd2b6fce2f8390ac893df7f8f +EBUILD rust-common-1.84.1.ebuild 1442 BLAKE2B 04d044c0a244ce4e62fd4a8ae096c29c1972677e61ea3c8dd267817deafcdfc305087dc17b021e82376f96888d2374a9de774dbeb6067ee335a2f41dc87918c3 SHA512 279e84b9fba7fcf68c7b8666882411dff77d056258f8e315c141b736a910377bec28020d11fe09ec42921ddeb746e34cf2b8ef3f0503d4578cd8faeb416f257e +EBUILD rust-common-1.85.0.ebuild 2243 BLAKE2B 554160cc1aab204f2102f1925cf5709e60f09dacb098f8f78e007b1b443fe26d6ef1714e6b9eeae33bfd50873f7f7dcb3435ad6431098479310da2752b39e6ff SHA512 8fd4d239e68e534c432e8f260d7e30a22a0a6206563c7baed353473564253197a1ce9b778da53b4c54be31913aebe0e66f770c2649b118ff5c8513c27e874b08 +EBUILD rust-common-1.86.0_beta20250218.ebuild 2243 BLAKE2B 554160cc1aab204f2102f1925cf5709e60f09dacb098f8f78e007b1b443fe26d6ef1714e6b9eeae33bfd50873f7f7dcb3435ad6431098479310da2752b39e6ff SHA512 8fd4d239e68e534c432e8f260d7e30a22a0a6206563c7baed353473564253197a1ce9b778da53b4c54be31913aebe0e66f770c2649b118ff5c8513c27e874b08 +EBUILD rust-common-9999.ebuild 2243 BLAKE2B 554160cc1aab204f2102f1925cf5709e60f09dacb098f8f78e007b1b443fe26d6ef1714e6b9eeae33bfd50873f7f7dcb3435ad6431098479310da2752b39e6ff SHA512 8fd4d239e68e534c432e8f260d7e30a22a0a6206563c7baed353473564253197a1ce9b778da53b4c54be31913aebe0e66f770c2649b118ff5c8513c27e874b08 MISC metadata.xml 324 BLAKE2B 25e471eacc689a8af7e0251146bf712b020a10d55e3cb48285f174996ec66db8bbd146d4737db15ac3b2abf3e1f0415277b9bdca84d94f9b08a56e9242a4fcbf SHA512 723c102ec7017eeb72bfd6f37c16e2705e61bb626a93e5127eca2275a9367cefbccdd846fe8a699bc1192ae52cafe236f3fb6261fa6db361564b34880a9db2fb diff --git a/dev-lang/rust-common/rust-common-1.84.0.ebuild b/dev-lang/rust-common/rust-common-1.84.1.ebuild index 0969c3472e3c..5c676ac678bf 100644 --- a/dev-lang/rust-common/rust-common-1.84.0.ebuild +++ b/dev-lang/rust-common/rust-common-1.84.1.ebuild @@ -27,7 +27,7 @@ S="${WORKDIR}/${MY_P}-src" LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86" # Legacy non-slotted versions bash completions will collide. RDEPEND=" diff --git a/dev-lang/rust-common/rust-common-1.85.0.ebuild b/dev-lang/rust-common/rust-common-1.85.0.ebuild new file mode 100644 index 000000000000..223c50f26f33 --- /dev/null +++ b/dev-lang/rust-common/rust-common-1.85.0.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc +inherit shell-completion verify-sig + +DESCRIPTION="Common files shared between multiple slots of Rust" +HOMEPAGE="https://www.rust-lang.org/" + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + # In case cargo is not in sync we'll fetch it as a submodule + # Nightly users will probably already have the repo cloned and up-to-date anyway. + EGIT_REPO_URI="https://github.com/rust-lang/rust.git" + EGIT_SUBMODULES=( "-*" "src/tools/cargo" ) +elif [[ ${PV} == *beta* ]]; then + # Identify the snapshot date of the beta release: + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz + MY_PV=beta + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc + -> rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/rustc-${MY_PV}-src" +else + MY_PV=${PV} + SRC_URI="https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/rustc-${MY_PV}-src" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="0" + +# Legacy non-slotted versions bash completions will collide. +RDEPEND=" + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-rust )" + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + git-r3_src_unpack + else + if use verify-sig ; then + verify-sig_verify_detached "${DISTDIR}"/rustc-${PV}-src.tar.xz "${DISTDIR}"/rustc-${PV}-src.tar.xz.asc + fi + + # Avoid unpacking the whole tarball which would need check-reqs + tar -xf "${DISTDIR}"/rustc-${PV}-src.tar.xz "rustc-${MY_PV}-src/src/tools/cargo/src/etc/"{_cargo,cargo.bashcomp.sh} || die + fi +} + +src_configure() { + : +} + +src_compile() { + : +} + +src_install() { + newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo + dozshcomp src/tools/cargo/src/etc/_cargo +} diff --git a/dev-lang/rust-common/rust-common-1.86.0_beta20250218.ebuild b/dev-lang/rust-common/rust-common-1.86.0_beta20250218.ebuild new file mode 100644 index 000000000000..223c50f26f33 --- /dev/null +++ b/dev-lang/rust-common/rust-common-1.86.0_beta20250218.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc +inherit shell-completion verify-sig + +DESCRIPTION="Common files shared between multiple slots of Rust" +HOMEPAGE="https://www.rust-lang.org/" + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + # In case cargo is not in sync we'll fetch it as a submodule + # Nightly users will probably already have the repo cloned and up-to-date anyway. + EGIT_REPO_URI="https://github.com/rust-lang/rust.git" + EGIT_SUBMODULES=( "-*" "src/tools/cargo" ) +elif [[ ${PV} == *beta* ]]; then + # Identify the snapshot date of the beta release: + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz + MY_PV=beta + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc + -> rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/rustc-${MY_PV}-src" +else + MY_PV=${PV} + SRC_URI="https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/rustc-${MY_PV}-src" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="0" + +# Legacy non-slotted versions bash completions will collide. +RDEPEND=" + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-rust )" + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + git-r3_src_unpack + else + if use verify-sig ; then + verify-sig_verify_detached "${DISTDIR}"/rustc-${PV}-src.tar.xz "${DISTDIR}"/rustc-${PV}-src.tar.xz.asc + fi + + # Avoid unpacking the whole tarball which would need check-reqs + tar -xf "${DISTDIR}"/rustc-${PV}-src.tar.xz "rustc-${MY_PV}-src/src/tools/cargo/src/etc/"{_cargo,cargo.bashcomp.sh} || die + fi +} + +src_configure() { + : +} + +src_compile() { + : +} + +src_install() { + newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo + dozshcomp src/tools/cargo/src/etc/_cargo +} diff --git a/dev-lang/rust-common/rust-common-9999.ebuild b/dev-lang/rust-common/rust-common-9999.ebuild new file mode 100644 index 000000000000..223c50f26f33 --- /dev/null +++ b/dev-lang/rust-common/rust-common-9999.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc +inherit shell-completion verify-sig + +DESCRIPTION="Common files shared between multiple slots of Rust" +HOMEPAGE="https://www.rust-lang.org/" + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + # In case cargo is not in sync we'll fetch it as a submodule + # Nightly users will probably already have the repo cloned and up-to-date anyway. + EGIT_REPO_URI="https://github.com/rust-lang/rust.git" + EGIT_SUBMODULES=( "-*" "src/tools/cargo" ) +elif [[ ${PV} == *beta* ]]; then + # Identify the snapshot date of the beta release: + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz + MY_PV=beta + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc + -> rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/rustc-${MY_PV}-src" +else + MY_PV=${PV} + SRC_URI="https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/rustc-${MY_PV}-src" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="0" + +# Legacy non-slotted versions bash completions will collide. +RDEPEND=" + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-rust )" + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + git-r3_src_unpack + else + if use verify-sig ; then + verify-sig_verify_detached "${DISTDIR}"/rustc-${PV}-src.tar.xz "${DISTDIR}"/rustc-${PV}-src.tar.xz.asc + fi + + # Avoid unpacking the whole tarball which would need check-reqs + tar -xf "${DISTDIR}"/rustc-${PV}-src.tar.xz "rustc-${MY_PV}-src/src/tools/cargo/src/etc/"{_cargo,cargo.bashcomp.sh} || die + fi +} + +src_configure() { + : +} + +src_compile() { + : +} + +src_install() { + newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo + dozshcomp src/tools/cargo/src/etc/_cargo +} diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest index 9da5db1521fd..e1e31255b829 100644 --- a/dev-lang/rust/Manifest +++ b/dev-lang/rust/Manifest @@ -17,6 +17,11 @@ AUX 1.82.0-dwarf-llvm-assertion.patch 10589 BLAKE2B 2fe6a9e5cb4714c310539cee24c2 AUX 1.82.0-i586-baseline.patch 1818 BLAKE2B 59f396cbcc9421ae9394d0bb51053dc9addb8ca895ea8c4d7633b56361782b65f4e7f0699dec2999f2e188b4929f9036991444187f8ef35f6fea176a01999f83 SHA512 898dbde6a2f3acbe7a50023b88d3280ae85125e2bb99d18823174b541972766cf75a3457a34a024cea7348537fa6854af6ffc975abbc19323a20de87cbf5e5fb AUX 1.83.0-cross-compile-libz.patch 915 BLAKE2B dbb726de09c9c957f245ecce29c597f4c9c26bae0c14901c62ad51349f02d47c69fa687bd926f7ecf47aaab4ac5aac9378dfe7fa0a66dee95ff1765c5aa9b0cc SHA512 b9127b7656b8e5f79db3157d9425f97af0634088fad512e572357797a2f24f9e9c3635e06ab2efc5ad8edf86ffcab53adbf013e29162579642a382d0015ab54e AUX 1.83.0-dwarf-llvm-assertion.patch 10432 BLAKE2B 27f7c4145cf3046e7cb74071b72c5d7a4a3cfbdc97530c588f82225ecc8a76692d228804c3fb8e7f356d9e76b982d429fa369dc5f4607d8ad91e3a486c7cd5fd SHA512 aa0b4022f00fe126953d7d9bb6759c5ef1b6deaf7dd387e031e74c9d1cbcd6861c673afefdca5f494015ddcb64f23297f1176f22d4f3b63ec3dbd0c39527adfd +AUX 1.84.1-fix-cross.patch 1406 BLAKE2B 3af3e4d4c52c37a4580f1ec56d2b79f2751ad017fce4e5d615e74a495acdb7a6be2e0d1e8cb6bd6c2d30a1b739444a11e20e8fd4eb002cc2c1f17ac1167e5a04 SHA512 4dd606ed7a7d026f6209fb8e7507afee04dbc3be5956ef338fc1810385e9ead568f985cac63c8d1582c16153b597a46ec97cfbf677472e4ae28e7159243a5079 +AUX 1.85.0-cross-compile-libz.patch 1130 BLAKE2B 145695a50ccf2db6f8060bf313924e4b337b63f4d1d8f49c7da014f9a3c9ab3849b7acdd6f0defd75f88852eafe5986019371b09c8305f65280883b7be7d9c70 SHA512 2c27d13ffb62143b1019b7568c7d1187744d9a4d01390d8dfb0d27fe758506dad317fafe0a12eeb13e785885c006cb4e72db104ef72229f51c276a3bfdf2bc9e +AUX 1.85.0-musl-dynamic-linking.patch 15350 BLAKE2B 86704d0f99630153c10454d9776e8097f74e56abe69fcb71e6e9b62e8d8ee003cab981c9d2b719e4290249aece6b3b0fd547727ab89516500bfba18a8ffbb58b SHA512 31fec41ddd6c84988f22869ab7b81adc92ca5ebdce2f62ec4ddb6ed91e0bedcf3e34ddbd8a0725fa2ec50b84d0f87444c1beceaefb301f34864461ae071691f6 +DIST rust-1.86.0_beta20250218-vendor-in-install-phase.patch 22553 BLAKE2B a99d31c5ceeec4c74453849d87c35969ad3924cff48861a1c3009c78ac59440c8a1bd3088f0dace262558cff27197a932f3c81872d4ede4f3c5a03c27e6dc316 SHA512 228c551b7dfd4b43e3b34a97c7d55121cfc15f4c999c15e8ee2a30b41757099ae493148aaedf86f5e4e4143e26ae02464ab725162f1dcad68a0315cfadf3ab8a +DIST rust-1.86.0_beta20250225-vendor-in-install-phase.patch 22527 BLAKE2B 79c800e3ea5eef31e5603a6f3ec99606065f1c383751a989c9835490c2717620a71dc5bdc3613fbcc30ef45862090a8bc5049ba9ae6af861b20159a9cee96682 SHA512 cbfdcc55759c60b575808f2c6ec245d2ea271558295ea4ff4013933bf26252e00017422c286023a6f7089f2edcfe90c49cb06a07c4c41f2bf40e20c8dc85a604 DIST rustc-1.71.1-src.tar.xz 151983068 BLAKE2B 3dfdbc246feb84a79ae94c2de978c5585ee06cf6b683d2245869b62e28f7c79f89cc589f5431537713bf088236a0b824acefc1b68e418e9eb72e1eea98054e3f SHA512 fd0e5a16bdbeb539184513583089e55f681cb772810df357b6b1464853f7022ac02edab3dd155b2262ed0047e2a25dea3808dd078dcdfce9d399384465009db4 DIST rustc-1.71.1-src.tar.xz.asc 801 BLAKE2B a88c073a70552d73e2d7695eceabdaa478f34501b7271fabf7f4a09f3efa545181f34353e45776b05918e6aeba88adb02f9731454f7085a7abf1602fc6589983 SHA512 9dd0406cf22f1daa7fcfd015fc1c6f8d36586aa99bf14c1491ee464c1f892ab759feb83e8b55b64713170fb777fdbe038fb5fd01a59c911b6599223baaba0677 DIST rustc-1.74.1-src.tar.xz 155968724 BLAKE2B e05f2379ac94b286f85791a138e1928e5b5b5a7749f0981d82c40c2a12860f55bf96bb2f0e924e35a0f8b2447b13052d38adea909aaa3199105787bb5a4861b3 SHA512 14c7e7ed2f38ab60299d8c7d41d78f042b6b57ef822d577b5138e60bdde31cf141eccd4332a25bc5da3d58eb5313d63c1448b5dfe9e11b8055bb8ea133a9038d @@ -41,17 +46,30 @@ DIST rustc-1.83.0-src.tar.xz 353808388 BLAKE2B 217c85f7351a7c57a2684da2c7c81a320 DIST rustc-1.83.0-src.tar.xz.asc 801 BLAKE2B 3bacb43d50ebba579dc2d4f1726298a7887e303e15f039ef72b840e30d90bc2cf9cdbe4617a9ee113a2b1a48f1982e72cf30323d72cdfb9a65b5b4d734ca0024 SHA512 84b252ccaddc06cb05858ff64f582dd25823818c81b1e3a00362deeda06f09e6c36948fd316d5f0ca5e24949e6f99bb14a14dbd2af1cfbb85e679e27ab0a813c DIST rustc-1.84.0-src.tar.xz 354993944 BLAKE2B e4697d8a9f42484556ed490390aef535b2214ccb3715ade57936211c1c637737da5f2b9a6c53a30df0fba1744fbd80d4d1382c0b74f6b36b36098bf187557201 SHA512 9e964c1b964e74083a9002fa04b072fa8fe7a520b24ad55e88a89bb2a2a2cd5727c5438d6db425b824ae7502ab215c2dd3f49777efd65f76bae09965df2e070a DIST rustc-1.84.0-src.tar.xz.asc 801 BLAKE2B b1846702f36b92c479499f5eb704ce1e272131fc1b6b625c8d64c873a82ed79b1de8cceb1f21ae4b9dccf81e258547debf367b7b769ac94ed10a59dee18f79f1 SHA512 5ada0e0fed9901044eaa0d7cb657f685c7e183e91245714abe4a0a8bf3062a7de281932c7de7587220df0542511f6011d057bd8bed19d98c755eab74091cdfdb -EBUILD rust-1.71.1-r100.ebuild 22077 BLAKE2B 1082eec69086f44922a4d9b4d7d0fbee5104c4653fe6320764748638389871081c5812aa0bed84ecd36f6d764e38a257c640518b3ca190797ca595506106739f SHA512 461a0bd207a4424c2512ee404202b14fdc8bf6d4bd628e38f325584ff4e452de0f3615e3a3683b2d1eae0b9498443eccb10f6800cf3c6be862f1643b9203c017 -EBUILD rust-1.74.1-r100.ebuild 37690 BLAKE2B 93ff1451143f5282ef231911a3b820649052300b933a9e6fd602ce6dcbf6f88af118e2835e59d3b520ba7f09a292d71d1f9b7b7a48bbbeadaaf880ff0a0dc3ea SHA512 2709d8377472eda62ebd2d0c296b1b678c106e6cc33268823391f0e2072f06551e1bb9094017077f4bd56aa0a34bee3a329d0a6f27fd1f8304af6abcc9e9b241 -EBUILD rust-1.75.0-r100.ebuild 23584 BLAKE2B ec9b5d0dc286ce5f1931df6e60817531f3ce6002a3916e47355c557693b19bdacdefd3e01d309880c8e48e53d4fc9082bab4aa2ed9da34c51df8b8c25e60305f SHA512 f759a9db473a3d19571b20669b9631446b71c508ba9cf42edc126e1da03ce8ad34478b6712f48711ee152001841d31662ea6f227faacec1fb51b625522415e64 -EBUILD rust-1.76.0-r100.ebuild 20091 BLAKE2B c9132c08aa051dcd3412909472312db21db79db7215beacc564c2d58e00b2dbd758f4bfa3a81d2a5dfa70a1bbf9ec82a96dbd7042e561d05c5e3cb7a699d240c SHA512 c9a821bfb2f693ab5d628eff20dcdea32bc1f29540e22c465275f89a6559f6db6d9ab93fd2cabba30f20b5bdd9cb24645d4f73f9b1976bb113b06544ea4746c2 -EBUILD rust-1.77.1-r100.ebuild 23547 BLAKE2B dfa0b1105be8a58c88afd4fe184381bc83516f9935e6ac533d8f44bc0953b3da9305cbfdd44915810d87fc89cd2aee76f06e30d617ed4425cd01cbe429e5e8c4 SHA512 9ce03c548c77382a8fd91690a6071bf082f468e5807cd132a0b8206208580336a61991f7d563b5d12629d920753e2b2d59d099e7f7afad17d259717a17af6cd5 -EBUILD rust-1.78.0-r100.ebuild 23782 BLAKE2B 82f2bbdc80f99f3636683e406bd3263f4759418552fcacf071668451a3dcd89f636b0205559638fab834327ef841cf477d43e6ac945313f5ba60c34305d930fa SHA512 2c65b01e2e31e97f9a1e06d177345b8f2024a60806514516376e9d5be43cd5f3a2f2d4d31f097016dd31b65ba282c0b69dc54e6549738e898fa47add58892ff2 -EBUILD rust-1.79.0-r100.ebuild 23782 BLAKE2B 82f2bbdc80f99f3636683e406bd3263f4759418552fcacf071668451a3dcd89f636b0205559638fab834327ef841cf477d43e6ac945313f5ba60c34305d930fa SHA512 2c65b01e2e31e97f9a1e06d177345b8f2024a60806514516376e9d5be43cd5f3a2f2d4d31f097016dd31b65ba282c0b69dc54e6549738e898fa47add58892ff2 -EBUILD rust-1.80.1-r100.ebuild 23654 BLAKE2B 10e70066371a07ff8e0618533ad210c5080e2cfcba87fb69535c7845b508e62825d9d392068d1ee264fcf951c20c9bbe815e4868ac08d0f97b68a6a77a03417e SHA512 e1869237eb35a8f27ed1b540b679c58aee3303e21d7f6f96af8828171c1bfd1d32c7c0a3b94e15fc2ca4bc0e0840ee9e79fd5a93b5c3e8e2e9b1fe70965c875a -EBUILD rust-1.81.0-r100.ebuild 23851 BLAKE2B 03c31a2fca18dbddce10b8652bba84d86fcde844a24c3bb4c1981f7ef549627c03008c4df82fe0529368e4e7af632ed605a49502a79ff8c670e680a5ae94c10b SHA512 b313e6de5b77854bc2c2afb6ae1347f85a0dbbec86111b8f266ed6f3e92d0eee461588b209b1cead0caa433336c7c63040d08fd00de3272c51cf68c5d2ba3ff1 -EBUILD rust-1.82.0-r100.ebuild 23997 BLAKE2B 227d902466e31d42551be544e88839814ffb05e43fdcebdcdf43e6afa9019ea398ac9123a6e38f73f7b7772891a504a425d570401937d43667d2cead70597c46 SHA512 cbff12c735f0a0bd1f098a27f69212affce60da38b79409da4b10b256d9bb8ebdd4129b78786354bac9fba63c4889e5a58e10d522e928901e7ff20c921925da4 -EBUILD rust-1.82.0-r101.ebuild 24046 BLAKE2B d132b0109d9d1e68ded0357221609102f0e638069e4ec2bf61e53fb94b388fe67e97b5cb5ee3f29ecdc3a9f4c18a4ad6cef0e08addc248289ae3178c2e04aa04 SHA512 31f3e5bfa8345bcad487474bd8e0570c31e51a7e477d030f2fe61148e4598f069211139504a43958367b740cf38b18ff92e46e49d6080b7df8177453e9dae14e -EBUILD rust-1.83.0-r1.ebuild 23279 BLAKE2B 183f2a6f686030c2efad110709d52b68c655dc374faa748f83c5d33ced7e44b81d5c321e843e8ffcd6c4d248bb8b6452986eb9f1e0b636e199404668f3a54518 SHA512 8220054d98db8bb50d9abd765ffefaafd360ad13ee566485e2f82930a8821b32c7b5e33080127e8fea5dbe655a81c8edd1563d0efa5c78be4c41d8bd4af22050 -EBUILD rust-1.84.0.ebuild 22990 BLAKE2B cecc312f026169d94fdd5d435c54fe83f75bc5c6c0d3954b255d4a20dcca2a97254a7555e2c64c7961643bce0cb2779fc105cc0bf3dc6f4c1c3c3ce6f4736213 SHA512 c31e9762a00f862814865b70d7ec2ea1fe26aa7ea0c97f8795e29dc1a97e74c46d2f8381da47e11b389c112312421ee059134a29b3924a476b526ff49bf94d1c +DIST rustc-1.84.1-src.tar.xz 355078168 BLAKE2B 849e8c909493bf76ce9749b9dcb1967180223b91a41d690bc477e78557d4e24949c9a8d8276d824af8c54ad62bc4a998e7a8efbc0bbd2008a4f64f51a7690d48 SHA512 f1cc4765736551508408126e44086988e8ddc30c1a929bf7b61c6be85ad0d65928dd5fb1041cfaeee8eb37d2208f2c1917e276aef2bc9a8e40e34f6713b349e1 +DIST rustc-1.84.1-src.tar.xz.asc 801 BLAKE2B f3decd3470fd1eff33adbb376490a30eb8db28dd4176bde0fefe4f60acf79c3dd0e1a330d519b5319360136ea7d0a124f6720dea08617202d9e9298da992ccf6 SHA512 a241fe3efba293f3e872b74f09dd0d184e0239afd1416326d57bf1134d92721c65b187f5c99962b51671877a539f18e82d2d797c76af42615c11a8bb3905f796 +DIST rustc-1.85.0-src.tar.xz 274011696 BLAKE2B 9cb1c5b9fa9b0ee8a3150d634b58f4d14c38342f19cffbdcaa4e783150f9b3c516763d549d9998d90e11377cd59e9d9442a99079aafccdc005739b075574447a SHA512 3e9c933d1d9b6e5fb081837cf07eb1638b1a6b4fd1cb607dd860c5021ba7b521edbaf8ba0fa8f182f62178b72a3e1a3e6b26675e8fb6530871137852a074443c +DIST rustc-1.85.0-src.tar.xz.asc 801 BLAKE2B 8168c984f69356898f7a51199f3250a51c58a6512463cd5011acdff8c63754ba196bb050dba95b73d37c7e6d4bbcd3d1cb471d067a6615cd81b8969394e3539a SHA512 b96fffde7eb3d98cca6abe44e671fd4752416357ab3180d2a09a60fc022ac03d10e64ae285ef6276b8d881d6154fd7398f46666f5a2ea6f3023ea38fd543f59e +DIST rustc-1.86.0_beta20250218-src.tar.xz 280540916 BLAKE2B ed3fe1b1ce392ffd264dd78c00e43b478d14c6bf9bc7120aa484c46a72ff904abf3ed1d1d539828a22071997860d186ecf9d5d4abed25f14cbbe0068dee06a5e SHA512 bd8982d6adee08e0b39a58786741594e0c651cd107818178aca0ded3c3272239be3c4f0f6b617679bc8b1cea67e4b5924d6bb1ae8a9d5903fb77245dd8ac528b +DIST rustc-1.86.0_beta20250218-src.tar.xz.asc 801 BLAKE2B 8a7c489f9087342074262c64089922b97e886aa6d3f89c2a0ed1185e084c8bed07d57c363608f26536ca884d764aa43e3ade214ab4fe4e67e9c6d7e1338e93aa SHA512 d34b536200fdb4c7e85af005b1753ce88f32a1faa418a01de21de992679d744ec396fd0f9aaaf851569de1f4f06f14a6481b68b1378659b3475d30818421ea3a +DIST rustc-1.86.0_beta20250225-src.tar.xz 280546668 BLAKE2B ea1956a83175a2cda21b6ad1ead38d8d0f6c95559d2e329bf0e4ca13d0ff6562d017d5bffbb57f9d6d232b1f87f3d190718bc0b90c6938b06763526fac083ada SHA512 782fafa305b8766db3d23796014a5897470988c9447baf4bee35d98b90382b5a727d0aecc3dabbdab0f82b6d862def8be23d8a6cf3d98cc96f18cf4a2bc38f66 +DIST rustc-1.86.0_beta20250225-src.tar.xz.asc 801 BLAKE2B 517f8d88edc1ef4ebd25d66a1be4f37718bfa361f8ae1001aca85ba626dacfef6ae27a327f33dd1ae9db7e57a91eab2d8bbfe910b5789df0998dd18026c75726 SHA512 50e3c85b7c6a7f42e094e63f4ee554d2d944a8e153ab5dbd1c2a09a1f44c6ee53cb1c4985080a373c5cb09681bc5b987e8a8e2f56a0a0053ccea99f22dc92986 +EBUILD rust-1.71.1-r101.ebuild 22398 BLAKE2B 16a62b7042971b2a653e078cadc701e597f8cdfdc0d9381502e1a6763c7752c86d735e7ae5a6c69630a21f3b0b964d7f291640458dff0055d052a0ca0e99ebf0 SHA512 d58ebb8d7c8bd40ad91416993fb0aae63b60406b2ac7a21c2b434d45ccc2cfa38090e311084336580827a1e5d545deb46545c8df4b2b389cdbeac2564eb09c79 +EBUILD rust-1.74.1-r101.ebuild 38047 BLAKE2B 2c7e55c4b16b4ac990423970942b0d0344b2a41e9b68590112a734a7170a824054066da09315c9e647ba76c5f7fb6d192320113705c10bd789e625df70b60d5c SHA512 e3683ca91e3efbe3ca7bd3611834d1d727c5b13a4de1b5f2f34f8fa6780af2d96fc1a48dde6d2eb1d38910bd0eba037990a9785b5eedd847a22e60f1792bb0e2 +EBUILD rust-1.75.0-r101.ebuild 23941 BLAKE2B 1a19ef8ee5b2dbbf2f5758a3b249ad50753e0e69a8b45f008f3ba588627a9ca0760254ed9d7e5594b3a18931f73b70e3f5082a32aa05f627c0bcaeb2bc2eb138 SHA512 8caa84f0c16a39a3c67a9eda9d00e963a20c7c20e9b3dc71dcf164dd7528624adb913b22c3b9e228ebd28cfc6d8c8080bb0d5223ef68e9cb5ba3074d84f68ba8 +EBUILD rust-1.76.0-r101.ebuild 20449 BLAKE2B a05002c2f08e2705563cdfbbac2d39069282c4034087be5aad0631177c91bea90f03bab97e21006f1caa8ff98d3a146f395eac56b204732f0768944d7231ed5d SHA512 b497de82c830a225bb2cf897e04126034427544e86011f4a7367168b7f398d19c6f53b9384fd47efc78d523bc90d47cd336787c177e1361304efc80647d7356a +EBUILD rust-1.77.1-r101.ebuild 23905 BLAKE2B 4112869889591b4b1dce8aecdcfcfd2c126235579b7e005cf6c556d554cebca16ff02731f487200c9d2b2522862071e160374608282ced7bd67333fb429ee4c3 SHA512 7234e384761ab82c0543e6f8be826ce3af1ad4a005595e7b613de066d9b213e81106f98dd42987d63608fd4a0f9200d513fede9e09bc4aaf8b36b10282819514 +EBUILD rust-1.78.0-r101.ebuild 24140 BLAKE2B 46645080f001be5cc4ff55578a6914a0a1a4c1cbac14e3fdef2375343becc002e41e288c8323673bb54291285f2892e50d6a8dbbf5973d59a5d6561d71482b88 SHA512 e9721c42fa937d1f0c0b0f13f8400ea4882a03400c0849dda2c9c1ab712077a673d44725813a40c0f8d76fa7f57c0ae2f5b71313b03d995c444b0894e6a89df9 +EBUILD rust-1.79.0-r101.ebuild 24140 BLAKE2B 84ac91990973405151c22bce62062270b96cddb9acb9ff596d05371d2cf78c8fd5d82b7e3f94ae68d137bf8aaaff29ff6fface78a25b95cc5380a0bea1f1d42d SHA512 e5bb89600df62cb000339c9d47cad713eee2002e57c44fd34e64a7d8f36427f15626205cfab3169fa53fd8a31a8fc7cb859ddd66e77a96186b419e481e8f8e29 +EBUILD rust-1.80.1-r101.ebuild 24012 BLAKE2B 5a8cdfcd1fb5553e6dcaaa98a5d817dec02b89356afea474d794f8c42dfd6b72bdfb63abad412f796939e493c6164da154db5d1f6bfe2ed0f1783a26cb7bb931 SHA512 657da54d0ccc0169e3ee4cc91b00383dfdf96049e5262413d77d881c6c04052fd83686207bc732ce2a680e31a5fd8bac6453015f8ada40f501e21ab6d081f45c +EBUILD rust-1.81.0-r101.ebuild 24209 BLAKE2B 426b068e2682c88340de00e42891cb5f75e5a41dd6c902168946614bbcebb6f394872002014f2ff8fcf6c908d1d59b50fdf44bf3ecfed5da9608746d18af6dbd SHA512 461f02f3b3483cc9034ac0eb0f1be24ccf05919af378bcccb81fa06ac51bc37df0cd9d71b7c7117b326f228017bbd9b9cac09f2a02ab1c449510980c96516843 +EBUILD rust-1.82.0-r102.ebuild 24404 BLAKE2B 11d53de161ab3d656724c8fb4f32050abd7e4322dcc1046702f8b00fcf19fbe7ce7478fe94deb29c67c3a61bde92842aabe62e14005a0eec88cfee8b6647efdc SHA512 88d9e75bd72804b385ef651d268171e3dda6075e84c7591e7295089efe0ee864cc36ac98bb6c193eb17b2ea3e161972ecfe05f24eb03cbc943968dedefed1f17 +EBUILD rust-1.83.0-r2.ebuild 23637 BLAKE2B 4f015de1734b0ea942b0c6e3ea72815a5cb9608fd4e9bb59d81952f749cbda6e4bba700d503c5e5aa6a39cef72884dfac29c15eacee5b31118511bfefa851402 SHA512 c20809d2eceff7d7ed764c8082013fa7687ee2644eb6c6b10de220d62ed6fca85665ded9173c17507a933ada04ea40f2a999ebd9c3252d4ef484eeb674dfe8d0 +EBUILD rust-1.84.0-r1.ebuild 22123 BLAKE2B 4d78d8ac1b95f17059b315b1f54349a988e69817ebd3d9b683f5fb29e2f2eb0f631fff2fa4bff69b796bde5285d70f67dcb9ef09e017c60858d39adc65b9c69d SHA512 899d86f39a7015be8de1352efaa8baf8f36daf6b3dd92d53cdfeadaf9a2a6e6bc9c3bd5029b7da6fb32f110b78f77057428765dffc582241d98fab9a0d3417f4 +EBUILD rust-1.84.1-r1.ebuild 22226 BLAKE2B 3bfd5379730cec0805baabb40b4d6dd018ab30cd47b597a8a8e21be3d920c898c6c747224880f6c8017e2e1f325a56551162d96983900fa15b0a6832f8c7594b SHA512 b5ec38df4a093732e0c6bb6bef6c69fa8e92f133bcd76055105c4b503b4b2a94664a2e1a993a4ffd5c405183b1ad55a97f184ad6e9783a22712946ef68b0e9d0 +EBUILD rust-1.85.0-r1.ebuild 25359 BLAKE2B 47f020237a54c20c997ee279dbec95adf7b03c36624c8fc5ffc93a5e40525a57e0edc2ec0cf4ca30aa71560784bec64237694b58060e91897a7ca9e50fd8b75e SHA512 d6e901e241114911d80ecf9f04598b18e81dec53d12c50ae77afdab4c79998dcb92ecd463448c4415a1039f0f8bc61198f56d18ae69d0d34436b82fd1433edaf +EBUILD rust-1.85.0.ebuild 25310 BLAKE2B f58fed6c72cd54bcc608695aa67554ab8def3887408f7a7b17ad5e36a7fb3923f196f5b072e788edef11ab5ea7dc8a7b1301799ca29db44649615af38d686844 SHA512 2d3f1f627a4aa666034dff412db54d3e75854769c9bdb04827b306cef8a309200befcf547b12e66b25b6cb9c0b0f7a385a98b92e8ad7262cc2b61b1f22529f8b +EBUILD rust-1.86.0_beta20250218-r1.ebuild 25723 BLAKE2B 28a40759c53e52142d47bc9a1b4b25f8801c3a88339ffcbc345f5175ccab74262126c7671b2be4ca699ef4c9ab29166771b9997cf3d4dff840c59aed48b4fb28 SHA512 eed6f384a9d6a223367a4b0b0d92d3b4a01d29224bdf56648e402028cd3a4ac11909d35be5f72d14ddc0e089b2bc389d03a598e03d1670dc7e59a6b25661640d +EBUILD rust-1.86.0_beta20250225.ebuild 25724 BLAKE2B af803ea989b27248fcbf9abfc732167cc3517f28c4ffcb508d9f4ed27d03f2ba532014630e3a65b237454c67e3ca59d744f7ab389df4cd47a3af4ea0c15c1cad SHA512 a57883420023f44fc66fea988105580e6869c7ad4287456b12c67bf4bd39d373e5e382adb5e372ed748126039a2161ac6055d6580f8eaef347eacd6e8262b992 +EBUILD rust-9999.ebuild 25383 BLAKE2B 9f91287f2811ae43470bf728bafd545920d4ce07ac3a58825d5e048c895744810b9ac7ebdbbfa6d5ba372552e4dd7468cd0035945143e73b983ace7489ef4cc3 SHA512 62f103ee68203346293d60fc43bf7eb02322d81d772f06f56d0dabaa8f73d2ea98d3c11d2602c5a79e8288939ecdebfcf8443bcb08ddb102d45d773ad19da62b MISC metadata.xml 1841 BLAKE2B 48a8167ae44a7f4892b917895298627ac920af6c488180980e65bdeec53b650455fc6d7dddad0a7a8257d473080082377fb6b6df6a834b294b6e6485e6784a1e SHA512 1f5fd792b65ccac89a61233004980d9f7cbaecea5d05f35f9cc2dc9cab4e3ccfcd46828e88770a1b8ba5ca23064b6a75eea72a0b32bcce52bb399b85ac95f755 diff --git a/dev-lang/rust/files/1.84.1-fix-cross.patch b/dev-lang/rust/files/1.84.1-fix-cross.patch new file mode 100644 index 000000000000..47d7766ae951 --- /dev/null +++ b/dev-lang/rust/files/1.84.1-fix-cross.patch @@ -0,0 +1,30 @@ +https://github.com/rust-lang/rust/issues/133629 +https://github.com/rust-lang/rust/commit/a24d859f19bbefe5371694f318568b0ab5a13299 + +From: onur-ozkan <work@onurozkan.dev> +Date: Thu, 30 Jan 2025 16:51:08 +0000 +Subject: [PATCH] set rustc dylib on manually constructed rustc command + +Signed-off-by: onur-ozkan <work@onurozkan.dev> +--- a/src/bootstrap/src/core/builder/cargo.rs ++++ b/src/bootstrap/src/core/builder/cargo.rs +@@ -653,7 +653,10 @@ impl Builder<'_> { + // Build proc macros both for the host and the target unless proc-macros are not + // supported by the target. + if target != compiler.host && cmd_kind != Kind::Check { +- let error = command(self.rustc(compiler)) ++ let mut rustc_cmd = command(self.rustc(compiler)); ++ self.add_rustc_lib_path(compiler, &mut rustc_cmd); ++ ++ let error = rustc_cmd + .arg("--target") + .arg(target.rustc_target_arg()) + .arg("--print=file-names") +@@ -661,6 +664,7 @@ impl Builder<'_> { + .arg("-") + .run_capture(self) + .stderr(); ++ + let not_supported = error + .lines() + .any(|line| line.contains("unsupported crate type `proc-macro`")); diff --git a/dev-lang/rust/files/1.85.0-cross-compile-libz.patch b/dev-lang/rust/files/1.85.0-cross-compile-libz.patch new file mode 100644 index 000000000000..7bd45c4e09e5 --- /dev/null +++ b/dev-lang/rust/files/1.85.0-cross-compile-libz.patch @@ -0,0 +1,26 @@ +From 768f7e50a6d9a3db4e4eef45dcb4c56e9b580389 Mon Sep 17 00:00:00 2001 +From: Matt Jolly <kangie@gentoo.org> +Date: Sun, 9 Feb 2025 21:12:43 +1000 +Subject: [PATCH] Update libz cross-compile patch for 9999 (1.86.0) + +See-also: https://paste.sr.ht/~kchibisov/682321e0fd4a3ece4a4b7b71591896f5cd3cdb22 +See-also: https://github.com/gentoo/gentoo/pull/35246#discussion_r1484525497 +--- a/compiler/rustc_llvm/build.rs ++++ b/compiler/rustc_llvm/build.rs +@@ -219,13 +219,7 @@ fn main() { + // of llvm-config, not the target that we're attempting to link. + let mut cmd = Command::new(&llvm_config); + cmd.arg(llvm_link_arg).arg("--libs"); +- +- // Don't link system libs if cross-compiling unless targeting Windows. +- // On Windows system DLLs aren't linked directly, instead import libraries are used. +- // These import libraries are independent of the host. +- if !is_crossed || target.contains("windows") { +- cmd.arg("--system-libs"); +- } ++ cmd.arg("--system-libs"); + + // We need libkstat for getHostCPUName on SPARC builds. + // See also: https://github.com/llvm/llvm-project/issues/64186 +-- +2.48.0 diff --git a/dev-lang/rust/files/1.85.0-musl-dynamic-linking.patch b/dev-lang/rust/files/1.85.0-musl-dynamic-linking.patch new file mode 100644 index 000000000000..a6ab967417c4 --- /dev/null +++ b/dev-lang/rust/files/1.85.0-musl-dynamic-linking.patch @@ -0,0 +1,271 @@ +From be965af5421e55c0032a989b220bc0da005d2272 Mon Sep 17 00:00:00 2001 +From: Michal Rostecki <vadorovsky@protonmail.com> +Date: Tue, 25 Feb 2025 16:24:21 +0100 +Subject: [PATCH] Enable dynamic linking by default for musl + +--- + .../src/spec/targets/aarch64_unknown_linux_musl.rs | 3 --- + .../src/spec/targets/arm_unknown_linux_musleabi.rs | 3 +-- + .../src/spec/targets/arm_unknown_linux_musleabihf.rs | 3 +-- + .../src/spec/targets/armv5te_unknown_linux_musleabi.rs | 3 +-- + .../src/spec/targets/armv7_unknown_linux_musleabi.rs | 3 +-- + .../src/spec/targets/armv7_unknown_linux_musleabihf.rs | 3 +-- + .../rustc_target/src/spec/targets/i586_unknown_linux_musl.rs | 2 -- + .../rustc_target/src/spec/targets/i686_unknown_linux_musl.rs | 2 -- + .../src/spec/targets/mips64_unknown_linux_muslabi64.rs | 3 +-- + .../src/spec/targets/mips64el_unknown_linux_muslabi64.rs | 2 -- + .../src/spec/targets/powerpc64_unknown_linux_musl.rs | 2 -- + .../src/spec/targets/powerpc64le_unknown_linux_musl.rs | 2 -- + .../src/spec/targets/powerpc_unknown_linux_musl.rs | 2 -- + .../src/spec/targets/powerpc_unknown_linux_muslspe.rs | 2 -- + .../src/spec/targets/riscv32gc_unknown_linux_musl.rs | 3 +-- + .../rustc_target/src/spec/targets/s390x_unknown_linux_musl.rs | 2 -- + .../src/spec/targets/thumbv7neon_unknown_linux_musleabihf.rs | 3 +-- + .../rustc_target/src/spec/targets/x86_64_unknown_linux_musl.rs | 2 -- + 18 files changed, 8 insertions(+), 37 deletions(-) + +diff --git a/compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_musl.rs +index 4fefdfa5c5e..bb65048a56d 100644 +--- a/compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_musl.rs ++++ b/compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_musl.rs +@@ -12,9 +12,6 @@ pub(crate) fn target() -> Target { + | SanitizerSet::MEMORY + | SanitizerSet::THREAD; + +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; +- + Target { + llvm_target: "aarch64-unknown-linux-musl".into(), + metadata: crate::spec::TargetMetadata { +diff --git a/compiler/rustc_target/src/spec/targets/arm_unknown_linux_musleabi.rs b/compiler/rustc_target/src/spec/targets/arm_unknown_linux_musleabi.rs +index 26241dd0bd4..cab79e2bf7d 100644 +--- a/compiler/rustc_target/src/spec/targets/arm_unknown_linux_musleabi.rs ++++ b/compiler/rustc_target/src/spec/targets/arm_unknown_linux_musleabi.rs +@@ -20,8 +20,7 @@ pub(crate) fn target() -> Target { + features: "+strict-align,+v6".into(), + max_atomic_width: Some(64), + mcount: "\u{1}mcount".into(), +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- crt_static_default: true, ++ crt_static_default: false, + ..base::linux_musl::opts() + }, + } +diff --git a/compiler/rustc_target/src/spec/targets/arm_unknown_linux_musleabihf.rs b/compiler/rustc_target/src/spec/targets/arm_unknown_linux_musleabihf.rs +index 4bbde7667b9..c5f6c180a95 100644 +--- a/compiler/rustc_target/src/spec/targets/arm_unknown_linux_musleabihf.rs ++++ b/compiler/rustc_target/src/spec/targets/arm_unknown_linux_musleabihf.rs +@@ -20,8 +20,7 @@ pub(crate) fn target() -> Target { + features: "+strict-align,+v6,+vfp2,-d32".into(), + max_atomic_width: Some(64), + mcount: "\u{1}mcount".into(), +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- crt_static_default: true, ++ crt_static_default: false, + ..base::linux_musl::opts() + }, + } +diff --git a/compiler/rustc_target/src/spec/targets/armv5te_unknown_linux_musleabi.rs b/compiler/rustc_target/src/spec/targets/armv5te_unknown_linux_musleabi.rs +index 62619546891..680dafe6943 100644 +--- a/compiler/rustc_target/src/spec/targets/armv5te_unknown_linux_musleabi.rs ++++ b/compiler/rustc_target/src/spec/targets/armv5te_unknown_linux_musleabi.rs +@@ -20,8 +20,7 @@ pub(crate) fn target() -> Target { + max_atomic_width: Some(32), + mcount: "\u{1}mcount".into(), + has_thumb_interworking: true, +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- crt_static_default: true, ++ crt_static_default: false, + ..base::linux_musl::opts() + }, + } +diff --git a/compiler/rustc_target/src/spec/targets/armv7_unknown_linux_musleabi.rs b/compiler/rustc_target/src/spec/targets/armv7_unknown_linux_musleabi.rs +index 0436e0d8df4..e862b28ca92 100644 +--- a/compiler/rustc_target/src/spec/targets/armv7_unknown_linux_musleabi.rs ++++ b/compiler/rustc_target/src/spec/targets/armv7_unknown_linux_musleabi.rs +@@ -24,8 +24,7 @@ pub(crate) fn target() -> Target { + features: "+v7,+thumb2,+soft-float,-neon".into(), + max_atomic_width: Some(64), + mcount: "\u{1}mcount".into(), +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- crt_static_default: true, ++ crt_static_default: false, + ..base::linux_musl::opts() + }, + } +diff --git a/compiler/rustc_target/src/spec/targets/armv7_unknown_linux_musleabihf.rs b/compiler/rustc_target/src/spec/targets/armv7_unknown_linux_musleabihf.rs +index 22e49f2f1b0..acb7c99cdaf 100644 +--- a/compiler/rustc_target/src/spec/targets/armv7_unknown_linux_musleabihf.rs ++++ b/compiler/rustc_target/src/spec/targets/armv7_unknown_linux_musleabihf.rs +@@ -23,8 +23,7 @@ pub(crate) fn target() -> Target { + features: "+v7,+vfp3,-d32,+thumb2,-neon".into(), + max_atomic_width: Some(64), + mcount: "\u{1}mcount".into(), +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- crt_static_default: true, ++ crt_static_default: false, + ..base::linux_musl::opts() + }, + } +diff --git a/compiler/rustc_target/src/spec/targets/i586_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/i586_unknown_linux_musl.rs +index 8ad93496f3a..623422a89ea 100644 +--- a/compiler/rustc_target/src/spec/targets/i586_unknown_linux_musl.rs ++++ b/compiler/rustc_target/src/spec/targets/i586_unknown_linux_musl.rs +@@ -4,7 +4,5 @@ pub(crate) fn target() -> Target { + let mut base = super::i686_unknown_linux_musl::target(); + base.cpu = "pentium".into(); + base.llvm_target = "i586-unknown-linux-musl".into(); +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; + base + } +diff --git a/compiler/rustc_target/src/spec/targets/i686_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/i686_unknown_linux_musl.rs +index 6ba87c732b7..b805b80b85b 100644 +--- a/compiler/rustc_target/src/spec/targets/i686_unknown_linux_musl.rs ++++ b/compiler/rustc_target/src/spec/targets/i686_unknown_linux_musl.rs +@@ -6,8 +6,6 @@ pub(crate) fn target() -> Target { + base.max_atomic_width = Some(64); + base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m32", "-Wl,-melf_i386"]); + base.stack_probes = StackProbeType::Inline; +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; + + // The unwinder used by i686-unknown-linux-musl, the LLVM libunwind + // implementation, apparently relies on frame pointers existing... somehow. +diff --git a/compiler/rustc_target/src/spec/targets/mips64_unknown_linux_muslabi64.rs b/compiler/rustc_target/src/spec/targets/mips64_unknown_linux_muslabi64.rs +index 32f5c79d653..9a25fe773fb 100644 +--- a/compiler/rustc_target/src/spec/targets/mips64_unknown_linux_muslabi64.rs ++++ b/compiler/rustc_target/src/spec/targets/mips64_unknown_linux_muslabi64.rs +@@ -22,8 +22,7 @@ pub(crate) fn target() -> Target { + abi: "abi64".into(), + endian: Endian::Big, + mcount: "_mcount".into(), +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- crt_static_default: true, ++ crt_static_default: false, + ..base + }, + } +diff --git a/compiler/rustc_target/src/spec/targets/mips64el_unknown_linux_muslabi64.rs b/compiler/rustc_target/src/spec/targets/mips64el_unknown_linux_muslabi64.rs +index 5e7c37fd46c..4f50e8b7033 100644 +--- a/compiler/rustc_target/src/spec/targets/mips64el_unknown_linux_muslabi64.rs ++++ b/compiler/rustc_target/src/spec/targets/mips64el_unknown_linux_muslabi64.rs +@@ -5,8 +5,6 @@ pub(crate) fn target() -> Target { + base.cpu = "mips64r2".into(); + base.features = "+mips64r2".into(); + base.max_atomic_width = Some(64); +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; + Target { + // LLVM doesn't recognize "muslabi64" yet. + llvm_target: "mips64el-unknown-linux-musl".into(), +diff --git a/compiler/rustc_target/src/spec/targets/powerpc64_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/powerpc64_unknown_linux_musl.rs +index a54b17c87a7..a964f417799 100644 +--- a/compiler/rustc_target/src/spec/targets/powerpc64_unknown_linux_musl.rs ++++ b/compiler/rustc_target/src/spec/targets/powerpc64_unknown_linux_musl.rs +@@ -7,8 +7,6 @@ pub(crate) fn target() -> Target { + base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); + base.max_atomic_width = Some(64); + base.stack_probes = StackProbeType::Inline; +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; + + Target { + llvm_target: "powerpc64-unknown-linux-musl".into(), +diff --git a/compiler/rustc_target/src/spec/targets/powerpc64le_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/powerpc64le_unknown_linux_musl.rs +index f763c37f535..d0335506f16 100644 +--- a/compiler/rustc_target/src/spec/targets/powerpc64le_unknown_linux_musl.rs ++++ b/compiler/rustc_target/src/spec/targets/powerpc64le_unknown_linux_musl.rs +@@ -6,8 +6,6 @@ pub(crate) fn target() -> Target { + base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); + base.max_atomic_width = Some(64); + base.stack_probes = StackProbeType::Inline; +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; + + Target { + llvm_target: "powerpc64le-unknown-linux-musl".into(), +diff --git a/compiler/rustc_target/src/spec/targets/powerpc_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/powerpc_unknown_linux_musl.rs +index 0cd0ea96ad3..5372a83e29a 100644 +--- a/compiler/rustc_target/src/spec/targets/powerpc_unknown_linux_musl.rs ++++ b/compiler/rustc_target/src/spec/targets/powerpc_unknown_linux_musl.rs +@@ -6,8 +6,6 @@ pub(crate) fn target() -> Target { + base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m32"]); + base.max_atomic_width = Some(32); + base.stack_probes = StackProbeType::Inline; +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; + + Target { + llvm_target: "powerpc-unknown-linux-musl".into(), +diff --git a/compiler/rustc_target/src/spec/targets/powerpc_unknown_linux_muslspe.rs b/compiler/rustc_target/src/spec/targets/powerpc_unknown_linux_muslspe.rs +index b86c3c2e8e0..2305db81c5e 100644 +--- a/compiler/rustc_target/src/spec/targets/powerpc_unknown_linux_muslspe.rs ++++ b/compiler/rustc_target/src/spec/targets/powerpc_unknown_linux_muslspe.rs +@@ -6,8 +6,6 @@ pub(crate) fn target() -> Target { + base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-mspe"]); + base.max_atomic_width = Some(32); + base.stack_probes = StackProbeType::Inline; +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; + + Target { + llvm_target: "powerpc-unknown-linux-muslspe".into(), +diff --git a/compiler/rustc_target/src/spec/targets/riscv32gc_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/riscv32gc_unknown_linux_musl.rs +index a07429bb0c5..cf2d7669a8a 100644 +--- a/compiler/rustc_target/src/spec/targets/riscv32gc_unknown_linux_musl.rs ++++ b/compiler/rustc_target/src/spec/targets/riscv32gc_unknown_linux_musl.rs +@@ -23,8 +23,7 @@ pub(crate) fn target() -> Target { + llvm_abiname: "ilp32d".into(), + max_atomic_width: Some(32), + supported_split_debuginfo: Cow::Borrowed(&[SplitDebuginfo::Off]), +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- crt_static_default: true, ++ crt_static_default: false, + ..base::linux_musl::opts() + }, + } +diff --git a/compiler/rustc_target/src/spec/targets/s390x_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/s390x_unknown_linux_musl.rs +index fbe8c48eca7..7a78004927b 100644 +--- a/compiler/rustc_target/src/spec/targets/s390x_unknown_linux_musl.rs ++++ b/compiler/rustc_target/src/spec/targets/s390x_unknown_linux_musl.rs +@@ -12,8 +12,6 @@ pub(crate) fn target() -> Target { + base.stack_probes = StackProbeType::Inline; + base.supported_sanitizers = + SanitizerSet::ADDRESS | SanitizerSet::LEAK | SanitizerSet::MEMORY | SanitizerSet::THREAD; +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; + + Target { + llvm_target: "s390x-unknown-linux-musl".into(), +diff --git a/compiler/rustc_target/src/spec/targets/thumbv7neon_unknown_linux_musleabihf.rs b/compiler/rustc_target/src/spec/targets/thumbv7neon_unknown_linux_musleabihf.rs +index 1149b6d16eb..e1e060c211d 100644 +--- a/compiler/rustc_target/src/spec/targets/thumbv7neon_unknown_linux_musleabihf.rs ++++ b/compiler/rustc_target/src/spec/targets/thumbv7neon_unknown_linux_musleabihf.rs +@@ -27,8 +27,7 @@ pub(crate) fn target() -> Target { + features: "+v7,+thumb-mode,+thumb2,+vfp3,+neon".into(), + max_atomic_width: Some(64), + mcount: "\u{1}mcount".into(), +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- crt_static_default: true, ++ crt_static_default: false, + ..base::linux_musl::opts() + }, + } +diff --git a/compiler/rustc_target/src/spec/targets/x86_64_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/x86_64_unknown_linux_musl.rs +index 8dcdc5be8a9..8be0f335db9 100644 +--- a/compiler/rustc_target/src/spec/targets/x86_64_unknown_linux_musl.rs ++++ b/compiler/rustc_target/src/spec/targets/x86_64_unknown_linux_musl.rs +@@ -14,8 +14,6 @@ pub(crate) fn target() -> Target { + | SanitizerSet::MEMORY + | SanitizerSet::THREAD; + base.supports_xray = true; +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; + + Target { + llvm_target: "x86_64-unknown-linux-musl".into(), +-- +2.45.3 + diff --git a/dev-lang/rust/rust-1.71.1-r100.ebuild b/dev-lang/rust/rust-1.71.1-r101.ebuild index dedaab4fcbad..ae1366fb5ce3 100644 --- a/dev-lang/rust/rust-1.71.1-r100.ebuild +++ b/dev-lang/rust/rust-1.71.1-r101.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -38,17 +38,25 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai LoongArch Mips MSP43 ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} -ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +# https://github.com/rust-lang/llvm-project/blob/rustc-1.71.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=() +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA" SLOT="${PV}" -IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation for _x in "${ALL_LLVM_TARGETS[@]}"; do LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) @@ -56,7 +64,7 @@ LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( - >=sys-devel/gcc-4.7 + >=sys-devel/gcc-4.7[cxx] >=llvm-core/clang-3.5 ) !system-llvm? ( @@ -239,13 +247,13 @@ src_configure() { rust_target="$(rust_abi)" - LLVM_EXPERIMENTAL_TARGETS=() - for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if use llvm_targets_${_x} ; then - LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) fi done - LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]} + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} local cm_btype="$(usex debug DEBUG RELEASE)" cat <<- _EOF_ > "${S}"/config.toml @@ -257,7 +265,7 @@ src_configure() { assertions = $(toml_usex debug) ninja = true targets = "${LLVM_TARGETS// /;}" - experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" link-shared = $(toml_usex system-llvm) $(if is_libcxx_linked; then # https://bugs.gentoo.org/732632 @@ -329,7 +337,7 @@ src_configure() { parallel-compiler = $(toml_usex parallel-compiler) channel = "$(usex nightly nightly stable)" description = "gentoo" - rpath = false + rpath = true verbose-tests = true optimize-tests = $(toml_usex !debug) codegen-tests = true @@ -586,7 +594,6 @@ src_install() { dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" newenvd - "50${P}" <<-_EOF_ - LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}" MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}" _EOF_ diff --git a/dev-lang/rust/rust-1.74.1-r100.ebuild b/dev-lang/rust/rust-1.74.1-r101.ebuild index d131b800b874..3e8a2fb536d3 100644 --- a/dev-lang/rust/rust-1.74.1-r100.ebuild +++ b/dev-lang/rust/rust-1.74.1-r101.ebuild @@ -44,17 +44,25 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} -ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +# https://github.com/rust-lang/llvm-project/blob/rustc-1.74.1/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" -IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri mrustc-bootstrap nightly parallel-compiler rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri mrustc-bootstrap nightly parallel-compiler rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation for _x in "${ALL_LLVM_TARGETS[@]}"; do LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) @@ -62,7 +70,7 @@ LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( - >=sys-devel/gcc-4.7 + >=sys-devel/gcc-4.7[cxx] >=llvm-core/clang-3.5 ) !system-llvm? ( @@ -297,13 +305,13 @@ src_configure() { rust_build="$(rust_abi "${CBUILD}")" rust_host="$(rust_abi "${CHOST}")" - LLVM_EXPERIMENTAL_TARGETS=() - for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if use llvm_targets_${_x} ; then - LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) fi done - LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]} + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} local cm_btype="$(usex debug DEBUG RELEASE)" cat <<- _EOF_ > "${S}"/config.toml @@ -315,7 +323,7 @@ src_configure() { assertions = $(toml_usex debug) ninja = true targets = "${LLVM_TARGETS// /;}" - experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" link-shared = $(toml_usex system-llvm) $(if is_libcxx_linked; then # https://bugs.gentoo.org/732632 @@ -396,7 +404,7 @@ src_configure() { parallel-compiler = $(toml_usex parallel-compiler) channel = "$(usex nightly nightly stable)" description = "gentoo" - rpath = false + rpath = true verbose-tests = true optimize-tests = $(toml_usex !debug) codegen-tests = true @@ -899,7 +907,6 @@ src_install() { dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" newenvd - "50${P}" <<-_EOF_ - LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}" MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}" _EOF_ diff --git a/dev-lang/rust/rust-1.75.0-r100.ebuild b/dev-lang/rust/rust-1.75.0-r101.ebuild index 478f58c567f0..c0b81f631aa2 100644 --- a/dev-lang/rust/rust-1.75.0-r100.ebuild +++ b/dev-lang/rust/rust-1.75.0-r101.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -39,17 +39,25 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} -ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +# https://github.com/rust-lang/llvm-project/blob/rustc-1.75.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" -IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation for _x in "${ALL_LLVM_TARGETS[@]}"; do LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) @@ -57,7 +65,7 @@ LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( - >=sys-devel/gcc-4.7 + >=sys-devel/gcc-4.7[cxx] >=llvm-core/clang-3.5 ) !system-llvm? ( @@ -263,13 +271,13 @@ src_configure() { rust_build="$(rust_abi "${CBUILD}")" rust_host="$(rust_abi "${CHOST}")" - LLVM_EXPERIMENTAL_TARGETS=() - for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if use llvm_targets_${_x} ; then - LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) fi done - LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]} + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} local cm_btype="$(usex debug DEBUG RELEASE)" cat <<- _EOF_ > "${S}"/config.toml @@ -281,7 +289,7 @@ src_configure() { assertions = $(toml_usex debug) ninja = true targets = "${LLVM_TARGETS// /;}" - experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" link-shared = $(toml_usex system-llvm) $(if is_libcxx_linked; then # https://bugs.gentoo.org/732632 @@ -362,7 +370,7 @@ src_configure() { parallel-compiler = $(toml_usex parallel-compiler) channel = "$(usex nightly nightly stable)" description = "gentoo" - rpath = false + rpath = true verbose-tests = true optimize-tests = $(toml_usex !debug) codegen-tests = true @@ -619,7 +627,6 @@ src_install() { dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" newenvd - "50${P}" <<-_EOF_ - LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}" MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}" _EOF_ diff --git a/dev-lang/rust/rust-1.76.0-r100.ebuild b/dev-lang/rust/rust-1.76.0-r101.ebuild index 364d59bed5b6..f6114fd34e18 100644 --- a/dev-lang/rust/rust-1.76.0-r100.ebuild +++ b/dev-lang/rust/rust-1.76.0-r101.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -39,7 +39,12 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} -ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +# https://github.com/rust-lang/llvm-project/blob/rustc-1.76.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" @@ -50,6 +55,9 @@ LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation for _x in "${ALL_LLVM_TARGETS[@]}"; do LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) @@ -57,7 +65,7 @@ LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( - >=sys-devel/gcc-4.7 + >=sys-devel/gcc-4.7[cxx] >=llvm-core/clang-3.5 ) !system-llvm? ( @@ -262,13 +270,13 @@ src_configure() { rust_build="$(rust_abi "${CBUILD}")" rust_host="$(rust_abi "${CHOST}")" - LLVM_EXPERIMENTAL_TARGETS=() - for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if use llvm_targets_${_x} ; then - LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) fi done - LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]} + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} local cm_btype="$(usex debug DEBUG RELEASE)" cat <<- _EOF_ > "${S}"/config.toml @@ -280,7 +288,7 @@ src_configure() { assertions = $(toml_usex debug) ninja = true targets = "${LLVM_TARGETS// /;}" - experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" link-shared = $(toml_usex system-llvm) $(if is_libcxx_linked; then # https://bugs.gentoo.org/732632 @@ -361,7 +369,7 @@ src_configure() { parallel-compiler = $(toml_usex parallel-compiler) channel = "$(usex nightly nightly stable)" description = "gentoo" - rpath = false + rpath = true verbose-tests = true optimize-tests = $(toml_usex !debug) codegen-tests = true @@ -536,7 +544,6 @@ src_install() { dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" newenvd - "50${P}" <<-_EOF_ - LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}" MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}" _EOF_ diff --git a/dev-lang/rust/rust-1.77.1-r100.ebuild b/dev-lang/rust/rust-1.77.1-r101.ebuild index 5461a2a6b93e..8ecaf535a291 100644 --- a/dev-lang/rust/rust-1.77.1-r100.ebuild +++ b/dev-lang/rust/rust-1.77.1-r101.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -39,7 +39,12 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} -ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +# https://github.com/rust-lang/llvm-project/blob/rustc-1.77.1/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" @@ -50,6 +55,9 @@ LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation for _x in "${ALL_LLVM_TARGETS[@]}"; do LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) @@ -57,7 +65,7 @@ LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( - >=sys-devel/gcc-4.7 + >=sys-devel/gcc-4.7[cxx] >=llvm-core/clang-3.5 ) !system-llvm? ( @@ -261,13 +269,13 @@ src_configure() { rust_build="$(rust_abi "${CBUILD}")" rust_host="$(rust_abi "${CHOST}")" - LLVM_EXPERIMENTAL_TARGETS=() - for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if use llvm_targets_${_x} ; then - LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) fi done - LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]} + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} local cm_btype="$(usex debug DEBUG RELEASE)" cat <<- _EOF_ > "${S}"/config.toml @@ -279,7 +287,7 @@ src_configure() { assertions = $(toml_usex debug) ninja = true targets = "${LLVM_TARGETS// /;}" - experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" link-shared = $(toml_usex system-llvm) $(if is_libcxx_linked; then # https://bugs.gentoo.org/732632 @@ -360,7 +368,7 @@ src_configure() { parallel-compiler = $(toml_usex parallel-compiler) channel = "$(usex nightly nightly stable)" description = "gentoo" - rpath = false + rpath = true verbose-tests = true optimize-tests = $(toml_usex !debug) codegen-tests = true @@ -618,7 +626,6 @@ src_install() { dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" newenvd - "50${P}" <<-_EOF_ - LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}" MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}" _EOF_ diff --git a/dev-lang/rust/rust-1.78.0-r100.ebuild b/dev-lang/rust/rust-1.78.0-r101.ebuild index 19a64890ab0b..f87df749f847 100644 --- a/dev-lang/rust/rust-1.78.0-r100.ebuild +++ b/dev-lang/rust/rust-1.78.0-r101.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -39,7 +39,12 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} -ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +# https://github.com/rust-lang/llvm-project/blob/rustc-1.78.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" @@ -50,6 +55,9 @@ LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation for _x in "${ALL_LLVM_TARGETS[@]}"; do LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) @@ -57,7 +65,7 @@ LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( - >=sys-devel/gcc-4.7 + >=sys-devel/gcc-4.7[cxx] >=llvm-core/clang-3.5 ) !system-llvm? ( @@ -261,13 +269,13 @@ src_configure() { rust_build="$(rust_abi "${CBUILD}")" rust_host="$(rust_abi "${CHOST}")" - LLVM_EXPERIMENTAL_TARGETS=() - for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if use llvm_targets_${_x} ; then - LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) fi done - LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]} + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} local cm_btype="$(usex debug DEBUG RELEASE)" cat <<- _EOF_ > "${S}"/config.toml @@ -278,7 +286,7 @@ src_configure() { assertions = $(toml_usex debug) ninja = true targets = "${LLVM_TARGETS// /;}" - experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" link-shared = $(toml_usex system-llvm) $(if is_libcxx_linked; then # https://bugs.gentoo.org/732632 @@ -359,7 +367,7 @@ src_configure() { parallel-compiler = $(toml_usex parallel-compiler) channel = "$(usex nightly nightly stable)" description = "gentoo" - rpath = false + rpath = true verbose-tests = true optimize-tests = $(toml_usex !debug) codegen-tests = true @@ -620,7 +628,6 @@ src_install() { dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" newenvd - "50${P}" <<-_EOF_ - LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}" MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}" _EOF_ diff --git a/dev-lang/rust/rust-1.79.0-r100.ebuild b/dev-lang/rust/rust-1.79.0-r101.ebuild index 19a64890ab0b..96171bb99b28 100644 --- a/dev-lang/rust/rust-1.79.0-r100.ebuild +++ b/dev-lang/rust/rust-1.79.0-r101.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -39,7 +39,12 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} -ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +# https://github.com/rust-lang/llvm-project/blob/rustc-1.79.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" @@ -50,6 +55,9 @@ LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation for _x in "${ALL_LLVM_TARGETS[@]}"; do LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) @@ -57,7 +65,7 @@ LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( - >=sys-devel/gcc-4.7 + >=sys-devel/gcc-4.7[cxx] >=llvm-core/clang-3.5 ) !system-llvm? ( @@ -261,13 +269,13 @@ src_configure() { rust_build="$(rust_abi "${CBUILD}")" rust_host="$(rust_abi "${CHOST}")" - LLVM_EXPERIMENTAL_TARGETS=() - for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if use llvm_targets_${_x} ; then - LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) fi done - LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]} + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} local cm_btype="$(usex debug DEBUG RELEASE)" cat <<- _EOF_ > "${S}"/config.toml @@ -278,7 +286,7 @@ src_configure() { assertions = $(toml_usex debug) ninja = true targets = "${LLVM_TARGETS// /;}" - experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" link-shared = $(toml_usex system-llvm) $(if is_libcxx_linked; then # https://bugs.gentoo.org/732632 @@ -359,7 +367,7 @@ src_configure() { parallel-compiler = $(toml_usex parallel-compiler) channel = "$(usex nightly nightly stable)" description = "gentoo" - rpath = false + rpath = true verbose-tests = true optimize-tests = $(toml_usex !debug) codegen-tests = true @@ -620,7 +628,6 @@ src_install() { dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" newenvd - "50${P}" <<-_EOF_ - LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}" MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}" _EOF_ diff --git a/dev-lang/rust/rust-1.80.1-r100.ebuild b/dev-lang/rust/rust-1.80.1-r101.ebuild index fb5eef4568b5..e535b914f811 100644 --- a/dev-lang/rust/rust-1.80.1-r100.ebuild +++ b/dev-lang/rust/rust-1.80.1-r101.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -39,7 +39,12 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} -ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +# https://github.com/rust-lang/llvm-project/blob/rustc-1.80.1/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" @@ -50,6 +55,9 @@ LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation for _x in "${ALL_LLVM_TARGETS[@]}"; do LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) @@ -57,7 +65,7 @@ LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( - >=sys-devel/gcc-4.7 + >=sys-devel/gcc-4.7[cxx] >=llvm-core/clang-3.5 ) !system-llvm? ( @@ -260,13 +268,13 @@ src_configure() { rust_build="$(rust_abi "${CBUILD}")" rust_host="$(rust_abi "${CHOST}")" - LLVM_EXPERIMENTAL_TARGETS=() - for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if use llvm_targets_${_x} ; then - LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) fi done - LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]} + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} local cm_btype="$(usex debug DEBUG RELEASE)" cat <<- _EOF_ > "${S}"/config.toml @@ -277,7 +285,7 @@ src_configure() { assertions = $(toml_usex debug) ninja = true targets = "${LLVM_TARGETS// /;}" - experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" link-shared = $(toml_usex system-llvm) $(if is_libcxx_linked; then # https://bugs.gentoo.org/732632 @@ -358,7 +366,7 @@ src_configure() { parallel-compiler = $(toml_usex parallel-compiler) channel = "$(usex nightly nightly stable)" description = "gentoo" - rpath = false + rpath = true verbose-tests = true optimize-tests = $(toml_usex !debug) codegen-tests = true @@ -618,7 +626,6 @@ src_install() { dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" newenvd - "50${P}" <<-_EOF_ - LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}" MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}" _EOF_ diff --git a/dev-lang/rust/rust-1.81.0-r100.ebuild b/dev-lang/rust/rust-1.81.0-r101.ebuild index 93dfa988757c..c6fee6b41ad7 100644 --- a/dev-lang/rust/rust-1.81.0-r100.ebuild +++ b/dev-lang/rust/rust-1.81.0-r101.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -40,7 +40,12 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} -ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +# https://github.com/rust-lang/llvm-project/blob/rustc-1.81.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" @@ -51,6 +56,9 @@ LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation for _x in "${ALL_LLVM_TARGETS[@]}"; do LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) @@ -58,7 +66,7 @@ LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( - >=sys-devel/gcc-4.7 + >=sys-devel/gcc-4.7[cxx] >=llvm-core/clang-3.5 ) !system-llvm? ( @@ -264,13 +272,13 @@ src_configure() { rust_build="$(rust_abi "${CBUILD}")" rust_host="$(rust_abi "${CHOST}")" - LLVM_EXPERIMENTAL_TARGETS=() - for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if use llvm_targets_${_x} ; then - LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) fi done - LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]} + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} local cm_btype="$(usex debug DEBUG RELEASE)" cat <<- _EOF_ > "${S}"/config.toml @@ -281,7 +289,7 @@ src_configure() { assertions = $(toml_usex debug) ninja = true targets = "${LLVM_TARGETS// /;}" - experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" link-shared = $(toml_usex system-llvm) $(if is_libcxx_linked; then # https://bugs.gentoo.org/732632 @@ -362,7 +370,7 @@ src_configure() { parallel-compiler = $(toml_usex parallel-compiler) channel = "$(usex nightly nightly stable)" description = "gentoo" - rpath = false + rpath = true verbose-tests = true optimize-tests = $(toml_usex !debug) codegen-tests = true @@ -622,7 +630,6 @@ src_install() { dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" newenvd - "50${P}" <<-_EOF_ - LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}" MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}" _EOF_ diff --git a/dev-lang/rust/rust-1.82.0-r101.ebuild b/dev-lang/rust/rust-1.82.0-r102.ebuild index 1f70f958d492..d68d0e8f12d8 100644 --- a/dev-lang/rust/rust-1.82.0-r101.ebuild +++ b/dev-lang/rust/rust-1.82.0-r102.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -39,7 +39,12 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} -ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +# https://github.com/rust-lang/llvm-project/blob/rustc-1.82.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" @@ -50,6 +55,9 @@ LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation for _x in "${ALL_LLVM_TARGETS[@]}"; do LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) @@ -57,7 +65,7 @@ LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( - >=sys-devel/gcc-4.7 + >=sys-devel/gcc-4.7[cxx] >=llvm-core/clang-3.5 ) !system-llvm? ( @@ -272,13 +280,13 @@ src_configure() { rust_build="$(rust_abi "${CBUILD}")" rust_host="$(rust_abi "${CHOST}")" - LLVM_EXPERIMENTAL_TARGETS=() - for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if use llvm_targets_${_x} ; then - LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) fi done - LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]} + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} local cm_btype="$(usex debug DEBUG RELEASE)" cat <<- _EOF_ > "${S}"/config.toml @@ -289,7 +297,7 @@ src_configure() { assertions = $(toml_usex debug) ninja = true targets = "${LLVM_TARGETS// /;}" - experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" link-shared = $(toml_usex system-llvm) $(if is_libcxx_linked; then # https://bugs.gentoo.org/732632 @@ -370,7 +378,7 @@ src_configure() { parallel-compiler = $(toml_usex parallel-compiler) channel = "$(usex nightly nightly stable)" description = "gentoo" - rpath = false + rpath = true verbose-tests = true optimize-tests = $(toml_usex !debug) codegen-tests = true @@ -632,7 +640,6 @@ src_install() { dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" newenvd - "50${P}" <<-_EOF_ - LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}" MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}" _EOF_ diff --git a/dev-lang/rust/rust-1.83.0-r1.ebuild b/dev-lang/rust/rust-1.83.0-r2.ebuild index 2262915b0d62..08cb004f06d1 100644 --- a/dev-lang/rust/rust-1.83.0-r1.ebuild +++ b/dev-lang/rust/rust-1.83.0-r2.ebuild @@ -39,7 +39,12 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} -ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +# https://github.com/rust-lang/llvm-project/blob/rustc-1.83.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" @@ -50,6 +55,9 @@ LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation for _x in "${ALL_LLVM_TARGETS[@]}"; do LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) @@ -57,7 +65,7 @@ LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( - >=sys-devel/gcc-4.7 + >=sys-devel/gcc-4.7[cxx] >=llvm-core/clang-3.5 ) !system-llvm? ( @@ -272,13 +280,13 @@ src_configure() { rust_build="$(rust_abi "${CBUILD}")" rust_host="$(rust_abi "${CHOST}")" - LLVM_EXPERIMENTAL_TARGETS=() - for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if use llvm_targets_${_x} ; then - LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) fi done - LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]} + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} local cm_btype="$(usex debug DEBUG RELEASE)" cat <<- _EOF_ > "${S}"/config.toml @@ -289,7 +297,7 @@ src_configure() { assertions = $(toml_usex debug) ninja = true targets = "${LLVM_TARGETS// /;}" - experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" link-shared = $(toml_usex system-llvm) $(if is_libcxx_linked; then # https://bugs.gentoo.org/732632 @@ -370,7 +378,7 @@ src_configure() { parallel-compiler = $(toml_usex parallel-compiler) channel = "$(usex nightly nightly stable)" description = "gentoo" - rpath = false + rpath = true verbose-tests = true optimize-tests = $(toml_usex !debug) codegen-tests = true @@ -632,7 +640,6 @@ src_install() { dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" newenvd - "50${P}" <<-_EOF_ - LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}" MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}" _EOF_ diff --git a/dev-lang/rust/rust-1.84.0.ebuild b/dev-lang/rust/rust-1.84.0-r1.ebuild index f07d34111b3e..4414a294a3d4 100644 --- a/dev-lang/rust/rust-1.84.0.ebuild +++ b/dev-lang/rust/rust-1.84.0-r1.ebuild @@ -39,6 +39,10 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} +# https://github.com/rust-lang/llvm-project/blob/rustc-1.84.0/llvm/CMakeLists.txt +_ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +ALL_LLVM_EXPERIMENTAL_TARGETS=( ) + LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" @@ -48,6 +52,12 @@ LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation for _x in "${ALL_LLVM_TARGETS[@]}"; do LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + for _xx in "${_ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do + if [[ "${_xx}" == "${_x}" ]] ; then + ALL_LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) + break + fi + done done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) @@ -55,7 +65,7 @@ LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( - >=sys-devel/gcc-4.7 + >=sys-devel/gcc-4.7[cxx] >=llvm-core/clang-3.5 ) !system-llvm? ( @@ -269,6 +279,14 @@ src_configure() { rust_build="$(rust_abi "${CBUILD}")" rust_host="$(rust_abi "${CHOST}")" + LLVM_EXPERIMENTAL_TARGETS=() + for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do + if use llvm_targets_${_x} ; then + LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) + fi + done + LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]} + local cm_btype="$(usex debug DEBUG RELEASE)" cat <<- _EOF_ > "${S}"/config.toml # https://github.com/rust-lang/rust/issues/135358 (bug #947897) @@ -280,7 +298,7 @@ src_configure() { assertions = $(toml_usex debug) ninja = true targets = "${LLVM_TARGETS// /;}" - experimental-targets = "" + experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}" link-shared = $(toml_usex system-llvm) $(if is_libcxx_linked; then # https://bugs.gentoo.org/732632 @@ -361,7 +379,7 @@ src_configure() { parallel-compiler = $(toml_usex parallel-compiler) channel = "$(usex nightly nightly stable)" description = "gentoo" - rpath = false + rpath = true verbose-tests = true optimize-tests = $(toml_usex !debug) codegen-tests = true @@ -623,7 +641,6 @@ src_install() { dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" newenvd - "50${P}" <<-_EOF_ - LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}" MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}" _EOF_ @@ -671,44 +688,8 @@ src_install() { fi } -pkg_preinst() { - # 943308 and friends; basically --keep-going can forget to unmerge old rust - # but the soft blocker allows us to install conflicting files. - # This results in duplicated .{rlib,so} files which confuses rustc and results in - # the need for manual intervention. - if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then - # we need to find all .{rlib,so} files in the old rust lib directory - # and store them in an array for later use - readarray -d '' old_rust_libs < <( - find "${EROOT}/usr/lib/rust/${PV}/lib/rustlib" \ - -type f \( -name '*.rlib' -o -name '*.so' \) -print0) - export old_rust_libs - if [[ ${#old_rust_libs[@]} -gt 0 ]]; then - einfo "Found old .rlib and .so files in the old rust lib directory" - else - die "Found no old .rlib and .so files but old rust version is installed. Bailing!" - fi - fi -} - pkg_postinst() { - if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then - # Be _extra_ careful here as we're removing files from the live filesystem - local f - for f in "${old_rust_libs[@]}"; do - [[ -f ${f} ]] || die "old_rust_libs array contains non-existent file" - local base_name="${f%-*}" - local ext="${f##*.}" - local matching_files=("${base_name}"-*.${ext}) - if [[ ${#matching_files[@]} -ne 2 ]]; then - die "Expected exactly two files matching ${base_name}-\*.rlib, but found ${#matching_files[@]}" - fi - einfo "Removing old .rlib file ${f}" - rm "${f}" || die - done - fi - eselect rust update if has_version dev-debug/gdb || has_version llvm-core/lldb; then diff --git a/dev-lang/rust/rust-1.82.0-r100.ebuild b/dev-lang/rust/rust-1.84.1-r1.ebuild index 25fbe716b6a7..ae4c72a90cf2 100644 --- a/dev-lang/rust/rust-1.82.0-r100.ebuild +++ b/dev-lang/rust/rust-1.84.1-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -39,7 +39,12 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} -ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +# https://github.com/rust-lang/llvm-project/blob/rustc-1.84.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" @@ -50,6 +55,9 @@ LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation for _x in "${ALL_LLVM_TARGETS[@]}"; do LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) @@ -57,7 +65,7 @@ LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( - >=sys-devel/gcc-4.7 + >=sys-devel/gcc-4.7[cxx] >=llvm-core/clang-3.5 ) !system-llvm? ( @@ -134,9 +142,9 @@ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc PATCHES=( "${FILESDIR}"/1.78.0-musl-dynamic-linking.patch - "${FILESDIR}"/1.74.1-cross-compile-libz.patch - #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh + "${FILESDIR}"/1.83.0-cross-compile-libz.patch "${FILESDIR}"/1.67.0-doc-wasm.patch + "${FILESDIR}"/1.84.1-fix-cross.patch # already upstreamed ) clear_vendor_checksums() { @@ -271,16 +279,18 @@ src_configure() { rust_build="$(rust_abi "${CBUILD}")" rust_host="$(rust_abi "${CHOST}")" - LLVM_EXPERIMENTAL_TARGETS=() - for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if use llvm_targets_${_x} ; then - LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) fi done - LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]} + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} local cm_btype="$(usex debug DEBUG RELEASE)" cat <<- _EOF_ > "${S}"/config.toml + # https://github.com/rust-lang/rust/issues/135358 (bug #947897) + profile = "dist" [llvm] download-ci-llvm = false optimize = $(toml_usex !debug) @@ -288,7 +298,7 @@ src_configure() { assertions = $(toml_usex debug) ninja = true targets = "${LLVM_TARGETS// /;}" - experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" link-shared = $(toml_usex system-llvm) $(if is_libcxx_linked; then # https://bugs.gentoo.org/732632 @@ -369,7 +379,7 @@ src_configure() { parallel-compiler = $(toml_usex parallel-compiler) channel = "$(usex nightly nightly stable)" description = "gentoo" - rpath = false + rpath = true verbose-tests = true optimize-tests = $(toml_usex !debug) codegen-tests = true @@ -631,7 +641,6 @@ src_install() { dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" newenvd - "50${P}" <<-_EOF_ - LDPATH="${EPREFIX}/usr/lib/rust/lib-${PV}" MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}" _EOF_ @@ -679,67 +688,8 @@ src_install() { fi } -pkg_preinst() { - # 943308 and friends; basically --keep-going can forget to unmerge old rust - # but the soft blocker allows us to install conflicting files. - # This results in duplicated .{rlib,so} files which confuses rustc and results in - # the need for manual intervention. - if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then - # we need to find all .{rlib,so} files in the old rust lib directory - # and store them in an array for later use - readarray -d '' old_rust_libs < <( - find "${EROOT}/usr/lib/rust/${PV}/lib/rustlib" \ - -type f \( -name '*.rlib' -o -name '*.so' \) -print0) - export old_rust_libs - if [[ ${#old_rust_libs[@]} -gt 0 ]]; then - einfo "Found old .rlib and .so files in the old rust lib directory" - else - die "Found no old .rlib and .so files but old rust version is installed. Bailing!" - fi - fi -} - pkg_postinst() { - local old_rust="dev-lang/rust:stable/$(ver_cut 1-2)" - if has_version -b ${old_rust}; then - # Be _extra_ careful here as we're removing files from the live filesystem - local f - local only_one_file=() - einfo "Tidying up libraries files from non-slotted \`${old_rust}\`." - for f in "${old_rust_libs[@]}"; do - [[ -f ${f} ]] || die "old_rust_libs array contains non-existent file" - local base_name="${f%-*}" - local ext="${f##*.}" - local matching_files=("${base_name}"-*.${ext}) - case ${#matching_files[@]} in - 2) - einfo "Removing old .${ext}: ${f}" - rm "${f}" || die - ;; - 1) - # Turns out fingerprints are not as unique as we'd thought, _sometimes_ they collide, - # so we may have already installed over the old file. - # We'll warn about this just in case, but it's probably fine. - only_one_file+=( "${matching_files[0]}" ) - ;; - *) - die "Expected one or two files matching ${base_name}-\*.rlib, but found ${#matching_files[@]}" - ;; - esac - done - if [[ ${#only_one_file} -gt 0 ]]; then - einfo "While tidying up non-slotted rust libraries for \`${old_rust}\`," - einfo "the following file(s) did not have a duplicate where one was expected:" - for f in "${only_one_file[@]}"; do - einfo " * ${f}" - done - einfo "" - einfo "This is unlikely to cause problems; the fingerprint for the library ended up being the same." - einfo "However, if you encounter any issues please report them to the Gentoo Rust Team." - fi - fi - eselect rust update if has_version dev-debug/gdb || has_version llvm-core/lldb; then @@ -747,8 +697,13 @@ pkg_postinst() { elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." fi - optfeature "Emacs support" "app-emacs/rust-mode" - optfeature "Vim support" "app-vim/rust-vim" + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi } pkg_postrm() { diff --git a/dev-lang/rust/rust-1.85.0-r1.ebuild b/dev-lang/rust/rust-1.85.0-r1.ebuild new file mode 100644 index 000000000000..5a2b6ef48451 --- /dev/null +++ b/dev-lang/rust/rust-1.85.0-r1.ebuild @@ -0,0 +1,800 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 19 ) +PYTHON_COMPAT=( python3_{10..13} ) + +RUST_MAX_VER=${PV%%_*} +if [[ ${PV} == *9999* ]]; then + RUST_MIN_VER="1.85.0" # Update this as new `beta` releases come out. +elif [[ ${PV} == *beta* ]]; then + # Enforce that `beta` is built from `stable`. + # While uncommon it is possible for feature changes within `beta` to result + # in an older snapshot being unable to build a newer one without modifying the sources. + # 'stable' releases should always be able to build a beta snapshot so just use those. + RUST_MAX_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).1" + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +else + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +fi + +inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ + multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/rust-lang/rust.git" + EGIT_SUBMODULES=( + "*" + "-src/gcc" + ) +elif [[ ${PV} == *beta* ]]; then + # Identify the snapshot date of the beta release: + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + MY_P="rustc-beta" + SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc + -> rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/${MY_P}-src" +else + MY_P="rustc-${PV}" + SRC_URI="https://static.rust-lang.org/dist/${MY_P}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${MY_P}-src.tar.xz.asc ) + " + S="${WORKDIR}/${MY_P}-src" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +DESCRIPTION="Systems programming language originally developed by Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +# keep in sync with llvm ebuild of the same version as bundled one. +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai + LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE + WebAssembly X86 XCore Xtensa ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} + +# https://github.com/rust-lang/llvm-project/blob/rustc-1.84.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable + +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" + +if [[ ${PV} = *9999* ]]; then + # These USE flags require nightly rust + IUSE+=" miri" +fi + +LLVM_DEPEND=() +# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation +for _x in "${ALL_LLVM_TARGETS[@]}"; do + LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi +done +LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) +LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) + +BDEPEND="${PYTHON_DEPS} + app-eselect/eselect-rust + || ( + >=sys-devel/gcc-4.7[cxx] + >=llvm-core/clang-3.5 + ) + !system-llvm? ( + >=dev-build/cmake-3.13.4 + app-alternatives/ninja + ) + test? ( dev-debug/gdb ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +DEPEND=" + >=app-arch/xz-utils-5.2 + net-misc/curl:=[http2,ssl] + sys-libs/zlib:= + dev-libs/openssl:0= + system-llvm? ( + ${LLVM_DEPEND[*]} + llvm-libunwind? ( llvm-runtimes/libunwind:= ) + ) + !system-llvm? ( + !llvm-libunwind? ( + elibc_musl? ( sys-libs/libunwind:= ) + ) + ) +" + +RDEPEND="${DEPEND} + app-eselect/eselect-rust + dev-lang/rust-common + sys-apps/lsb-release + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" + +REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) + rust-analyzer? ( rust-src ) + test? ( ${ALL_LLVM_TARGETS[*]} ) + wasm? ( llvm_targets_WebAssembly ) + x86? ( cpu_flags_x86_sse2 ) +" + +# we don't use cmake.eclass, but can get a warning +CMAKE_WARN_UNUSED_CLI=no + +QA_FLAGS_IGNORED=" + usr/lib/${PN}/${SLOT}/bin/.* + usr/lib/${PN}/${SLOT}/libexec/.* + usr/lib/${PN}/${SLOT}/lib/lib.*.so + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_SONAME=" + usr/lib/${PN}/${SLOT}/lib/lib.*.so.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_PRESTRIPPED=" + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-llvm-dwp + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/self-contained/crtn.o +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="usr/lib/${PN}/${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +# causes double bootstrap +RESTRICT="test" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc + +PATCHES=( + "${FILESDIR}"/1.85.0-cross-compile-libz.patch + "${FILESDIR}"/1.85.0-musl-dynamic-linking.patch + "${FILESDIR}"/1.67.0-doc-wasm.patch +) + +clear_vendor_checksums() { + sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die +} + +toml_usex() { + usex "${1}" true false +} + +src_unpack() { + if [[ ${PV} = *9999* ]]; then + git-r3_src_unpack + mkdir "${S}/.cargo" || die # The vendor script has a check for .cargo/config{,.toml} + touch "${S}/.cargo/config.toml" || die + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" + local rust_build="" + local rust_host="" + # Configure vendor to use the portage-provided toolchain. This prevents it from + # attempting to fetch a `beta` toolchain from the internet. + cat <<- _EOF_ > "${T}/vendor-config.toml" + [build] + build = "$(rust_abi "${CBUILD}")" + host = ["$(rust_abi "${CHOST}")"] + target = ["$(rust_abi "${CHOST}")"] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + _EOF_ + # We're using git sources so we need to run the Vendor script + # to ensure that all dependencies are present and up-to-date + mkdir "${S}/vendor" || die + # This also compiles the 'build helper', there's no way to avoid this. + ${EPYTHON} "${S}"/x.py vendor -vvv --config="${T}"/vendor-config.toml -j$(makeopts_jobs) || + die "Failed to vendor dependencies" + # TODO: This has to be generated somehow, this is from a 1.84.x tarball I had lying around. + cat <<- _EOF_ > "${S}/.cargo/config.toml" + [source.crates-io] + replace-with = "vendored-sources" + + [source."git+https://github.com/rust-lang/team"] + git = "https://github.com/rust-lang/team" + replace-with = "vendored-sources" + + [source.vendored-sources] + directory = "vendor" + _EOF_ + else + verify-sig_src_unpack + fi +} + +pre_build_checks() { + local M=9216 + # multiply requirements by 1.3 if we are doing x86-multilib + if use amd64; then + M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) + fi + M=$(( $(usex clippy 128 0) + ${M} )) + if [[ ${PV} == *9999* ]]; then + M=$(( $(usex miri 128 0) + ${M} )) + fi + M=$(( $(usex rustfmt 256 0) + ${M} )) + # add 2G if we compile llvm and 256M per llvm_target + if ! use system-llvm; then + M=$(( 2048 + ${M} )) + local ltarget + for ltarget in ${ALL_LLVM_TARGETS[@]}; do + M=$(( $(usex ${ltarget} 256 0) + ${M} )) + done + fi + M=$(( $(usex wasm 256 0) + ${M} )) + M=$(( $(usex debug 2 1) * ${M} )) + eshopts_push -s extglob + if is-flagq '-g?(gdb)?([1-9])'; then + M=$(( 15 * ${M} / 10 )) + fi + eshopts_pop + M=$(( $(usex doc 256 0) + ${M} )) + CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} +} + +llvm_check_deps() { + has_version -r "llvm-core/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]" +} + +# Is LLVM being linked against libc++? +is_libcxx_linked() { + local code='#include <ciso646> +#if defined(_LIBCPP_VERSION) + HAVE_LIBCXX +#endif +' + local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1 + [[ ${out} == *HAVE_LIBCXX* ]] +} + +pkg_pretend() { + pre_build_checks +} + +pkg_setup() { + pre_build_checks + python-any-r1_pkg_setup + + export LIBGIT2_NO_PKG_CONFIG=1 #749381 + if tc-is-cross-compiler; then + use system-llvm && die "USE=system-llvm not allowed when cross-compiling" + local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")" + use "llvm_targets_${cross_llvm_target}" || \ + die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling" + fi + + rust_pkg_setup + + if use system-llvm; then + llvm-r1_pkg_setup + + local llvm_config="$(get_llvm_prefix)/bin/llvm-config" + export LLVM_LINK_SHARED=1 + export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)" + fi +} + +src_prepare() { + if [[ ${PV} = *9999* ]]; then + # We need to update / generate lockfiles for the workspace + ${CARGO} generate-lockfile --offline + + fi + # Rust baselines to Pentium4 on x86, this patch lowers the baseline to i586 when sse2 is not set. + if use x86; then + if ! use cpu_flags_x86_sse2; then + eapply "${FILESDIR}/1.82.0-i586-baseline.patch" + #grep -rl cmd.args.push\(\"-march=i686\" . | xargs sed -i 's/march=i686/-march=i586/g' || die + fi + fi + + default +} + +src_configure() { + if tc-is-cross-compiler; then + export PKG_CONFIG_ALLOW_CROSS=1 + export PKG_CONFIG_PATH="${ESYSROOT}/usr/$(get_libdir)/pkgconfig" + export OPENSSL_INCLUDE_DIR="${ESYSROOT}/usr/include" + export OPENSSL_LIB_DIR="${ESYSROOT}/usr/$(get_libdir)" + fi + + filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 + + local rust_target="" rust_targets="" arch_cflags + + # Collect rust target names to compile standard libs for all ABIs. + for v in $(multilib_get_enabled_abi_pairs); do + rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" + done + if use wasm; then + rust_targets+=",\"wasm32-unknown-unknown\"" + if use system-llvm; then + # un-hardcode rust-lld linker for this target + # https://bugs.gentoo.org/715348 + sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die + fi + fi + rust_targets="${rust_targets#,}" + + # cargo and rustdoc are mandatory and should always be included + local tools='"cargo","rustdoc"' + use clippy && tools+=',"clippy"' + use rustfmt && tools+=',"rustfmt"' + use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' + use rust-src && tools+=',"src"' + + if [[ ${PV} == *9999* ]]; then + use miri && tools+=',"miri"' + fi + + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" + # in case of prefix it will be already prefixed, as --print sysroot returns full path + [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" + + rust_target="$(rust_abi)" + rust_build="$(rust_abi "${CBUILD}")" + rust_host="$(rust_abi "${CHOST}")" + + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) + fi + done + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} + + local cm_btype="$(usex debug DEBUG RELEASE)" + local build_channel + local build_miri="false" + case "${PV}" in + *9999*) + build_channel="nightly" + ;; + *beta*) + build_channel="beta" + ;; + *) + build_channel="stable" + ;; + esac + cat <<- _EOF_ > "${S}"/config.toml + # https://github.com/rust-lang/rust/issues/135358 (bug #947897) + profile = "dist" + [llvm] + download-ci-llvm = false + optimize = $(toml_usex !debug) + release-debuginfo = $(toml_usex debug) + assertions = $(toml_usex debug) + ninja = true + targets = "${LLVM_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" + link-shared = $(toml_usex system-llvm) + $(if is_libcxx_linked; then + # https://bugs.gentoo.org/732632 + echo "use-libcxx = true" + echo "static-libstdcpp = false" + fi) + $(case "${rust_target}" in + i586-*-linux-*) + # https://github.com/rust-lang/rust/issues/93059 + echo 'cflags = "-fcf-protection=none"' + echo 'cxxflags = "-fcf-protection=none"' + echo 'ldflags = "-fcf-protection=none"' + ;; + *) + ;; + esac) + enable-warnings = false + [llvm.build-config] + CMAKE_VERBOSE_MAKEFILE = "ON" + $(if ! tc-is-cross-compiler; then + # When cross-compiling, LLVM is compiled twice, once for host and + # once for target. Unfortunately, this build configuration applies + # to both, which means any flags applicable to one target but not + # the other will break. Conditionally disable respecting user + # flags when cross-compiling. + echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\"" + echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\"" + echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\"" + fi) + [build] + build-stage = 2 + test-stage = 2 + build = "${rust_build}" + host = ["${rust_host}"] + target = [${rust_targets}] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + docs = $(toml_usex doc) + compiler-docs = false + submodules = false + python = "${EPYTHON}" + locked-deps = true + vendor = true + extended = true + tools = [${tools}] + verbose = 2 + sanitizers = false + profiler = true + cargo-native-static = false + [install] + prefix = "${EPREFIX}/usr/lib/${PN}/${SLOT}" + sysconfdir = "etc" + docdir = "share/doc/rust" + bindir = "bin" + libdir = "lib" + mandir = "share/man" + [rust] + # https://github.com/rust-lang/rust/issues/54872 + codegen-units-std = 1 + optimize = true + debug = $(toml_usex debug) + debug-assertions = $(toml_usex debug) + debug-assertions-std = $(toml_usex debug) + debuginfo-level = $(usex debug 2 0) + debuginfo-level-rustc = $(usex debug 2 0) + debuginfo-level-std = $(usex debug 2 0) + debuginfo-level-tools = $(usex debug 2 0) + debuginfo-level-tests = 0 + backtrace = true + incremental = false + $(if ! tc-is-cross-compiler; then + echo "default-linker = \"$(tc-getCC)\"" + fi) + channel = "${build_channel}" + description = "gentoo" + rpath = true + verbose-tests = true + optimize-tests = $(toml_usex !debug) + codegen-tests = true + dist-src = false + remap-debuginfo = true + lld = $(usex system-llvm false $(toml_usex wasm)) + # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it + # https://github.com/rust-lang/rust/issues/74976 + # https://github.com/rust-lang/rust/issues/76526 + deny-warnings = $(usex wasm $(usex doc false true) true) + backtrace-on-ice = true + jemalloc = false + # See https://github.com/rust-lang/rust/issues/121124 + lto = "$(usex lto thin off)" + [dist] + src-tarball = false + compression-formats = ["xz"] + compression-profile = "balanced" + _EOF_ + + for v in $(multilib_get_enabled_abi_pairs); do + rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) + arch_cflags="$(get_abi_CFLAGS ${v##*.})" + + export CFLAGS_${rust_target//-/_}="${arch_cflags}" + + cat <<- _EOF_ >> "${S}"/config.toml + [target.${rust_target}] + ar = "$(tc-getAR)" + cc = "$(tc-getCC)" + cxx = "$(tc-getCXX)" + linker = "$(tc-getCC)" + ranlib = "$(tc-getRANLIB)" + llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/config.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + _EOF_ + fi + # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; + # but we patch it and set to false here as well + if use elibc_musl; then + cat <<- _EOF_ >> "${S}"/config.toml + crt-static = false + musl-root = "$($(tc-getCC) -print-sysroot)/usr" + _EOF_ + fi + done + if use wasm; then + wasm_target="wasm32-unknown-unknown" + export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")" + cat <<- _EOF_ >> "${S}"/config.toml + [target.wasm32-unknown-unknown] + linker = "$(usex system-llvm lld rust-lld)" + # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483 + profiler = false + _EOF_ + fi + + if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below + # experimental cross support + # discussion: https://bugs.gentoo.org/679878 + # TODO: c*flags, clang, system-llvm, cargo.eclass target support + # it would be much better if we could split out stdlib + # complilation to separate ebuild and abuse CATEGORY to + # just install to /usr/lib/rustlib/<target> + + # extra targets defined as a bash array + # spec format: <LLVM target>:<rust-target>:<CTARGET> + # best place would be /etc/portage/env/dev-lang/rust + # Example: + # RUST_CROSS_TARGETS=( + # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu" + # ) + # no extra hand holding is done, no target transformations, all + # values are passed as-is with just basic checks, so it's up to user to supply correct values + # valid rust targets can be obtained with + # rustc --print target-list + # matching cross toolchain has to be installed + # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one) + # only gcc toolchains installed with crossdev are checked for now. + + # BUG: we can't pass host flags to cross compiler, so just filter for now + # BUG: this should be more fine-grained. + filter-flags '-mcpu=*' '-march=*' '-mtune=*' + + local cross_target_spec + for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do + # extracts first element form <LLVM target>:<rust-target>:<CTARGET> + local cross_llvm_target="${cross_target_spec%%:*}" + # extracts toolchain triples, <rust-target>:<CTARGET> + local cross_triples="${cross_target_spec#*:}" + # extracts first element after before : separator + local cross_rust_target="${cross_triples%%:*}" + # extracts last element after : separator + local cross_toolchain="${cross_triples##*:}" + use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled" + command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain" + + cat <<- _EOF_ >> "${S}"/config.toml + [target.${cross_rust_target}] + ar = "${cross_toolchain}-ar" + cc = "${cross_toolchain}-gcc" + cxx = "${cross_toolchain}-g++" + linker = "${cross_toolchain}-gcc" + ranlib = "${cross_toolchain}-ranlib" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/config.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + _EOF_ + fi + if [[ "${cross_toolchain}" == *-musl* ]]; then + cat <<- _EOF_ >> "${S}"/config.toml + musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr" + _EOF_ + fi + + # append cross target to "normal" target list + # example 'target = ["powerpc64le-unknown-linux-gnu"]' + # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]' + + rust_targets="${rust_targets},\"${cross_rust_target}\"" + sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die + + ewarn + ewarn "Enabled ${cross_rust_target} rust target" + ewarn "Using ${cross_toolchain} cross toolchain" + ewarn + if ! has_version -b 'sys-devel/binutils[multitarget]' ; then + ewarn "'sys-devel/binutils[multitarget]' is not installed" + ewarn "'strip' will be unable to strip cross libraries" + ewarn "cross targets will be installed with full debug information" + ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files" + ewarn + ewarn "Alternatively llvm-strip can be used, it supports stripping any target" + ewarn "define STRIP=\"llvm-strip\" to use it (experimental)" + ewarn + fi + done + fi # I_KNOW_WHAT_I_AM_DOING_CROSS + + einfo "Rust configured with the following flags:" + echo + echo RUSTFLAGS="\"${RUSTFLAGS}\"" + echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\"" + echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\"" + echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\"" + env | grep "CARGO_TARGET_.*_RUSTFLAGS=" + env | grep "CFLAGS_.*" + echo + einfo "config.toml contents:" + cat "${S}"/config.toml || die + echo +} + +src_compile() { + RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die +} + +src_test() { + # https://rustc-dev-guide.rust-lang.org/tests/intro.html + + # those are basic and codegen tests. + local tests=( + codegen + codegen-units + compile-fail + incremental + mir-opt + pretty + run-make + ) + + # fails if llvm is not built with ALL targets. + # and known to fail with system llvm sometimes. + use system-llvm || tests+=( assembly ) + + # fragile/expensive/less important tests + # or tests that require extra builds + # TODO: instead of skipping, just make some nonfatal. + if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then + tests+=( + rustdoc + rustdoc-js + rustdoc-js-std + rustdoc-ui + run-make-fulldeps + ui + ui-fulldeps + ) + fi + + local i failed=() + einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}" + for i in "${tests[@]}"; do + local t="src/test/${i}" + einfo "rust_src_test: running ${t}" + if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \ + -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}" + then + failed+=( "${t}" ) + eerror "rust_src_test: ${t} failed" + fi + done + + if [[ ${#failed[@]} -ne 0 ]]; then + eerror "rust_src_test: failure summary: ${failed[@]}" + die "aborting due to test failures" + fi +} + +src_install() { + DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + + docompress /usr/lib/${PN}/${SLOT}/share/man/ + + # bug #689562, #689160 + rm -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d/cargo" || die + rmdir -v "${ED}/usr/lib/${PN}/${SLOT}"/etc{/bash_completion.d,} || die + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + if [[ ${PV} = *9999* ]]; then + use miri && symlinks+=( miri cargo-miri ) + fi + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver> + # need to fix eselect-rust to remove this hack. + local ver_i="${i}-${PV%%_*}" + if [[ -f "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" ]]; then + einfo "Installing ${i} symlink" + ln -v "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" "${ED}/usr/lib/${PN}/${SLOT}/bin/${ver_i}" || die + else + ewarn "${i} symlink requested, but source file not found" + ewarn "please report this" + fi + dosym "../lib/${PN}/${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "${SLOT}/lib" "/usr/lib/${PN}/lib-${SLOT}" + use rust-analyzer && dosym "${SLOT}/libexec" "/usr/lib/${PN}/libexec-${SLOT}" + dosym "${SLOT}/share/man" "/usr/lib/${PN}/man-${SLOT}" + dosym "rust/${SLOT}/lib/rustlib" "/usr/lib/rustlib-${SLOT}" + dosym "../../lib/${PN}/${SLOT}/share/doc/rust" "/usr/share/doc/${P}" + + newenvd - "50${P}" <<-_EOF_ + MANPATH="${EPREFIX}/usr/lib/rust/man-${SLOT}" + _EOF_ + + rm -rf "${ED}/usr/lib/${PN}/${SLOT}"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/bin"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/doc"/*.old || die + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" + fi + if [[ ${SLOT} == *9999* ]] && use miri; then + echo /usr/bin/miri >> "${T}/provider-${P}" + echo /usr/bin/cargo-miri >> "${T}/provider-${P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" + fi + if use rust-analyzer; then + echo /usr/lib/rust/libexec >> "${T}/provider-${P}" + echo /usr/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + + if use dist; then + "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + insinto "/usr/lib/${PN}/${SLOT}/dist" + doins -r "${S}/build/dist/." + fi +} + +pkg_postinst() { + + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/rust/rust-1.85.0.ebuild b/dev-lang/rust/rust-1.85.0.ebuild new file mode 100644 index 000000000000..ce74a475077e --- /dev/null +++ b/dev-lang/rust/rust-1.85.0.ebuild @@ -0,0 +1,799 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 19 ) +PYTHON_COMPAT=( python3_{10..13} ) + +RUST_MAX_VER=${PV%%_*} +if [[ ${PV} == *9999* ]]; then + RUST_MIN_VER="1.85.0" # Update this as new `beta` releases come out. +elif [[ ${PV} == *beta* ]]; then + # Enforce that `beta` is built from `stable`. + # While uncommon it is possible for feature changes within `beta` to result + # in an older snapshot being unable to build a newer one without modifying the sources. + # 'stable' releases should always be able to build a beta snapshot so just use those. + RUST_MAX_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).1" + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +else + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +fi + +inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ + multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/rust-lang/rust.git" + EGIT_SUBMODULES=( + "*" + "-src/gcc" + ) +elif [[ ${PV} == *beta* ]]; then + # Identify the snapshot date of the beta release: + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + MY_P="rustc-beta" + SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc + -> rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/${MY_P}-src" +else + MY_P="rustc-${PV}" + SRC_URI="https://static.rust-lang.org/dist/${MY_P}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${MY_P}-src.tar.xz.asc ) + " + S="${WORKDIR}/${MY_P}-src" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +DESCRIPTION="Systems programming language originally developed by Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +# keep in sync with llvm ebuild of the same version as bundled one. +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai + LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE + WebAssembly X86 XCore Xtensa ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} + +# https://github.com/rust-lang/llvm-project/blob/rustc-1.84.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable + +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" + +if [[ ${PV} = *9999* ]]; then + # These USE flags require nightly rust + IUSE+=" miri" +fi + +LLVM_DEPEND=() +# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation +for _x in "${ALL_LLVM_TARGETS[@]}"; do + LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi +done +LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) +LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) + +BDEPEND="${PYTHON_DEPS} + app-eselect/eselect-rust + || ( + >=sys-devel/gcc-4.7[cxx] + >=llvm-core/clang-3.5 + ) + !system-llvm? ( + >=dev-build/cmake-3.13.4 + app-alternatives/ninja + ) + test? ( dev-debug/gdb ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +DEPEND=" + >=app-arch/xz-utils-5.2 + net-misc/curl:=[http2,ssl] + sys-libs/zlib:= + dev-libs/openssl:0= + system-llvm? ( + ${LLVM_DEPEND[*]} + llvm-libunwind? ( llvm-runtimes/libunwind:= ) + ) + !system-llvm? ( + !llvm-libunwind? ( + elibc_musl? ( sys-libs/libunwind:= ) + ) + ) +" + +RDEPEND="${DEPEND} + app-eselect/eselect-rust + dev-lang/rust-common + sys-apps/lsb-release + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" + +REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) + rust-analyzer? ( rust-src ) + test? ( ${ALL_LLVM_TARGETS[*]} ) + wasm? ( llvm_targets_WebAssembly ) + x86? ( cpu_flags_x86_sse2 ) +" + +# we don't use cmake.eclass, but can get a warning +CMAKE_WARN_UNUSED_CLI=no + +QA_FLAGS_IGNORED=" + usr/lib/${PN}/${SLOT}/bin/.* + usr/lib/${PN}/${SLOT}/libexec/.* + usr/lib/${PN}/${SLOT}/lib/lib.*.so + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_SONAME=" + usr/lib/${PN}/${SLOT}/lib/lib.*.so.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_PRESTRIPPED=" + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-llvm-dwp + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/self-contained/crtn.o +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="usr/lib/${PN}/${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +# causes double bootstrap +RESTRICT="test" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc + +PATCHES=( + "${FILESDIR}"/1.85.0-cross-compile-libz.patch + "${FILESDIR}"/1.67.0-doc-wasm.patch +) + +clear_vendor_checksums() { + sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die +} + +toml_usex() { + usex "${1}" true false +} + +src_unpack() { + if [[ ${PV} = *9999* ]]; then + git-r3_src_unpack + mkdir "${S}/.cargo" || die # The vendor script has a check for .cargo/config{,.toml} + touch "${S}/.cargo/config.toml" || die + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" + local rust_build="" + local rust_host="" + # Configure vendor to use the portage-provided toolchain. This prevents it from + # attempting to fetch a `beta` toolchain from the internet. + cat <<- _EOF_ > "${T}/vendor-config.toml" + [build] + build = "$(rust_abi "${CBUILD}")" + host = ["$(rust_abi "${CHOST}")"] + target = ["$(rust_abi "${CHOST}")"] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + _EOF_ + # We're using git sources so we need to run the Vendor script + # to ensure that all dependencies are present and up-to-date + mkdir "${S}/vendor" || die + # This also compiles the 'build helper', there's no way to avoid this. + ${EPYTHON} "${S}"/x.py vendor -vvv --config="${T}"/vendor-config.toml -j$(makeopts_jobs) || + die "Failed to vendor dependencies" + # TODO: This has to be generated somehow, this is from a 1.84.x tarball I had lying around. + cat <<- _EOF_ > "${S}/.cargo/config.toml" + [source.crates-io] + replace-with = "vendored-sources" + + [source."git+https://github.com/rust-lang/team"] + git = "https://github.com/rust-lang/team" + replace-with = "vendored-sources" + + [source.vendored-sources] + directory = "vendor" + _EOF_ + else + verify-sig_src_unpack + fi +} + +pre_build_checks() { + local M=9216 + # multiply requirements by 1.3 if we are doing x86-multilib + if use amd64; then + M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) + fi + M=$(( $(usex clippy 128 0) + ${M} )) + if [[ ${PV} == *9999* ]]; then + M=$(( $(usex miri 128 0) + ${M} )) + fi + M=$(( $(usex rustfmt 256 0) + ${M} )) + # add 2G if we compile llvm and 256M per llvm_target + if ! use system-llvm; then + M=$(( 2048 + ${M} )) + local ltarget + for ltarget in ${ALL_LLVM_TARGETS[@]}; do + M=$(( $(usex ${ltarget} 256 0) + ${M} )) + done + fi + M=$(( $(usex wasm 256 0) + ${M} )) + M=$(( $(usex debug 2 1) * ${M} )) + eshopts_push -s extglob + if is-flagq '-g?(gdb)?([1-9])'; then + M=$(( 15 * ${M} / 10 )) + fi + eshopts_pop + M=$(( $(usex doc 256 0) + ${M} )) + CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} +} + +llvm_check_deps() { + has_version -r "llvm-core/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]" +} + +# Is LLVM being linked against libc++? +is_libcxx_linked() { + local code='#include <ciso646> +#if defined(_LIBCPP_VERSION) + HAVE_LIBCXX +#endif +' + local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1 + [[ ${out} == *HAVE_LIBCXX* ]] +} + +pkg_pretend() { + pre_build_checks +} + +pkg_setup() { + pre_build_checks + python-any-r1_pkg_setup + + export LIBGIT2_NO_PKG_CONFIG=1 #749381 + if tc-is-cross-compiler; then + use system-llvm && die "USE=system-llvm not allowed when cross-compiling" + local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")" + use "llvm_targets_${cross_llvm_target}" || \ + die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling" + fi + + rust_pkg_setup + + if use system-llvm; then + llvm-r1_pkg_setup + + local llvm_config="$(get_llvm_prefix)/bin/llvm-config" + export LLVM_LINK_SHARED=1 + export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)" + fi +} + +src_prepare() { + if [[ ${PV} = *9999* ]]; then + # We need to update / generate lockfiles for the workspace + ${CARGO} generate-lockfile --offline + + fi + # Rust baselines to Pentium4 on x86, this patch lowers the baseline to i586 when sse2 is not set. + if use x86; then + if ! use cpu_flags_x86_sse2; then + eapply "${FILESDIR}/1.82.0-i586-baseline.patch" + #grep -rl cmd.args.push\(\"-march=i686\" . | xargs sed -i 's/march=i686/-march=i586/g' || die + fi + fi + + default +} + +src_configure() { + if tc-is-cross-compiler; then + export PKG_CONFIG_ALLOW_CROSS=1 + export PKG_CONFIG_PATH="${ESYSROOT}/usr/$(get_libdir)/pkgconfig" + export OPENSSL_INCLUDE_DIR="${ESYSROOT}/usr/include" + export OPENSSL_LIB_DIR="${ESYSROOT}/usr/$(get_libdir)" + fi + + filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 + + local rust_target="" rust_targets="" arch_cflags + + # Collect rust target names to compile standard libs for all ABIs. + for v in $(multilib_get_enabled_abi_pairs); do + rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" + done + if use wasm; then + rust_targets+=",\"wasm32-unknown-unknown\"" + if use system-llvm; then + # un-hardcode rust-lld linker for this target + # https://bugs.gentoo.org/715348 + sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die + fi + fi + rust_targets="${rust_targets#,}" + + # cargo and rustdoc are mandatory and should always be included + local tools='"cargo","rustdoc"' + use clippy && tools+=',"clippy"' + use rustfmt && tools+=',"rustfmt"' + use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' + use rust-src && tools+=',"src"' + + if [[ ${PV} == *9999* ]]; then + use miri && tools+=',"miri"' + fi + + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" + # in case of prefix it will be already prefixed, as --print sysroot returns full path + [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" + + rust_target="$(rust_abi)" + rust_build="$(rust_abi "${CBUILD}")" + rust_host="$(rust_abi "${CHOST}")" + + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) + fi + done + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} + + local cm_btype="$(usex debug DEBUG RELEASE)" + local build_channel + local build_miri="false" + case "${PV}" in + *9999*) + build_channel="nightly" + ;; + *beta*) + build_channel="beta" + ;; + *) + build_channel="stable" + ;; + esac + cat <<- _EOF_ > "${S}"/config.toml + # https://github.com/rust-lang/rust/issues/135358 (bug #947897) + profile = "dist" + [llvm] + download-ci-llvm = false + optimize = $(toml_usex !debug) + release-debuginfo = $(toml_usex debug) + assertions = $(toml_usex debug) + ninja = true + targets = "${LLVM_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" + link-shared = $(toml_usex system-llvm) + $(if is_libcxx_linked; then + # https://bugs.gentoo.org/732632 + echo "use-libcxx = true" + echo "static-libstdcpp = false" + fi) + $(case "${rust_target}" in + i586-*-linux-*) + # https://github.com/rust-lang/rust/issues/93059 + echo 'cflags = "-fcf-protection=none"' + echo 'cxxflags = "-fcf-protection=none"' + echo 'ldflags = "-fcf-protection=none"' + ;; + *) + ;; + esac) + enable-warnings = false + [llvm.build-config] + CMAKE_VERBOSE_MAKEFILE = "ON" + $(if ! tc-is-cross-compiler; then + # When cross-compiling, LLVM is compiled twice, once for host and + # once for target. Unfortunately, this build configuration applies + # to both, which means any flags applicable to one target but not + # the other will break. Conditionally disable respecting user + # flags when cross-compiling. + echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\"" + echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\"" + echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\"" + fi) + [build] + build-stage = 2 + test-stage = 2 + build = "${rust_build}" + host = ["${rust_host}"] + target = [${rust_targets}] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + docs = $(toml_usex doc) + compiler-docs = false + submodules = false + python = "${EPYTHON}" + locked-deps = true + vendor = true + extended = true + tools = [${tools}] + verbose = 2 + sanitizers = false + profiler = true + cargo-native-static = false + [install] + prefix = "${EPREFIX}/usr/lib/${PN}/${SLOT}" + sysconfdir = "etc" + docdir = "share/doc/rust" + bindir = "bin" + libdir = "lib" + mandir = "share/man" + [rust] + # https://github.com/rust-lang/rust/issues/54872 + codegen-units-std = 1 + optimize = true + debug = $(toml_usex debug) + debug-assertions = $(toml_usex debug) + debug-assertions-std = $(toml_usex debug) + debuginfo-level = $(usex debug 2 0) + debuginfo-level-rustc = $(usex debug 2 0) + debuginfo-level-std = $(usex debug 2 0) + debuginfo-level-tools = $(usex debug 2 0) + debuginfo-level-tests = 0 + backtrace = true + incremental = false + $(if ! tc-is-cross-compiler; then + echo "default-linker = \"$(tc-getCC)\"" + fi) + channel = "${build_channel}" + description = "gentoo" + rpath = true + verbose-tests = true + optimize-tests = $(toml_usex !debug) + codegen-tests = true + dist-src = false + remap-debuginfo = true + lld = $(usex system-llvm false $(toml_usex wasm)) + # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it + # https://github.com/rust-lang/rust/issues/74976 + # https://github.com/rust-lang/rust/issues/76526 + deny-warnings = $(usex wasm $(usex doc false true) true) + backtrace-on-ice = true + jemalloc = false + # See https://github.com/rust-lang/rust/issues/121124 + lto = "$(usex lto thin off)" + [dist] + src-tarball = false + compression-formats = ["xz"] + compression-profile = "balanced" + _EOF_ + + for v in $(multilib_get_enabled_abi_pairs); do + rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) + arch_cflags="$(get_abi_CFLAGS ${v##*.})" + + export CFLAGS_${rust_target//-/_}="${arch_cflags}" + + cat <<- _EOF_ >> "${S}"/config.toml + [target.${rust_target}] + ar = "$(tc-getAR)" + cc = "$(tc-getCC)" + cxx = "$(tc-getCXX)" + linker = "$(tc-getCC)" + ranlib = "$(tc-getRANLIB)" + llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/config.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + _EOF_ + fi + # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; + # but we patch it and set to false here as well + if use elibc_musl; then + cat <<- _EOF_ >> "${S}"/config.toml + crt-static = false + musl-root = "$($(tc-getCC) -print-sysroot)/usr" + _EOF_ + fi + done + if use wasm; then + wasm_target="wasm32-unknown-unknown" + export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")" + cat <<- _EOF_ >> "${S}"/config.toml + [target.wasm32-unknown-unknown] + linker = "$(usex system-llvm lld rust-lld)" + # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483 + profiler = false + _EOF_ + fi + + if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below + # experimental cross support + # discussion: https://bugs.gentoo.org/679878 + # TODO: c*flags, clang, system-llvm, cargo.eclass target support + # it would be much better if we could split out stdlib + # complilation to separate ebuild and abuse CATEGORY to + # just install to /usr/lib/rustlib/<target> + + # extra targets defined as a bash array + # spec format: <LLVM target>:<rust-target>:<CTARGET> + # best place would be /etc/portage/env/dev-lang/rust + # Example: + # RUST_CROSS_TARGETS=( + # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu" + # ) + # no extra hand holding is done, no target transformations, all + # values are passed as-is with just basic checks, so it's up to user to supply correct values + # valid rust targets can be obtained with + # rustc --print target-list + # matching cross toolchain has to be installed + # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one) + # only gcc toolchains installed with crossdev are checked for now. + + # BUG: we can't pass host flags to cross compiler, so just filter for now + # BUG: this should be more fine-grained. + filter-flags '-mcpu=*' '-march=*' '-mtune=*' + + local cross_target_spec + for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do + # extracts first element form <LLVM target>:<rust-target>:<CTARGET> + local cross_llvm_target="${cross_target_spec%%:*}" + # extracts toolchain triples, <rust-target>:<CTARGET> + local cross_triples="${cross_target_spec#*:}" + # extracts first element after before : separator + local cross_rust_target="${cross_triples%%:*}" + # extracts last element after : separator + local cross_toolchain="${cross_triples##*:}" + use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled" + command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain" + + cat <<- _EOF_ >> "${S}"/config.toml + [target.${cross_rust_target}] + ar = "${cross_toolchain}-ar" + cc = "${cross_toolchain}-gcc" + cxx = "${cross_toolchain}-g++" + linker = "${cross_toolchain}-gcc" + ranlib = "${cross_toolchain}-ranlib" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/config.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + _EOF_ + fi + if [[ "${cross_toolchain}" == *-musl* ]]; then + cat <<- _EOF_ >> "${S}"/config.toml + musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr" + _EOF_ + fi + + # append cross target to "normal" target list + # example 'target = ["powerpc64le-unknown-linux-gnu"]' + # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]' + + rust_targets="${rust_targets},\"${cross_rust_target}\"" + sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die + + ewarn + ewarn "Enabled ${cross_rust_target} rust target" + ewarn "Using ${cross_toolchain} cross toolchain" + ewarn + if ! has_version -b 'sys-devel/binutils[multitarget]' ; then + ewarn "'sys-devel/binutils[multitarget]' is not installed" + ewarn "'strip' will be unable to strip cross libraries" + ewarn "cross targets will be installed with full debug information" + ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files" + ewarn + ewarn "Alternatively llvm-strip can be used, it supports stripping any target" + ewarn "define STRIP=\"llvm-strip\" to use it (experimental)" + ewarn + fi + done + fi # I_KNOW_WHAT_I_AM_DOING_CROSS + + einfo "Rust configured with the following flags:" + echo + echo RUSTFLAGS="\"${RUSTFLAGS}\"" + echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\"" + echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\"" + echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\"" + env | grep "CARGO_TARGET_.*_RUSTFLAGS=" + env | grep "CFLAGS_.*" + echo + einfo "config.toml contents:" + cat "${S}"/config.toml || die + echo +} + +src_compile() { + RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die +} + +src_test() { + # https://rustc-dev-guide.rust-lang.org/tests/intro.html + + # those are basic and codegen tests. + local tests=( + codegen + codegen-units + compile-fail + incremental + mir-opt + pretty + run-make + ) + + # fails if llvm is not built with ALL targets. + # and known to fail with system llvm sometimes. + use system-llvm || tests+=( assembly ) + + # fragile/expensive/less important tests + # or tests that require extra builds + # TODO: instead of skipping, just make some nonfatal. + if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then + tests+=( + rustdoc + rustdoc-js + rustdoc-js-std + rustdoc-ui + run-make-fulldeps + ui + ui-fulldeps + ) + fi + + local i failed=() + einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}" + for i in "${tests[@]}"; do + local t="src/test/${i}" + einfo "rust_src_test: running ${t}" + if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \ + -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}" + then + failed+=( "${t}" ) + eerror "rust_src_test: ${t} failed" + fi + done + + if [[ ${#failed[@]} -ne 0 ]]; then + eerror "rust_src_test: failure summary: ${failed[@]}" + die "aborting due to test failures" + fi +} + +src_install() { + DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + + docompress /usr/lib/${PN}/${SLOT}/share/man/ + + # bug #689562, #689160 + rm -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d/cargo" || die + rmdir -v "${ED}/usr/lib/${PN}/${SLOT}"/etc{/bash_completion.d,} || die + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + if [[ ${PV} = *9999* ]]; then + use miri && symlinks+=( miri cargo-miri ) + fi + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver> + # need to fix eselect-rust to remove this hack. + local ver_i="${i}-${PV%%_*}" + if [[ -f "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" ]]; then + einfo "Installing ${i} symlink" + ln -v "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" "${ED}/usr/lib/${PN}/${SLOT}/bin/${ver_i}" || die + else + ewarn "${i} symlink requested, but source file not found" + ewarn "please report this" + fi + dosym "../lib/${PN}/${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "${SLOT}/lib" "/usr/lib/${PN}/lib-${SLOT}" + use rust-analyzer && dosym "${SLOT}/libexec" "/usr/lib/${PN}/libexec-${SLOT}" + dosym "${SLOT}/share/man" "/usr/lib/${PN}/man-${SLOT}" + dosym "rust/${SLOT}/lib/rustlib" "/usr/lib/rustlib-${SLOT}" + dosym "../../lib/${PN}/${SLOT}/share/doc/rust" "/usr/share/doc/${P}" + + newenvd - "50${P}" <<-_EOF_ + MANPATH="${EPREFIX}/usr/lib/rust/man-${SLOT}" + _EOF_ + + rm -rf "${ED}/usr/lib/${PN}/${SLOT}"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/bin"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/doc"/*.old || die + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" + fi + if [[ ${SLOT} == *9999* ]] && use miri; then + echo /usr/bin/miri >> "${T}/provider-${P}" + echo /usr/bin/cargo-miri >> "${T}/provider-${P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" + fi + if use rust-analyzer; then + echo /usr/lib/rust/libexec >> "${T}/provider-${P}" + echo /usr/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + + if use dist; then + "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + insinto "/usr/lib/${PN}/${SLOT}/dist" + doins -r "${S}/build/dist/." + fi +} + +pkg_postinst() { + + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/rust/rust-1.86.0_beta20250218-r1.ebuild b/dev-lang/rust/rust-1.86.0_beta20250218-r1.ebuild new file mode 100644 index 000000000000..c609ba084142 --- /dev/null +++ b/dev-lang/rust/rust-1.86.0_beta20250218-r1.ebuild @@ -0,0 +1,807 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 19 ) +PYTHON_COMPAT=( python3_{10..13} ) + +RUST_MAX_VER=${PV%%_*} +if [[ ${PV} == *9999* ]]; then + RUST_MIN_VER="1.86.0" # Update this as new `beta` releases come out. +elif [[ ${PV} == *beta* ]]; then + # Enforce that `beta` is built from `stable`. + # While uncommon it is possible for feature changes within `beta` to result + # in an older snapshot being unable to build a newer one without modifying the sources. + # 'stable' releases should always be able to build a beta snapshot so just use those. + RUST_MAX_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +else + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +fi + +inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ + multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/rust-lang/rust.git" + EGIT_SUBMODULES=( + "*" + "-src/gcc" + ) +elif [[ ${PV} == *beta* ]]; then + # Identify the snapshot date of the beta release: + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + MY_P="rustc-beta" + SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc + -> rustc-${PV}-src.tar.xz.asc ) + https://github.com/rust-lang/rust/pull/137020.patch -> ${P}-vendor-in-install-phase.patch + " + S="${WORKDIR}/${MY_P}-src" +else + MY_P="rustc-${PV}" + SRC_URI="https://static.rust-lang.org/dist/${MY_P}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${MY_P}-src.tar.xz.asc ) + " + S="${WORKDIR}/${MY_P}-src" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +DESCRIPTION="Systems programming language originally developed by Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +# keep in sync with llvm ebuild of the same version as bundled one. +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai + LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE + WebAssembly X86 XCore Xtensa ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} + +# https://github.com/rust-lang/llvm-project/blob/rustc-1.84.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable + +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" + +if [[ ${PV} = *9999* ]]; then + # These USE flags require nightly rust + IUSE+=" miri" +fi + +LLVM_DEPEND=() +# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation +for _x in "${ALL_LLVM_TARGETS[@]}"; do + LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi +done +LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) +LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) + +BDEPEND="${PYTHON_DEPS} + app-eselect/eselect-rust + || ( + >=sys-devel/gcc-4.7[cxx] + >=llvm-core/clang-3.5 + ) + !system-llvm? ( + >=dev-build/cmake-3.13.4 + app-alternatives/ninja + ) + test? ( dev-debug/gdb ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +DEPEND=" + >=app-arch/xz-utils-5.2 + net-misc/curl:=[http2,ssl] + sys-libs/zlib:= + dev-libs/openssl:0= + system-llvm? ( + ${LLVM_DEPEND[*]} + llvm-libunwind? ( llvm-runtimes/libunwind:= ) + ) + !system-llvm? ( + !llvm-libunwind? ( + elibc_musl? ( sys-libs/libunwind:= ) + ) + ) +" + +RDEPEND="${DEPEND} + app-eselect/eselect-rust + dev-lang/rust-common + sys-apps/lsb-release + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" + +REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) + rust-analyzer? ( rust-src ) + test? ( ${ALL_LLVM_TARGETS[*]} ) + wasm? ( llvm_targets_WebAssembly ) + x86? ( cpu_flags_x86_sse2 ) +" + +# we don't use cmake.eclass, but can get a warning +CMAKE_WARN_UNUSED_CLI=no + +QA_FLAGS_IGNORED=" + usr/lib/${PN}/${SLOT}/bin/.* + usr/lib/${PN}/${SLOT}/libexec/.* + usr/lib/${PN}/${SLOT}/lib/lib.*.so + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_SONAME=" + usr/lib/${PN}/${SLOT}/lib/lib.*.so.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_PRESTRIPPED=" + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-llvm-dwp + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/self-contained/crtn.o +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="usr/lib/${PN}/${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +# causes double bootstrap +RESTRICT="test" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc + +PATCHES=( + "${DISTDIR}"/${P}-vendor-in-install-phase.patch + "${FILESDIR}"/1.85.0-cross-compile-libz.patch + "${FILESDIR}"/1.85.0-musl-dynamic-linking.patch + "${FILESDIR}"/1.67.0-doc-wasm.patch +) + +clear_vendor_checksums() { + sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die +} + +toml_usex() { + usex "${1}" true false +} + +src_unpack() { + if [[ ${PV} = *9999* ]]; then + git-r3_src_unpack + mkdir "${S}/.cargo" || die # The vendor script has a check for .cargo/config{,.toml} + touch "${S}/.cargo/config.toml" || die + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" + local rust_build="" + local rust_host="" + # Configure vendor to use the portage-provided toolchain. This prevents it from + # attempting to fetch a `beta` toolchain from the internet. + cat <<- _EOF_ > "${T}/vendor-config.toml" + [build] + build = "$(rust_abi "${CBUILD}")" + host = ["$(rust_abi "${CHOST}")"] + target = ["$(rust_abi "${CHOST}")"] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + _EOF_ + # We're using git sources so we need to run the Vendor script + # to ensure that all dependencies are present and up-to-date + mkdir "${S}/vendor" || die + # This also compiles the 'build helper', there's no way to avoid this. + ${EPYTHON} "${S}"/x.py vendor -vvv --config="${T}"/vendor-config.toml -j$(makeopts_jobs) || + die "Failed to vendor dependencies" + # TODO: This has to be generated somehow, this is from a 1.84.x tarball I had lying around. + cat <<- _EOF_ > "${S}/.cargo/config.toml" + [source.crates-io] + replace-with = "vendored-sources" + + [source."git+https://github.com/rust-lang/team"] + git = "https://github.com/rust-lang/team" + replace-with = "vendored-sources" + + [source.vendored-sources] + directory = "vendor" + _EOF_ + else + # Until upstream merge this patch we can't use the default verify-sig_src_unpack + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}/rustc-${PV}-src.tar.xz" \ + "${DISTDIR}/rustc-${PV}-src.tar.xz.asc" + fi + default_src_unpack + fi +} + +pre_build_checks() { + local M=9216 + # multiply requirements by 1.3 if we are doing x86-multilib + if use amd64; then + M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) + fi + M=$(( $(usex clippy 128 0) + ${M} )) + if [[ ${PV} == *9999* ]]; then + M=$(( $(usex miri 128 0) + ${M} )) + fi + M=$(( $(usex rustfmt 256 0) + ${M} )) + # add 2G if we compile llvm and 256M per llvm_target + if ! use system-llvm; then + M=$(( 2048 + ${M} )) + local ltarget + for ltarget in ${ALL_LLVM_TARGETS[@]}; do + M=$(( $(usex ${ltarget} 256 0) + ${M} )) + done + fi + M=$(( $(usex wasm 256 0) + ${M} )) + M=$(( $(usex debug 2 1) * ${M} )) + eshopts_push -s extglob + if is-flagq '-g?(gdb)?([1-9])'; then + M=$(( 15 * ${M} / 10 )) + fi + eshopts_pop + M=$(( $(usex doc 256 0) + ${M} )) + CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} +} + +llvm_check_deps() { + has_version -r "llvm-core/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]" +} + +# Is LLVM being linked against libc++? +is_libcxx_linked() { + local code='#include <ciso646> +#if defined(_LIBCPP_VERSION) + HAVE_LIBCXX +#endif +' + local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1 + [[ ${out} == *HAVE_LIBCXX* ]] +} + +pkg_pretend() { + pre_build_checks +} + +pkg_setup() { + pre_build_checks + python-any-r1_pkg_setup + + export LIBGIT2_NO_PKG_CONFIG=1 #749381 + if tc-is-cross-compiler; then + use system-llvm && die "USE=system-llvm not allowed when cross-compiling" + local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")" + use "llvm_targets_${cross_llvm_target}" || \ + die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling" + fi + + rust_pkg_setup + + if use system-llvm; then + llvm-r1_pkg_setup + + local llvm_config="$(get_llvm_prefix)/bin/llvm-config" + export LLVM_LINK_SHARED=1 + export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)" + fi +} + +src_prepare() { + if [[ ${PV} = *9999* ]]; then + # We need to update / generate lockfiles for the workspace + ${CARGO} generate-lockfile --offline + + fi + # Rust baselines to Pentium4 on x86, this patch lowers the baseline to i586 when sse2 is not set. + if use x86; then + if ! use cpu_flags_x86_sse2; then + eapply "${FILESDIR}/1.82.0-i586-baseline.patch" + #grep -rl cmd.args.push\(\"-march=i686\" . | xargs sed -i 's/march=i686/-march=i586/g' || die + fi + fi + + default +} + +src_configure() { + if tc-is-cross-compiler; then + export PKG_CONFIG_ALLOW_CROSS=1 + export PKG_CONFIG_PATH="${ESYSROOT}/usr/$(get_libdir)/pkgconfig" + export OPENSSL_INCLUDE_DIR="${ESYSROOT}/usr/include" + export OPENSSL_LIB_DIR="${ESYSROOT}/usr/$(get_libdir)" + fi + + filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 + + local rust_target="" rust_targets="" arch_cflags + + # Collect rust target names to compile standard libs for all ABIs. + for v in $(multilib_get_enabled_abi_pairs); do + rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" + done + if use wasm; then + rust_targets+=",\"wasm32-unknown-unknown\"" + if use system-llvm; then + # un-hardcode rust-lld linker for this target + # https://bugs.gentoo.org/715348 + sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die + fi + fi + rust_targets="${rust_targets#,}" + + # cargo and rustdoc are mandatory and should always be included + local tools='"cargo","rustdoc"' + use clippy && tools+=',"clippy"' + use rustfmt && tools+=',"rustfmt"' + use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' + use rust-src && tools+=',"src"' + + if [[ ${PV} == *9999* ]]; then + use miri && tools+=',"miri"' + fi + + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" + # in case of prefix it will be already prefixed, as --print sysroot returns full path + [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" + + rust_target="$(rust_abi)" + rust_build="$(rust_abi "${CBUILD}")" + rust_host="$(rust_abi "${CHOST}")" + + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) + fi + done + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} + + local cm_btype="$(usex debug DEBUG RELEASE)" + local build_channel + local build_miri="false" + case "${PV}" in + *9999*) + build_channel="nightly" + ;; + *beta*) + build_channel="beta" + ;; + *) + build_channel="stable" + ;; + esac + cat <<- _EOF_ > "${S}"/config.toml + # https://github.com/rust-lang/rust/issues/135358 (bug #947897) + profile = "dist" + [llvm] + download-ci-llvm = false + optimize = $(toml_usex !debug) + release-debuginfo = $(toml_usex debug) + assertions = $(toml_usex debug) + ninja = true + targets = "${LLVM_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" + link-shared = $(toml_usex system-llvm) + $(if is_libcxx_linked; then + # https://bugs.gentoo.org/732632 + echo "use-libcxx = true" + echo "static-libstdcpp = false" + fi) + $(case "${rust_target}" in + i586-*-linux-*) + # https://github.com/rust-lang/rust/issues/93059 + echo 'cflags = "-fcf-protection=none"' + echo 'cxxflags = "-fcf-protection=none"' + echo 'ldflags = "-fcf-protection=none"' + ;; + *) + ;; + esac) + enable-warnings = false + [llvm.build-config] + CMAKE_VERBOSE_MAKEFILE = "ON" + $(if ! tc-is-cross-compiler; then + # When cross-compiling, LLVM is compiled twice, once for host and + # once for target. Unfortunately, this build configuration applies + # to both, which means any flags applicable to one target but not + # the other will break. Conditionally disable respecting user + # flags when cross-compiling. + echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\"" + echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\"" + echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\"" + fi) + [build] + build-stage = 2 + test-stage = 2 + build = "${rust_build}" + host = ["${rust_host}"] + target = [${rust_targets}] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + docs = $(toml_usex doc) + compiler-docs = false + submodules = false + python = "${EPYTHON}" + locked-deps = true + vendor = true + extended = true + tools = [${tools}] + verbose = 2 + sanitizers = false + profiler = true + cargo-native-static = false + [install] + prefix = "${EPREFIX}/usr/lib/${PN}/${SLOT}" + sysconfdir = "etc" + docdir = "share/doc/rust" + bindir = "bin" + libdir = "lib" + mandir = "share/man" + [rust] + # https://github.com/rust-lang/rust/issues/54872 + codegen-units-std = 1 + optimize = true + debug = $(toml_usex debug) + debug-assertions = $(toml_usex debug) + debug-assertions-std = $(toml_usex debug) + debuginfo-level = $(usex debug 2 0) + debuginfo-level-rustc = $(usex debug 2 0) + debuginfo-level-std = $(usex debug 2 0) + debuginfo-level-tools = $(usex debug 2 0) + debuginfo-level-tests = 0 + backtrace = true + incremental = false + $(if ! tc-is-cross-compiler; then + echo "default-linker = \"$(tc-getCC)\"" + fi) + channel = "${build_channel}" + description = "gentoo" + rpath = true + verbose-tests = true + optimize-tests = $(toml_usex !debug) + codegen-tests = true + dist-src = false + remap-debuginfo = true + lld = $(usex system-llvm false $(toml_usex wasm)) + # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it + # https://github.com/rust-lang/rust/issues/74976 + # https://github.com/rust-lang/rust/issues/76526 + deny-warnings = $(usex wasm $(usex doc false true) true) + backtrace-on-ice = true + jemalloc = false + # See https://github.com/rust-lang/rust/issues/121124 + lto = "$(usex lto thin off)" + [dist] + src-tarball = false + compression-formats = ["xz"] + compression-profile = "balanced" + _EOF_ + + for v in $(multilib_get_enabled_abi_pairs); do + rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) + arch_cflags="$(get_abi_CFLAGS ${v##*.})" + + export CFLAGS_${rust_target//-/_}="${arch_cflags}" + + cat <<- _EOF_ >> "${S}"/config.toml + [target.${rust_target}] + ar = "$(tc-getAR)" + cc = "$(tc-getCC)" + cxx = "$(tc-getCXX)" + linker = "$(tc-getCC)" + ranlib = "$(tc-getRANLIB)" + llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/config.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + _EOF_ + fi + # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; + # but we patch it and set to false here as well + if use elibc_musl; then + cat <<- _EOF_ >> "${S}"/config.toml + crt-static = false + musl-root = "$($(tc-getCC) -print-sysroot)/usr" + _EOF_ + fi + done + if use wasm; then + wasm_target="wasm32-unknown-unknown" + export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")" + cat <<- _EOF_ >> "${S}"/config.toml + [target.wasm32-unknown-unknown] + linker = "$(usex system-llvm lld rust-lld)" + # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483 + profiler = false + _EOF_ + fi + + if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below + # experimental cross support + # discussion: https://bugs.gentoo.org/679878 + # TODO: c*flags, clang, system-llvm, cargo.eclass target support + # it would be much better if we could split out stdlib + # complilation to separate ebuild and abuse CATEGORY to + # just install to /usr/lib/rustlib/<target> + + # extra targets defined as a bash array + # spec format: <LLVM target>:<rust-target>:<CTARGET> + # best place would be /etc/portage/env/dev-lang/rust + # Example: + # RUST_CROSS_TARGETS=( + # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu" + # ) + # no extra hand holding is done, no target transformations, all + # values are passed as-is with just basic checks, so it's up to user to supply correct values + # valid rust targets can be obtained with + # rustc --print target-list + # matching cross toolchain has to be installed + # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one) + # only gcc toolchains installed with crossdev are checked for now. + + # BUG: we can't pass host flags to cross compiler, so just filter for now + # BUG: this should be more fine-grained. + filter-flags '-mcpu=*' '-march=*' '-mtune=*' + + local cross_target_spec + for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do + # extracts first element form <LLVM target>:<rust-target>:<CTARGET> + local cross_llvm_target="${cross_target_spec%%:*}" + # extracts toolchain triples, <rust-target>:<CTARGET> + local cross_triples="${cross_target_spec#*:}" + # extracts first element after before : separator + local cross_rust_target="${cross_triples%%:*}" + # extracts last element after : separator + local cross_toolchain="${cross_triples##*:}" + use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled" + command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain" + + cat <<- _EOF_ >> "${S}"/config.toml + [target.${cross_rust_target}] + ar = "${cross_toolchain}-ar" + cc = "${cross_toolchain}-gcc" + cxx = "${cross_toolchain}-g++" + linker = "${cross_toolchain}-gcc" + ranlib = "${cross_toolchain}-ranlib" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/config.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + _EOF_ + fi + if [[ "${cross_toolchain}" == *-musl* ]]; then + cat <<- _EOF_ >> "${S}"/config.toml + musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr" + _EOF_ + fi + + # append cross target to "normal" target list + # example 'target = ["powerpc64le-unknown-linux-gnu"]' + # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]' + + rust_targets="${rust_targets},\"${cross_rust_target}\"" + sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die + + ewarn + ewarn "Enabled ${cross_rust_target} rust target" + ewarn "Using ${cross_toolchain} cross toolchain" + ewarn + if ! has_version -b 'sys-devel/binutils[multitarget]' ; then + ewarn "'sys-devel/binutils[multitarget]' is not installed" + ewarn "'strip' will be unable to strip cross libraries" + ewarn "cross targets will be installed with full debug information" + ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files" + ewarn + ewarn "Alternatively llvm-strip can be used, it supports stripping any target" + ewarn "define STRIP=\"llvm-strip\" to use it (experimental)" + ewarn + fi + done + fi # I_KNOW_WHAT_I_AM_DOING_CROSS + + einfo "Rust configured with the following flags:" + echo + echo RUSTFLAGS="\"${RUSTFLAGS}\"" + echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\"" + echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\"" + echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\"" + env | grep "CARGO_TARGET_.*_RUSTFLAGS=" + env | grep "CFLAGS_.*" + echo + einfo "config.toml contents:" + cat "${S}"/config.toml || die + echo +} + +src_compile() { + RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die +} + +src_test() { + # https://rustc-dev-guide.rust-lang.org/tests/intro.html + + # those are basic and codegen tests. + local tests=( + codegen + codegen-units + compile-fail + incremental + mir-opt + pretty + run-make + ) + + # fails if llvm is not built with ALL targets. + # and known to fail with system llvm sometimes. + use system-llvm || tests+=( assembly ) + + # fragile/expensive/less important tests + # or tests that require extra builds + # TODO: instead of skipping, just make some nonfatal. + if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then + tests+=( + rustdoc + rustdoc-js + rustdoc-js-std + rustdoc-ui + run-make-fulldeps + ui + ui-fulldeps + ) + fi + + local i failed=() + einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}" + for i in "${tests[@]}"; do + local t="src/test/${i}" + einfo "rust_src_test: running ${t}" + if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \ + -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}" + then + failed+=( "${t}" ) + eerror "rust_src_test: ${t} failed" + fi + done + + if [[ ${#failed[@]} -ne 0 ]]; then + eerror "rust_src_test: failure summary: ${failed[@]}" + die "aborting due to test failures" + fi +} + +src_install() { + DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + + docompress /usr/lib/${PN}/${SLOT}/share/man/ + + # bug #689562, #689160 + rm -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d/cargo" || die + rmdir -v "${ED}/usr/lib/${PN}/${SLOT}"/etc{/bash_completion.d,} || die + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + if [[ ${PV} = *9999* ]]; then + use miri && symlinks+=( miri cargo-miri ) + fi + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver> + # need to fix eselect-rust to remove this hack. + local ver_i="${i}-${PV%%_*}" + if [[ -f "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" ]]; then + einfo "Installing ${i} symlink" + ln -v "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" "${ED}/usr/lib/${PN}/${SLOT}/bin/${ver_i}" || die + else + ewarn "${i} symlink requested, but source file not found" + ewarn "please report this" + fi + dosym "../lib/${PN}/${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "${SLOT}/lib" "/usr/lib/${PN}/lib-${SLOT}" + use rust-analyzer && dosym "${SLOT}/libexec" "/usr/lib/${PN}/libexec-${SLOT}" + dosym "${SLOT}/share/man" "/usr/lib/${PN}/man-${SLOT}" + dosym "rust/${SLOT}/lib/rustlib" "/usr/lib/rustlib-${SLOT}" + dosym "../../lib/${PN}/${SLOT}/share/doc/rust" "/usr/share/doc/${P}" + + newenvd - "50${P}" <<-_EOF_ + MANPATH="${EPREFIX}/usr/lib/rust/man-${SLOT}" + _EOF_ + + rm -rf "${ED}/usr/lib/${PN}/${SLOT}"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/bin"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/doc"/*.old || die + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" + fi + if [[ ${SLOT} == *9999* ]] && use miri; then + echo /usr/bin/miri >> "${T}/provider-${P}" + echo /usr/bin/cargo-miri >> "${T}/provider-${P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" + fi + if use rust-analyzer; then + echo /usr/lib/rust/libexec >> "${T}/provider-${P}" + echo /usr/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + + if use dist; then + "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + insinto "/usr/lib/${PN}/${SLOT}/dist" + doins -r "${S}/build/dist/." + fi +} + +pkg_postinst() { + + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/rust/rust-1.86.0_beta20250225.ebuild b/dev-lang/rust/rust-1.86.0_beta20250225.ebuild new file mode 100644 index 000000000000..83f444b7cb32 --- /dev/null +++ b/dev-lang/rust/rust-1.86.0_beta20250225.ebuild @@ -0,0 +1,807 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 19 ) +PYTHON_COMPAT=( python3_{10..13} ) + +RUST_MAX_VER=${PV%%_*} +if [[ ${PV} == *9999* ]]; then + RUST_MIN_VER="1.86.0" # Update this as new `beta` releases come out. +elif [[ ${PV} == *beta* ]]; then + # Enforce that `beta` is built from `stable`. + # While uncommon it is possible for feature changes within `beta` to result + # in an older snapshot being unable to build a newer one without modifying the sources. + # 'stable' releases should always be able to build a beta snapshot so just use those. + RUST_MAX_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +else + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +fi + +inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ + multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/rust-lang/rust.git" + EGIT_SUBMODULES=( + "*" + "-src/gcc" + ) +elif [[ ${PV} == *beta* ]]; then + # Identify the snapshot date of the beta release: + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + MY_P="rustc-beta" + SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc + -> rustc-${PV}-src.tar.xz.asc ) + https://github.com/rust-lang/rust/pull/137020.patch -> ${P}-vendor-in-install-phase.patch + " + S="${WORKDIR}/${MY_P}-src" +else + MY_P="rustc-${PV}" + SRC_URI="https://static.rust-lang.org/dist/${MY_P}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${MY_P}-src.tar.xz.asc ) + " + S="${WORKDIR}/${MY_P}-src" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +DESCRIPTION="Systems programming language originally developed by Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +# keep in sync with llvm ebuild of the same version as bundled one. +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai + LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE + WebAssembly X86 XCore Xtensa ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} + +# https://github.com/rust-lang/llvm-project/blob/rustc-1.84.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable + +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto rustfmt rust-analyzer rust-src +system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" + +if [[ ${PV} = *9999* ]]; then + # These USE flags require nightly rust + IUSE+=" miri" +fi + +LLVM_DEPEND=() +# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation +for _x in "${ALL_LLVM_TARGETS[@]}"; do + LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi +done +LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) +LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) + +BDEPEND="${PYTHON_DEPS} + app-eselect/eselect-rust + || ( + >=sys-devel/gcc-4.7[cxx] + >=llvm-core/clang-3.5 + ) + !system-llvm? ( + >=dev-build/cmake-3.13.4 + app-alternatives/ninja + ) + test? ( dev-debug/gdb ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +DEPEND=" + >=app-arch/xz-utils-5.2 + net-misc/curl:=[http2,ssl] + sys-libs/zlib:= + dev-libs/openssl:0= + system-llvm? ( + ${LLVM_DEPEND[*]} + llvm-libunwind? ( llvm-runtimes/libunwind:= ) + ) + !system-llvm? ( + !llvm-libunwind? ( + elibc_musl? ( sys-libs/libunwind:= ) + ) + ) +" + +RDEPEND="${DEPEND} + app-eselect/eselect-rust + dev-lang/rust-common + sys-apps/lsb-release + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" + +REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) + rust-analyzer? ( rust-src ) + test? ( ${ALL_LLVM_TARGETS[*]} ) + wasm? ( llvm_targets_WebAssembly ) + x86? ( cpu_flags_x86_sse2 ) +" + +# we don't use cmake.eclass, but can get a warning +CMAKE_WARN_UNUSED_CLI=no + +QA_FLAGS_IGNORED=" + usr/lib/${PN}/${SLOT}/bin/.* + usr/lib/${PN}/${SLOT}/libexec/.* + usr/lib/${PN}/${SLOT}/lib/lib.*.so + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_SONAME=" + usr/lib/${PN}/${SLOT}/lib/lib.*.so.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_PRESTRIPPED=" + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-llvm-dwp + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/self-contained/crtn.o +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="usr/lib/${PN}/${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +# causes double bootstrap +RESTRICT="test" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc + +PATCHES=( + "${DISTDIR}"/${P}-vendor-in-install-phase.patch + "${FILESDIR}"/1.85.0-cross-compile-libz.patch + "${FILESDIR}"/1.85.0-musl-dynamic-linking.patch + "${FILESDIR}"/1.67.0-doc-wasm.patch +) + +clear_vendor_checksums() { + sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die +} + +toml_usex() { + usex "${1}" true false +} + +src_unpack() { + if [[ ${PV} = *9999* ]]; then + git-r3_src_unpack + mkdir "${S}/.cargo" || die # The vendor script has a check for .cargo/config{,.toml} + touch "${S}/.cargo/config.toml" || die + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" + local rust_build="" + local rust_host="" + # Configure vendor to use the portage-provided toolchain. This prevents it from + # attempting to fetch a `beta` toolchain from the internet. + cat <<- _EOF_ > "${T}/vendor-config.toml" + [build] + build = "$(rust_abi "${CBUILD}")" + host = ["$(rust_abi "${CHOST}")"] + target = ["$(rust_abi "${CHOST}")"] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + _EOF_ + # We're using git sources so we need to run the Vendor script + # to ensure that all dependencies are present and up-to-date + mkdir "${S}/vendor" || die + # This also compiles the 'build helper', there's no way to avoid this. + ${EPYTHON} "${S}"/x.py vendor -vvv --config="${T}"/vendor-config.toml -j$(makeopts_jobs) || + die "Failed to vendor dependencies" + # TODO: This has to be generated somehow, this is from a 1.84.x tarball I had lying around. + cat <<- _EOF_ > "${S}/.cargo/config.toml" + [source.crates-io] + replace-with = "vendored-sources" + + [source."git+https://github.com/rust-lang/team"] + git = "https://github.com/rust-lang/team" + replace-with = "vendored-sources" + + [source.vendored-sources] + directory = "vendor" + _EOF_ + else + # Until upstream merge this patch we can't use the default verify-sig_src_unpack + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}/rustc-${PV}-src.tar.xz" \ + "${DISTDIR}/rustc-${PV}-src.tar.xz.asc" + fi + default_src_unpack + fi +} + +pre_build_checks() { + local M=9216 + # multiply requirements by 1.3 if we are doing x86-multilib + if use amd64; then + M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) + fi + M=$(( $(usex clippy 128 0) + ${M} )) + if [[ ${PV} == *9999* ]]; then + M=$(( $(usex miri 128 0) + ${M} )) + fi + M=$(( $(usex rustfmt 256 0) + ${M} )) + # add 2G if we compile llvm and 256M per llvm_target + if ! use system-llvm; then + M=$(( 2048 + ${M} )) + local ltarget + for ltarget in ${ALL_LLVM_TARGETS[@]}; do + M=$(( $(usex ${ltarget} 256 0) + ${M} )) + done + fi + M=$(( $(usex wasm 256 0) + ${M} )) + M=$(( $(usex debug 2 1) * ${M} )) + eshopts_push -s extglob + if is-flagq '-g?(gdb)?([1-9])'; then + M=$(( 15 * ${M} / 10 )) + fi + eshopts_pop + M=$(( $(usex doc 256 0) + ${M} )) + CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} +} + +llvm_check_deps() { + has_version -r "llvm-core/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]" +} + +# Is LLVM being linked against libc++? +is_libcxx_linked() { + local code='#include <ciso646> +#if defined(_LIBCPP_VERSION) + HAVE_LIBCXX +#endif +' + local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1 + [[ ${out} == *HAVE_LIBCXX* ]] +} + +pkg_pretend() { + pre_build_checks +} + +pkg_setup() { + pre_build_checks + python-any-r1_pkg_setup + + export LIBGIT2_NO_PKG_CONFIG=1 #749381 + if tc-is-cross-compiler; then + use system-llvm && die "USE=system-llvm not allowed when cross-compiling" + local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")" + use "llvm_targets_${cross_llvm_target}" || \ + die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling" + fi + + rust_pkg_setup + + if use system-llvm; then + llvm-r1_pkg_setup + + local llvm_config="$(get_llvm_prefix)/bin/llvm-config" + export LLVM_LINK_SHARED=1 + export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)" + fi +} + +src_prepare() { + if [[ ${PV} = *9999* ]]; then + # We need to update / generate lockfiles for the workspace + ${CARGO} generate-lockfile --offline + + fi + # Rust baselines to Pentium4 on x86, this patch lowers the baseline to i586 when sse2 is not set. + if use x86; then + if ! use cpu_flags_x86_sse2; then + eapply "${FILESDIR}/1.82.0-i586-baseline.patch" + #grep -rl cmd.args.push\(\"-march=i686\" . | xargs sed -i 's/march=i686/-march=i586/g' || die + fi + fi + + default +} + +src_configure() { + if tc-is-cross-compiler; then + export PKG_CONFIG_ALLOW_CROSS=1 + export PKG_CONFIG_PATH="${ESYSROOT}/usr/$(get_libdir)/pkgconfig" + export OPENSSL_INCLUDE_DIR="${ESYSROOT}/usr/include" + export OPENSSL_LIB_DIR="${ESYSROOT}/usr/$(get_libdir)" + fi + + filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 + + local rust_target="" rust_targets="" arch_cflags + + # Collect rust target names to compile standard libs for all ABIs. + for v in $(multilib_get_enabled_abi_pairs); do + rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" + done + if use wasm; then + rust_targets+=",\"wasm32-unknown-unknown\"" + if use system-llvm; then + # un-hardcode rust-lld linker for this target + # https://bugs.gentoo.org/715348 + sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die + fi + fi + rust_targets="${rust_targets#,}" + + # cargo and rustdoc are mandatory and should always be included + local tools='"cargo","rustdoc"' + use clippy && tools+=',"clippy"' + use rustfmt && tools+=',"rustfmt"' + use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' + use rust-src && tools+=',"src"' + + if [[ ${PV} == *9999* ]]; then + use miri && tools+=',"miri"' + fi + + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" + # in case of prefix it will be already prefixed, as --print sysroot returns full path + [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" + + rust_target="$(rust_abi)" + rust_build="$(rust_abi "${CBUILD}")" + rust_host="$(rust_abi "${CHOST}")" + + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) + fi + done + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} + + local cm_btype="$(usex debug DEBUG RELEASE)" + local build_channel + local build_miri="false" + case "${PV}" in + *9999*) + build_channel="nightly" + ;; + *beta*) + build_channel="beta" + ;; + *) + build_channel="stable" + ;; + esac + cat <<- _EOF_ > "${S}"/config.toml + # https://github.com/rust-lang/rust/issues/135358 (bug #947897) + profile = "dist" + [llvm] + download-ci-llvm = false + optimize = $(toml_usex !debug) + release-debuginfo = $(toml_usex debug) + assertions = $(toml_usex debug) + ninja = true + targets = "${LLVM_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" + link-shared = $(toml_usex system-llvm) + $(if is_libcxx_linked; then + # https://bugs.gentoo.org/732632 + echo "use-libcxx = true" + echo "static-libstdcpp = false" + fi) + $(case "${rust_target}" in + i586-*-linux-*) + # https://github.com/rust-lang/rust/issues/93059 + echo 'cflags = "-fcf-protection=none"' + echo 'cxxflags = "-fcf-protection=none"' + echo 'ldflags = "-fcf-protection=none"' + ;; + *) + ;; + esac) + enable-warnings = false + [llvm.build-config] + CMAKE_VERBOSE_MAKEFILE = "ON" + $(if ! tc-is-cross-compiler; then + # When cross-compiling, LLVM is compiled twice, once for host and + # once for target. Unfortunately, this build configuration applies + # to both, which means any flags applicable to one target but not + # the other will break. Conditionally disable respecting user + # flags when cross-compiling. + echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\"" + echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\"" + echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\"" + fi) + [build] + build-stage = 2 + test-stage = 2 + build = "${rust_build}" + host = ["${rust_host}"] + target = [${rust_targets}] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + docs = $(toml_usex doc) + compiler-docs = false + submodules = false + python = "${EPYTHON}" + locked-deps = true + vendor = true + extended = true + tools = [${tools}] + verbose = 2 + sanitizers = false + profiler = true + cargo-native-static = false + [install] + prefix = "${EPREFIX}/usr/lib/${PN}/${SLOT}" + sysconfdir = "etc" + docdir = "share/doc/rust" + bindir = "bin" + libdir = "lib" + mandir = "share/man" + [rust] + # https://github.com/rust-lang/rust/issues/54872 + codegen-units-std = 1 + optimize = true + debug = $(toml_usex debug) + debug-assertions = $(toml_usex debug) + debug-assertions-std = $(toml_usex debug) + debuginfo-level = $(usex debug 2 0) + debuginfo-level-rustc = $(usex debug 2 0) + debuginfo-level-std = $(usex debug 2 0) + debuginfo-level-tools = $(usex debug 2 0) + debuginfo-level-tests = 0 + backtrace = true + incremental = false + $(if ! tc-is-cross-compiler; then + echo "default-linker = \"$(tc-getCC)\"" + fi) + channel = "${build_channel}" + description = "gentoo" + rpath = true + verbose-tests = true + optimize-tests = $(toml_usex !debug) + codegen-tests = true + dist-src = false + remap-debuginfo = true + lld = $(usex system-llvm false $(toml_usex wasm)) + # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it + # https://github.com/rust-lang/rust/issues/74976 + # https://github.com/rust-lang/rust/issues/76526 + deny-warnings = $(usex wasm $(usex doc false true) true) + backtrace-on-ice = true + jemalloc = false + # See https://github.com/rust-lang/rust/issues/121124 + lto = "$(usex lto thin off)" + [dist] + src-tarball = false + compression-formats = ["xz"] + compression-profile = "balanced" + _EOF_ + + for v in $(multilib_get_enabled_abi_pairs); do + rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) + arch_cflags="$(get_abi_CFLAGS ${v##*.})" + + export CFLAGS_${rust_target//-/_}="${arch_cflags}" + + cat <<- _EOF_ >> "${S}"/config.toml + [target.${rust_target}] + ar = "$(tc-getAR)" + cc = "$(tc-getCC)" + cxx = "$(tc-getCXX)" + linker = "$(tc-getCC)" + ranlib = "$(tc-getRANLIB)" + llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/config.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + _EOF_ + fi + # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; + # but we patch it and set to false here as well + if use elibc_musl; then + cat <<- _EOF_ >> "${S}"/config.toml + crt-static = false + musl-root = "$($(tc-getCC) -print-sysroot)/usr" + _EOF_ + fi + done + if use wasm; then + wasm_target="wasm32-unknown-unknown" + export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")" + cat <<- _EOF_ >> "${S}"/config.toml + [target.wasm32-unknown-unknown] + linker = "$(usex system-llvm lld rust-lld)" + # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483 + profiler = false + _EOF_ + fi + + if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below + # experimental cross support + # discussion: https://bugs.gentoo.org/679878 + # TODO: c*flags, clang, system-llvm, cargo.eclass target support + # it would be much better if we could split out stdlib + # complilation to separate ebuild and abuse CATEGORY to + # just install to /usr/lib/rustlib/<target> + + # extra targets defined as a bash array + # spec format: <LLVM target>:<rust-target>:<CTARGET> + # best place would be /etc/portage/env/dev-lang/rust + # Example: + # RUST_CROSS_TARGETS=( + # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu" + # ) + # no extra hand holding is done, no target transformations, all + # values are passed as-is with just basic checks, so it's up to user to supply correct values + # valid rust targets can be obtained with + # rustc --print target-list + # matching cross toolchain has to be installed + # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one) + # only gcc toolchains installed with crossdev are checked for now. + + # BUG: we can't pass host flags to cross compiler, so just filter for now + # BUG: this should be more fine-grained. + filter-flags '-mcpu=*' '-march=*' '-mtune=*' + + local cross_target_spec + for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do + # extracts first element form <LLVM target>:<rust-target>:<CTARGET> + local cross_llvm_target="${cross_target_spec%%:*}" + # extracts toolchain triples, <rust-target>:<CTARGET> + local cross_triples="${cross_target_spec#*:}" + # extracts first element after before : separator + local cross_rust_target="${cross_triples%%:*}" + # extracts last element after : separator + local cross_toolchain="${cross_triples##*:}" + use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled" + command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain" + + cat <<- _EOF_ >> "${S}"/config.toml + [target.${cross_rust_target}] + ar = "${cross_toolchain}-ar" + cc = "${cross_toolchain}-gcc" + cxx = "${cross_toolchain}-g++" + linker = "${cross_toolchain}-gcc" + ranlib = "${cross_toolchain}-ranlib" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/config.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + _EOF_ + fi + if [[ "${cross_toolchain}" == *-musl* ]]; then + cat <<- _EOF_ >> "${S}"/config.toml + musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr" + _EOF_ + fi + + # append cross target to "normal" target list + # example 'target = ["powerpc64le-unknown-linux-gnu"]' + # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]' + + rust_targets="${rust_targets},\"${cross_rust_target}\"" + sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die + + ewarn + ewarn "Enabled ${cross_rust_target} rust target" + ewarn "Using ${cross_toolchain} cross toolchain" + ewarn + if ! has_version -b 'sys-devel/binutils[multitarget]' ; then + ewarn "'sys-devel/binutils[multitarget]' is not installed" + ewarn "'strip' will be unable to strip cross libraries" + ewarn "cross targets will be installed with full debug information" + ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files" + ewarn + ewarn "Alternatively llvm-strip can be used, it supports stripping any target" + ewarn "define STRIP=\"llvm-strip\" to use it (experimental)" + ewarn + fi + done + fi # I_KNOW_WHAT_I_AM_DOING_CROSS + + einfo "Rust configured with the following flags:" + echo + echo RUSTFLAGS="\"${RUSTFLAGS}\"" + echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\"" + echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\"" + echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\"" + env | grep "CARGO_TARGET_.*_RUSTFLAGS=" + env | grep "CFLAGS_.*" + echo + einfo "config.toml contents:" + cat "${S}"/config.toml || die + echo +} + +src_compile() { + RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die +} + +src_test() { + # https://rustc-dev-guide.rust-lang.org/tests/intro.html + + # those are basic and codegen tests. + local tests=( + codegen + codegen-units + compile-fail + incremental + mir-opt + pretty + run-make + ) + + # fails if llvm is not built with ALL targets. + # and known to fail with system llvm sometimes. + use system-llvm || tests+=( assembly ) + + # fragile/expensive/less important tests + # or tests that require extra builds + # TODO: instead of skipping, just make some nonfatal. + if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then + tests+=( + rustdoc + rustdoc-js + rustdoc-js-std + rustdoc-ui + run-make-fulldeps + ui + ui-fulldeps + ) + fi + + local i failed=() + einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}" + for i in "${tests[@]}"; do + local t="src/test/${i}" + einfo "rust_src_test: running ${t}" + if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \ + -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}" + then + failed+=( "${t}" ) + eerror "rust_src_test: ${t} failed" + fi + done + + if [[ ${#failed[@]} -ne 0 ]]; then + eerror "rust_src_test: failure summary: ${failed[@]}" + die "aborting due to test failures" + fi +} + +src_install() { + DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + + docompress /usr/lib/${PN}/${SLOT}/share/man/ + + # bug #689562, #689160 + rm -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d/cargo" || die + rmdir -v "${ED}/usr/lib/${PN}/${SLOT}"/etc{/bash_completion.d,} || die + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + if [[ ${PV} = *9999* ]]; then + use miri && symlinks+=( miri cargo-miri ) + fi + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver> + # need to fix eselect-rust to remove this hack. + local ver_i="${i}-${PV%%_*}" + if [[ -f "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" ]]; then + einfo "Installing ${i} symlink" + ln -v "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" "${ED}/usr/lib/${PN}/${SLOT}/bin/${ver_i}" || die + else + ewarn "${i} symlink requested, but source file not found" + ewarn "please report this" + fi + dosym "../lib/${PN}/${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "${SLOT}/lib" "/usr/lib/${PN}/lib-${SLOT}" + use rust-analyzer && dosym "${SLOT}/libexec" "/usr/lib/${PN}/libexec-${SLOT}" + dosym "${SLOT}/share/man" "/usr/lib/${PN}/man-${SLOT}" + dosym "rust/${SLOT}/lib/rustlib" "/usr/lib/rustlib-${SLOT}" + dosym "../../lib/${PN}/${SLOT}/share/doc/rust" "/usr/share/doc/${P}" + + newenvd - "50${P}" <<-_EOF_ + MANPATH="${EPREFIX}/usr/lib/rust/man-${SLOT}" + _EOF_ + + rm -rf "${ED}/usr/lib/${PN}/${SLOT}"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/bin"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/doc"/*.old || die + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" + fi + if [[ ${SLOT} == *9999* ]] && use miri; then + echo /usr/bin/miri >> "${T}/provider-${P}" + echo /usr/bin/cargo-miri >> "${T}/provider-${P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" + fi + if use rust-analyzer; then + echo /usr/lib/rust/libexec >> "${T}/provider-${P}" + echo /usr/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + + if use dist; then + "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + insinto "/usr/lib/${PN}/${SLOT}/dist" + doins -r "${S}/build/dist/." + fi +} + +pkg_postinst() { + + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/rust/rust-9999.ebuild b/dev-lang/rust/rust-9999.ebuild new file mode 100644 index 000000000000..97c665f7828d --- /dev/null +++ b/dev-lang/rust/rust-9999.ebuild @@ -0,0 +1,801 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 20 ) +PYTHON_COMPAT=( python3_{10..13} ) + +RUST_MAX_VER=${PV%%_*} +if [[ ${PV} == *9999* ]]; then + RUST_MIN_VER="1.86.0" # Update this as new `beta` releases come out. +elif [[ ${PV} == *beta* ]]; then + # Enforce that `beta` is built from `stable`. + # While uncommon it is possible for feature changes within `beta` to result + # in an older snapshot being unable to build a newer one without modifying the sources. + # 'stable' releases should always be able to build a beta snapshot so just use those. + RUST_MAX_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).1" + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +else + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +fi + +inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ + multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/rust-lang/rust.git" + EGIT_SUBMODULES=( + "*" + "-src/gcc" + ) +elif [[ ${PV} == *beta* ]]; then + # Identify the snapshot date of the beta release: + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + MY_P="rustc-beta" + SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc + -> rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/${MY_P}-src" +else + MY_P="rustc-${PV}" + SRC_URI="https://static.rust-lang.org/dist/${MY_P}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${MY_P}-src.tar.xz.asc ) + " + S="${WORKDIR}/${MY_P}-src" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +DESCRIPTION="Systems programming language originally developed by Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +# keep in sync with llvm ebuild of the same version as bundled one. +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai + LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE + WebAssembly X86 XCore Xtensa ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} + +# https://github.com/rust-lang/llvm-project/blob/rustc-1.84.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable + +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" + +if [[ ${PV} = *9999* ]]; then + # These USE flags require nightly rust + IUSE+=" miri" +fi + +LLVM_DEPEND=() +# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation +for _x in "${ALL_LLVM_TARGETS[@]}"; do + LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi +done +LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) +LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) + +BDEPEND="${PYTHON_DEPS} + app-eselect/eselect-rust + || ( + >=sys-devel/gcc-4.7[cxx] + >=llvm-core/clang-3.5 + ) + !system-llvm? ( + >=dev-build/cmake-3.13.4 + app-alternatives/ninja + ) + test? ( dev-debug/gdb ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +DEPEND=" + >=app-arch/xz-utils-5.2 + net-misc/curl:=[http2,ssl] + sys-libs/zlib:= + dev-libs/openssl:0= + system-llvm? ( + ${LLVM_DEPEND[*]} + llvm-libunwind? ( llvm-runtimes/libunwind:= ) + ) + !system-llvm? ( + !llvm-libunwind? ( + elibc_musl? ( sys-libs/libunwind:= ) + ) + ) +" + +RDEPEND="${DEPEND} + app-eselect/eselect-rust + dev-lang/rust-common + sys-apps/lsb-release + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" + +REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) + rust-analyzer? ( rust-src ) + test? ( ${ALL_LLVM_TARGETS[*]} ) + wasm? ( llvm_targets_WebAssembly ) + x86? ( cpu_flags_x86_sse2 ) +" + +# we don't use cmake.eclass, but can get a warning +CMAKE_WARN_UNUSED_CLI=no + +QA_FLAGS_IGNORED=" + usr/lib/${PN}/${SLOT}/bin/.* + usr/lib/${PN}/${SLOT}/libexec/.* + usr/lib/${PN}/${SLOT}/lib/lib.*.so + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_SONAME=" + usr/lib/${PN}/${SLOT}/lib/lib.*.so.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_PRESTRIPPED=" + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-llvm-dwp + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/self-contained/crtn.o +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="usr/lib/${PN}/${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +# causes double bootstrap +RESTRICT="test" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc + +PATCHES=( + "${FILESDIR}"/1.85.0-cross-compile-libz.patch + "${FILESDIR}"/1.85.0-musl-dynamic-linking.patch + "${FILESDIR}"/1.67.0-doc-wasm.patch +) + +clear_vendor_checksums() { + sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die +} + +toml_usex() { + usex "${1}" true false +} + +src_unpack() { + if [[ ${PV} = *9999* ]]; then + git-r3_src_unpack + mkdir "${S}/.cargo" || die # The vendor script has a check for .cargo/config{,.toml} + touch "${S}/.cargo/config.toml" || die + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" + local rust_build="" + local rust_host="" + # Configure vendor to use the portage-provided toolchain. This prevents it from + # attempting to fetch a `beta` toolchain from the internet. + cat <<- _EOF_ > "${T}/vendor-config.toml" + [build] + build = "$(rust_abi "${CBUILD}")" + host = ["$(rust_abi "${CHOST}")"] + target = ["$(rust_abi "${CHOST}")"] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + _EOF_ + # We're using git sources so we need to run the Vendor script + # to ensure that all dependencies are present and up-to-date + mkdir "${S}/vendor" || die + # This also compiles the 'build helper', there's no way to avoid this. + ${EPYTHON} "${S}"/x.py vendor -vvv --config="${T}"/vendor-config.toml -j$(makeopts_jobs) || + die "Failed to vendor dependencies" + # TODO: This has to be generated somehow, this is from a 1.84.x tarball I had lying around. + cat <<- _EOF_ > "${S}/.cargo/config.toml" + [source.crates-io] + replace-with = "vendored-sources" + + [source."git+https://github.com/rust-lang/team"] + git = "https://github.com/rust-lang/team" + replace-with = "vendored-sources" + + [source.vendored-sources] + directory = "vendor" + _EOF_ + else + verify-sig_src_unpack + fi +} + +pre_build_checks() { + local M=9216 + # multiply requirements by 1.3 if we are doing x86-multilib + if use amd64; then + M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) + fi + M=$(( $(usex clippy 128 0) + ${M} )) + if [[ ${PV} == *9999* ]]; then + M=$(( $(usex miri 128 0) + ${M} )) + fi + M=$(( $(usex rustfmt 256 0) + ${M} )) + # add 2G if we compile llvm and 256M per llvm_target + if ! use system-llvm; then + M=$(( 2048 + ${M} )) + local ltarget + for ltarget in ${ALL_LLVM_TARGETS[@]}; do + M=$(( $(usex ${ltarget} 256 0) + ${M} )) + done + fi + M=$(( $(usex wasm 256 0) + ${M} )) + M=$(( $(usex debug 2 1) * ${M} )) + eshopts_push -s extglob + if is-flagq '-g?(gdb)?([1-9])'; then + M=$(( 15 * ${M} / 10 )) + fi + eshopts_pop + M=$(( $(usex doc 256 0) + ${M} )) + CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} +} + +llvm_check_deps() { + has_version -r "llvm-core/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]" +} + +# Is LLVM being linked against libc++? +is_libcxx_linked() { + local code='#include <ciso646> +#if defined(_LIBCPP_VERSION) + HAVE_LIBCXX +#endif +' + local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1 + [[ ${out} == *HAVE_LIBCXX* ]] +} + +pkg_pretend() { + pre_build_checks +} + +pkg_setup() { + pre_build_checks + python-any-r1_pkg_setup + + export LIBGIT2_NO_PKG_CONFIG=1 #749381 + if tc-is-cross-compiler; then + use system-llvm && die "USE=system-llvm not allowed when cross-compiling" + local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")" + use "llvm_targets_${cross_llvm_target}" || \ + die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling" + fi + + rust_pkg_setup + + if use system-llvm; then + llvm-r1_pkg_setup + + local llvm_config="$(get_llvm_prefix)/bin/llvm-config" + export LLVM_LINK_SHARED=1 + export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)" + fi +} + +src_prepare() { + if [[ ${PV} = *9999* ]]; then + # We need to update / generate lockfiles for the workspace + ${CARGO} generate-lockfile --offline + + fi + # Rust baselines to Pentium4 on x86, this patch lowers the baseline to i586 when sse2 is not set. + if use x86; then + if ! use cpu_flags_x86_sse2; then + eapply "${FILESDIR}/1.82.0-i586-baseline.patch" + #grep -rl cmd.args.push\(\"-march=i686\" . | xargs sed -i 's/march=i686/-march=i586/g' || die + fi + fi + + default +} + +src_configure() { + if tc-is-cross-compiler; then + export PKG_CONFIG_ALLOW_CROSS=1 + export PKG_CONFIG_PATH="${ESYSROOT}/usr/$(get_libdir)/pkgconfig" + export OPENSSL_INCLUDE_DIR="${ESYSROOT}/usr/include" + export OPENSSL_LIB_DIR="${ESYSROOT}/usr/$(get_libdir)" + fi + + filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 + + local rust_target="" rust_targets="" arch_cflags + + # Collect rust target names to compile standard libs for all ABIs. + for v in $(multilib_get_enabled_abi_pairs); do + rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" + done + if use wasm; then + rust_targets+=",\"wasm32-unknown-unknown\"" + if use system-llvm; then + # un-hardcode rust-lld linker for this target + # https://bugs.gentoo.org/715348 + sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die + fi + fi + rust_targets="${rust_targets#,}" + + # cargo and rustdoc are mandatory and should always be included + local tools='"cargo","rustdoc"' + use clippy && tools+=',"clippy"' + use rustfmt && tools+=',"rustfmt"' + use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' + use rust-src && tools+=',"src"' + + if [[ ${PV} == *9999* ]]; then + use miri && tools+=',"miri"' + fi + + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" + # in case of prefix it will be already prefixed, as --print sysroot returns full path + [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" + + rust_target="$(rust_abi)" + rust_build="$(rust_abi "${CBUILD}")" + rust_host="$(rust_abi "${CHOST}")" + + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) + fi + done + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} + + local cm_btype="$(usex debug DEBUG RELEASE)" + local build_channel + local build_miri="false" + case "${PV}" in + *9999*) + build_channel="nightly" + ;; + *beta*) + build_channel="beta" + ;; + *) + build_channel="stable" + ;; + esac + cat <<- _EOF_ > "${S}"/config.toml + # https://github.com/rust-lang/rust/issues/135358 (bug #947897) + profile = "dist" + [llvm] + download-ci-llvm = false + optimize = $(toml_usex !debug) + release-debuginfo = $(toml_usex debug) + assertions = $(toml_usex debug) + ninja = true + targets = "${LLVM_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" + link-shared = $(toml_usex system-llvm) + $(if is_libcxx_linked; then + # https://bugs.gentoo.org/732632 + echo "use-libcxx = true" + echo "static-libstdcpp = false" + fi) + $(case "${rust_target}" in + i586-*-linux-*) + # https://github.com/rust-lang/rust/issues/93059 + echo 'cflags = "-fcf-protection=none"' + echo 'cxxflags = "-fcf-protection=none"' + echo 'ldflags = "-fcf-protection=none"' + ;; + *) + ;; + esac) + enable-warnings = false + [llvm.build-config] + CMAKE_VERBOSE_MAKEFILE = "ON" + $(if ! tc-is-cross-compiler; then + # When cross-compiling, LLVM is compiled twice, once for host and + # once for target. Unfortunately, this build configuration applies + # to both, which means any flags applicable to one target but not + # the other will break. Conditionally disable respecting user + # flags when cross-compiling. + echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\"" + echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\"" + echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\"" + fi) + [build] + build-stage = 2 + test-stage = 2 + build = "${rust_build}" + host = ["${rust_host}"] + target = [${rust_targets}] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + docs = $(toml_usex doc) + compiler-docs = false + submodules = false + python = "${EPYTHON}" + locked-deps = true + vendor = true + extended = true + tools = [${tools}] + verbose = 2 + sanitizers = false + profiler = true + cargo-native-static = false + [install] + prefix = "${EPREFIX}/usr/lib/${PN}/${SLOT}" + sysconfdir = "etc" + docdir = "share/doc/rust" + bindir = "bin" + libdir = "lib" + mandir = "share/man" + [rust] + # https://github.com/rust-lang/rust/issues/54872 + codegen-units-std = 1 + optimize = true + debug = $(toml_usex debug) + debug-assertions = $(toml_usex debug) + debug-assertions-std = $(toml_usex debug) + debuginfo-level = $(usex debug 2 0) + debuginfo-level-rustc = $(usex debug 2 0) + debuginfo-level-std = $(usex debug 2 0) + debuginfo-level-tools = $(usex debug 2 0) + debuginfo-level-tests = 0 + backtrace = true + incremental = false + $(if ! tc-is-cross-compiler; then + echo "default-linker = \"$(tc-getCC)\"" + fi) + channel = "${build_channel}" + description = "gentoo" + rpath = true + verbose-tests = true + optimize-tests = $(toml_usex !debug) + codegen-tests = true + omit-git-hash = false + dist-src = false + remap-debuginfo = true + lld = $(usex system-llvm false $(toml_usex wasm)) + # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it + # https://github.com/rust-lang/rust/issues/74976 + # https://github.com/rust-lang/rust/issues/76526 + deny-warnings = $(usex wasm $(usex doc false true) true) + backtrace-on-ice = true + jemalloc = false + # See https://github.com/rust-lang/rust/issues/121124 + lto = "$(usex lto thin off)" + [dist] + src-tarball = false + compression-formats = ["xz"] + compression-profile = "balanced" + _EOF_ + + for v in $(multilib_get_enabled_abi_pairs); do + rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) + arch_cflags="$(get_abi_CFLAGS ${v##*.})" + + export CFLAGS_${rust_target//-/_}="${arch_cflags}" + + cat <<- _EOF_ >> "${S}"/config.toml + [target.${rust_target}] + ar = "$(tc-getAR)" + cc = "$(tc-getCC)" + cxx = "$(tc-getCXX)" + linker = "$(tc-getCC)" + ranlib = "$(tc-getRANLIB)" + llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/config.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + _EOF_ + fi + # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; + # but we patch it and set to false here as well + if use elibc_musl; then + cat <<- _EOF_ >> "${S}"/config.toml + crt-static = false + musl-root = "$($(tc-getCC) -print-sysroot)/usr" + _EOF_ + fi + done + if use wasm; then + wasm_target="wasm32-unknown-unknown" + export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")" + cat <<- _EOF_ >> "${S}"/config.toml + [target.wasm32-unknown-unknown] + linker = "$(usex system-llvm lld rust-lld)" + # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483 + profiler = false + _EOF_ + fi + + if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below + # experimental cross support + # discussion: https://bugs.gentoo.org/679878 + # TODO: c*flags, clang, system-llvm, cargo.eclass target support + # it would be much better if we could split out stdlib + # complilation to separate ebuild and abuse CATEGORY to + # just install to /usr/lib/rustlib/<target> + + # extra targets defined as a bash array + # spec format: <LLVM target>:<rust-target>:<CTARGET> + # best place would be /etc/portage/env/dev-lang/rust + # Example: + # RUST_CROSS_TARGETS=( + # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu" + # ) + # no extra hand holding is done, no target transformations, all + # values are passed as-is with just basic checks, so it's up to user to supply correct values + # valid rust targets can be obtained with + # rustc --print target-list + # matching cross toolchain has to be installed + # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one) + # only gcc toolchains installed with crossdev are checked for now. + + # BUG: we can't pass host flags to cross compiler, so just filter for now + # BUG: this should be more fine-grained. + filter-flags '-mcpu=*' '-march=*' '-mtune=*' + + local cross_target_spec + for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do + # extracts first element form <LLVM target>:<rust-target>:<CTARGET> + local cross_llvm_target="${cross_target_spec%%:*}" + # extracts toolchain triples, <rust-target>:<CTARGET> + local cross_triples="${cross_target_spec#*:}" + # extracts first element after before : separator + local cross_rust_target="${cross_triples%%:*}" + # extracts last element after : separator + local cross_toolchain="${cross_triples##*:}" + use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled" + command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain" + + cat <<- _EOF_ >> "${S}"/config.toml + [target.${cross_rust_target}] + ar = "${cross_toolchain}-ar" + cc = "${cross_toolchain}-gcc" + cxx = "${cross_toolchain}-g++" + linker = "${cross_toolchain}-gcc" + ranlib = "${cross_toolchain}-ranlib" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/config.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + _EOF_ + fi + if [[ "${cross_toolchain}" == *-musl* ]]; then + cat <<- _EOF_ >> "${S}"/config.toml + musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr" + _EOF_ + fi + + # append cross target to "normal" target list + # example 'target = ["powerpc64le-unknown-linux-gnu"]' + # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]' + + rust_targets="${rust_targets},\"${cross_rust_target}\"" + sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die + + ewarn + ewarn "Enabled ${cross_rust_target} rust target" + ewarn "Using ${cross_toolchain} cross toolchain" + ewarn + if ! has_version -b 'sys-devel/binutils[multitarget]' ; then + ewarn "'sys-devel/binutils[multitarget]' is not installed" + ewarn "'strip' will be unable to strip cross libraries" + ewarn "cross targets will be installed with full debug information" + ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files" + ewarn + ewarn "Alternatively llvm-strip can be used, it supports stripping any target" + ewarn "define STRIP=\"llvm-strip\" to use it (experimental)" + ewarn + fi + done + fi # I_KNOW_WHAT_I_AM_DOING_CROSS + + einfo "Rust configured with the following flags:" + echo + echo RUSTFLAGS="\"${RUSTFLAGS}\"" + echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\"" + echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\"" + echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\"" + env | grep "CARGO_TARGET_.*_RUSTFLAGS=" + env | grep "CFLAGS_.*" + echo + einfo "config.toml contents:" + cat "${S}"/config.toml || die + echo +} + +src_compile() { + RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die +} + +src_test() { + # https://rustc-dev-guide.rust-lang.org/tests/intro.html + + # those are basic and codegen tests. + local tests=( + codegen + codegen-units + compile-fail + incremental + mir-opt + pretty + run-make + ) + + # fails if llvm is not built with ALL targets. + # and known to fail with system llvm sometimes. + use system-llvm || tests+=( assembly ) + + # fragile/expensive/less important tests + # or tests that require extra builds + # TODO: instead of skipping, just make some nonfatal. + if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then + tests+=( + rustdoc + rustdoc-js + rustdoc-js-std + rustdoc-ui + run-make-fulldeps + ui + ui-fulldeps + ) + fi + + local i failed=() + einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}" + for i in "${tests[@]}"; do + local t="src/test/${i}" + einfo "rust_src_test: running ${t}" + if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \ + -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}" + then + failed+=( "${t}" ) + eerror "rust_src_test: ${t} failed" + fi + done + + if [[ ${#failed[@]} -ne 0 ]]; then + eerror "rust_src_test: failure summary: ${failed[@]}" + die "aborting due to test failures" + fi +} + +src_install() { + DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + + docompress /usr/lib/${PN}/${SLOT}/share/man/ + + # bug #689562, #689160 + rm -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d/cargo" || die + rmdir -v "${ED}/usr/lib/${PN}/${SLOT}"/etc{/bash_completion.d,} || die + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + if [[ ${PV} = *9999* ]]; then + use miri && symlinks+=( miri cargo-miri ) + fi + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver> + # need to fix eselect-rust to remove this hack. + local ver_i="${i}-${PV%%_*}" + if [[ -f "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" ]]; then + einfo "Installing ${i} symlink" + ln -v "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" "${ED}/usr/lib/${PN}/${SLOT}/bin/${ver_i}" || die + else + ewarn "${i} symlink requested, but source file not found" + ewarn "please report this" + fi + dosym "../lib/${PN}/${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "${SLOT}/lib" "/usr/lib/${PN}/lib-${SLOT}" + use rust-analyzer && dosym "${SLOT}/libexec" "/usr/lib/${PN}/libexec-${SLOT}" + dosym "${SLOT}/share/man" "/usr/lib/${PN}/man-${SLOT}" + dosym "rust/${SLOT}/lib/rustlib" "/usr/lib/rustlib-${SLOT}" + dosym "../../lib/${PN}/${SLOT}/share/doc/rust" "/usr/share/doc/${P}" + + newenvd - "50${P}" <<-_EOF_ + MANPATH="${EPREFIX}/usr/lib/rust/man-${SLOT}" + _EOF_ + + rm -rf "${ED}/usr/lib/${PN}/${SLOT}"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/bin"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/doc"/*.old || die + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" + fi + if [[ ${SLOT} == *9999* ]] && use miri; then + echo /usr/bin/miri >> "${T}/provider-${P}" + echo /usr/bin/cargo-miri >> "${T}/provider-${P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" + fi + if use rust-analyzer; then + echo /usr/lib/rust/libexec >> "${T}/provider-${P}" + echo /usr/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + + if use dist; then + "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + insinto "/usr/lib/${PN}/${SLOT}/dist" + doins -r "${S}/build/dist/." + fi +} + +pkg_postinst() { + + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/spark/Manifest b/dev-lang/spark/Manifest index ea5fdf6c69dc..38c08456f77c 100644 --- a/dev-lang/spark/Manifest +++ b/dev-lang/spark/Manifest @@ -1,5 +1,5 @@ -AUX spark-2021-gentoo.patch 860 BLAKE2B 6eb65c19b604a8d9370bf4da87899c1b8471c52763c17b97322856ddb701e46f6d5c5de03df204c287c728413e5ab8de2f320c75d9c3acb049abad62360037da SHA512 ac636251eb45868430e46d0f5566ab655dc5a223bd44fa4b76bd75c679779cc037bf6ef376f9f4ec22a90b1347bf302d382e1d540b448acb6308c1b3e33036ec -DIST gnat-2021-20210519-19A70-src.tar.gz 8765762 BLAKE2B ef48f54c6109566e37bfa5dee9262305d0529b3dfd333ee28bc4e66f4709a0673f673d742bc04deb15dc145404f7618d350dbdf3f2a7ab37c861e57d011946fa SHA512 3cb79be024fdd9b738d99ffc8e224d32bb382b5da2d02b97b2061a5ea58456f33d4564c92e224af2713ce15fd5481edd715e5b9a52abc74fdc142f27e103c201 -DIST spark-2021-2021-20210519-19A1A-src.tar.gz 11361491 BLAKE2B 67f8d27ae68ef4929aafaf96c470394e093883619c5c778e804f1ff62c297d5a3f628e04e987fb06741cb824710599928a7ec3b94fa6d7af029cff35be0898c3 SHA512 b595516892f6054d3c856c30c4296be9cd61adca3ea2cffe3c9060fbab249d36ce1b8fff6f80e1e8173ef6e232dd9c2da8a581ae9964845120c03d09896b635c -EBUILD spark-2021.ebuild 2277 BLAKE2B b61dff1b857ab940f6700f94c882e5a7a35096205dad1e0fcd97527e365cee08a84b40cd18d9360ac5fe4487785a6e65bc6d0703e769f05a7d4001630e4fc2bb SHA512 f4885364fa1a4ec3fccb27aaa1426426c386f5ca464987bf6193ae4a67b51ba0ec6696acf4a666a3a362b0c9b71c544d8f4c8c252320601fa18492bc9f40d54d -MISC metadata.xml 671 BLAKE2B b4bbfa26668fcec46cc224b60c1c62ac09f5e11314a32ea1288614b12029f989aa234305f0dbbb66f63b15a809d3f17261ef1155c0b72ea87bc29e3ccdf2c56f SHA512 e804dcad5593c98c9e4d5624be0e6dfa78545a48e46510b5d76c21da59dbe2c632495d96244dbaca91105a3b09efcafc759f1866311a365744887733c1a60670 +AUX spark-2024.01.11-gentoo.patch 653 BLAKE2B 1e3978ccbffcb42bb07b527be18fda3e4f03781987ad92c9a4c03359027f85da817729a741d2747d31d4f87ff07ab2a49bc317387b790561d192c85bc0a28103 SHA512 cd9fbe6aa8432674765dfaaad532b6488943060eb1350a2278145d48461f5773e80385c349b76414c7b0c78c065adb76fa0126db063621d9fcd6a3c0d3f474dc +DIST gcc-14.2.0.tar.xz 92306460 BLAKE2B 87baf2a06dfa75d8fb6cd62c747ef1f57d3b9bbbe33a360d9ed3de4b4dbeaa8d920504c67e409bd9863414202c14fd854b46108e984418171205119216d03d3b SHA512 932bdef0cda94bacedf452ab17f103c0cb511ff2cec55e9112fc0328cbf1d803b42595728ea7b200e0a057c03e85626f937012e49a7515bc5dd256b2bf4bc396 +DIST spark-2024.01.11.tar.gz 12086894 BLAKE2B 384aff45c146d1deff9c0121e2fd76020dcaefb8c5653c24db990ce470824eb772b40125f2f92596e564e879ee8c57660d613dafa485e2b8dc23cbe0ff47fdf0 SHA512 617269963879ce46066125332b845653eda9b6196213ef5ed51e204feee8dbeeee31422d3fee1c470ab4ea3528e4a3f4e88d76a64a67f20d42bfbd4c6723e92c +EBUILD spark-2024.01.11-r2.ebuild 2717 BLAKE2B 68f0e0c669969caf6be98146406a768caabc5c25a746b0e04379f4545e88863bab02694776c4765ba0451b47058cbd8694f0a3fa2061aec759fb65835b304779 SHA512 5e1ad34543577754e4aa150cf6019abc31a8e36babd58b1dc5c903637fc2f16e12a974ca9fd2013e880f54703b6d7edbd092867ac02b6f41340146cf85655447 +MISC metadata.xml 753 BLAKE2B 94485db836f7e8516d9f6576934e40e130ded0e7332c5c1c309414bf30a751ca49d4715fabebd1a58b1963c22f2837718088251f06ee9a718f1d3b2c7a62b753 SHA512 67de3fd8a42e9f1ec1a1f2139bb455a3012a36ec93093e8ebebd8cfb7926eaa4828a205f7513753b395eab8fe38aeb26b0432b70761ae8cc39c37564ed4701b0 diff --git a/dev-lang/spark/files/spark-2021-gentoo.patch b/dev-lang/spark/files/spark-2021-gentoo.patch deleted file mode 100644 index e2f44d237962..000000000000 --- a/dev-lang/spark/files/spark-2021-gentoo.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- a/src/gnatprove/configuration.adb 2021-06-21 22:30:18.962850246 +0200 -+++ b/src/gnatprove/configuration.adb 2021-06-21 22:31:03.621210570 +0200 -@@ -1269,7 +1269,9 @@ - - end if; - -- Set_Path_From_Gnatls (Proj_Env.all, "gnatls", GNAT_Version); -+ Set_Path_From_Gnatls (Proj_Env.all, -+ "gnatls", -+ GNAT_Version); - Free (GNAT_Version); - Set_Object_Subdir (Proj_Env.all, - Filesystem_String ---- a/gnat2why/gnat2why_c.gpr 2017-10-04 21:41:41.613376056 +0200 -+++ b/gnat2why/gnat2why_c.gpr 2017-10-04 21:42:30.582572536 +0200 -@@ -1,4 +1,7 @@ - project Gnat2Why_C is - for Languages use ("C"); - for Object_Dir use "obj"; -+ package Compiler is -+ for Driver ("C") use External ("CC", "gcc"); -+ end Compiler; - end Gnat2Why_C; diff --git a/dev-lang/spark/files/spark-2024.01.11-gentoo.patch b/dev-lang/spark/files/spark-2024.01.11-gentoo.patch new file mode 100644 index 000000000000..156d5cbba044 --- /dev/null +++ b/dev-lang/spark/files/spark-2024.01.11-gentoo.patch @@ -0,0 +1,21 @@ +--- a/gnat2why/gnat2why_c.gpr 2017-10-04 21:41:41.613376056 +0200 ++++ b/gnat2why/gnat2why_c.gpr 2017-10-04 21:42:30.582572536 +0200 +@@ -1,4 +1,7 @@ + project Gnat2Why_C is + for Languages use ("C"); + for Object_Dir use "obj"; ++ package Compiler is ++ for Driver ("C") use External ("CC", "gcc"); ++ end Compiler; + end Gnat2Why_C; +--- a/src/why/xgen/Makefile 2025-02-09 13:48:38.217846207 +0100 ++++ b/src/why/xgen/Makefile 2025-02-09 13:49:36.594134360 +0100 +@@ -31,7 +31,7 @@ + why-atree-to_json.adb + + all: +- gprbuild -j0 -p -Phelpers xtree ++ gprbuild -v -p -Phelpers xtree -XLIBRARY_TYPE=relocatable + ./xtree + cp $(GENERATED_FILES) ../ + diff --git a/dev-lang/spark/metadata.xml b/dev-lang/spark/metadata.xml index 3e2253467fac..e5a4d2fa224d 100644 --- a/dev-lang/spark/metadata.xml +++ b/dev-lang/spark/metadata.xml @@ -12,4 +12,7 @@ application domains where high-reliability must be assured, for example where safety and security are key requirements. </longdescription> + <upstream> + <remote-id type="github">AdaCore/spark2014</remote-id> + </upstream> </pkgmetadata> diff --git a/dev-lang/spark/spark-2021.ebuild b/dev-lang/spark/spark-2021.ebuild deleted file mode 100644 index 4c19fe5a5d30..000000000000 --- a/dev-lang/spark/spark-2021.ebuild +++ /dev/null @@ -1,85 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -ADA_COMPAT=( gnat_2021 ) - -inherit ada - -ADA_MIRROR=https://community.download.adacore.com/v1 -ID=969ce28e217bd5aa4db549a544d20846408a5229 -MYP=${P}-2021-20210519-19A1A-src -GNATID=005d2b2eff627177986d2517eb31e1959bec6f3a -GNATDIR=gnat-${PV}-20210519-19A70-src - -DESCRIPTION="Software development for high-reliability applications" -HOMEPAGE="http://libre.adacore.com" -SRC_URI="${ADA_MIRROR}/${ID}?filename=${MYP}.tar.gz -> ${MYP}.tar.gz - ${ADA_MIRROR}/${GNATID}?filename=${GNATDIR}.tar.gz -> ${GNATDIR}.tar.gz" - -S="${WORKDIR}"/${MYP} - -LICENSE="GPL-3" -SLOT="0" -KEYWORDS="~amd64" -IUSE="" - -RDEPEND=" - dev-ada/gnatcoll-core[${ADA_USEDEP},shared] - sci-mathematics/alt-ergo - sci-mathematics/why3-for-spark" -DEPEND="${RDEPEND} - dev-ada/gprbuild[${ADA_USEDEP}]" - -REQUIRED_USE="${ADA_REQUIRED_USE}" - -PATCHES=( "${FILESDIR}"/${P}-gentoo.patch ) - -src_prepare() { - ln -sf "${WORKDIR}"/${GNATDIR}/src/ada gnat2why/gnat_src || die - default - sed -i \ - -e "s:gnatls:${GNATLS}:g" \ - src/gnatprove/configuration.adb || die -} - -src_compile() { - emake -C gnat2why GPRARGS="-XLIBRARY_TYPE=relocatable -v" - gprbuild -p -XLIBRARY_TYPE=relocatable -v -P gnatprove.gpr || die - emake -C include generate -} - -src_install() { - # Create the fake prover scripts to help extract benchmarks. - insinto /usr/libexec/spark/bin/ - doins benchmark_script/fake_* - - gprbuild -q -c -u -gnats spark2014vsn.ads \ - -XLIBRARY_TYPE=relocatable -v \ - -gnatet="${D}"/usr/libexec/spark/bin/target.atp || die - insinto /usr/share/spark - doins share/spark/help.txt - doins -r share/spark/config - insinto /usr/share/spark/theories - doins share/spark/theories/*why - doins share/spark/theories/*mlw - insinto /usr/share/spark/runtimes - doins share/spark/runtimes/README - insinto /usr/include/spark - doins include/*.ad? - insinto /usr/lib/gnat - doins include/*.gpr - doins -r include/proof - - dosym ../../../lib64/why3/why3server /usr/libexec/spark/bin/why3server - dobin install/bin/gnatprove - exeinto /usr/libexec/spark/bin - doexe install/bin/gnat2why - doexe install/bin/spark_memcached_wrapper - doexe install/bin/spark_report - doexe install/bin/spark_codepeer_wrapper - doexe install/bin/spark_semaphore_wrapper - - einstalldocs -} diff --git a/dev-lang/spark/spark-2024.01.11-r2.ebuild b/dev-lang/spark/spark-2024.01.11-r2.ebuild new file mode 100644 index 000000000000..ff918e6d5e40 --- /dev/null +++ b/dev-lang/spark/spark-2024.01.11-r2.ebuild @@ -0,0 +1,106 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ADA_COMPAT=( gcc_14 ) +PYTHON_COMPAT=( python3_{10..13} pypy3 ) +inherit ada python-any-r1 multiprocessing + +commitId=ce5fad038790d5dc18f9b5345dc604f1ccf45b06 +why3Id=fb4ca6cd8c7d888d3e8d281e6de87c66ec20f084 + +DESCRIPTION="Software development for high-reliability applications" +HOMEPAGE="http://libre.adacore.com" +SRC_URI="https://github.com/AdaCore/spark2014/archive/${commitId}.tar.gz + -> ${P}.tar.gz + http://mirror.koddos.net/gcc/releases/gcc-14.2.0/gcc-14.2.0.tar.xz" + +S="${WORKDIR}"/spark2014-${commitId} + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~arm64" + +IUSE="doc" + +RDEPEND=" + dev-ada/gnatcoll-core[${ADA_USEDEP},shared] + ~dev-ada/gpr-24.2.0[${ADA_USEDEP}] + sci-mathematics/alt-ergo + sci-mathematics/why3-for-spark" +DEPEND="${RDEPEND} + dev-ada/gprbuild[${ADA_USEDEP}]" +BDEPEND="doc? ( + $(python_gen_any_dep ' + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] + ') +)" + +REQUIRED_USE="${ADA_REQUIRED_USE}" + +PATCHES=( "${FILESDIR}"/${P}-gentoo.patch ) + +python_check_deps() { + python_has_version "dev-python/sphinx[${PYTHON_USEDEP}]" && + python_has_version "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use doc && python-any-r1_pkg_setup + ada_pkg_setup +} + +src_prepare() { + ln -s "${WORKDIR}"/gcc-14.2.0/gcc/ada gnat2why/gnat_src || die + default +} + +src_compile() { + emake -j1 -C gnat2why \ + GPRARGS="-XLIBRARY_TYPE=relocatable -XBuild=Production -v" \ + PROCS=$(makeopts_jobs) + gprbuild -j$(makeopts_jobs) -p -XLIBRARY_TYPE=relocatable -v \ + -P gnatprove.gpr \ + -largs ${LDFLAGS} -cargs ${ADAFLAGS} || die + if use doc; then + emake -C docs/lrm html + fi +} + +src_install() { + + dodir /usr/bin + dodir /usr/include/spark + dodir /usr/lib/spark + dodir /usr/share/spark/explain_codes + dodir /usr/share/spark/theories + dodir /usr/share/spark/runtimes + + gcc -c -gnats spark2014vsn.ads -gnatet="${D}"/usr/bin/target.atp + insinto /usr/share/spark + doins share/spark/help.txt + doins -r share/spark/config + doins -r share/spark/explain_codes + insinto /usr/share/spark/theories + doins share/spark/theories/*why + doins share/spark/theories/*mlw + insinto /usr/share/spark/runtimes + doins share/spark/runtimes/README + insinto /usr/include/spark + doins src/spark/*.ad? + # Create the fake prover scripts to help extract benchmarks. + insinto /usr/libexec/spark/bin + doins benchmark_script/fake_* + + dobin install/bin/gnatprove + exeinto /usr/libexec/spark/bin + doexe install/bin/gnat2why + doexe install/bin/spark_memcached_wrapper + doexe install/bin/spark_report + doexe install/bin/spark_semaphore_wrapper + + use doc && HTML_DOCS=( docs/lrm/_build/html/* ) + einstalldocs +} diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest index 9c620eda2afb..7f7633b59791 100644 --- a/dev-lang/spidermonkey/Manifest +++ b/dev-lang/spidermonkey/Manifest @@ -6,16 +6,20 @@ DIST firefox-102esr-patches-13.tar.xz 22212 BLAKE2B 02e9edd071a99abbac02faa11ffc DIST firefox-115.16.0esr.source.tar.xz 515133700 BLAKE2B 9501b617b346d56f6de975f88974be6fdc3d4a901b2a1b952b6bbf6cc46384084260078d23c52bedff83a65bec4ea5ec78c3bcaac86c78d0b44e796317534840 SHA512 b6f93ec3d6acac5df177253c65b833c017e65ed6e78e96ff029098443928d291f6f67164aedb83d80aa28ee9dee305086597798238d3330e35183030e53e3550 DIST firefox-115esr-patches-13.tar.xz 51360 BLAKE2B a048bfadba989ebbd4c6e3df97d303d6853844e66ed92f5f5f322acf18866218b91d52dbbece63827de283eef855c932d67e329c8d93200aa83f11268a5d1b2f SHA512 186ec72323e621362dcef1bc67c476716aff97dfad701faa9220a7302e798d3cb4ed90d5ea59e3e92f016be29875bb5219787635db99a8848b7c76e4e2e09e90 DIST firefox-128.4.0esr.source.tar.xz 558619512 BLAKE2B 1f0528c8806bb034af623f2022740bb5056ea11817b9cb7154a60b87f04051ba5ae06b0daf55e6b03b7531c369deb871d3d3579a86f3ca19f3ab71ccb45243f9 SHA512 e720b1f993926d73f5a5727648f753176ac2fd093fb0b71393946bbc5919ce5fc7b88b82960bd1aa427b5663c7f659828dc6702485fc0c1e7a6961571c67faa3 -DIST firefox-128.5.0esr.source.tar.xz 567200548 BLAKE2B b524796854d4f622e90c219e4e302e5665f3f1e3ffb7935ba58244903dbcf1c2b9a13731e9af5507ffc25dda621d4ea13650aae842ed0317843182da55d1d652 SHA512 ff20f18f92c5e9cd1d9eaf7c38cec61bcab2dca8dd2817519b712bc1f760b5c6e290212acf3289152764e5130e01626950b7ecd9327b2c587b24a246591afd67 DIST firefox-128.6.0esr.source.tar.xz 563259116 BLAKE2B 401c54e4c3e81dd1d4aa9fed072e5266a7549d9ac05e03f9755d3da192c9c46d2bc636e8bf0a7fad2269074615789ab274b897c8bd75fd524f4a5f138c3aa1d5 SHA512 49bce966e062766861712bd65cca46a438b339fe31598f69e4fe64da78ef6f8b4581c1d502341ef1c032aafaab2f4f88e69cb93a0b845ba7173fec277ae695b5 +DIST firefox-128.7.0esr.source.tar.xz 569300208 BLAKE2B 08bf5b571707b7a5acf1ebde12e370be5999e3ac8cac2e952fae635faa16e07ba4d9d0a00b304ba43b5a327c825cae04c1ccf8434456e27d4c396e5b09a4b6a7 SHA512 26f9661b395b85a44b42bd72ef1ad976c614216c68f6c2dd834d0ac8b84b9c9f398b8ac550a47396995d96e6bb5fa9a50064d7f2f526bddd45aed5039ef131b8 +DIST firefox-128.8.0esr.source.tar.xz 563554116 BLAKE2B 3fdfa2539b42a6a659d05ef9ad60d3dd7a0097abf3c5038150316d775e3eb864056a56edc58ae4e49ca36b3ccf2f05d68a07f8493a7649388e340cd81640e584 SHA512 7c0ef22bc14d4fa248cbae14d629174c9c967f891f4525f609760595f5a108aedf7dd804d1b63b97ec268613fa98378f4742a9b6ab562454351cf21175fdb802 DIST firefox-128esr-patches-07.tar.xz 18856 BLAKE2B 44d0ddf11518c7eef0a96de4f475a6ae1535e43e5bf89b8f61dc95330f28d6a053d08e6a183cf71432107256c83cd6ee6f742b235ca82babe4dd83698bf80d07 SHA512 60b4f18f5d91fc25f86cceccd561b55f167299908fbf2f9d7d69a8ce299c643f0b538d613d4348e42dd17c3812e4fa315e15004614af1f40fbe2adda417a1a81 DIST firefox-128esr-patches-08.tar.xz 17564 BLAKE2B d904b74fdae2e76866ded11de5377a7b6883d35996b358ae3419ffb7da53b04b2c7d4bb10d48998a8318a84e8221de39955289cb33a8f278c131b4af2006be62 SHA512 344a2d04dec679cd8ed714dcecc9dd5b56696803cee9267e7c0c45c439d78728e7eae674bb5f0a64f2e5802dc59c1ec25f1703885024d88bda8a02e2b3e0d69e +DIST firefox-128esr-patches-09.tar.xz 17976 BLAKE2B 78f64f5086951f7bf2b304c1148154647aef5c4e699257cba5e94a83d8d8c159a591d0b2a7a5f8bc0f8ec28d5eae66a0783b45f94b4ef713282a6f88e46c75be SHA512 159d8c94af0f90c10baf7446e573a37397b3be7103e7001fb6b38845a28a41793c21ad24c23e0b3cfc4daa2c3a6040ef701f612693c9f4dfff8534f82e7b18a1 DIST spidermonkey-102-patches-05j.tar.xz 4596 BLAKE2B 215b770bbdf17973d7b3fd1df6cee9647459d2b02b0be5bdb289d457e5dbdb06ceac7a3082fc2f5836e991a4ac4486d73330b0276a466b5c528dab226a27829c SHA512 d2b8e32dac87d60a00fd93479dc34d8adab4feec24a38591cebeb4cf271aa2fd964f4dc26e67ebfb127a47bc8f684d50b32b2cff18ed5286701a04a289058185 DIST spidermonkey-115-patches-02.tar.xz 4896 BLAKE2B f78d9804c1427b45d6fda496b4991ec6f672dec9ce031ed57a2920fa1968c942a235f46e40166c8ab8d731a1963f322d34bb2f6984133179175e6f7376d27d13 SHA512 11fd01152d1e7b8ca89bf628076e1f4fb4f1ba6c9dc0f9dd544252495c580c04e4d5ffc238d5587f9e993aa91a47828333564ca55f60e008bd370089cd07d2e6 DIST spidermonkey-128-patches-02.tar.xz 3916 BLAKE2B b6640860ea091b22c61b2a78da5004816a08ab9fb39fda04ae76fe48a3a8061770d6d6e451e5f34951aa3f63473dd77d3dde8b60aec80b4c31f1b29064ce68ee SHA512 3f2d272a36ca2ac831de9108769c68e380be4e8bba7071d02686699702acac6a9325e4256d9c5c2441c3742552179031b0898d3f96f08477857fd6e989596ee6 +DIST spidermonkey-128-patches-03.tar.xz 3636 BLAKE2B 99517642e255762c57a9e65f4c4c4107b8d6a1630dd2e68dea4527ac0e5d70fc435122e6b4068a8223c9b2a6e06503c242659d1895b9a2ff6d75212e9c917498 SHA512 71e059861318073f09f7892094e6d44ec04385385086b2e126de8e4f80cff99410bbfd352a10f325e950441c398f7ba0ac82c861ce417c10a37ab5ea063c6be2 EBUILD spidermonkey-102.15.0-r1.ebuild 15100 BLAKE2B 2f7d493ef27869b28de30fea5f47db8f3bfefbac0f3854458deae57ce695be929d071662f2a6a612e8b5d8187fc65c0c9d6b64609623a58c3c633f378b7c2a03 SHA512 0d4367ac4e15ef8852e21295ec0dbb58dbe2e4c7674b322ad214ff01baec2982e0009058e25157128d32dc780efc5763e24185d5584f2f580570bab4960d4bd1 EBUILD spidermonkey-115.16.0-r1.ebuild 13395 BLAKE2B b6c7c5a512fe9e46374868e53b86c39b7271ec435ed20a892c7864d4cb308ee790dc530af7b234ef78bab5f7393ddf0e7857b38df6fe1f3be773444d0b49f78e SHA512 6890cadb3b96f6557f0e3a51d6cbf099a7118c0e4927b0d8796c89d987463a840cc67cefe77248cbda529e252e4e15771d999c30f21336ea946d60eb8843cd7c EBUILD spidermonkey-128.4.0-r1.ebuild 13747 BLAKE2B 91cec6c9062aa43824a389e2020cfac6dc24be106b923cdb036d4b9c14b0b71b2c2e07a298c43ecc77fbb9b89e7cad61c7eec1a0f21dfe6e79c4ea078a36eaea SHA512 5889eb2bb3b14f4d72b8bf50469b6b7fda0b60baa1fd9b27e36a421552e94549436c3afbe7d46d0246ea46888c56a8791c2c0050fc51e5a6845adfe8290d1f85 -EBUILD spidermonkey-128.5.0.ebuild 13758 BLAKE2B 8e8313dac06e0c355fefbbc23a842e755d057b9902411813d42e56917cfd1396916005bc2371c3410b14b681ce3012abcba7ecda6536ac46e3f2a2127fe369ec SHA512 a5a04bb01deecce3dcfefa3c78f98b2faf481bb63820a21652d6c7c14c3f0822065a4e07211aefb3feea81eeb5a60e43ede28f905d1bf5ef121ece56fd10acfb EBUILD spidermonkey-128.6.0.ebuild 12829 BLAKE2B 2c603b698773db903c6d56ea22d6d8fd774d0645d2291da6d70a7a360703c5263466883a2c2d10d46399d6681a07a28b673146c01c2b7ab283b5a4133ce63def SHA512 ce7760113b7ca8c2b12c4a481e831dc89d85abfcfad1a0becf56f0f0b53a72323141d50fd4b98044baccd9e366dd9619a10ad537513f7a62fe4a79daf9c68d8d +EBUILD spidermonkey-128.7.0.ebuild 12829 BLAKE2B 2c603b698773db903c6d56ea22d6d8fd774d0645d2291da6d70a7a360703c5263466883a2c2d10d46399d6681a07a28b673146c01c2b7ab283b5a4133ce63def SHA512 ce7760113b7ca8c2b12c4a481e831dc89d85abfcfad1a0becf56f0f0b53a72323141d50fd4b98044baccd9e366dd9619a10ad537513f7a62fe4a79daf9c68d8d +EBUILD spidermonkey-128.8.0.ebuild 12829 BLAKE2B 60be3e5d54f91e24cf7decc9e163240e773bb73a8d6515770454d562ce004e2d087a52b37de8f535a001ed02400f205ded2eba763c887dc4f2ebbb9a0199e4fe SHA512 bb8d7192fb133bbbebc56a3a2d03d7516df936ec509e69dd5ad8ececb84110e5d271992854cd04f6bbe86c77acd277bd6c21285707f05f6853ec628ea07df9b7 MISC metadata.xml 513 BLAKE2B 58ffd474492f03c16bda95e48511fb6281e03067d2ad77e994f8117345ecece5da9591dccedafe75b037d98e06851a3759caa4b993adc2910dbb76e1c01a7fa3 SHA512 1ee02bff37e2dabbd72b7f719463b12299270c7960b4cf5a92afab17c954c50e6acb826d4a91db4954fb4a7b0f8669988f2cdb5be991df90e3a605c6b35fdbfb diff --git a/dev-lang/spidermonkey/spidermonkey-128.5.0.ebuild b/dev-lang/spidermonkey/spidermonkey-128.7.0.ebuild index 16fc99683ae2..1f1a17198baf 100644 --- a/dev-lang/spidermonkey/spidermonkey-128.5.0.ebuild +++ b/dev-lang/spidermonkey/spidermonkey-128.7.0.ebuild @@ -3,10 +3,11 @@ EAPI="8" -FIREFOX_PATCHSET="firefox-128esr-patches-07.tar.xz" +FIREFOX_PATCHSET="firefox-128esr-patches-08.tar.xz" SPIDERMONKEY_PATCHSET="spidermonkey-128-patches-02.tar.xz" LLVM_COMPAT=( 17 18 19 ) +RUST_NEEDS_LLVM=1 PYTHON_COMPAT=( python3_{10..12} ) PYTHON_REQ_USE="ncurses,ssl,xml(+)" @@ -62,7 +63,7 @@ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86" LICENSE="MPL-2.0" SLOT="$(ver_cut 1)" -IUSE="clang cpu_flags_arm_neon debug +jit lto test" +IUSE="clang cpu_flags_arm_neon debug +jit test" #RESTRICT="test" RESTRICT="!test? ( test )" @@ -171,7 +172,22 @@ pkg_pretend() { } pkg_setup() { + # Get LTO from environment; export after this phase for use in src_configure (etc) + use_lto=no + if [[ ${MERGE_TYPE} != binary ]] ; then + if tc-is-lto; then + use_lto=yes + # LTO is handled via configure + filter-lto + fi + + if [[ ${use_lto} = yes ]]; then + # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC, + # bmo#1516758, bgo#942288 + filter-flags -Werror=lto-type-mismatch -Werror=odr + fi + if use test ; then CHECKREQS_DISK_BUILD="4400M" else @@ -179,31 +195,8 @@ pkg_setup() { fi check-reqs_pkg_setup - llvm-r1_pkg_setup rust_pkg_setup - - if use clang && use lto && tc-ld-is-lld ; then - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" - - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" - - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" - eerror " - Build ${CATEGORY}/${PN} without USE=lto" - eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " - eerror " llvm/clang/lld/rust chain depending on your @world updates)" - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" - fi - fi - python-any-r1_pkg_setup # Build system is using /proc/self/oom_score_adj, bug #604394 @@ -218,10 +211,12 @@ pkg_setup() { # Ensure we use C locale when building, bug #746215 export LC_ALL=C fi + + export use_lto } src_prepare() { - if use lto ; then + if [[ ${use_lto} == "yes" ]]; then rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die fi @@ -389,7 +384,7 @@ src_configure() { fi # Tell build system that we want to use LTO - if use lto ; then + if [[ ${use_lto} == "yes" ]] ; then if use clang ; then if tc-ld-is-mold ; then mozconfig_add_options_ac '+lto' --enable-linker=mold diff --git a/dev-lang/spidermonkey/spidermonkey-128.8.0.ebuild b/dev-lang/spidermonkey/spidermonkey-128.8.0.ebuild new file mode 100644 index 000000000000..908a8fd23c79 --- /dev/null +++ b/dev-lang/spidermonkey/spidermonkey-128.8.0.ebuild @@ -0,0 +1,473 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +FIREFOX_PATCHSET="firefox-128esr-patches-09.tar.xz" +SPIDERMONKEY_PATCHSET="spidermonkey-128-patches-03.tar.xz" + +LLVM_COMPAT=( 17 18 19 ) +RUST_NEEDS_LLVM=1 + +PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_REQ_USE="ncurses,ssl,xml(+)" + +WANT_AUTOCONF="2.1" + +inherit autotools check-reqs flag-o-matic llvm-r1 multiprocessing python-any-r1 rust toolchain-funcs + +MY_PN="mozjs" +MY_PV="${PV/_pre*}" + +MY_MAJOR=$(ver_cut 1) + +MOZ_ESR=yes + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +MOZ_PN="firefox" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} + https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET} +) + +DESCRIPTION="Mozilla's JavaScript engine written in C and C++" +HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html" +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86" + +LICENSE="MPL-2.0" +SLOT="$(ver_cut 1)" +IUSE="clang cpu_flags_arm_neon debug +jit test" + +#RESTRICT="test" +RESTRICT="!test? ( test )" + +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + clang? ( + llvm-core/clang:${LLVM_SLOT} + llvm-core/lld:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + ) + ') + >=dev-util/cbindgen-0.26.0 + virtual/pkgconfig + test? ( + $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]') + )" +DEPEND=">=dev-libs/icu-73.1:= + dev-libs/nspr + sys-libs/readline:0= + sys-libs/zlib" +RDEPEND="${DEPEND}" + +S="${WORKDIR}/firefox-${PV%_*}" + +llvm_check_deps() { + if use clang ; then + if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then + einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if ! has_version -b "llvm-core/llvm:${LLVM_SLOT}" ; then + einfo "llvm-core/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if ! tc-ld-is-mold ; then + if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then + einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +python_check_deps() { + if use test ; then + python_has_version "dev-python/six[${PYTHON_USEDEP}]" + fi +} + +pkg_pretend() { + if use test ; then + CHECKREQS_DISK_BUILD="4400M" + else + CHECKREQS_DISK_BUILD="4300M" + fi + + check-reqs_pkg_pretend +} + +pkg_setup() { + # Get LTO from environment; export after this phase for use in src_configure (etc) + use_lto=no + + if [[ ${MERGE_TYPE} != binary ]] ; then + if tc-is-lto; then + use_lto=yes + # LTO is handled via configure + filter-lto + fi + + if [[ ${use_lto} = yes ]]; then + # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC, + # bmo#1516758, bgo#942288 + filter-flags -Werror=lto-type-mismatch -Werror=odr + fi + + if use test ; then + CHECKREQS_DISK_BUILD="4400M" + else + CHECKREQS_DISK_BUILD="4300M" + fi + + check-reqs_pkg_setup + llvm-r1_pkg_setup + rust_pkg_setup + python-any-r1_pkg_setup + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + export use_lto +} + +src_prepare() { + if [[ ${use_lto} == "yes" ]]; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # Workaround for bgo #915651,915651,929013 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + fi + + eapply "${WORKDIR}"/firefox-patches + eapply "${WORKDIR}"/spidermonkey-patches + + default + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Workaround for bgo #915651,915651,929013 on musl + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + elif use arm64 ; then + export RUST_TARGET="aarch64-unknown-linux-musl" + elif use ppc64 ; then + export RUST_TARGET="powerpc64le-unknown-linux-musl" + else + die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651" + fi + fi + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + python/mozbuild/mozbuild/configure/check_debug_ranges.py || + die "sed failed to set toolchain prefix" + + einfo "Removing pre-built binaries ..." + find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS: ${CFLAGS}" + einfo "Current CXXFLAGS: ${CXXFLAGS}" + einfo "Current LDFLAGS: ${LDFLAGS}" + einfo "Current RUSTFLAGS: ${RUSTFLAGS}" + + local have_switched_compiler= + if use clang ; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + + local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }') + [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}") + [[ -z ${version_clang} ]] && die "Failed to read clang version!" + + if tc-is-gcc; then + have_switched_compiler=yes + fi + + AR=llvm-ar + CC=${CHOST}-clang-${version_clang} + CXX=${CHOST}-clang++-${version_clang} + NM=llvm-nm + RANLIB=llvm-ranlib + READELF=llvm-readelf + OBJDUMP=llvm-objdump + + elif ! use clang && ! tc-is-gcc ; then + # Force gcc + have_switched_compiler=yes + einfo "Enforcing the use of gcc due to USE=-clang ..." + AR=gcc-ar + CC=${CHOST}-gcc + CXX=${CHOST}-g++ + NM=gcc-nm + RANLIB=gcc-ranlib + READELF=readelf + OBJDUMP=objdump + fi + + if [[ -n "${have_switched_compiler}" ]] ; then + # Because we switched active compiler we have to ensure + # that no unsupported flags are set + strip-unsupported-flags + fi + + # Ensure we use correct toolchain, + # AS is used in a non-standard way by upstream, #bmo1654031 + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + export AS="$(tc-getCC) -c" + + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # ../python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set state path + export MOZBUILD_STATE_PATH="${BUILD_DIR}" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-project=js + + mozconfig_add_options_ac 'Gentoo default' \ + --host="${CBUILD:-${CHOST}}" \ + --target="${CHOST}" \ + --disable-ctype \ + --disable-jemalloc \ + --disable-smoosh \ + --disable-strip \ + --enable-readline \ + --enable-release \ + --enable-shared-js \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --with-intl-api \ + --with-system-icu \ + --with-system-nspr \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --x-includes="${ESYSROOT}/usr/include" \ + --x-libraries="${ESYSROOT}/usr/$(get_libdir)" + + mozconfig_use_enable debug + mozconfig_use_enable jit + mozconfig_use_enable test tests + + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-debug-symbols + mozconfig_add_options_ac '+debug' --enable-real-time-tracing + else + mozconfig_add_options_ac '-debug' --enable-optimize + mozconfig_add_options_ac '-debug' --disable-debug-symbols + mozconfig_add_options_ac '-debug' --disable-real-time-tracing + fi + + # We always end up disabling this at some point due to newer rust versions. bgo#933372 + mozconfig_add_options_ac '--disable-rust-simd' --disable-rust-simd + + # Modifications to better support ARM, bug 717344 + if use cpu_flags_arm_neon ; then + mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon + + if ! tc-is-clang ; then + # thumb options aren't supported when using clang, bug 666966 + mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-thumb=yes + mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-thumb-interwork=no + fi + fi + + # Tell build system that we want to use LTO + if [[ ${use_lto} == "yes" ]] ; then + if use clang ; then + if tc-ld-is-mold ; then + mozconfig_add_options_ac '+lto' --enable-linker=mold + else + mozconfig_add_options_ac '+lto' --enable-linker=lld + fi + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + mozconfig_add_options_ac '+lto' --enable-linker=bfd + mozconfig_add_options_ac '+lto' --enable-lto=full + fi + fi + + # LTO flag was handled via configure + filter-lto + + # Pass MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS: ${CFLAGS}" + einfo "Build CXXFLAGS: ${CXXFLAGS}" + einfo "Build LDFLAGS: ${LDFLAGS}" + einfo "Build RUSTFLAGS: ${RUSTFLAGS}" + + ./mach configure || die +} + +src_compile() { + ./mach build --verbose || die +} + +src_test() { + if "${BUILD_DIR}/js/src/js" -e 'print("Hello world!")'; then + einfo "Smoke-test successful, continuing with full test suite" + else + die "Smoke-test failed: did interpreter initialization fail?" + fi + + cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt "${T}"/known_test_failures.list || die + + if use x86 ; then + echo "non262/Intl/DateTimeFormat/timeZone_version.js" >> "${T}"/known_test_failures.list + echo "test262/intl402/Locale/constructor-non-iana-canon.js" >> "${T}"/known_test_failures.list + fi + + ./mach jstests --exclude-file="${T}"/known_test_failures.list || die +} + +src_install() { + cd "${BUILD_DIR}" || die + default + + # fix soname links + pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die + mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die + ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die + ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die + popd &>/dev/null || die + + # remove unneeded files + rm \ + "${ED}"/usr/bin/js${MY_MAJOR}-config \ + "${ED}"/usr/$(get_libdir)/libjs_static.ajs || die + + # fix permissions + chmod -x \ + "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \ + "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h || die +} diff --git a/dev-lang/tcl/Manifest b/dev-lang/tcl/Manifest index 9666ba5b4b84..5ae5813be02d 100644 --- a/dev-lang/tcl/Manifest +++ b/dev-lang/tcl/Manifest @@ -5,7 +5,9 @@ AUX tcl-8.6.9-include-spec.patch 488 BLAKE2B 06aa49163e8316b409238055d4b2ef67a3b DIST tcl-core8.6.13-src.tar.gz 6370805 BLAKE2B f5af3c0fa2d52c09ab16578c9147cb5ac4a06b81882c49f1ef23642bed32adccbe2a5acbddc5d18bd1757e1991daf864707d842e675f92c6de70be6f4275b95e SHA512 c1c953ac0f9a530d8256514c0cb78f166d0063db725b87fa19272716a955cd390ff8f1c5f17e791cf463284d88bb136d61194779a913a6a78f46146d485c71ee DIST tcl-core8.6.14-src.tar.gz 7081644 BLAKE2B 7148c889954d78774c4352ceae5d814498a1670423a2b3ed288786dce97b87d42395b817ef92fc6561358d84736619ef03d1c2e2c502433c4b3f5eb7c80a62e8 SHA512 495b13af817c68d81533c45345d003efd711ddbc5c1a3d1fbbdb10452fa62d91e649f77835239e547355ade84abfea6ae843d2e76de6108532054170a672ddc0 DIST tcl-core8.6.15-src.tar.gz 7019390 BLAKE2B e88b974c005e3acd680f672a13b76bd736730f13c4af1c4538390c0d624b1cd752c8305ac2f6d7f7df5d2fbb43b08614b715c7688ea61184d552cd77117d8533 SHA512 9ca62941405ea2bca3099bf65f03a87071f3d88ff23367ab8af80bba7692caca5f63ec4d9c2282b7ba3433124c5f952578a763888e0a9ba9205e52248539e9e7 +DIST tcl-core8.6.16-src.tar.gz 7022932 BLAKE2B 9a20cc72a2654c8b4f2c9088fabef13321c414d4cc1125afbb0151ae198c6e665a7f18ffa798fcf2ed0ae1160e586819b834d745c5dfbb2b2ed5dc6d0e022d4d SHA512 b25de457523e1f884326db37acebc329d5f1a8ac2a2e0fbdfcefafc76de202ff8d1efe8ff687afa5da486c0a95ab4bde893aad6f70f0e570fa6911c5cf56d458 EBUILD tcl-8.6.13-r1.ebuild 3837 BLAKE2B f421a25f2a004bf64f1b12dab0d7f69df505140a94951a826640f322d794abc71b6b34da17ccf7d5364a98f7ab0dc791585768674872743860a5f12cbf6f9e47 SHA512 a4c88049a63a30af849175621aa6034f5fca33ea891b761a2f6b3b996ba7e0d8f42ce36b738865a4751615db663828724d6e3f066b6d31c9399f59ee5aec6b2b EBUILD tcl-8.6.14.ebuild 3920 BLAKE2B b97a531cc91b840f1d50b1509555f94b964a1cf6e223be13bf9175a2d8c721c64bcfdbb17cd5899ab61960308dd5f1c0e3d51510bb7527a1f071b6bffb6ab674 SHA512 20837ebe035404c9dedbbf999d6eb958c318dc91a82bd71d881d7f074b80fc0556768e51f05016ce34cd6a8f306573de6277c724e2cb9eb3cb97658115eebf3b -EBUILD tcl-8.6.15.ebuild 3841 BLAKE2B 89d342609cd326b3e5a73a7c6c6682f9c30e534e496ab377d8ccf0da07377a282a74c0bab35ad05f82009c70266d26f5bbaff0a24a0ae3b21a7036e1669d50e6 SHA512 8bc414f5e61f736acbe6878a72334ac4a172c74a9d6632a39a3d468a96a8f956b8c5c06e5a74a3aecabd09a0cc419df43654fd09ed3e3033cf52a5e9079c5707 +EBUILD tcl-8.6.15.ebuild 3840 BLAKE2B eb1d007b9c0830c4a4e68187155a19a9d4d15356f316db57d4a1f455df2622f14c133b51a634bb9e0c3febab2e6810cd5dd7dd913e3339af5f2c61bea2a0ac62 SHA512 87c4da22346e82682168360671d8778d211ddcb08303bd12721168671440f2b982dff3fdd858fa6db55233b7dbdc91d17013012dbbd694e1bb736c0c83e450a6 +EBUILD tcl-8.6.16.ebuild 3846 BLAKE2B 914c45c12d14c1a2502d7a2f7bf997f8881d7068d3ac6c2a12f5cdd52d49178bac383a260f4bd66dc139bb1ba1ebed740b58d8efb4450b028346caa148fab74f SHA512 095405fbb6322f3755c861ec081d31cd845bd263981c6c4dee714be6dcc9d292fab8ee808f4d31f146f76c7011635732e36e63f39a3a029faccd716e71ef6239 MISC metadata.xml 421 BLAKE2B c056a7ae8f2deaddda9bb329d46ec4f322548f4d031479ba522f5d93add46bd47cc783e9876b398579898af2cbdedb053c6328433eacfd02df4bb6dcf0185766 SHA512 0e77b876a127d68c7b193db874b9d3ab38f8475abafec1d866f2a4158ea4334ae04fbd6cb1d9acc23c81e13e584fe667503e4d9352873e1880a2d6acf7dec59c diff --git a/dev-lang/tcl/tcl-8.6.15.ebuild b/dev-lang/tcl/tcl-8.6.15.ebuild index ba493ce1c426..f9caee6586a6 100644 --- a/dev-lang/tcl/tcl-8.6.15.ebuild +++ b/dev-lang/tcl/tcl-8.6.15.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -18,7 +18,7 @@ S="${SPARENT}"/unix LICENSE="tcltk Spencer-99" SLOT="0/8.6" -KEYWORDS="~alpha ~amd64 arm arm64 hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="debug +threads" RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]" diff --git a/dev-lang/tcl/tcl-8.6.16.ebuild b/dev-lang/tcl/tcl-8.6.16.ebuild new file mode 100644 index 000000000000..bdce8778fd3e --- /dev/null +++ b/dev-lang/tcl/tcl-8.6.16.ebuild @@ -0,0 +1,135 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Please bump with dev-lang/tk! + +inherit autotools flag-o-matic multilib-minimal multilib toolchain-funcs + +MY_P="${PN}${PV}" + +DESCRIPTION="Tool Command Language" +HOMEPAGE="http://www.tcl.tk/" +SRC_URI="https://downloads.sourceforge.net/tcl/${PN}-core${PV}-src.tar.gz" + +SPARENT="${WORKDIR}/${MY_P}" +S="${SPARENT}"/unix + +LICENSE="tcltk Spencer-99" +SLOT="0/8.6" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="debug +threads" + +RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}"/${PN}-8.6.10-multilib.patch + "${FILESDIR}"/${PN}-8.6.8-conf.patch # Bug 125971 + "${FILESDIR}"/${PN}-8.6.9-include-spec.patch # Bug 731120 +) + +QA_CONFIG_IMPL_DECL_SKIP=( + stat64 opendir64 rewinddir64 closedir64 # used to test for Large File Support +) + +src_prepare() { + # By dropping the compat directory a lot of licensing and attribution burden + # (BSD-3, zlib,...) is lifted from the user + find \ + "${SPARENT}"/compat/* \ + "${SPARENT}"/doc/try.n \ + -delete || die + + # Drop -Werror + sed -i \ + -e "s: -Werror::g" \ + dltest/Makefile.in \ + || die + + pushd "${SPARENT}" &>/dev/null || die + default + popd &>/dev/null || die + + # httpold tests require netowk + rm ../tests/httpold.test \ + ../tests/env.test \ + ../tests/http.test \ + || die + + # workaround stack check issues, bug #280934 + use hppa && append-cflags "-DTCL_NO_STACK_CHECK=1" + + tc-export CC + + sed \ + -e '/chmod/s:555:755:g' \ + -i Makefile.in || die + + sed \ + -e 's:-O[2s]\?::g' \ + -i tcl.m4 || die + + mv configure.{in,ac} || die + + eautoconf + + multilib_copy_sources +} + +multilib_src_configure() { + # We went ahead and deleted the whole compat/ subdir which means + # the configure tests to detect broken versions need to pass (else + # we'll fail to build). This comes up when cross-compiling, but + # might as well get a minor configure speed up normally. + export ac_cv_func_memcmp_working="yes" + export tcl_cv_str{str,toul,tod}_unbroken="ok" + export tcl_cv_strtod_buggy="no" + + econf \ + $(use_enable threads) \ + $(use_enable debug symbols) +} + +multilib_src_install() { + #short version number + local v1=$(ver_cut 1-2) + local mylibdir=$(get_libdir) + + S= default + # fix the tclConfig.sh to eliminate refs to the build directory + # and drop unnecessary -L inclusion to default system libdir + + sed \ + -e "/^TCL_BUILD_LIB_SPEC=/s:-L$(pwd) *::g" \ + -e "/^TCL_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \ + -e "/^TCL_SRC_DIR=/s:${SPARENT}:${EPREFIX}/usr/${mylibdir}/tcl${v1}/include:g" \ + -e "/^TCL_BUILD_STUB_LIB_SPEC=/s:-L$(pwd) *::g" \ + -e "/^TCL_STUB_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \ + -e "/^TCL_BUILD_STUB_LIB_PATH=/s:$(pwd):${EPREFIX}/usr/${mylibdir}:g" \ + -e "/^TCL_LIBW_FILE=/s:'libtcl${v1}..TCL_DBGX..so':\"libtcl${v1}\$\{TCL_DBGX\}.so\":g" \ + -i "${ED}"/usr/${mylibdir}/tclConfig.sh || die + if use prefix && [[ ${CHOST} != *-darwin* ]] ; then + sed \ + -e "/^TCL_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \ + -e "/^TCL_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \ + -i "${ED}"/usr/${mylibdir}/tclConfig.sh || die + fi + + # install private headers + insinto /usr/${mylibdir}/tcl${v1}/include/unix + doins *.h + insinto /usr/${mylibdir}/tcl${v1}/include/generic + doins "${SPARENT}"/generic/*.h + rm -f "${ED}"/usr/${mylibdir}/tcl${v1}/include/generic/{tcl,tclDecls,tclPlatDecls}.h || die + + # install symlink for libraries + dosym libtcl${v1}$(get_libname) /usr/${mylibdir}/libtcl$(get_libname) + dosym libtclstub${v1}.a /usr/${mylibdir}/libtclstub.a + + if multilib_is_native_abi; then + dosym tclsh${v1} /usr/bin/tclsh + dodoc "${SPARENT}"/{ChangeLog*,README.md,changes} + fi +} diff --git a/dev-lang/tk/Manifest b/dev-lang/tk/Manifest index 27cb4a5673f8..b979bf63870f 100644 --- a/dev-lang/tk/Manifest +++ b/dev-lang/tk/Manifest @@ -7,7 +7,9 @@ AUX tk-8.6.9-conf.patch 407 BLAKE2B 13662318b4c5029802f74551a6a194e27ddb6dbf2e5c DIST tk8.6.13-src.tar.gz 4546848 BLAKE2B 5f00cf64feb7c7eb6739303c857dfabff4cbf4148c65462c2a5cc49cc8010fba950ffa7043101e98ded543a6c6e9b925dc1ee0e6e9031a240ae29b918f81060a SHA512 719aa6776bfdc814f817919a265d3f9d847782c9f0a5fc5c2ab139beeba921e6fde8c66e7e836d78f86f53c98a7df0e587f0b2f4b08cc5ce12eecbb7f1ab71a5 DIST tk8.6.14-src.tar.gz 4510695 BLAKE2B 00b83a87b65317ca32228a11014bd9fe7cffb92089e152ca63a1e02ff23a5fc132b9336618f361692aa94ebf9e023cef492fafe39d51b9111feaec4934e8ae42 SHA512 756903dfa56cf77c7934bb3680c9bef6027f99196f4e6a2e823b85c342ca860cbb4b42154f576cc88f7f1265d28ce2d84ab5f52f848b16cca0cf9af4c770183f DIST tk8.6.15-src.tar.gz 4590766 BLAKE2B 41cf8917fcc7ca8a5d82d86bce0c8034fec5cead93caf9b5f18c4055e8a8f80f49f8afb506ceb965166e682902d404b0e0757f0dea1f61fb69ead3adf98c92b1 SHA512 1b4165748eb62b1ac875171036bec8c4d81ed903681806de78149e15b311c7258d9daf2bbc2a629c973a02362ad5df58157d0b90e2e54582590f62fbfc4b7d62 +DIST tk8.6.16-src.tar.gz 4591625 BLAKE2B 80c1a87c4d8e0f2b57313a0f75568dfa877694dc2e82c64f62013317fbbb23930be3f221648768d382bf7e0cd63bb9318af104bc5fb792df70bd3a6e5be146c4 SHA512 b7d37bee25f826f156137a04859ac756c682f1dd155ec9629119dc3690509ce1b6e308e23b291f2debbc10f3b1650993fea66463e5445c505860a10acac901d0 EBUILD tk-8.6.13.ebuild 4221 BLAKE2B f9930585d1560d19a4076d5f6b5e9bf252447e40e6521fbcb3f5adb9b94efa33f3d00fc36f0276686e7b47a926d6edd6e91cd297fa7ca4dd0dbc4d73790e8588 SHA512 3038d439a0b2127bee9b9a890f16841dbd7700f85e9dc5c020c6c4c4f476f5eddc916fca6829fda9c39489da670458ee4c0528276ec4602ee6afd484869b9e11 EBUILD tk-8.6.14.ebuild 4199 BLAKE2B 8539e2ab495ce2e4ad8277780872c64d4ee85e4556d545bbab2aa7cfc4d5dea60fe5e6ab1640f95cb209109e3259e9bb3372fc0f1d9b2ee70bd9915b86079f47 SHA512 3d8e215d89961da85e8fe485eeca4a8531cd26894fb14e65d130ea973a4d7be2670ddf01a3868d15eeece2bf3fa8204d43dd281cdf4894dedd4cdb2a83c11d60 -EBUILD tk-8.6.15.ebuild 4210 BLAKE2B 2c37cdf7f2f14bb9550780b0f64cb4be6aa48ef9601c6532999b0ec6d3b677c7193f9bf57693b53da3e7638759c8239b1ab2f565d2f24c1461d66adba70698f3 SHA512 fdd815bd4c7a7184d84b03d25331076b6a6307475e368bf90e139db1f4702611d3d059535e6fe9c06324a4ce391ffbd51c42d4f35785f5dec67fa39e1d0a8a83 +EBUILD tk-8.6.15.ebuild 4209 BLAKE2B ed250a410c75bc401cb05f1cb241080b3a6224dc682f465e70979e89ed75a4a96521b660cd1eaddbebddf7f1cbfca6fd720fac9b514252c0da6aa88056e6e224 SHA512 9e08568e22a8b8355ca629d4419a1fd4252c4f51ad494239b380f214f3b41a6f70725ca92adc76a87a13951268920f84d44580bd8146f16479e90047fcef5c8d +EBUILD tk-8.6.16.ebuild 4214 BLAKE2B 2a57f592690805fde02d14d3611aec16f9942e1f82e86eb0c593aa24631cf2f4a576ecdd64c243c07f14e4b4648b03559a8eda273f556c3ed73ed69cca716e76 SHA512 2ca2d345e38e1d4485a2bb57bbecd233c20a2a2b612a9f4ba910b832d907d038c4da3cebfe5799e5fa502bff1b7344a6daaffcce3657a1410fab4e14154acbe1 MISC metadata.xml 375 BLAKE2B bb3f40f5b72544625f38a6b5b17d4435d3b0bb1aef8f668f3a1e1ea7f84bf7a25651b7894abbadd66f554f68eae113c74d348b5c821f686ea78e3c1f72709ead SHA512 3e175a0631c7add79e33cf4bd1254d5f1d82da26aa26ff072d5295bbca7a9d81c760145c2cbd853e854b06e08fcadcc55ea5ef2cbd016aec73c55b97507afef9 diff --git a/dev-lang/tk/tk-8.6.15.ebuild b/dev-lang/tk/tk-8.6.15.ebuild index 35e43b0f7a98..63b4f20a99a9 100644 --- a/dev-lang/tk/tk-8.6.15.ebuild +++ b/dev-lang/tk/tk-8.6.15.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -18,7 +18,7 @@ S="${SPARENT}"/unix LICENSE="tcltk" SLOT="0/8.6" -KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" IUSE="debug +threads truetype aqua xscreensaver" RESTRICT="!test? ( test )" diff --git a/dev-lang/tk/tk-8.6.16.ebuild b/dev-lang/tk/tk-8.6.16.ebuild new file mode 100644 index 000000000000..c7362f72b250 --- /dev/null +++ b/dev-lang/tk/tk-8.6.16.ebuild @@ -0,0 +1,153 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Please bump with dev-lang/tcl! + +inherit autotools multilib-minimal multilib prefix toolchain-funcs virtualx + +MY_P="${PN}${PV/_beta/b}" + +DESCRIPTION="Tk Widget Set" +HOMEPAGE="https://www.tcl.tk/" +SRC_URI="https://downloads.sourceforge.net/tcl/${MY_P}-src.tar.gz" + +SPARENT="${WORKDIR}/${PN}$(ver_cut 1-3 ${PV})" +S="${SPARENT}"/unix + +LICENSE="tcltk" +SLOT="0/8.6" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="debug +threads truetype aqua xscreensaver" +RESTRICT="!test? ( test )" + +RDEPEND=" + !aqua? ( + >=media-libs/fontconfig-2.10.92[${MULTILIB_USEDEP}] + >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] + >=x11-libs/libXt-1.1.4[${MULTILIB_USEDEP}] + truetype? ( >=x11-libs/libXft-2.3.1-r1[${MULTILIB_USEDEP}] ) + xscreensaver? ( >=x11-libs/libXScrnSaver-1.2.2-r1[${MULTILIB_USEDEP}] ) + ) + ~dev-lang/tcl-$(ver_cut 1-3):0=[${MULTILIB_USEDEP}]" +DEPEND="${RDEPEND} + !aqua? ( x11-base/xorg-proto )" +BDEPEND="virtual/pkgconfig" +# Not bumped to 8.6 +#RESTRICT=test + +PATCHES=( + "${FILESDIR}"/${PN}-8.6.10-multilib.patch + "${FILESDIR}"/${PN}-8.4.15-aqua.patch + "${FILESDIR}"/${PN}-8.6.9-conf.patch # Bug 125971 + "${FILESDIR}"/${PN}-8.6.12-test.patch + "${FILESDIR}"/${PN}-8.6.14-test.patch +) + +QA_CONFIG_IMPL_DECL_SKIP=( + stat64 opendir64 readdir64 rewinddir64 closedir64 # used on AIX +) + +src_prepare() { + find \ + "${SPARENT}"/compat/* \ + -delete || die + + pushd "${SPARENT}" &>/dev/null || die + default + popd &>/dev/null || die + eprefixify Makefile.in + + # Make sure we use the right pkg-config, and link against fontconfig + # (since the code base uses Fc* functions). + sed \ + -e 's/FT_New_Face/XftFontOpen/g' \ + -e "s:\<pkg-config\>:$(tc-getPKG_CONFIG):" \ + -e 's:xft freetype2:xft freetype2 fontconfig:' \ + -i configure.in || die + rm configure || die + + tc-export CC + + sed \ + -e '/chmod/s:555:755:g' \ + -i Makefile.in || die + + sed \ + -e 's:-O[2s]\?::g' \ + -i tcl.m4 || die + + mv configure.{in,ac} || die + + eautoconf + + multilib_copy_sources +} + +multilib_src_configure() { + if tc-is-cross-compiler ; then + export ac_cv_func_strtod=yes + export tcl_cv_strtod_buggy=1 + fi + + local mylibdir=$(get_libdir) + + econf \ + --with-tcl="${EPREFIX}/usr/${mylibdir}" \ + $(use_enable threads) \ + $(use_enable aqua) \ + $(use_enable truetype xft) \ + $(use_enable xscreensaver xss) \ + $(use_enable debug symbols) +} + +multilib_src_test() { + CI=1 virtx emake test +} + +multilib_src_install() { + #short version number + local v1=$(ver_cut 1-2) + local mylibdir=$(get_libdir) + + S= default + + # normalize $S path, bug #280766 (pkgcore) + local nS="$(cd "${S}"; pwd)" + + # fix the tkConfig.sh to eliminate refs to the build directory + # and drop unnecessary -L inclusion to default system libdir + + sed \ + -e "/^TK_BUILD_LIB_SPEC=/s:-L${S}-\w*\.\w* ::g" \ + -e "/^TK_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \ + -e "/^TK_SRC_DIR=/s:${SPARENT}:${EPREFIX}/usr/${mylibdir}/tk${v1}/include:g" \ + -e "/^TK_BUILD_STUB_LIB_SPEC=/s:-L${S}-\w*\.\w* *::g" \ + -e "/^TK_STUB_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \ + -e "/^TK_BUILD_STUB_LIB_PATH=/s:${S}-\w*\.\w*:${EPREFIX}/usr/${mylibdir}:g" \ + -e "/^TK_LIB_FILE=/s:'libtk${v1}..TK_DBGX..so':\"libk${v1}\$\{TK_DBGX\}.so\":g" \ + -i "${ED}"/usr/${mylibdir}/tkConfig.sh || die + if use prefix && [[ ${CHOST} != *-darwin* ]] ; then + sed \ + -e "/^TK_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \ + -e "/^TK_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \ + -i "${ED}"/usr/${mylibdir}/tkConfig.sh || die + fi + + # install private headers + insinto /usr/${mylibdir}/tk${v1}/include/unix + doins "${S}"/*.h + insinto /usr/${mylibdir}/tk${v1}/include/generic + doins "${SPARENT}"/generic/*.h + rm -f "${ED}"/usr/${mylibdir}/tk${v1}/include/generic/{tk,tkDecls,tkPlatDecls}.h || die + + # install symlink for libraries + dosym libtk${v1}$(get_libname) /usr/${mylibdir}/libtk$(get_libname) + dosym libtkstub${v1}.a /usr/${mylibdir}/libtkstub.a + + if multilib_is_native_abi; then + dosym wish${v1} /usr/bin/wish + dodoc "${SPARENT}"/{ChangeLog*,README.md,changes} + fi +} diff --git a/dev-lang/typescript/Manifest b/dev-lang/typescript/Manifest index f54f2f653016..a6b465d64c6f 100644 --- a/dev-lang/typescript/Manifest +++ b/dev-lang/typescript/Manifest @@ -1,5 +1,5 @@ -DIST typescript-5.7.2.tgz 4231797 BLAKE2B cb399f4d52613796145f8426bc526b2f9cc5f740ca946036252a26e0599a6466e2487c9ebb00ee9c5d207347de7b33a466afad3b563547948eb678a9b06b21b8 SHA512 8b9b7ae911f10ef54de341df0ddd4fb044e118d9e5302313de3314ba887dff44daa967af3689ed69cba75b2374d8b03dfdf21b11695c1d97204ca6fd42868b7e DIST typescript-5.7.3.tgz 4232501 BLAKE2B 12165981b51cd343aac582d05c6d57c94773c9deefaf0b18ddfed404bbdb889fb948c289399275061d897479478ed5df05ab4de9844e6de130435b7f22d83746 SHA512 f383154a33041cff854113f2de95fdb13555fc83487b1ef5b3d4cbd869b9146fd61b54aa5de2b267493bfdb958ff815d3b3235d82072d6f19ce2883f7aeb347f -EBUILD typescript-5.7.2.ebuild 834 BLAKE2B 13bf8179a7547e7ff3fd95dfca44a4c489abea30d9e434ef9014b4e86d46c0c137bd835c5cd52997397fa062d249fbd59a2a6068c36050180cbff3abcf5faeb0 SHA512 da16160de58078dcf3f16a5a5916a5dc8ce338dbe6c910adf1375acb9bca3ef4937d3acb6787d47ef4070708dce4f221ad34be37b839bcc33945d6ae9ee1fbe1 -EBUILD typescript-5.7.3.ebuild 835 BLAKE2B 8b92a843bc5e5bb9a48578f14b827099b1b4c6a444421fb0c64d32efba0660835d58b6cee79f24b29fe1282cba6f03e54350cd3a9ce4f370d7bc456a6865181f SHA512 409d61ca254c8e0ada0b7f698d23900e9f881c25c2d92e40c04f550d5eb68357d5ef6f731a4d96133608988e52e956b48bdd253d0963924b9c53763870b89aa4 +DIST typescript-5.8.2.tgz 4250087 BLAKE2B 74bc64289bde0b663e06e66d717225645e420741831db9f721860ea1d5d98c64f9787d9bc6c1637b2deda12d5ed19422732b3a3a3f030fb301949083c3bbd2f2 SHA512 6899fac2ad77fda7d9a7f8d3f50666c048c3aaabd21a9d554f919583e7ffb7afe8572ae05cce8163587d05187f3b9a773e550f01ef96ba21193a66ffe3d46aa1 +EBUILD typescript-5.7.3.ebuild 834 BLAKE2B e0ded0c158b65fd8d531dd327e11808012628e79ec679519aed9b11a49f896bf4345a1a98f42b8b91df023e477ed489371af423e27725c82f2eefcf8db2e7b06 SHA512 255a2edbd50a2a7b10ddb4b489011cebc90ed4b19fbe90478badef9995ee805a2ecd34bafe202edd2aa28cf3159c15ba81a42a2998322b70876acef2ffbfe21a +EBUILD typescript-5.8.2.ebuild 835 BLAKE2B 8b92a843bc5e5bb9a48578f14b827099b1b4c6a444421fb0c64d32efba0660835d58b6cee79f24b29fe1282cba6f03e54350cd3a9ce4f370d7bc456a6865181f SHA512 409d61ca254c8e0ada0b7f698d23900e9f881c25c2d92e40c04f550d5eb68357d5ef6f731a4d96133608988e52e956b48bdd253d0963924b9c53763870b89aa4 MISC metadata.xml 733 BLAKE2B 903d85acefa054dd979ac181106cd604c351e4b81e18be7ad0f370501864f6789895244a797ec20041158d8c716907a06fa75c2ba4ea192e798719bbe73b1d45 SHA512 95806f8f442b0246867f0ba0ed70c093dfd772a558ae499be7e22bfe99cb3bc54debc7479ca9b4ac81a54156d3b8745cbb448e412f31ed2d5c43f76cbc642d72 diff --git a/dev-lang/typescript/typescript-5.7.3.ebuild b/dev-lang/typescript/typescript-5.7.3.ebuild index 145001b5fed2..3c3637607390 100644 --- a/dev-lang/typescript/typescript-5.7.3.ebuild +++ b/dev-lang/typescript/typescript-5.7.3.ebuild @@ -11,7 +11,7 @@ S="${WORKDIR}/package" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~amd64 ~arm64 ~ppc64" +KEYWORDS="amd64 ~arm64 ~ppc64" RDEPEND=" net-libs/nodejs diff --git a/dev-lang/typescript/typescript-5.7.2.ebuild b/dev-lang/typescript/typescript-5.8.2.ebuild index ebdd7db72e65..145001b5fed2 100644 --- a/dev-lang/typescript/typescript-5.7.2.ebuild +++ b/dev-lang/typescript/typescript-5.8.2.ebuild @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -11,7 +11,7 @@ S="${WORKDIR}/package" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="amd64 ~arm64 ~ppc64" +KEYWORDS="~amd64 ~arm64 ~ppc64" RDEPEND=" net-libs/nodejs diff --git a/dev-lang/uasm/Manifest b/dev-lang/uasm/Manifest index 2fcd551c32ad..f5717f59bf43 100644 --- a/dev-lang/uasm/Manifest +++ b/dev-lang/uasm/Manifest @@ -1,5 +1,9 @@ +AUX bool-fix.diff 460 BLAKE2B cd05fd13d6ca1403c689b91399bcca57b07d5e722d5741e8564b66809cc342dcabea0a64d657996910f6202895e61f109c1c2a4184943343895ad456af68ede0 SHA512 527d5012593fecdaaebf381120593b910f1d50507f4359b9f142da80f53c4803a75adc4627f720b835c1bc769bf3da1a1ef3a72ad995bdd524846bb8bf26e66b AUX build-fix.patch 4867 BLAKE2B 5f2058888b7014bae9fa014307aabcf07d6e802e215c996cc21e6575ae6b557b2a42f381b41b9f64abdaeab29caee9a3dc61b378b183f095b668da9e43010d39 SHA512 e5e22c4f0582a34f2528227cc757507b9348f641da73798f4d6488714edd83686242d4469b35ab706894a11c7765b392a518150106007b32bb4cffdb05cd1b22 +AUX makefile-dep-fix-2.57.patch 587 BLAKE2B 22d2689d341dee5781e0512eebcb0de3e88219927100ca168ea07934cbb3b2ee76b05a8743408877622b2f5038596ba2f2309046d2a2fd6cf4e3f5fe19ec5593 SHA512 efa90fcfcd7f30a74194f71aacf9d98cc101ee5915f85ba88df751a7b72697bd34ee94e09ceb354a443f70080f83df2efa07e8047f148dbb2664a2df1341bf6a AUX makefile-dep-fix.patch 543 BLAKE2B 3cc4a42448983442d1d39743d3757f8f3df80b0507036dce4204c43a199bc11d510ce165adbaa16c6e381813fbf4096dff4121456fcb653acf46a177f605ed86 SHA512 2f885cda5c583e1e5458c3da9f0c2c6755681f8e182d01ae575fb54f1ee37fa73edd768b78c9e013a4e051aed6b1cfc3f944ef34732c85de18075d4febd81931 DIST uasm-2.56.2.tar.gz 1243830 BLAKE2B dcc0948d92cdd5972a6698e721a6ccc6a54926ef94778438cf9a88a6e41ebc652d5230003f689d4278bd1e48959dd04595c602427287a48c551d7b847be665f0 SHA512 1f6c1037909d012f3293985c4e0516f4b61497de23cac6bbb58db735efb512599c0bba5d60d8ce999e6afc57e44484a094bf10f0ee185a51afd826f5541c9337 -EBUILD uasm-2.56.2.ebuild 941 BLAKE2B 18ac91415ba558f88e4d92d4c003c6004576002d6e98bc6839ca73ecc554879d8b8d62943ebfff3431fb3f314e7419093357e710982d3b1f86bb4362fb1adc65 SHA512 5a73e7a1c5ebdcf92f891054d615e49a6fb89c21c10293d7b38b49cc5dfdd24b149cdfd355b02b7f6944a45fd6c55b419caad27e4dad535fde34371310966a24 +DIST uasm-2.57.tar.gz 1240492 BLAKE2B 65f3eda6519ecbf2b03c258751f131a48ba55fe558988bc24cddfe2f033cac5a0d79375a74813b825345474a8f0f5f7dd90c7d2fb1cb8b85c6ad23c70ec4f96e SHA512 588c158b34e0fc538f08a859822549fbd2e1f8548102bbbdea7099281ffaaf41b6d56f4f07f7333a7d714acbd6271b504dde2b24ad2e9790e93e78e6e516caa0 +EBUILD uasm-2.56.2.ebuild 1016 BLAKE2B f5274178f397fc639baf1840134a03d413d3e72f5f907c3d97a9580ed7d65ef95a7ab21e5b9a52acc8c0cb3aab964195b9dd2e203e4d746c0691a77a031196fd SHA512 2f489147944ddee0c044b50f786721e2077a5ad4b7d00247ad3f28d9b48f383f1144dc77fafa26d142307d96b0081169fbeec10253ec15744175fbf90864e9bd +EBUILD uasm-2.57.ebuild 1116 BLAKE2B 7e5c8b9bb816b2e4b8728d9e43c82d3eeb415cd62222516e8f30b1a678ae6cf3f8e58cc2300dc87f07a65c254d03c4b112eabe1307abe17a88465d19cbf56ac4 SHA512 1567728fb0520a87925648b4f09e5595463e6959a27d1328c25879783b0119e1cde22ba3b057be4493bbbce7660949816351d6123c6eab00ee5d0d7284d6059f MISC metadata.xml 521 BLAKE2B c50616e7b6f6df5a3af6d3d0c72dd2d4dc4bbaa87eb525a0ec9af8b46ef913e710c97d3db01cacc42549175e6e8d20bbd557c24b789bf820f210b5c22e087d2f SHA512 213adb4bef7d55ec9369e7c09f83413d8b076d68524abb5cf52338a15ad99da534b97797128d5a5ac6d2460a03cf3c2f070baf27cfdb4cf70358f458141a8fd0 diff --git a/dev-lang/uasm/files/bool-fix.diff b/dev-lang/uasm/files/bool-fix.diff new file mode 100644 index 000000000000..6071a0d42ba9 --- /dev/null +++ b/dev-lang/uasm/files/bool-fix.diff @@ -0,0 +1,18 @@ +https://bugs.gentoo.org/944192 + +diff --git a/H/bool.h b/H/bool.h +index fbf55c8..ddb7396 100644 +--- a/H/bool.h ++++ b/H/bool.h +@@ -30,10 +30,7 @@ + ****************************************************************************/ + + +-#if !defined( BOOL_DEFINED ) && !defined( bool ) && !(__WATCOMC__ >= 1070 && defined(__cplusplus)) +- #define BOOL_DEFINED +- typedef unsigned char bool; +-#endif ++#include <stdbool.h> + #ifndef TRUE + #define TRUE 1 + #endif diff --git a/dev-lang/jwasm/files/makefile-dep-fix.patch b/dev-lang/uasm/files/makefile-dep-fix-2.57.patch index 1b97a7c5aca4..03cb9c0b3800 100644 --- a/dev-lang/jwasm/files/makefile-dep-fix.patch +++ b/dev-lang/uasm/files/makefile-dep-fix-2.57.patch @@ -1,16 +1,16 @@ -Bug: https://bugs.gentoo.org/881519 +Bug: https://bugs.gentoo.org/933867 -diff --git a/GccUnix.mak b/GccUnix.mak -index 3f53d5b..8eb434e 100644 ---- a/GccUnix.mak -+++ b/GccUnix.mak +diff --git a/Makefile-Linux-GCC-64.mak b/Makefile-Linux-GCC-64.mak +index 9d4431a..e4fb10f 100644 +--- a/Makefile-Linux-GCC-64.mak ++++ b/Makefile-Linux-GCC-64.mak @@ -31,13 +31,13 @@ include gccmod.inc #.c.o: # $(CC) -c $(inc_dirs) $(c_flags) -o $(OUTD)/$*.o $< -$(OUTD)/%.o: %.c +$(OUTD)/%.o: %.c | $(OUTD) - $(CC) -c $(inc_dirs) $(c_flags) -o $(OUTD)/$*.o $< + $(CC) -D __UNIX__ -c $(inc_dirs) $(c_flags) $(CFLAGS) $(CPPFLAGS) -o $(OUTD)/$*.o $< all: $(OUTD) $(OUTD)/$(TARGET1) diff --git a/dev-lang/uasm/uasm-2.56.2.ebuild b/dev-lang/uasm/uasm-2.56.2.ebuild index 5a0d38620ed2..de92e4d8306b 100644 --- a/dev-lang/uasm/uasm-2.56.2.ebuild +++ b/dev-lang/uasm/uasm-2.56.2.ebuild @@ -1,4 +1,4 @@ -# Copyright 2024 Gentoo Authors +# Copyright 2024-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -16,6 +16,7 @@ KEYWORDS="amd64" PATCHES=( "${FILESDIR}/build-fix.patch" "${FILESDIR}/makefile-dep-fix.patch" + "${FILESDIR}/bool-fix.diff" ) src_prepare() { @@ -29,6 +30,8 @@ src_compile() { append-cflags -fcommon # https://github.com/Terraspace/UASM/issues/197 append-cflags -Wno-error=incompatible-pointer-types + # BUG: 951108 + append-cflags -std=gnu17 emake -f gccLinux64.mak \ CC="$(tc-getCC)" \ diff --git a/dev-lang/uasm/uasm-2.57.ebuild b/dev-lang/uasm/uasm-2.57.ebuild new file mode 100644 index 000000000000..871332b4c96c --- /dev/null +++ b/dev-lang/uasm/uasm-2.57.ebuild @@ -0,0 +1,46 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs flag-o-matic + +DESCRIPTION="UASM is a free MASM-compatible assembler" +HOMEPAGE="https://www.terraspace.co.uk/uasm.html" +TAG="${PV}r" # the tag has a 'r' suffix (2.57r) for some reason +SRC_URI="https://github.com/Terraspace/UASM/archive/v${TAG}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/UASM-${TAG}" + +LICENSE="Watcom-1.0" +SLOT="0" +KEYWORDS="~amd64" +PATCHES=( + "${FILESDIR}/build-fix.patch" + "${FILESDIR}/makefile-dep-fix-2.57.patch" + "${FILESDIR}/bool-fix.diff" +) + +src_prepare() { + default + # don't strip binary + sed -i Makefile-Linux-GCC-64.mak -e 's/ -s / /g' || die +} + +src_compile() { + # BUG: https://github.com/Terraspace/UASM/issues/143 + append-cflags -fcommon + # BUG: https://github.com/Terraspace/UASM/issues/197 + append-cflags -Wno-error=incompatible-pointer-types + # BUG: 951108 + append-cflags -std=gnu17 + + emake -f Makefile-Linux-GCC-64.mak \ + CC="$(tc-getCC)" \ + CFLAGS="${CFLAGS}" \ + LDFLAGS="${LDFLAGS}" +} + +src_install() { + dobin GccUnixR/uasm + dodoc *.txt Doc/*.txt +} diff --git a/dev-lang/xsb/Manifest b/dev-lang/xsb/Manifest index eb75f247e006..f9a3b6282cbb 100644 --- a/dev-lang/xsb/Manifest +++ b/dev-lang/xsb/Manifest @@ -1,5 +1,7 @@ AUX 0001-modern-C-fix-for-implicit-int.patch 998 BLAKE2B 4a9212fc68098914ac12593e2007c7444eb6d7b8f9461640ecc50c8c8c30631475c9e0663808df450b168d8156c346807454eb8795b11e43ac7f4abfa08475e0 SHA512 cb857bdd2bd496531c96a30fb2f4b84f894614adcaed7b6b4f809c3e9e256366e06218e0553c7c15af2b718653f2be3d2a45393849392650550c8d61a7b6bf60 +AUX xsb-4.0.0-gcc14-build-fix.patch 556 BLAKE2B bb50d8c4a64373314d5d58ffaa66bc84f076a6adbc048c610471b783628f98e12fdd71b09200327ea6fd9c1163fb03171cf3a38c00d44e33e046e247bac1b160 SHA512 7f173f93f723ff1112cbed7956e9fe741ef498dec4bbda193ee4f8f11119cfeacd4646fd8cadbe423b309eff86be3bfbdfab05a97db222f3c97031b34546f4ac +AUX xsb-4.0.0-gcc14-sql.patch 808 BLAKE2B 52afa9e8b8b9c28540e1b880724776358342550d46e597c2a327dd02e48665fa8dc9b38f1450847f3053b377a4e78336d5a1d4fef0f11412d79f7da7022eb607 SHA512 10fe40d09f5896d80237e39c2cc022efba94fae618145659b1c2e22b9ebb9e6db299e94860adb62322162b26847754e4a4c989ce8dc5913ae959e97d9b2febcb DIST XSB-4-0-0.tar.gz 15340635 BLAKE2B 4832185a64c6c5786ae78e111c25cd3a5ffc2f80aec9c0c83f030ead482868c77b0d7abbfdf0d113b56fea395eb7e69ca2970a82ea70004fb78c0bf4de258a9d SHA512 fed1e0db4874db2508e0c1e716be20cbfbc4f7ed4c16e0b220750cfb3dfceb78bbdce0f8564b68c400af1bc2b8f9e3b35014e8849bba1705bddfab824f41e816 DIST xsb-4.0.0-gentoo-patchset-3.tar.gz 10487 BLAKE2B 37253b8e5bfd36cdf51f231e75215ea31d50f121e3c8b1126adfbc8998622f2a4ebdb976b3c67c13738095fd4b23b35e166a895c4ee038b1cae7ad962684ce86 SHA512 51738e5dd64711f42e5c8d831c955c533dbe900a129cc0e7eb5d393ef13d7b6206e5e9fc0e90b1422adb2d8c00ec870a50164d420a02da23770ba0ad3350b10b -EBUILD xsb-4.0.0-r1.ebuild 4514 BLAKE2B 1fb92d957672821e9a205fbd6d93c6b9e95f87c1f5cc2ff485cd414a1ca1fc590dbcf262db4d66192bbb262f571b0d5fbdfaa8befb5127d6ebead4e40d24100b SHA512 237b9a1ec204c788eb40a4825f96d91c9859e4747235d214bc7de3c8c7fd9d8ff08b8996800425eaec73295ca64a10f6910399172fe398b249095308b155fb7f +EBUILD xsb-4.0.0-r2.ebuild 4602 BLAKE2B 3f0d5f5984ee7c511a371af7e0355cdd3661d9579a912d9661a2d78ca7e2f5d9342daa4997d444bab64057da1768bb7f1190e8be58f4be1de1aeb4a803ad4fca SHA512 437fd589284b8676d9d5a51a7d93c19f15a9880bc7bde25d7490d31ba49aa8fa998b628bedfc3906ef6f335709c1ed0d35212f2d7f581d08df4722784dc6e0f7 MISC metadata.xml 407 BLAKE2B bf2a1312d435a5b31fcc0536849ded569d7512ec8e2e7471c253586bc866e7ffb915311725efeef8f2c7d227a82ba615a5fa69380454efb654e719177e35a67e SHA512 87aa031c2a64c878f24be293a3e4cdf391b696a7ef96faa4f209fcfeb56db74f29a1e3de7ad845f84eca86d8b81944ecae6e4ea1119699b72bfcf125735a0c03 diff --git a/dev-lang/xsb/files/xsb-4.0.0-gcc14-build-fix.patch b/dev-lang/xsb/files/xsb-4.0.0-gcc14-build-fix.patch new file mode 100644 index 000000000000..86439ff99ef1 --- /dev/null +++ b/dev-lang/xsb/files/xsb-4.0.0-gcc14-build-fix.patch @@ -0,0 +1,11 @@ +--- a/emu/timer_xsb.c ++++ b/emu/timer_xsb.c +@@ -264,7 +264,7 @@ int make_timed_call(CTXTdeclc xsbTimeout *pptr, void (*fptr)(xsbTimeout *)) + pptr->timeout_info.th=th; + // below, fptr is pointer to start routine, pptr is pointer to arg-array. + // TIMED_THREAD_CREATE_ARG is a cell of timeout_info. +- if (pthread_create(TIMED_THREAD_CREATE_ARG, NULL, fptr, pptr)) { ++ if (pthread_create(TIMED_THREAD_CREATE_ARG, NULL, (void *)fptr, pptr)) { + xsb_error("SOCKET_REQUEST: Can't create concurrent timer thread\n"); + return TIMER_SETUP_ERR; + } diff --git a/dev-lang/xsb/files/xsb-4.0.0-gcc14-sql.patch b/dev-lang/xsb/files/xsb-4.0.0-gcc14-sql.patch new file mode 100644 index 000000000000..d100bdbb0cce --- /dev/null +++ b/dev-lang/xsb/files/xsb-4.0.0-gcc14-sql.patch @@ -0,0 +1,16 @@ +https://bugs.gentoo.org/949632 +--- a/emu/odbc_xsb.c 2021-03-06 18:46:16.000000000 -0500 ++++ b/emu/odbc_xsb.c 2025-02-11 15:49:47.204779582 -0500 +@@ -411,10 +411,10 @@ + cberrormsgmax=SQL_MAX_MESSAGE_LENGTH-1; + if (cur != NULL) + rc = SQLError(SQL_NULL_HENV, cur->hdbc, cur->hstmt, szsqlstate, +- pfnativeerror, szerrormsg,cberrormsgmax,pcberrormsg); ++ (void *)pfnativeerror, szerrormsg,cberrormsgmax,pcberrormsg); + else + rc = SQLError(SQL_NULL_HENV, NULL, SQL_NULL_HSTMT, szsqlstate, +- pfnativeerror, szerrormsg,cberrormsgmax,pcberrormsg); ++ (void *)pfnativeerror, szerrormsg,cberrormsgmax,pcberrormsg); + if ((rc == SQL_SUCCESS) || (rc == SQL_SUCCESS_WITH_INFO)) { + term = makecs(hreg); + bld_functor(hreg, pair_psc(insert("odbc_error",2,(Psc)flags[CURRENT_MODULE],&isnew))); diff --git a/dev-lang/xsb/xsb-4.0.0-r1.ebuild b/dev-lang/xsb/xsb-4.0.0-r2.ebuild index 7e053d1e83ff..5f86c637e7b6 100644 --- a/dev-lang/xsb/xsb-4.0.0-r1.ebuild +++ b/dev-lang/xsb/xsb-4.0.0-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -35,6 +35,8 @@ PATCHES=( # https://bugs.gentoo.org/870970 # https://sourceforge.net/p/xsb/bugs/265/ "${FILESDIR}"/0001-modern-C-fix-for-implicit-int.patch + "${FILESDIR}"/xsb-4.0.0-gcc14-build-fix.patch + "${FILESDIR}"/xsb-4.0.0-gcc14-sql.patch ) src_prepare() { diff --git a/dev-lang/zig-bin/Manifest b/dev-lang/zig-bin/Manifest index a0aef7d47929..3e96829b54b8 100644 --- a/dev-lang/zig-bin/Manifest +++ b/dev-lang/zig-bin/Manifest @@ -3,24 +3,39 @@ DIST zig-linux-aarch64-0.10.1.tar.xz 40321280 BLAKE2B 39abefb80d540d52333ec76203 DIST zig-linux-aarch64-0.10.1.tar.xz.minisig 326 BLAKE2B f20178d19a0a3415af5557787ba5380b6502771b1df858a03812d47f5602c6cf4bb9c1d7f854ea086a45a7c05a4fb0d6df42e05e3c9e383918195bc3843a88a6 SHA512 ffff297e3946b0bc5c8da6377360764f37ad9a088672c0ba32327cac60379bc5dcba37265e3e9c92ae17073bb8f26f67466c9ac9fd6151c72e62b76214432d0f DIST zig-linux-aarch64-0.13.0.tar.xz 43090688 BLAKE2B 658376ddd6f74ced4e8d875573e53e236ce65d11bf098db7fc1c6a119b88dc97c45212101e0b3a4cfb7d0f4481d696fbb65b765344f44451d20c5bfb36cfbc14 SHA512 0e36c26da0088aec54939af0cbe5219132d56cb8bb1f298ca50e1a628d3fbdfd401441695013b6d3fd282905bb273ccc160b4f0dbced236aa1408278f532d99a DIST zig-linux-aarch64-0.13.0.tar.xz.minisig 326 BLAKE2B 2f4008c036a309bf3efdfa719a7e4cca0c13c0c5a93e6a8c2e9c75cff7ea9a000cc52f695487c1b1199eebece4853b11ca4d3a22935f12b6d07b9f465da01c2e SHA512 a5635610a17f61e8608379bee0e10c8a43a565ddf22394da214e28b6a84fadd6809bdcdb7996ebc2bc2bfa6d1fa4a5e47191f6aa8536450b01cae03871145679 +DIST zig-linux-aarch64-0.14.0.tar.xz 44922728 BLAKE2B 6423324bd1b0a371819fa58bd1caa203f366b09aad482ad9e6f09f6d2c5f7f6d57f19f92843f72667f1d247ce5d7d28f36725a098c8a493509677b00f3fa4d30 SHA512 7e860884a647347b4a1210d2b1a8bbd63d33316230cfc7d30d971ce2b21c62cdfaf976c1bde36ea2a421c3f692f3cca4335f72b8d306df557ec4ef7209cde43a +DIST zig-linux-aarch64-0.14.0.tar.xz.minisig 326 BLAKE2B 2cfe886e12c2ee22255e2d67f900d4f8f7489cc7bd66b6c65b28c1a03bba86fa81458b291865882e8c8c0bad18593357dd9118c1fadefab30194bab00bb1ce09 SHA512 71321b344184c47128262e832c6c6a84aa3e799a0d70865d998980983f7ea1203b3a92d44659847f5f70f86186569f3763efed586e364ee570daae35ca992feb DIST zig-linux-armv7a-0.10.1.tar.xz 50718132 BLAKE2B 76ef431ef8957272b992f6b861913a961d348120106a7f4b77d1f6b2a042dd8904a1ac744ab6b02b78681eef68af4143372e5315cd113d40711bd26fc78e6632 SHA512 4ec3ccd7ac980bfd9fc7a2f6b2301051d3df43b00143914d869389fc44b48916820d996e27cb922dac152228c4b04a0cce51f7b125317de85440a5479fe8ff7d DIST zig-linux-armv7a-0.10.1.tar.xz.minisig 325 BLAKE2B 675416641adfa9a1cdc6797dd310a7cdd83dda20cf73b5d3dafd616d3686ab72f00d735576c3d6839c9b7a92869ce058dd532beec27e5ec0a7b7d4f94008d592 SHA512 7f7be843ce7718294816f5c8dc349386cd76d9e7ad0a96d74bfe09d7361e864f275593fbd92b44091c5cdd5fcb0d9e8e07683c96585ac932b5f80e7c7356e6cc DIST zig-linux-armv7a-0.13.0.tar.xz 43998916 BLAKE2B 5ab0f39209d900690f28a73bade854aecbd77d6d7bccfdca97d49e5fc40d198023f2f9b1e96eaa9afa6a368c6f35575aeac52422d486a691dd4779ca118836ca SHA512 d93005a14dae40e6de66ad0e3150ac15284c01839ae0a19531a4e2f54a628b9fe3bcb08b6d526b96ba9d79d232c5c0c2b813877359c76b927435085671c57ab6 DIST zig-linux-armv7a-0.13.0.tar.xz.minisig 325 BLAKE2B 3b1fa76b70cf364f218af9299812ec175d03d0b4bf3d6748737d26fc9ef55b97f24b1ce34c62e16fb44e72b16659d2f41069d59e662ae4a95d461fe1f25132fc SHA512 68c822bf8718cf547d20ef0cff16343ac9a99b27738ac81bd660b8d55f69c4ac5666b0a4766b18acbc391923784a0bddf67c504ffae13b8f6219e59244aa665b +DIST zig-linux-armv7a-0.14.0.tar.xz 46112980 BLAKE2B d87af0f9b084ebc6c81b6afea17dd62b15ee583e50edcd5b11880825397341df3da29b58b60293eff1bccf500cf1ce82603611d9fd662e5e62628ce8bd66107e SHA512 8aff125dafb8017b57a664cf4a3957637abc5eec97583f343fd0d1c97927c50278bc6afd6ae6a1640e0559dc2347d974453a342fe072b9de4a377bdb5602ea44 +DIST zig-linux-armv7a-0.14.0.tar.xz.minisig 325 BLAKE2B 2225ea5c73f67910bfa6b8ea7d48487001bd324784c23bd7d5683513377e6d843981ce4b04441ea4e9956ad148d2a34a55024b08f9f8a9b175fd659abe9383f6 SHA512 15f1004f22d980d91bb47019be9f809e21bc238e0ee3083e01725a37532562c6f7d198b539a266a88c28ab8d42859b4e2e8738f61f263c5410b6d76a538e14df DIST zig-linux-i386-0.10.1.tar.xz 48367388 BLAKE2B 482ec9e42d9036177f41c459faf82c79ba525f35ed14150d97af9110efab3e9894b8c64f92f9257b224893179134e43306c985ad6a04ae6a7d427d14ef4e7a3f SHA512 97345a8f7f15a83e51635ec667e869833a597511a1b004fa4ab19d78ad234e05e8344823e0c623510c7c5dbeef447d13636223e8d339f6d53f2eca053852a8d3 DIST zig-linux-i386-0.10.1.tar.xz.minisig 323 BLAKE2B e25778cf26696ae0450186b6173dc69cfc9eb165903d5c4b1bcb9d01b55646f1af5047e129a1241200b7d7bd041bc9aa85841eee3a9366b7e88a2eccce3dae88 SHA512 52e66eb9a486e853330f125bad2baf63b87e3544ef1cc12cd59889f3c3a8a7ada5363307eb29d797c54202ebc5a3edb87452d6b09f53f099f51f79c053cf8b7d +DIST zig-linux-loongarch64-0.14.0.tar.xz 45821860 BLAKE2B 27a68bbd101b52213e0550c17c8f9fe23ab6168ccef75e0f4f835a54c40551ec9d98bfe22b4057f3bcf06c71ce5bddff3b5feb42d082f02eb1a51edecbab324a SHA512 18221e3571c73c9db8422480f6bb67898c088de06d77df20bba3a0588eceabd1700d4cac92ba2459e094406d2bc5aa4db0dcba210e9fd274d3d7d444a955fc95 +DIST zig-linux-loongarch64-0.14.0.tar.xz.minisig 330 BLAKE2B e2663ab997e5ce135e24241f3122c7c861c12e01927e6e12a05067eedb007da9e3218a0030f65e122cfb0f17408e96260dc7e9b5c21a855b479b3565cbc4f6c2 SHA512 43feb9d68ff0cc5e778c697142ea12e6b0713612ad6c27696cd8dd5e28a5c28a1eec3d6273277798cd00112c900e35b52a055cc61dff572ad94f8a836aa73857 DIST zig-linux-powerpc64le-0.13.0.tar.xz 46574596 BLAKE2B ac21b1d8317177682e7aab53b3b8f4884ae1c6e52b25d30a8acd9c345c97c49d55a9652eec205fc5c2a510c840c947eb1967fdaa36b3a29fc712ca11702c0b77 SHA512 ef9fce45ffaaef9902ee35010dd7ef372b14d5cc82b6ff653e9b5f91a9da15542f5f2410620c239415d051876091d17be4a4d610ab59a89e02e7609b9ef304b2 DIST zig-linux-powerpc64le-0.13.0.tar.xz.minisig 330 BLAKE2B 164a5857ad9ffa323fcd27fd2d9cd0c4202d8e1fc1bc968341eadb14157271e10f8f4bc544dcbe738720a99767291d9882b956478bee3b08b1fb28ea57c4d529 SHA512 04f480145c676dc8a4ba369594af41a84f3fa2686e194df88d546fe9f989b03f3f1aee291bcad07a0e7e81495b69a5cf182a1454ab21fd043faa1bb2a68edb68 +DIST zig-linux-powerpc64le-0.14.0.tar.xz 48707620 BLAKE2B b4df374dc52a2c7e8eb8e814ad1fd9b67dcf5d06ff306edd50c305a1432d2e6aa309297fdcd1ba0ae6f66c4039bccbad4814f07e8d3fc350d69280f3210ba4da SHA512 812588854f1ddbb235a2ea6b1c8af938137765977f62ed4c1dd4ea0c5b241c9c2b1c1ddec34ceda24491f11189d240379361b5ffd02c206967d9143a508d94de +DIST zig-linux-powerpc64le-0.14.0.tar.xz.minisig 330 BLAKE2B ab201ef155afcbeb39b6c52dd170f3aef1828143a1c43d8c5ab8e59e81c59be7d911ab099bd544841f1e3699174e42c412f68ddf166965247af962c794a40916 SHA512 03d04cf174a982e4402739b6f40836dbc7e401521e883eb128bcb2c8ea76978d937e91d68e8b3515ddafe2be9ab095b07043450c929852f3201dabf05efd9aba DIST zig-linux-riscv64-0.10.1.tar.xz 42196008 BLAKE2B a7ae37b1d1db1281b09bbd7e35ecaf390bbe28774bd1a4fa76b4468255be19b07fb514326d48576946f3c4eb04dcef34d6ab14f550407aa33803754fabbd848c SHA512 1a1da96924fa4a16a53721017eadc3363859a4f53671e27b11588200d0302d9065de9ba517ad40940aad98725e617cf853f2e83f732a4e23c33deacb99487ad0 DIST zig-linux-riscv64-0.10.1.tar.xz.minisig 326 BLAKE2B ebe0b448aa59fb1f63ad8a5320207bfb139f7b55af8b4d1d3347580093f0adad31957647b40b296414876c2cc013d6c701ebfe3d95c91240322602bef693ebf8 SHA512 7cb59ebbaeb33be1c743509564478b9d2f513e6142c0b80380be4c70f1b203818330fd3a9322f0dc93cb21121dd4e1bd153225804e467cd13f28f4ff73a4bd2f DIST zig-linux-riscv64-0.13.0.tar.xz 45540956 BLAKE2B 879d9cb16a2912fa770f65b82b898ac8705f8de461745bc92adb43a201dcd86f3697d5464742b4cd1ab252ccab14f619fccf87a197b8ec6f209870ffdf560fad SHA512 7c7867aab96c862b0b1faa8db872e45503a36eed2a234e2e52b86bd0d334a232c1bb966e23079d30a57fde2f4b5d5c8fe215181a380b4e277242f4ec5261a5e9 DIST zig-linux-riscv64-0.13.0.tar.xz.minisig 326 BLAKE2B c93a653ba1634a445b365d6690f0f54e15fac964b85e24a6f3a2e89750adfd389630aea0483cb8e77254d02fad5137ae428110b384ad8120c01cb9dbea87efe2 SHA512 5687e6d398d0115658c00eee47e0047a0da0f4e8002c96cab9844032b5925f46a139239cac8b5e1464a2ff3460219602cec79aebd5e5599972c7dbda0112c044 +DIST zig-linux-riscv64-0.14.0.tar.xz 48069188 BLAKE2B a3e9481034c7a7fa7782f7be1f37f83faf081839082bbe9b0a1c81ecc0199fafa763bd08aa8d02a6503e360a9e604c46de161ce0b12b2662ac8856357158daea SHA512 5abcee8b81f41901aedff7a8d470374f7687f6d69ff0cf9cd4255e0d336f6ff9bc8eefeb5e36451a8b1d343fccace351c15966c0e59878bebfd6081727279583 +DIST zig-linux-riscv64-0.14.0.tar.xz.minisig 326 BLAKE2B 9746796bed7ce5f9878357ea90f73221e586f52fe58783e53765deb0822b4af30c8628067895178c8d72b1c22213d851728b537c28c5363153593cb83b33dd10 SHA512 bcc5209286e2b39faece2432c2657d894426ed343f4f32fe49c1e5b4182fb742a22b0f0885b4cfbe353bf58363a814c027e48bd67df12775ed91b4b587d1bd9a DIST zig-linux-x86-0.13.0.tar.xz 52062336 BLAKE2B 5f05db0719affaf17e3b6a7c5f87304f884736fbfa006ff1020254f8381d9f268b406d7f8d33e8a94a0533d40202a26b3fbfc6ae11bbe1b71319ba5d9d4d2a89 SHA512 f3db718d2a499a88ab9e497fb3995f3fdb0711842513697c609e3b8f2e835676854964dcfb77bc253158f278a9d21d158e2957e3dbaedce8dd0f948f09eaacdf DIST zig-linux-x86-0.13.0.tar.xz.minisig 322 BLAKE2B b95347c6899e064c77d1cbdafb18c705c6eb2c642d46965eb3953ae7f4515eee7d0b058fbbc24ce2f63d8e2ab124196170c850103f73cba2e54da03b24d0fe54 SHA512 e10f1598a68064137c669c7622ac06772b33a5fd17ea4fa65bb4ecd8b8c4f34a2a46ee397215bf82a3202cfffced91cd01fa3a52e0bba84829ff94aac3de1947 +DIST zig-linux-x86-0.14.0.tar.xz 51621460 BLAKE2B 70ea2a9ab852d807074ac74a3db4289f3887f48d1db3eb2254656b537083feb563ab5da5789812c23f765e6913283dd6223f75aa23f8ebfd1b24c5f4c734d77a SHA512 2d597d47dc49a0d22f4d08524f028c1542601b454ce8a4243db2ef7354c3639bf6a3cb9b8f8578a53233dbdbcd2eb39ea6893cf5f82245c14b05abbdb2ff761a +DIST zig-linux-x86-0.14.0.tar.xz.minisig 322 BLAKE2B aeb34478ca8d7e268fbdfa962ef3cc1091e693a99dd13d64ab9ae172ca3d9072136c3e0efb6f53d417813f28072b1ac1eca501c00968c726717b96ad063cdebe SHA512 0037f6668a2825f3ac91a05ad399b3ab385002cba5610fb12e869d3c3559bac320f3e57635a328d0935d90a3257159555c25802f3954bb2e4b41b74c7d1b0420 DIST zig-linux-x86_64-0.10.1.tar.xz 44085596 BLAKE2B d689a469dbbe790593a561dd4df01c506212754c48be7de03773c7e690cbab197af10d639e80148f3343204ddf9ecfe09a88a62fb6ef63a262bcc2dd79fecd34 SHA512 1cf88a492b1a47800e213b8801477f4ffabf269f960d27d1849c5aec805b5db3768c83d4daa4a738532b1b7367e8c6812e3eea47c205ea732d7a6269a47e16dc DIST zig-linux-x86_64-0.10.1.tar.xz.minisig 325 BLAKE2B 41cf60ae99405ed55449c35e76a3de761e5de75bf07d8500fe64bf2e45b0dc5f63a929ff6bf47233ea0472f167d9e2305d66c48fbe3da66b6f1223d83ed6fa2b SHA512 309fe97b56673e4f111e2408aa1162194d77cd6976cf7ae491d3a035ef0319b8b634c59977dbc18466182b37d4a12f294d8c258d2d793a3aa3eced448f06e30e DIST zig-linux-x86_64-0.13.0.tar.xz 47082308 BLAKE2B 587565eaac53f0137bdfb4c58e51ee290a9f582c103957bc1d6183e7f53f6ce459c204fd0197c0e36d3de08a48fc68412a7fc84cf9cd77c8be918a9390d492b9 SHA512 97ca9b91c6c025cc1746036239063df45bab6aafbe72a861acd266019a11d154b4710b310224c860c6515f09436ca0ff796546aa45cba5d1dc7b3b669dfcdf36 DIST zig-linux-x86_64-0.13.0.tar.xz.minisig 325 BLAKE2B 9161b9b36c38c2b388a0850011bcc22119bb7b0333615914780fe63fb741298524be196db07277771b6f3f053079c7f95b5786dbb9059c4a627a9786752ebe4e SHA512 279cf9abb3b86893a3fd4ac124e954d8f01d6823831591cf2c869538bce4b2cbfcdb67279b9875bfe3a865841ca976b9fb7b4c4c63fe2b56937d3023664e81c6 -EBUILD zig-bin-0.10.1-r3.ebuild 3703 BLAKE2B 9adb8b312566ede767b4e9d40c8465c8a3c70df1429aff159267c648646825a19c9a0e1a77014aea83a9c6d73fd3277d5bf5b26a14ac774947a637ee8beefd33 SHA512 590ddc47d59c22abb5a0767c76c54206fa990526581b45ceee1c9f38225588e2bd2ca8e08ab9dd2e8663fbf3262dd42274b2730d8c7707d9c6034a6b40580e74 -EBUILD zig-bin-0.13.0.ebuild 3624 BLAKE2B 62a9a0412e27c729d89c4850b3290c05da923b9d4824321bfd9438bbad2db74595a1ff056bfcc5c13ceece52ec86a2680ad7319191058471422cc04376cdae25 SHA512 1bc35c6f11b3f5017b7f21adcfd282c1e6a1cfc06b8ea43fa14b3de638623aec9f9920e38ecfbbc9d6aca6cbd8812b8afd2ee755ca26d7a8509a550ddfaa236c +DIST zig-linux-x86_64-0.14.0.tar.xz 49091960 BLAKE2B 19a75a3b49c705ff30e3684e9ef17011fe62c3b31253f1893b2396a7cd0e462b7b4f1f4969ec3d0ea000bf486e2dced5827ef252de31fa6364e3ea95c931fb9a SHA512 2166574c63d0a80320e6c25b4d048475fb89150f35431be26316198a3d0d0010f8d01b385b0c990c37d5debc01367d4b27f72f769f8ee6e4a2f25e87f22f88f6 +DIST zig-linux-x86_64-0.14.0.tar.xz.minisig 325 BLAKE2B 10169cf46640f220cb4fae8cfb7a5f32c89a6d3e8a1f6f034c0d40421e6ec0b6955b5c67cfbc9a110a476fa6e4d64170bc86e4e333550c03c70eff87759b72f8 SHA512 67a3128fd9a3d36e64862ed5fcba8593ee7ed4470ca667bfd011061ab9a6020146c010c24a88e090884cfbc5cea5a5997f6ac37cce7c6aae89cbcf18f9a045c2 +EBUILD zig-bin-0.10.1-r3.ebuild 3617 BLAKE2B 7455f9663a7483ec599f7114d1e926976dc9352f80471645acfb7e5b9ffc5f6302182b6f1673ac248cfb1c5000975b7d58d1073a5db8f5700eb2cf74ffef2330 SHA512 a8fb1b55e10c71bbbee34b055ec848bce816bd6906e05a13a5640e595e86c1ec8e7f5a812a438034f0edf1b3482b31b5634037c773b3a5aa284f9e862c8cd92b +EBUILD zig-bin-0.13.0.ebuild 3617 BLAKE2B e51435e87ef2a6ae643421a6cbe80189d825ca952748804d0c67a2a776929cb7066d03a2462af77a1f8c16966b7f7b9ce5ac04065009df6c5a4628717bf75b4f SHA512 14d22e674fdaf8a126ea31b961a51379900397f92111a3d125684cb8c257aa77cb101967e2f268e66fb1afa6479605bd3852adab1f1259732153cf494d753af5 +EBUILD zig-bin-0.14.0.ebuild 3799 BLAKE2B 3a4118dc46a391ac002593574421561440572310e1a7d251cf1b95d92ac169319c90586250f38d053fb0f603651ef82f2c0e31f0ba37f749ad131224ca3288f7 SHA512 32d604fa4ac26825096b5ee33bc39575776325b6a52bbb738d1d1ac3bd9b6e3c58439058333308ce95fc8e1008856b3c7405f0536499282de9bfd3b15e180f61 MISC metadata.xml 543 BLAKE2B 7c2e6b94030332dcb621c19d85f0cc390fa3df60f51d5cb15f6fb26c174a234eb7fd2b7284260a14bf8abd87f7c56bba846bc346ec425049dd2d63d04930e8f1 SHA512 c900ae0dac56d9aedab82606fafacbdd4da413eea960c2dcb92881dadfe47a177570378de5cc2902eb45a452421f9e4706fda2f236d825b8377ef2b234767c81 diff --git a/dev-lang/zig-bin/zig-bin-0.10.1-r3.ebuild b/dev-lang/zig-bin/zig-bin-0.10.1-r3.ebuild index d3bcaa24399a..4e0d582f7f85 100644 --- a/dev-lang/zig-bin/zig-bin-0.10.1-r3.ebuild +++ b/dev-lang/zig-bin/zig-bin-0.10.1-r3.ebuild @@ -1,4 +1,4 @@ -# Copyright 2022-2024 Gentoo Authors +# Copyright 2022-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -43,16 +43,15 @@ IUSE="doc" BDEPEND="verify-sig? ( sec-keys/minisig-keys-zig-software-foundation )" IDEPEND="app-eselect/eselect-zig" -# Zig provides its standard library in source form "/opt/zig-bin-{PV}/lib/", -# and all other Zig libraries are meant to be consumed in source form, -# because they can use compile-time mechanics (and it is easier for distributions to patch them) -# Here we use this feature for fixing programs that use standard library -# Note: Zig build system is also part of standard library, so we can fix it too +# Zig provides its standard library and some compiler code in source form "/opt/zig-bin-{PV}/lib/". +# Here we use this feature to fix programs that use standard library. +# Note: Zig build system is also part of standard library, so we can fix it too. +# Don't remove this comment so that other contributors won't be misleaded by "-bin" suffix. PATCHES=( "${FILESDIR}/zig-0.10.1-musl-1.2.4-lfs64.patch" ) -QA_PREBUILT="opt/${P}/zig" +QA_PREBUILT="opt/zig-bin-${PV}/zig" src_unpack() { verify-sig_src_unpack @@ -68,20 +67,20 @@ src_install() { rm -r ./doc/ || die doins -r "${S}" - fperms 0755 "/opt/${P}/zig" - dosym -r "/opt/${P}/zig" "/usr/bin/zig-bin-${PV}" + fperms 0755 /opt/zig-bin-${PV}/zig + dosym -r /opt/zig-bin-${PV}/zig /usr/bin/zig-bin-${PV} } pkg_postinst() { - eselect zig update ifunset + eselect zig update ifunset || die - elog "0.10.1 release uses self-hosted compiler by default and fixes some bugs from 0.10.0" - elog "But your code still can be un-compilable since some features still not implemented or bugs not fixed" - elog "Upstream recommends:" - elog " * Using old compiler if experiencing such breakage (flag '-fstage1')" - elog " * Waiting for release 0.11.0 with old compiler removed (these changes are already merged in 9999)" - elog "Also see: https://ziglang.org/download/0.10.0/release-notes.html#Self-Hosted-Compiler" - elog "and https://ziglang.org/download/0.10.0/release-notes.html#How-to-Upgrade" + elog "0.10.1 release uses self-hosted compiler by default and fixes some bugs from 0.10.0." + elog "If you wanted to try async/await syntax (which is still absent in newer versions)," + elog "use '-fstage1' flag to enable old C++-based compiler, since only stage1 supports this syntax." + elog "" + elog "See also: https://ziglang.org/download/0.10.0/release-notes.html#Falling-short-of-stage1 ," + elog "https://github.com/ziglang/zig/wiki/FAQ#what-is-the-status-of-async-in-zig" + elog "and https://github.com/ziglang/zig/issues/6025" } pkg_postrm() { diff --git a/dev-lang/zig-bin/zig-bin-0.13.0.ebuild b/dev-lang/zig-bin/zig-bin-0.13.0.ebuild index ba3a7c7bda35..3b8dd1ae891a 100644 --- a/dev-lang/zig-bin/zig-bin-0.13.0.ebuild +++ b/dev-lang/zig-bin/zig-bin-0.13.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 2022-2024 Gentoo Authors +# Copyright 2022-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -85,5 +85,5 @@ pkg_postinst() { } pkg_postrm() { - eselect zig update ifunset || die + eselect zig update ifunset } diff --git a/dev-lang/zig-bin/zig-bin-0.14.0.ebuild b/dev-lang/zig-bin/zig-bin-0.14.0.ebuild new file mode 100644 index 000000000000..95e1535b4533 --- /dev/null +++ b/dev-lang/zig-bin/zig-bin-0.14.0.ebuild @@ -0,0 +1,91 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_METHOD=minisig +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/minisig-keys/zig-software-foundation.pub +inherit verify-sig + +DESCRIPTION="A robust, optimal, and maintainable programming language" +HOMEPAGE="https://ziglang.org/" +SRC_URI=" + amd64? ( https://ziglang.org/download/${PV}/zig-linux-x86_64-${PV}.tar.xz ) + arm? ( https://ziglang.org/download/${PV}/zig-linux-armv7a-${PV}.tar.xz ) + arm64? ( https://ziglang.org/download/${PV}/zig-linux-aarch64-${PV}.tar.xz ) + loong? ( https://ziglang.org/download/${PV}/zig-linux-loongarch64-${PV}.tar.xz ) + ppc64? ( https://ziglang.org/download/${PV}/zig-linux-powerpc64le-${PV}.tar.xz ) + riscv? ( https://ziglang.org/download/${PV}/zig-linux-riscv64-${PV}.tar.xz ) + x86? ( https://ziglang.org/download/${PV}/zig-linux-x86-${PV}.tar.xz ) + verify-sig? ( + amd64? ( https://ziglang.org/download/${PV}/zig-linux-x86_64-${PV}.tar.xz.minisig ) + arm? ( https://ziglang.org/download/${PV}/zig-linux-armv7a-${PV}.tar.xz.minisig ) + arm64? ( https://ziglang.org/download/${PV}/zig-linux-aarch64-${PV}.tar.xz.minisig ) + loong? ( https://ziglang.org/download/${PV}/zig-linux-loongarch64-${PV}.tar.xz.minisig ) + ppc64? ( https://ziglang.org/download/${PV}/zig-linux-powerpc64le-${PV}.tar.xz.minisig ) + riscv? ( https://ziglang.org/download/${PV}/zig-linux-riscv64-${PV}.tar.xz.minisig ) + x86? ( https://ziglang.org/download/${PV}/zig-linux-x86-${PV}.tar.xz.minisig ) + ) +" + +# project itself: MIT +# There are bunch of projects under "lib/" folder that are needed for cross-compilation. +# Files that are unnecessary for cross-compilation are removed by upstream +# and therefore their licenses (if any special) are not included. +# lib/libunwind: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) +# lib/libcxxabi: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) +# lib/libcxx: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) +# lib/libc/wasi: || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain +# lib/libc/musl: MIT BSD-2 +# lib/libc/mingw: ZPL public-domain BSD-2 ISC HPND +# lib/libc/glibc: BSD HPND ISC inner-net LGPL-2.1+ +LICENSE="MIT Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain BSD-2 ZPL ISC HPND BSD inner-net LGPL-2.1+" +SLOT="$(ver_cut 1-2)" +KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" + +BDEPEND="verify-sig? ( sec-keys/minisig-keys-zig-software-foundation )" +IDEPEND="app-eselect/eselect-zig" + +DOCS=( "README.md" ) +HTML_DOCS=( "doc/langref.html" ) + +# Zig provides its standard library and some compiler code in source form "/opt/zig-bin-{PV}/lib/". +# Here we use this feature to fix programs that use standard library. +# Note: Zig build system is also part of standard library, so we can fix it too. +# Don't remove this comment so that other contributors won't be misleaded by "-bin" suffix. +#PATCHES=() + +QA_PREBUILT="opt/zig-bin-${PV}/zig" + +src_unpack() { + verify-sig_src_unpack + + mv "${WORKDIR}/"* "${S}" || die +} + +src_install() { + insinto /opt/ + + einstalldocs + rm README.md || die + rm -r ./doc/ || die + + doins -r "${S}" + fperms 0755 /opt/zig-bin-${PV}/zig + dosym -r /opt/zig-bin-${PV}/zig /usr/bin/zig-bin-${PV} +} + +pkg_postinst() { + eselect zig update ifunset || die + + elog "Starting from 0.12.0, Zig no longer installs" + elog "precompiled standard library documentation." + elog "Instead, you can call \`zig std\` to compile it on-the-fly." + elog "It reflects all edits in standard library automatically." + elog "See \`zig std --help\` for more information." + elog "More details here: https://ziglang.org/download/0.12.0/release-notes.html#Redesign-How-Autodoc-Works" +} + +pkg_postrm() { + eselect zig update ifunset +} diff --git a/dev-lang/zig/Manifest b/dev-lang/zig/Manifest index 258015816825..d4103b678b8b 100644 --- a/dev-lang/zig/Manifest +++ b/dev-lang/zig/Manifest @@ -1,10 +1,12 @@ AUX zig-0.13.0-skip-test-stack_iterator.patch 1443 BLAKE2B 347a7a397c706105456ba83d9511633d3f1a75aa33a06dfccfde457c93af79149c4bb704e0e493a6b69a840784739c34b7a4f570608c368bb84673def0404857 SHA512 7b446efad0a95d3483a570552f3a1df2a535a757e16eb8484571ab1c9fd525b7b68b36ca84fb30bcce77709f9936e4c361ae04362456a60a9f59516824e3a254 -AUX zig-0.13.0-test-fmt-no-doc.patch 653 BLAKE2B 92f28d86fde0ce3315b8e7b50dcdf03c1ef8a95964701d3c3c05dc8c16b08f9e327d190e9f9631c2a3a287b8b2945025abbf1b5c75d3bdb3adf719d1a6513703 SHA512 310d356f07505fa44e8425ec32f823eab5e20f9a0144c2e2ecff38e19ac1814d4320430373d4f2fa5ed9cf57000a126089c185fd6336daed8cc7dc0cffc0c023 AUX zig-0.13.0-test-std-kernel-version.patch 1304 BLAKE2B a266cc8d41df8eabc44cc381fe66e5b548d0e10eb0d0098350ddf596602204a77062b8e4632f58250a40781f7a1d5c7e9905c1387ecf7a0c505e330612944f38 SHA512 a62977e3ba675b60866d7cebdc5ff676825e77dac93029d32af403e567b5ae462d49355407f9dbd33843c8b8393d8f05a39de73a8818daf3424df083e0185da6 DIST zig-0.13.0-llvm-18.1.8-r6-fix.patch 45968 BLAKE2B a07c47b22b079d324b200fe84af5c89ffe51a1c81f50ca894a80f9f9db51a9d4119ae51c2e4e84a9b4f0111b2b809978b88adca42480ee800693afbd78f47387 SHA512 148b3f4807763dfb6a4d4e201890fa8204deaf73e620a8b592dfa03b997bc16ed01ea26e4d85f242473e91ccc45b1a06af22f786851f8e26cec1ac821b14efdc DIST zig-0.13.0.tar.xz 17220728 BLAKE2B f4bbacc2012950c556bebc28fc322fc6424bf20fe118e8362373336b6460e514028978584087f6e7f25ed8b8e6991610edce625676a1dd80c1975c5f9ef48775 SHA512 6f5f31f4ba71a11d8b16c7a5a613e124095e503fa6b02d2b77e5b177674c739287e81d98d96dc261fed24bc836caf196f71c3fcc7a6518387df86ba9e03df4dd DIST zig-0.13.0.tar.xz.minisig 312 BLAKE2B 2d061257c9c75f9c36b01cfb08dcd2040538a125b9ea2cae8617ae5496e685b165933ce8981494419522b7e19b51fc69a651ecaa4a8930753acf2e4ae3d6e00f SHA512 21c6139c06cba6c5e23a3305fed0c0f1b9b32d9140bd686c26365ce0279d5f53cd081894eaba29f0c1ed51b2e831edf7bd4ae6a7eaee5018a252e312e9b65507 -EBUILD zig-0.13.0-r1.ebuild 6212 BLAKE2B dc9966d60858e0c8c9c4a062bc826b502ae56d9432cf447021759976dca3e03d1b8ed7632e210a3f21a5414041d1b490321db970dcffa9181857cc096080577b SHA512 53651f874ee9a26d1d4fd2c6ba5a3d722f1aa086c02d57fed7be6e8e56dcd5dd5746f35c7dfe116cfaf5a008e9033697c8e2fe808f6e4ffc9fb0da357d455b8c -EBUILD zig-0.13.0-r2.ebuild 7263 BLAKE2B e62e6b54292e65fb008e7b005fd87ac1b7dc0caeca7a81c61f45bc3ee03dc18437caef7b320ee2ebf5daefe78799d7a6cde352fe61f4b3397eeee6aef6a9ec0c SHA512 4c535c7407af0bf2f907949e7ae139c06bc864e321829af59a213cc372796f843ebee2b6e449c2eed0b565e3b801521bfc1071487a73d07e5372c4344c16b476 -EBUILD zig-9999.ebuild 6977 BLAKE2B b4c58c01278d130eb0d7bff7bd91c576dda5de97f426ceb55139b0e298836f915f9cb53a39fee3d01de57e2b310d3e2f32d4a16fcf44f22b75a89efdf057f10a SHA512 d998a5b2bee29dd1bf4328858187bd65ac494df53d1e612b61bdaac54c1eba25270a6458c4978e96253ddaa9b23567530b6cec09779f27f56193139f7d51a0e0 -MISC metadata.xml 633 BLAKE2B 46cca8909b0b7d65213dee9c7aa7a2c4b5b529734e3bde4f65320074bc38d68420dfaa28041873c7c2c0f1127aca327e32c103c06ab1b5d5ee0e485cb33bb133 SHA512 1d030ca79a3d49b6f573e7995e6f6ef50a6e33ea7e2755a678625645d5b0587f7877a357ea71905034b7029c8c6315b89ebdb5313102b6638b16c467e2ba1864 +DIST zig-0.14.0.tar.xz 17772188 BLAKE2B 139a9d48c0a324f64633c71c7d572a60f817d11be9ea0c5cd837cdb78239969be581e51403b75790bbb95cc9c0111bd966134d4f2652863bb2a3f61d65afa531 SHA512 046462526ec16d56e8dcead8f8b680e99101090766c443f512f308c25860e8416f6fb2be15d4a387baa94f63a6fea6255374874c1ccf19144facbc02226a503b +DIST zig-0.14.0.tar.xz.minisig 312 BLAKE2B aba72ba97a978a84e9a938d2641c089a2c5f577041b8a777b9d4b8f7ee2d0b13cd03ccafcd5b4e627ba5fdff6592ca4ead2afa111b4cb769b66ed584b6e085e2 SHA512 a5d0946f136b2a28efbfde77f6052cd8745147df64bb70ed30d1d79bad27a52af451631750d592134e1933763ebe5e24215459481864bec0a969c1730527dc2c +EBUILD zig-0.13.0-r2.ebuild 8186 BLAKE2B 558c46db758f2f258bd846b3b50de55a4f8654e821f7dd1f24f19f632add71494f77e6d2f2e4af3599fdac365285b92235fa983e2dbada9a3af1c2190618f53b SHA512 da9cc8617fcfea0c75afe02b0623cb989583ed1ce8a56cd16a409174ac469004e91dd1263d536e1ca13f37cd882646ab191fb1afeddba88d18ffb48ac1e30329 +EBUILD zig-0.13.0-r3.ebuild 11137 BLAKE2B 3460d4e7686b1319fa4b45d07658a916dd000066f045b4536e6f861714782473c93c840b8f95d86e09fe5eec5988a2626958676f6b0c565164947131e6539665 SHA512 7b844a64eb620d868ad8e6699976999066da2770dabc9e36880567a796ef040c2c7a80d20863d436a02aa10b5198a4f8bc24267027d177055a811d7c43bfc790 +EBUILD zig-0.14.0.ebuild 11028 BLAKE2B 171b071e60de48ea2b54b3e63f86e9d1dc0a6d2f5aaee3b032882244f6b00d1a3ba29486a6c222aa0a5d38a24012b3ff57d9f2d6f191b4f723cc47ea9ea6b90c SHA512 084302ea5669e14530dabec2fe8bd62034391b7a77ac23560713a6dd2d078ee9be9be58088acdd997a902b23297d5e75bc6297fb5ef544c0172ea06eecbfb54e +EBUILD zig-9999.ebuild 11028 BLAKE2B 171b071e60de48ea2b54b3e63f86e9d1dc0a6d2f5aaee3b032882244f6b00d1a3ba29486a6c222aa0a5d38a24012b3ff57d9f2d6f191b4f723cc47ea9ea6b90c SHA512 084302ea5669e14530dabec2fe8bd62034391b7a77ac23560713a6dd2d078ee9be9be58088acdd997a902b23297d5e75bc6297fb5ef544c0172ea06eecbfb54e +MISC metadata.xml 698 BLAKE2B a87c750ce5bf5b4070d9bb175aa7241da124b6362db4fff9cc51f5508d15f16595f79d5018025ae837f48aa2168102dd923798c291ddb455ac7686deb2b74d03 SHA512 9e0109a58cfb1a14e9815951ef7b55d01ffd08ae3936d759bdbaf4ba0180f7720f489e57b3e1773285331da38cd1103176372262372ab6c6924b65daf5f4c1ec diff --git a/dev-lang/zig/files/zig-0.13.0-test-fmt-no-doc.patch b/dev-lang/zig/files/zig-0.13.0-test-fmt-no-doc.patch deleted file mode 100644 index 7bbda741dc6f..000000000000 --- a/dev-lang/zig/files/zig-0.13.0-test-fmt-no-doc.patch +++ /dev/null @@ -1,17 +0,0 @@ -# Docs contain examples of badly formatted code, -# so they should be excluded for test-fmt to pass. -# In the upstream, the "doc" directory -# was removed from fmt_include_paths in -# https://github.com/ziglang/zig/commit/cb1d1bdf - ---- a/build.zig -+++ b/build.zig -@@ -428,7 +428,7 @@ - } - const optimization_modes = chosen_opt_modes_buf[0..chosen_mode_index]; - -- const fmt_include_paths = &.{ "doc", "lib", "src", "test", "tools", "build.zig" }; -+ const fmt_include_paths = &.{ "lib", "src", "test", "tools", "build.zig" }; - const fmt_exclude_paths = &.{"test/cases"}; - const do_fmt = b.addFmt(.{ - .paths = fmt_include_paths, diff --git a/dev-lang/zig/metadata.xml b/dev-lang/zig/metadata.xml index 2364982009cc..34e44a88bfa3 100644 --- a/dev-lang/zig/metadata.xml +++ b/dev-lang/zig/metadata.xml @@ -10,6 +10,7 @@ <name>Proxy Maintainers</name> </maintainer> <use> + <flag name="debug">Build with debug extensions enabled.</flag> <flag name="llvm">Build with LLVM backend and extensions enabled.</flag> </use> <upstream> diff --git a/dev-lang/zig/zig-0.13.0-r1.ebuild b/dev-lang/zig/zig-0.13.0-r1.ebuild deleted file mode 100644 index 867fa84f3b19..000000000000 --- a/dev-lang/zig/zig-0.13.0-r1.ebuild +++ /dev/null @@ -1,227 +0,0 @@ -# Copyright 2019-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_MAX_SLOT=18 -inherit edo check-reqs cmake llvm multiprocessing toolchain-funcs - -DESCRIPTION="A robust, optimal, and maintainable programming language" -HOMEPAGE="https://ziglang.org https://github.com/ziglang/zig" - -BDEPEND="test? ( !!<sys-apps/sandbox-2.39 )" -if [[ ${PV} == 9999 ]]; then - EGIT_REPO_URI="https://github.com/ziglang/zig.git" - inherit git-r3 -else - VERIFY_SIG_METHOD=minisig - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/minisig-keys/zig-software-foundation.pub - inherit verify-sig - - SRC_URI=" - https://ziglang.org/download/${PV}/${P}.tar.xz - verify-sig? ( https://ziglang.org/download/${PV}/${P}.tar.xz.minisig ) - https://codeberg.org/BratishkaErik/distfiles/releases/download/dev-lang%2Fzig-${PV}/${P}-llvm-18.1.8-r6-fix.patch - " - KEYWORDS="~amd64 ~arm ~arm64" - - BDEPEND+=" verify-sig? ( sec-keys/minisig-keys-zig-software-foundation )" -fi - -# project itself: MIT -# There are bunch of projects under "lib/" folder that are needed for cross-compilation. -# Files that are unnecessary for cross-compilation are removed by upstream -# and therefore their licenses (if any special) are not included. -# lib/libunwind: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) -# lib/libcxxabi: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) -# lib/libcxx: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) -# lib/libc/wasi: || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain -# lib/libc/musl: MIT BSD-2 -# lib/libc/mingw: ZPL public-domain BSD-2 ISC HPND -# lib/libc/glibc: BSD HPND ISC inner-net LGPL-2.1+ -LICENSE="MIT Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain BSD-2 ZPL ISC HPND BSD inner-net LGPL-2.1+" -SLOT="$(ver_cut 1-2)" -IUSE="doc test" -RESTRICT="!test? ( test )" - -BUILD_DIR="${S}/build" - -# Zig requires zstd and zlib compression support in LLVM, if using LLVM backend. -# (non-LLVM backends don't require these) -# They are not required "on their own", so please don't add them here. -# You can check https://github.com/ziglang/zig-bootstrap in future, to see -# options that are passed to LLVM CMake building (excluding "static" ofc). -DEPEND=" - llvm-core/clang:${LLVM_MAX_SLOT}= - llvm-core/lld:${LLVM_MAX_SLOT}= - llvm-core/llvm:${LLVM_MAX_SLOT}=[zstd] -" - -RDEPEND=" - ${DEPEND} -" - -IDEPEND="app-eselect/eselect-zig" - -# see https://github.com/ziglang/zig/issues/3382 -# For now, Zig Build System doesn't support enviromental CFLAGS/LDFLAGS/etc. -QA_FLAGS_IGNORED="usr/.*/zig/${PV}/bin/zig" - -# Since commit https://github.com/ziglang/zig/commit/e7d28344fa3ee81d6ad7ca5ce1f83d50d8502118 -# Zig uses self-hosted compiler only -CHECKREQS_MEMORY="4G" - -PATCHES=( - "${FILESDIR}/${P}-test-fmt-no-doc.patch" - "${FILESDIR}/${P}-test-std-kernel-version.patch" - "${DISTDIR}/${P}-llvm-18.1.8-r6-fix.patch" -) - -llvm_check_deps() { - has_version "llvm-core/clang:${LLVM_SLOT}" -} - -ctarget_to_zigtarget() { - # Zig's Target Format: arch-os-abi - local CTARGET="${CTARGET:-${CHOST}}" - - local ZIG_ARCH - case "${CTARGET%%-*}" in - i?86) ZIG_ARCH=x86;; - sparcv9) ZIG_ARCH=sparc64;; - *) ZIG_ARCH="${CTARGET%%-*}";; # Same as in CHOST - esac - - local ZIG_OS - case "${CTARGET}" in - *linux*) ZIG_OS=linux;; - *apple*) ZIG_OS=macos;; - esac - - local ZIG_ABI - case "${CTARGET##*-}" in - gnu) ZIG_ABI=gnu;; - solaris*) ZIG_OS=solaris ZIG_ABI=none;; - darwin*) ZIG_ABI=none;; - *) ZIG_ABI="${CTARGET##*-}";; # Same as in CHOST - esac - - echo "${ZIG_ARCH}-${ZIG_OS}-${ZIG_ABI}" -} - -get_zig_mcpu() { - local ZIG_DEFAULT_MCPU=native - tc-is-cross-compiler && ZIG_DEFAULT_MCPU=baseline - echo "${ZIG_MCPU:-${ZIG_DEFAULT_MCPU}}" -} - -get_zig_target() { - local ZIG_DEFAULT_TARGET=native - tc-is-cross-compiler && ZIG_DEFAULT_TARGET="$(ctarget_to_zigtarget)" - echo "${ZIG_TARGET:-${ZIG_DEFAULT_TARGET}}" -} - -pkg_setup() { - llvm_pkg_setup - check-reqs_pkg_setup -} - -src_unpack() { - if use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${P}.tar.xz{,.minisig} - fi - default -} - -src_configure() { - # Useful for debugging and a little bit more deterministic. - export ZIG_LOCAL_CACHE_DIR="${T}/zig-local-cache" - export ZIG_GLOBAL_CACHE_DIR="${T}/zig-global-cache" - - local mycmakeargs=( - -DZIG_SHARED_LLVM=ON - -DZIG_TARGET_TRIPLE="$(get_zig_target)" - -DZIG_TARGET_MCPU="$(get_zig_mcpu)" - -DZIG_USE_LLVM_CONFIG=ON - -DCMAKE_PREFIX_PATH="$(get_llvm_prefix ${LLVM_MAX_SLOT})" - -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/$(get_libdir)/zig/${PV}" - ) - - cmake_src_configure -} - -src_compile() { - # Remove "limit memory usage" flags, it's already verified by - # CHECKREQS_MEMORY and causes unneccessary errors. Upstream set them - # according to CI OOM failures, which are higher than during Gentoo build. - sed -i -e '/\.max_rss = .*,/d' build.zig || die - - cmake_src_compile - - "${BUILD_DIR}/stage3/bin/zig" env || die "Zig compilation failed" - - if use doc; then - cd "${BUILD_DIR}" || die - edo ./stage3/bin/zig build std-docs --prefix "${S}/docgen/" - edo ./stage3/bin/zig build langref --prefix "${S}/docgen/" - fi -} - -src_test() { - cd "${BUILD_DIR}" || die - local ZIG_TEST_ARGS=( - -j$(makeopts_jobs) - --color on - --summary all - --verbose - -Dstatic-llvm=false - -Denable-llvm - -Dskip-non-native - -Doptimize=Debug - -Dtarget="$(get_zig_target)" - -Dcpu="$(get_zig_mcpu)" - ) - local ZIG_TEST_STEPS=( - test-asm-link - test-behavior - test-c-abi - test-c-import - test-cases - test-cli - test-compare-output - test-compiler-rt - test-fmt - test-link - test-run-translated-c - test-stack-traces - test-standalone - test-std - test-translate-c - test-universal-libc - ) - - local step - for step in "${ZIG_TEST_STEPS[@]}" ; do - # to keep the verbosity, don't use edob here - ./stage3/bin/zig build ${step} ${ZIG_TEST_ARGS[@]} || die - done -} - -src_install() { - use doc && local HTML_DOCS=( "docgen/doc/langref.html" "docgen/doc/std" ) - cmake_src_install - - cd "${ED}/usr/$(get_libdir)/zig/${PV}/" || die - mv lib/zig/ lib2/ || die - rm -rf lib/ || die - mv lib2/ lib/ || die - dosym -r "/usr/$(get_libdir)/zig/${PV}/bin/zig" "/usr/bin/zig-${PV}" -} - -pkg_postinst() { - eselect zig update ifunset || die -} - -pkg_postrm() { - eselect zig update ifunset || die -} diff --git a/dev-lang/zig/zig-0.13.0-r2.ebuild b/dev-lang/zig/zig-0.13.0-r2.ebuild index b970092ce4e4..1eca3d4bd335 100644 --- a/dev-lang/zig/zig-0.13.0-r2.ebuild +++ b/dev-lang/zig/zig-0.13.0-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 2019-2024 Gentoo Authors +# Copyright 2019-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -92,7 +92,7 @@ pkg_setup() { # Skip detecting zig executable. ZIG_EXE="not-applicable" ZIG_VER="${PV}" zig_pkg_setup - export ZIG_SYS_INSTALL_DEST="${EPREFIX}/usr/$(get_libdir)/zig/${PV}" + declare -r -g ZIG_SYS_INSTALL_DEST="${EPREFIX}/usr/$(get_libdir)/zig/${PV}" if use llvm; then tc-is-cross-compiler && die "USE=llvm is not yet supported when cross-compiling" @@ -142,7 +142,8 @@ src_configure() { # are used only after compiling zig2. local my_zbs_args=( --zig-lib-dir "${S}/lib/" - # Will be a subdir under ZIG_SYS_INSTALL_DEST. + + --prefix "${ZIG_SYS_INSTALL_DEST}/" --prefix-lib-dir lib/ # These are built separately @@ -199,24 +200,51 @@ src_compile() { fi cd "${BUILD_DIR}" || die - ZIG_EXE="./zig2" zig_src_compile --prefix "${BUILD_DIR}/stage3/" + ZIG_EXE="./zig2" zig_src_compile --prefix stage3/ ./stage3/bin/zig env || die "Zig compilation failed" if use doc; then - ZIG_EXE="./stage3/bin/zig" zig_src_compile langref --prefix "${S}/docgen/" + ZIG_EXE="./stage3/bin/zig" zig_src_compile langref --prefix docgen/ fi } src_test() { + if has_version -b app-emulation/qemu; then + ewarn "QEMU executable was found on your building system." + ewarn "If you have qemu-binfmt (binfmt_misc) hooks enabled for" + ewarn "foreign architectures, Zig tests might fail." + ewarn "In this case, please disable qemu-binfmt and try again." + fi + cd "${BUILD_DIR}" || die + + # XXX: When we pass a libc installation to Zig, it will fail to find + # the bundled libraries for targets like aarch64-macos and + # *-linux-musl. Zig doesn't run binaries for these targets when + # -Dskip-non-native is passed, but they are still compiled, so + # the test will fail. There's no way to disable --libc once passed, + # so we need to strip it from ZBS_ARGS. + # See: https://github.com/ziglang/zig/issues/22383 + local args_backup=("${ZBS_ARGS[@]}") + + for ((i = 0; i < ${#ZBS_ARGS[@]}; i++)); do + if [[ "${ZBS_ARGS[i]}" == "--libc" ]]; then + unset ZBS_ARGS[i] + unset ZBS_ARGS[i+1] + break + fi + done + ZIG_EXE="./stage3/bin/zig" zig_src_test -Dskip-non-native + + ZBS_ARGS=("${args_backup[@]}") } src_install() { - use doc && local HTML_DOCS=( "docgen/doc/langref.html" ) + use doc && local HTML_DOCS=( "${BUILD_DIR}/docgen/doc/langref.html" ) - ZIG_EXE="./zig2" zig_src_install --prefix "${ZIG_SYS_INSTALL_DEST}" + ZIG_EXE="./zig2" zig_src_install cd "${D}/${ZIG_SYS_INSTALL_DEST}" || die mv lib/zig/ lib2/ || die @@ -244,5 +272,5 @@ pkg_postinst() { } pkg_postrm() { - eselect zig update ifunset || die + eselect zig update ifunset } diff --git a/dev-lang/zig/zig-0.13.0-r3.ebuild b/dev-lang/zig/zig-0.13.0-r3.ebuild new file mode 100644 index 000000000000..474339a4e1a3 --- /dev/null +++ b/dev-lang/zig/zig-0.13.0-r3.ebuild @@ -0,0 +1,356 @@ +# Copyright 2019-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 18 ) +LLVM_OPTIONAL=1 + +ZIG_SLOT="$(ver_cut 1-2)" +ZIG_OPTIONAL=1 + +inherit check-reqs cmake flag-o-matic edo llvm-r2 toolchain-funcs zig + +DESCRIPTION="A robust, optimal, and maintainable programming language" +HOMEPAGE="https://ziglang.org/ https://github.com/ziglang/zig/" +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://github.com/ziglang/zig.git" + inherit git-r3 +else + VERIFY_SIG_METHOD=minisig + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/minisig-keys/zig-software-foundation.pub + inherit verify-sig + + SRC_URI=" + https://ziglang.org/download/${PV}/${P}.tar.xz + verify-sig? ( https://ziglang.org/download/${PV}/${P}.tar.xz.minisig ) + https://codeberg.org/BratishkaErik/distfiles/releases/download/dev-lang%2Fzig-${PV}/${P}-llvm-18.1.8-r6-fix.patch + " + KEYWORDS="~amd64 ~arm ~arm64" + + BDEPEND="verify-sig? ( sec-keys/minisig-keys-zig-software-foundation )" +fi + +# project itself: MIT +# There are bunch of projects under "lib/" folder that are needed for cross-compilation. +# Files that are unnecessary for cross-compilation are removed by upstream +# and therefore their licenses (if any special) are not included. +# lib/libunwind: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) +# lib/libcxxabi: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) +# lib/libcxx: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) +# lib/libc/wasi: || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain +# lib/libc/musl: MIT BSD-2 +# lib/libc/mingw: ZPL public-domain BSD-2 ISC HPND +# lib/libc/glibc: BSD HPND ISC inner-net LGPL-2.1+ +LICENSE="MIT Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain BSD-2 ZPL ISC HPND BSD inner-net LGPL-2.1+" +SLOT="${ZIG_SLOT}" +IUSE="debug doc +llvm" +REQUIRED_USE=" + !llvm? ( !doc ) + llvm? ( ${LLVM_REQUIRED_USE} ) +" + +# Used by both "cmake" and "zig" eclasses. +BUILD_DIR="${WORKDIR}/${P}_build" + +# Zig requires zstd and zlib compression support in LLVM, if using LLVM backend. +# (non-LLVM backends don't require these) +# They are not required "on their own", so please don't add them here. +# You can check https://github.com/ziglang/zig-bootstrap in future, to see +# options that are passed to LLVM CMake building (excluding "static" ofc). +LLVM_DEPEND="$(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/lld:${LLVM_SLOT}[zstd] + llvm-core/llvm:${LLVM_SLOT}[zstd] +')" + +BDEPEND+=" llvm? ( ${LLVM_DEPEND} )" +DEPEND="llvm? ( ${LLVM_DEPEND} )" +RDEPEND="${DEPEND}" +IDEPEND="app-eselect/eselect-zig" + +DOCS=( "README.md" "doc/build.zig.zon.md" ) + +PATCHES=( + "${FILESDIR}/zig-0.13.0-test-std-kernel-version.patch" + "${FILESDIR}/zig-0.13.0-skip-test-stack_iterator.patch" + "${DISTDIR}/${P}-llvm-18.1.8-r6-fix.patch" +) + +# zig.eclass does not set this for us since we use ZIG_OPTIONAL=1 +QA_FLAGS_IGNORED="usr/.*/zig/${PV}/bin/zig" + +# Since commit https://github.com/ziglang/zig/commit/e7d28344fa3ee81d6ad7ca5ce1f83d50d8502118 +# Zig uses self-hosted compiler only +CHECKREQS_MEMORY="4G" + +pkg_setup() { + # Skip detecting zig executable. + declare -r -g ZIG_VER="${PV}" + ZIG_EXE="not-applicable" zig_pkg_setup + + declare -r -g ZIG_SYS_INSTALL_DEST="${EPREFIX}/usr/$(get_libdir)/zig/${PV}" + + if use llvm; then + [[ ${MERGE_TYPE} != binary ]] && llvm_cbuild_setup + fi + + # Requires running stage3 which is built for cross-target. + if use doc && tc-is-cross-compiler; then + die "USE=doc is not yet supported when cross-compiling" + fi + + check-reqs_pkg_setup +} + +src_unpack() { + if [[ ${PV} == 9999 ]]; then + git-r3_src_unpack + else + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${P}.tar.xz{,.minisig} + fi + fi + zig_src_unpack +} + +src_prepare() { + if use llvm; then + cmake_src_prepare + else + # Sync with zig_src_prepare + default_src_prepare + mkdir -p "${BUILD_DIR}" || die + einfo "BUILD_DIR: \"${BUILD_DIR}\"" + # "--system" mode is not used during bootstrap. + fi + + # Remove "limit memory usage" flags, it's already verified by + # CHECKREQS_MEMORY and causes unneccessary errors. Upstream set them + # according to CI OOM failures, which are not applicable to normal Gentoo build. + sed -i -e '/\.max_rss = .*,/d' build.zig || die +} + +src_configure() { + # Has no effect on final binary and only causes failures during bootstrapping. + filter-lto + + # Used during bootstrapping. stage1/stage2 have limited functionality + # and can't resolve native target, so we pass target in exact form. + declare -r -g ZIG_HOST_AS_TARGET="$(zig-utils_c_env_to_zig_target "${CBUILD:-${CHOST}}" "${CFLAGS}"})" + + # Note that if we are building with CMake, "my_zbs_args" + # are used only after compiling zig2. + local my_zbs_args=( + --zig-lib-dir "${S}/lib/" + + --prefix "${ZIG_SYS_INSTALL_DEST}/" + --prefix-lib-dir lib/ + + # These are built separately + -Dno-langref=true + -Dstd-docs=false + + # More commands and options if "debug" is enabled. + -Ddebug-extensions=$(usex debug true false) + # More asserts and so on by default if "debug" is enabled. + --release=$(usex debug safe fast) + ) + + # Scenarios of compilation: + + # With LLVM, native: + # CMake: + # * generate "config.h" for LLVM libraries and build "zigcpp" + # * build "zig2" using common "config.h" and "zigcpp" + # build.zig: + # * build "stage3" using common "config.h" and "zigcpp" + + # With LLVM, cross-compiled: + # CMake: + # * generate cross-target "config.h" for LLVM libraries from ESYSROOT + # and build cross-target "zigcpp", and stash them away + # * generate native "config.h" for LLVM libraries from BROOT and + # build native "zigcpp" + # * build native "zig2" using native "config.h" and "zigcpp" + # build.zig: + # * build cross-target "stage3" using stashed "config.h" and "zigcpp" + + # Without LLVM: + # bootstrap.c: + # * build native "zig2" + # build.zig: + # * build (cross-)target "stage3" + + if use llvm; then + my_zbs_args+=( + -Denable-llvm=true + -Dstatic-llvm=false + -Dconfig_h="${BUILD_DIR}/config.h" + ) + else + my_zbs_args+=( + -Denable-llvm=false + ) + fi + zig_src_configure + + if use llvm; then + local mycmakeargs=( + -DZIG_SHARED_LLVM=ON + -DZIG_USE_LLVM_CONFIG=ON + -DZIG_HOST_TARGET_TRIPLE="${ZIG_HOST_AS_TARGET}" + # Don't set ZIG_TARGET_TRIPLE, ZIG_TARGET_MCPU and + # CMAKE_INSTALL_PREFIX because we build up to zig2 max, + # after that "zig build" is used to compile stage3. + + # Don't set CMAKE_PREFIX_PATH because "llvm_chost_setup" + # and "llvm_cbuild_setup" already set PATH in such way + # that suitable llvm-config is found and used in + # "cmake/Findllvm.cmake", and "cmake.eclass" help with + # cross-compilation pathes for "Findclang" and "Findlld". + + # CMP0144, Zig has own packages with these names, so ignore + # LLVM_ROOT, Clang_ROOT, LLD_ROOT from "llvm_chost_setup". + -DCMAKE_FIND_USE_PACKAGE_ROOT_PATH=OFF + ) + if tc-is-cross-compiler; then + # Enable cross-compilation for CMake when filling "config.h" + # and building "zigcpp". They would be used for stage3 build. + # Here we are using LLVM from ESYSROOT/DEPEND. + # Uses script llvm-config. + + # Isolate PATH changes in subshell so that it would not + # affect next `cmake_src_configure` with BROOT/BDEPEND. + ( + llvm_chost_setup + cmake_src_configure + cmake_build zigcpp + ) + + mv "${BUILD_DIR}/config.h" "${T}/target_config.h" || die + mv "${BUILD_DIR}/zigcpp/" "${T}/target_zigcpp/" || die + rm -rf "${BUILD_DIR}" || die + fi + + # Force disable cross-compilation for CMake when building "zig2". + # Here we are using LLVM from BROOT/BDEPEND. + # Uses native llvm-config. + + # Isolate environment changes in subshell so that it would not + # affect next phases. + ( + export BUILD_CFLAGS="${CFLAGS}" + export BUILD_CXXFLAGS="${CXXFLAGS}" + export BUILD_CPPFLAGS="${CPPFLAGS}" + export BUILD_LDFLAGS="${LDFLAGS}" + tc-env_build + + unset SYSROOT + export CHOST="${CBUILD:-${CHOST}}" + strip-unsupported-flags + cmake_src_configure + ) + fi +} + +src_compile() { + if use llvm; then + cmake_build zig2 + + if tc-is-cross-compiler; then + rm -rf "${BUILD_DIR}/zigcpp/" || die + rm -f "${BUILD_DIR}/config.h" || die + + mv "${T}/target_zigcpp/" "${BUILD_DIR}/zigcpp/" || die + mv "${T}/target_config.h" "${BUILD_DIR}/config.h" || die + fi + else + cd "${BUILD_DIR}" || die + ln -s "${S}/stage1/" . || die + ln -s "${S}/src/" . || die + ln -s "${S}/lib/" . || die + + local native_cc="$(tc-getBUILD_CC)" + "${native_cc}" -o bootstrap "${S}/bootstrap.c" || die "Zig's bootstrap.c compilation failed" + ZIG_HOST_TARGET_TRIPLE="${ZIG_HOST_AS_TARGET}" CC="${native_cc}" edo ./bootstrap + fi + + cd "${BUILD_DIR}" || die + ZIG_EXE="./zig2" zig_src_compile --prefix stage3/ + + # Requires running stage3 which is built for cross-target. + if ! tc-is-cross-compiler; then + ./stage3/bin/zig env || die "Zig compilation failed" + + if use doc; then + ZIG_EXE="./stage3/bin/zig" zig_src_compile langref --prefix docgen/ + fi + fi +} + +src_test() { + if has_version -b app-emulation/qemu; then + ewarn "QEMU executable was found on your building system." + ewarn "If you have qemu-binfmt (binfmt_misc) hooks enabled for" + ewarn "foreign architectures, Zig tests might fail." + ewarn "In this case, please disable qemu-binfmt and try again." + fi + + cd "${BUILD_DIR}" || die + + # XXX: When we pass a libc installation to Zig, it will fail to find + # the bundled libraries for targets like aarch64-macos and + # *-linux-musl. Zig doesn't run binaries for these targets when + # -Dskip-non-native is passed, but they are still compiled, so + # the test will fail. There's no way to disable --libc once passed, + # so we need to strip it from ZBS_ARGS. + # See: https://github.com/ziglang/zig/issues/22383 + local args_backup=("${ZBS_ARGS[@]}") + + for ((i = 0; i < ${#ZBS_ARGS[@]}; i++)); do + if [[ "${ZBS_ARGS[i]}" == "--libc" ]]; then + unset ZBS_ARGS[i] + unset ZBS_ARGS[i+1] + break + fi + done + + ZIG_EXE="./stage3/bin/zig" zig_src_test -Dskip-non-native + + ZBS_ARGS=("${args_backup[@]}") +} + +src_install() { + use doc && local HTML_DOCS=( "${BUILD_DIR}/docgen/doc/langref.html" ) + + ZIG_EXE="./zig2" zig_src_install + + cd "${D}/${ZIG_SYS_INSTALL_DEST}" || die + mv lib/zig/ lib2/ || die + rm -rf lib/ || die + mv lib2/ lib/ || die + dosym -r "${ZIG_SYS_INSTALL_DEST}/bin/zig" /usr/bin/zig-${PV} +} + +pkg_postinst() { + eselect zig update ifunset || die + + elog "Starting from 0.12.0, Zig no longer installs" + elog "precompiled standard library documentation." + elog "Instead, you can call \`zig std\` to compile it on-the-fly." + elog "It reflects all edits in standard library automatically." + elog "See \`zig std --help\` for more information." + elog "More details here: https://ziglang.org/download/0.12.0/release-notes.html#Redesign-How-Autodoc-Works" + + if ! use llvm; then + elog "Currently, Zig built without LLVM support lacks some" + elog "important features such as most optimizations, @cImport, etc." + elog "They are listed under \"Building from Source without LLVM\"" + elog "section of the README file from \"/usr/share/doc/${PF}\" ." + fi +} + +pkg_postrm() { + eselect zig update ifunset +} diff --git a/dev-lang/zig/zig-0.14.0.ebuild b/dev-lang/zig/zig-0.14.0.ebuild new file mode 100644 index 000000000000..af0fe7f8192b --- /dev/null +++ b/dev-lang/zig/zig-0.14.0.ebuild @@ -0,0 +1,352 @@ +# Copyright 2019-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 19 ) +LLVM_OPTIONAL=1 + +ZIG_SLOT="$(ver_cut 1-2)" +ZIG_OPTIONAL=1 + +inherit check-reqs cmake flag-o-matic edo llvm-r2 toolchain-funcs zig + +DESCRIPTION="A robust, optimal, and maintainable programming language" +HOMEPAGE="https://ziglang.org/ https://github.com/ziglang/zig/" +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://github.com/ziglang/zig.git" + inherit git-r3 +else + VERIFY_SIG_METHOD=minisig + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/minisig-keys/zig-software-foundation.pub + inherit verify-sig + + SRC_URI=" + https://ziglang.org/download/${PV}/${P}.tar.xz + verify-sig? ( https://ziglang.org/download/${PV}/${P}.tar.xz.minisig ) + " + KEYWORDS="~amd64 ~arm ~arm64" + + BDEPEND="verify-sig? ( sec-keys/minisig-keys-zig-software-foundation )" +fi + +# project itself: MIT +# There are bunch of projects under "lib/" folder that are needed for cross-compilation. +# Files that are unnecessary for cross-compilation are removed by upstream +# and therefore their licenses (if any special) are not included. +# lib/libunwind: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) +# lib/libcxxabi: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) +# lib/libcxx: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) +# lib/libc/wasi: || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain +# lib/libc/musl: MIT BSD-2 +# lib/libc/mingw: ZPL public-domain BSD-2 ISC HPND +# lib/libc/glibc: BSD HPND ISC inner-net LGPL-2.1+ +LICENSE="MIT Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain BSD-2 ZPL ISC HPND BSD inner-net LGPL-2.1+" +SLOT="${ZIG_SLOT}" +IUSE="debug doc +llvm" +REQUIRED_USE=" + !llvm? ( !doc ) + llvm? ( ${LLVM_REQUIRED_USE} ) +" +RESTRICT="!llvm? ( test )" + +# Used by both "cmake" and "zig" eclasses. +BUILD_DIR="${WORKDIR}/${P}_build" + +# Zig requires zstd and zlib compression support in LLVM, if using LLVM backend. +# (non-LLVM backends don't require these) +# They are not required "on their own", so please don't add them here. +# You can check https://github.com/ziglang/zig-bootstrap in future, to see +# options that are passed to LLVM CMake building (excluding "static" ofc). +LLVM_DEPEND="$(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/lld:${LLVM_SLOT}[zstd] + llvm-core/llvm:${LLVM_SLOT}[zstd] +')" + +BDEPEND+=" llvm? ( ${LLVM_DEPEND} )" +DEPEND="llvm? ( ${LLVM_DEPEND} )" +RDEPEND="${DEPEND}" +IDEPEND="app-eselect/eselect-zig" + +DOCS=( "README.md" "doc/build.zig.zon.md" ) + +# zig.eclass does not set this for us since we use ZIG_OPTIONAL=1 +QA_FLAGS_IGNORED="usr/.*/zig/${PV}/bin/zig" + +# Since commit https://github.com/ziglang/zig/commit/e7d28344fa3ee81d6ad7ca5ce1f83d50d8502118 +# Zig uses self-hosted compiler only +CHECKREQS_MEMORY="4G" + +pkg_setup() { + # Skip detecting zig executable. + declare -r -g ZIG_VER="${PV}" + ZIG_EXE="not-applicable" zig_pkg_setup + + declare -r -g ZIG_SYS_INSTALL_DEST="${EPREFIX}/usr/$(get_libdir)/zig/${PV}" + + if use llvm; then + [[ ${MERGE_TYPE} != binary ]] && llvm_cbuild_setup + fi + + # Requires running stage3 which is built for cross-target. + if use doc && tc-is-cross-compiler; then + die "USE=doc is not yet supported when cross-compiling" + fi + + check-reqs_pkg_setup +} + +src_unpack() { + if [[ ${PV} == 9999 ]]; then + git-r3_src_unpack + else + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${P}.tar.xz{,.minisig} + fi + fi + zig_src_unpack +} + +src_prepare() { + if use llvm; then + cmake_src_prepare + else + # Sync with zig_src_prepare + default_src_prepare + mkdir -p "${BUILD_DIR}" || die + einfo "BUILD_DIR: \"${BUILD_DIR}\"" + # "--system" mode is not used during bootstrap. + fi + + # Remove "limit memory usage" flags, it's already verified by + # CHECKREQS_MEMORY and causes unneccessary errors. Upstream set them + # according to CI OOM failures, which are not applicable to normal Gentoo build. + sed -i -e '/\.max_rss = .*,/d' build.zig || die +} + +src_configure() { + # Has no effect on final binary and only causes failures during bootstrapping. + filter-lto + + # Used during bootstrapping. stage1/stage2 have limited functionality + # and can't resolve native target, so we pass target in exact form. + declare -r -g ZIG_HOST_AS_TARGET="$(zig-utils_c_env_to_zig_target "${CBUILD:-${CHOST}}" "${CFLAGS}"})" + + # Note that if we are building with CMake, "my_zbs_args" + # are used only after compiling zig2. + local my_zbs_args=( + --zig-lib-dir "${S}/lib/" + + --prefix "${ZIG_SYS_INSTALL_DEST}/" + --prefix-lib-dir lib/ + + # These are built separately + -Dno-langref=true + -Dstd-docs=false + + # More commands and options if "debug" is enabled. + -Ddebug-extensions=$(usex debug true false) + # More asserts and so on by default if "debug" is enabled. + --release=$(usex debug safe fast) + ) + + # Scenarios of compilation: + + # With LLVM, native: + # CMake: + # * generate "config.h" for LLVM libraries and build "zigcpp" + # * build "zig2" using common "config.h" and "zigcpp" + # build.zig: + # * build "stage3" using common "config.h" and "zigcpp" + + # With LLVM, cross-compiled: + # CMake: + # * generate cross-target "config.h" for LLVM libraries from ESYSROOT + # and build cross-target "zigcpp", and stash them away + # * generate native "config.h" for LLVM libraries from BROOT and + # build native "zigcpp" + # * build native "zig2" using native "config.h" and "zigcpp" + # build.zig: + # * build cross-target "stage3" using stashed "config.h" and "zigcpp" + + # Without LLVM: + # bootstrap.c: + # * build native "zig2" + # build.zig: + # * build (cross-)target "stage3" + + if use llvm; then + my_zbs_args+=( + -Denable-llvm=true + -Dstatic-llvm=false + -Dconfig_h="${BUILD_DIR}/config.h" + ) + else + my_zbs_args+=( + -Denable-llvm=false + ) + fi + zig_src_configure + + if use llvm; then + local mycmakeargs=( + -DZIG_SHARED_LLVM=ON + -DZIG_USE_LLVM_CONFIG=ON + -DZIG_HOST_TARGET_TRIPLE="${ZIG_HOST_AS_TARGET}" + # Don't set ZIG_TARGET_TRIPLE, ZIG_TARGET_MCPU and + # CMAKE_INSTALL_PREFIX because we build up to zig2 max, + # after that "zig build" is used to compile stage3. + + # Don't set CMAKE_PREFIX_PATH because "llvm_chost_setup" + # and "llvm_cbuild_setup" already set PATH in such way + # that suitable llvm-config is found and used in + # "cmake/Findllvm.cmake", and "cmake.eclass" help with + # cross-compilation pathes for "Findclang" and "Findlld". + + # CMP0144, Zig has own packages with these names, so ignore + # LLVM_ROOT, Clang_ROOT, LLD_ROOT from "llvm_chost_setup". + -DCMAKE_FIND_USE_PACKAGE_ROOT_PATH=OFF + ) + if tc-is-cross-compiler; then + # Enable cross-compilation for CMake when filling "config.h" + # and building "zigcpp". They would be used for stage3 build. + # Here we are using LLVM from ESYSROOT/DEPEND. + # Uses script llvm-config. + + # Isolate PATH changes in subshell so that it would not + # affect next `cmake_src_configure` with BROOT/BDEPEND. + ( + llvm_chost_setup + cmake_src_configure + cmake_build zigcpp + ) + + mv "${BUILD_DIR}/config.h" "${T}/target_config.h" || die + mv "${BUILD_DIR}/zigcpp/" "${T}/target_zigcpp/" || die + rm -rf "${BUILD_DIR}" || die + fi + + # Force disable cross-compilation for CMake when building "zig2". + # Here we are using LLVM from BROOT/BDEPEND. + # Uses native llvm-config. + + # Isolate environment changes in subshell so that it would not + # affect next phases. + ( + export BUILD_CFLAGS="${CFLAGS}" + export BUILD_CXXFLAGS="${CXXFLAGS}" + export BUILD_CPPFLAGS="${CPPFLAGS}" + export BUILD_LDFLAGS="${LDFLAGS}" + tc-env_build + + unset SYSROOT + export CHOST="${CBUILD:-${CHOST}}" + strip-unsupported-flags + cmake_src_configure + ) + fi +} + +src_compile() { + if use llvm; then + cmake_build zig2 + + if tc-is-cross-compiler; then + rm -rf "${BUILD_DIR}/zigcpp/" || die + rm -f "${BUILD_DIR}/config.h" || die + + mv "${T}/target_zigcpp/" "${BUILD_DIR}/zigcpp/" || die + mv "${T}/target_config.h" "${BUILD_DIR}/config.h" || die + fi + else + cd "${BUILD_DIR}" || die + ln -s "${S}/stage1/" . || die + ln -s "${S}/src/" . || die + ln -s "${S}/lib/" . || die + + local native_cc="$(tc-getBUILD_CC)" + "${native_cc}" -o bootstrap "${S}/bootstrap.c" || die "Zig's bootstrap.c compilation failed" + ZIG_HOST_TARGET_TRIPLE="${ZIG_HOST_AS_TARGET}" CC="${native_cc}" edo ./bootstrap + fi + + cd "${BUILD_DIR}" || die + ZIG_EXE="./zig2" zig_src_compile --prefix stage3/ + + # Requires running stage3 which is built for cross-target. + if ! tc-is-cross-compiler; then + ./stage3/bin/zig env || die "Zig compilation failed" + + if use doc; then + ZIG_EXE="./stage3/bin/zig" zig_src_compile langref --prefix docgen/ + fi + fi +} + +src_test() { + if has_version -b app-emulation/qemu; then + ewarn "QEMU executable was found on your building system." + ewarn "If you have qemu-binfmt (binfmt_misc) hooks enabled for" + ewarn "foreign architectures, Zig tests might fail." + ewarn "In this case, please disable qemu-binfmt and try again." + fi + + cd "${BUILD_DIR}" || die + + # XXX: When we pass a libc installation to Zig, it will fail to find + # the bundled libraries for targets like aarch64-macos and + # *-linux-musl. Zig doesn't run binaries for these targets when + # -Dskip-non-native is passed, but they are still compiled, so + # the test will fail. There's no way to disable --libc once passed, + # so we need to strip it from ZBS_ARGS. + # See: https://github.com/ziglang/zig/issues/22383 + local args_backup=("${ZBS_ARGS[@]}") + + for ((i = 0; i < ${#ZBS_ARGS[@]}; i++)); do + if [[ "${ZBS_ARGS[i]}" == "--libc" ]]; then + unset ZBS_ARGS[i] + unset ZBS_ARGS[i+1] + break + fi + done + + # Run tests with Debug mode by default, like upstream does in CI, + # full test suite with other modes is in a sad state right now... + ZIG_EXE="./stage3/bin/zig" zig_src_test -Dskip-non-native --release=debug + + ZBS_ARGS=("${args_backup[@]}") +} + +src_install() { + use doc && local HTML_DOCS=( "${BUILD_DIR}/docgen/doc/langref.html" ) + + ZIG_EXE="./zig2" zig_src_install + + cd "${D}/${ZIG_SYS_INSTALL_DEST}" || die + mv lib/zig/ lib2/ || die + rm -rf lib/ || die + mv lib2/ lib/ || die + dosym -r "${ZIG_SYS_INSTALL_DEST}/bin/zig" /usr/bin/zig-${PV} +} + +pkg_postinst() { + eselect zig update ifunset || die + + elog "Starting from 0.12.0, Zig no longer installs" + elog "precompiled standard library documentation." + elog "Instead, you can call \`zig std\` to compile it on-the-fly." + elog "It reflects all edits in standard library automatically." + elog "See \`zig std --help\` for more information." + elog "More details here: https://ziglang.org/download/0.12.0/release-notes.html#Redesign-How-Autodoc-Works" + + if ! use llvm; then + elog "Currently, Zig built without LLVM support lacks some" + elog "important features such as most optimizations, @cImport, etc." + elog "They are listed under \"Building from Source without LLVM\"" + elog "section of the README file from \"/usr/share/doc/${PF}\" ." + fi +} + +pkg_postrm() { + eselect zig update ifunset +} diff --git a/dev-lang/zig/zig-9999.ebuild b/dev-lang/zig/zig-9999.ebuild index 4f0358a96629..af0fe7f8192b 100644 --- a/dev-lang/zig/zig-9999.ebuild +++ b/dev-lang/zig/zig-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 2019-2024 Gentoo Authors +# Copyright 2019-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -9,7 +9,7 @@ LLVM_OPTIONAL=1 ZIG_SLOT="$(ver_cut 1-2)" ZIG_OPTIONAL=1 -inherit check-reqs cmake flag-o-matic edo llvm-r1 toolchain-funcs zig +inherit check-reqs cmake flag-o-matic edo llvm-r2 toolchain-funcs zig DESCRIPTION="A robust, optimal, and maintainable programming language" HOMEPAGE="https://ziglang.org/ https://github.com/ziglang/zig/" @@ -43,11 +43,12 @@ fi # lib/libc/glibc: BSD HPND ISC inner-net LGPL-2.1+ LICENSE="MIT Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain BSD-2 ZPL ISC HPND BSD inner-net LGPL-2.1+" SLOT="${ZIG_SLOT}" -IUSE="doc +llvm" +IUSE="debug doc +llvm" REQUIRED_USE=" !llvm? ( !doc ) llvm? ( ${LLVM_REQUIRED_USE} ) " +RESTRICT="!llvm? ( test )" # Used by both "cmake" and "zig" eclasses. BUILD_DIR="${WORKDIR}/${P}_build" @@ -57,18 +58,14 @@ BUILD_DIR="${WORKDIR}/${P}_build" # They are not required "on their own", so please don't add them here. # You can check https://github.com/ziglang/zig-bootstrap in future, to see # options that are passed to LLVM CMake building (excluding "static" ofc). -DEPEND=" - llvm? ( - $(llvm_gen_dep ' - llvm-core/clang:${LLVM_SLOT} - llvm-core/lld:${LLVM_SLOT} - llvm-core/llvm:${LLVM_SLOT}[zstd] - ') - ) -" -BDEPEND+=" - ${DEPEND} -" +LLVM_DEPEND="$(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/lld:${LLVM_SLOT}[zstd] + llvm-core/llvm:${LLVM_SLOT}[zstd] +')" + +BDEPEND+=" llvm? ( ${LLVM_DEPEND} )" +DEPEND="llvm? ( ${LLVM_DEPEND} )" RDEPEND="${DEPEND}" IDEPEND="app-eselect/eselect-zig" @@ -83,13 +80,18 @@ CHECKREQS_MEMORY="4G" pkg_setup() { # Skip detecting zig executable. - ZIG_EXE="not-applicable" ZIG_VER="${PV}" zig_pkg_setup + declare -r -g ZIG_VER="${PV}" + ZIG_EXE="not-applicable" zig_pkg_setup - export ZIG_SYS_INSTALL_DEST="${EPREFIX}/usr/$(get_libdir)/zig/${PV}" + declare -r -g ZIG_SYS_INSTALL_DEST="${EPREFIX}/usr/$(get_libdir)/zig/${PV}" if use llvm; then - tc-is-cross-compiler && die "USE=llvm is not yet supported when cross-compiling" - llvm-r1_pkg_setup + [[ ${MERGE_TYPE} != binary ]] && llvm_cbuild_setup + fi + + # Requires running stage3 which is built for cross-target. + if use doc && tc-is-cross-compiler; then + die "USE=doc is not yet supported when cross-compiling" fi check-reqs_pkg_setup @@ -135,15 +137,45 @@ src_configure() { # are used only after compiling zig2. local my_zbs_args=( --zig-lib-dir "${S}/lib/" - # Will be a subdir under ZIG_SYS_INSTALL_DEST. + + --prefix "${ZIG_SYS_INSTALL_DEST}/" --prefix-lib-dir lib/ # These are built separately - -Dno-langref + -Dno-langref=true -Dstd-docs=false - --release=fast + # More commands and options if "debug" is enabled. + -Ddebug-extensions=$(usex debug true false) + # More asserts and so on by default if "debug" is enabled. + --release=$(usex debug safe fast) ) + + # Scenarios of compilation: + + # With LLVM, native: + # CMake: + # * generate "config.h" for LLVM libraries and build "zigcpp" + # * build "zig2" using common "config.h" and "zigcpp" + # build.zig: + # * build "stage3" using common "config.h" and "zigcpp" + + # With LLVM, cross-compiled: + # CMake: + # * generate cross-target "config.h" for LLVM libraries from ESYSROOT + # and build cross-target "zigcpp", and stash them away + # * generate native "config.h" for LLVM libraries from BROOT and + # build native "zigcpp" + # * build native "zig2" using native "config.h" and "zigcpp" + # build.zig: + # * build cross-target "stage3" using stashed "config.h" and "zigcpp" + + # Without LLVM: + # bootstrap.c: + # * build native "zig2" + # build.zig: + # * build (cross-)target "stage3" + if use llvm; then my_zbs_args+=( -Denable-llvm=true @@ -155,31 +187,78 @@ src_configure() { -Denable-llvm=false ) fi - zig_src_configure if use llvm; then - # Build for native only, it's for zig2 (build-time executable) - # LLVM from BDEPEND local mycmakeargs=( -DZIG_SHARED_LLVM=ON -DZIG_USE_LLVM_CONFIG=ON - - -DZIG_TARGET_TRIPLE=native - -DZIG_TARGET_MCPU=native -DZIG_HOST_TARGET_TRIPLE="${ZIG_HOST_AS_TARGET}" - - -DCMAKE_PREFIX_PATH="$(get_llvm_prefix -b)" - -DCMAKE_INSTALL_PREFIX="${ZIG_SYS_INSTALL_DEST}" + # Don't set ZIG_TARGET_TRIPLE, ZIG_TARGET_MCPU and + # CMAKE_INSTALL_PREFIX because we build up to zig2 max, + # after that "zig build" is used to compile stage3. + + # Don't set CMAKE_PREFIX_PATH because "llvm_chost_setup" + # and "llvm_cbuild_setup" already set PATH in such way + # that suitable llvm-config is found and used in + # "cmake/Findllvm.cmake", and "cmake.eclass" help with + # cross-compilation pathes for "Findclang" and "Findlld". + + # CMP0144, Zig has own packages with these names, so ignore + # LLVM_ROOT, Clang_ROOT, LLD_ROOT from "llvm_chost_setup". + -DCMAKE_FIND_USE_PACKAGE_ROOT_PATH=OFF ) + if tc-is-cross-compiler; then + # Enable cross-compilation for CMake when filling "config.h" + # and building "zigcpp". They would be used for stage3 build. + # Here we are using LLVM from ESYSROOT/DEPEND. + # Uses script llvm-config. + + # Isolate PATH changes in subshell so that it would not + # affect next `cmake_src_configure` with BROOT/BDEPEND. + ( + llvm_chost_setup + cmake_src_configure + cmake_build zigcpp + ) + + mv "${BUILD_DIR}/config.h" "${T}/target_config.h" || die + mv "${BUILD_DIR}/zigcpp/" "${T}/target_zigcpp/" || die + rm -rf "${BUILD_DIR}" || die + fi - cmake_src_configure + # Force disable cross-compilation for CMake when building "zig2". + # Here we are using LLVM from BROOT/BDEPEND. + # Uses native llvm-config. + + # Isolate environment changes in subshell so that it would not + # affect next phases. + ( + export BUILD_CFLAGS="${CFLAGS}" + export BUILD_CXXFLAGS="${CXXFLAGS}" + export BUILD_CPPFLAGS="${CPPFLAGS}" + export BUILD_LDFLAGS="${LDFLAGS}" + tc-env_build + + unset SYSROOT + export CHOST="${CBUILD:-${CHOST}}" + strip-unsupported-flags + cmake_src_configure + ) fi } src_compile() { if use llvm; then cmake_build zig2 + + if tc-is-cross-compiler; then + rm -rf "${BUILD_DIR}/zigcpp/" || die + rm -f "${BUILD_DIR}/config.h" || die + + mv "${T}/target_zigcpp/" "${BUILD_DIR}/zigcpp/" || die + mv "${T}/target_config.h" "${BUILD_DIR}/config.h" || die + fi else cd "${BUILD_DIR}" || die ln -s "${S}/stage1/" . || die @@ -192,24 +271,56 @@ src_compile() { fi cd "${BUILD_DIR}" || die - ZIG_EXE="./zig2" zig_src_compile --prefix "${BUILD_DIR}/stage3/" + ZIG_EXE="./zig2" zig_src_compile --prefix stage3/ - ./stage3/bin/zig env || die "Zig compilation failed" + # Requires running stage3 which is built for cross-target. + if ! tc-is-cross-compiler; then + ./stage3/bin/zig env || die "Zig compilation failed" - if use doc; then - ZIG_EXE="./stage3/bin/zig" zig_src_compile langref --prefix "${S}/docgen/" + if use doc; then + ZIG_EXE="./stage3/bin/zig" zig_src_compile langref --prefix docgen/ + fi fi } src_test() { + if has_version -b app-emulation/qemu; then + ewarn "QEMU executable was found on your building system." + ewarn "If you have qemu-binfmt (binfmt_misc) hooks enabled for" + ewarn "foreign architectures, Zig tests might fail." + ewarn "In this case, please disable qemu-binfmt and try again." + fi + cd "${BUILD_DIR}" || die - ZIG_EXE="./stage3/bin/zig" zig_src_test -Dskip-non-native + + # XXX: When we pass a libc installation to Zig, it will fail to find + # the bundled libraries for targets like aarch64-macos and + # *-linux-musl. Zig doesn't run binaries for these targets when + # -Dskip-non-native is passed, but they are still compiled, so + # the test will fail. There's no way to disable --libc once passed, + # so we need to strip it from ZBS_ARGS. + # See: https://github.com/ziglang/zig/issues/22383 + local args_backup=("${ZBS_ARGS[@]}") + + for ((i = 0; i < ${#ZBS_ARGS[@]}; i++)); do + if [[ "${ZBS_ARGS[i]}" == "--libc" ]]; then + unset ZBS_ARGS[i] + unset ZBS_ARGS[i+1] + break + fi + done + + # Run tests with Debug mode by default, like upstream does in CI, + # full test suite with other modes is in a sad state right now... + ZIG_EXE="./stage3/bin/zig" zig_src_test -Dskip-non-native --release=debug + + ZBS_ARGS=("${args_backup[@]}") } src_install() { - use doc && local HTML_DOCS=( "docgen/doc/langref.html" ) + use doc && local HTML_DOCS=( "${BUILD_DIR}/docgen/doc/langref.html" ) - ZIG_EXE="./zig2" zig_src_install --prefix "${ZIG_SYS_INSTALL_DEST}" + ZIG_EXE="./zig2" zig_src_install cd "${D}/${ZIG_SYS_INSTALL_DEST}" || die mv lib/zig/ lib2/ || die @@ -237,5 +348,5 @@ pkg_postinst() { } pkg_postrm() { - eselect zig update ifunset || die + eselect zig update ifunset } |