From 575bcb9220287a6f0d2577db1fd9fe55d9d8b745 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 23 Feb 2025 19:24:10 +0000 Subject: gentoo auto-resync : 23:02:2025 - 19:24:09 --- dev-lang/Manifest.gz | Bin 22663 -> 22673 bytes dev-lang/algol68g/Manifest | 2 +- dev-lang/algol68g/algol68g-3.5.12.ebuild | 2 +- dev-lang/ispc/Manifest | 4 +- dev-lang/ispc/ispc-1.25.3.ebuild | 95 --- dev-lang/ispc/ispc-1.26.0.ebuild | 2 +- dev-lang/orc/Manifest | 2 + dev-lang/orc/orc-0.4.41.ebuild | 41 + dev-lang/perl/Manifest | 4 +- dev-lang/perl/perl-5.40.0-r1.ebuild | 17 +- dev-lang/perl/perl-5.40.1_rc1.ebuild | 17 +- dev-lang/php/Manifest | 4 +- dev-lang/php/php-8.3.16.ebuild | 825 -------------------- dev-lang/php/php-8.3.17.ebuild | 827 +++++++++++++++++++++ dev-lang/pypy/Manifest | 2 +- dev-lang/pypy/pypy-3.11.7.3.18_p20250221-r1.ebuild | 227 ++++++ dev-lang/pypy/pypy-3.11.7.3.18_p20250221.ebuild | 226 ------ dev-lang/pypy3-exe-bin/Manifest | 9 + .../pypy3-exe-bin-3.11.7.3.18_p20250221.ebuild | 86 +++ dev-lang/pypy3-exe/Manifest | 2 +- .../pypy3-exe-3.11.7.3.18_p20250221.ebuild | 1 + dev-lang/python/Manifest | 12 +- dev-lang/python/python-3.11.11_p1.ebuild | 25 +- dev-lang/python/python-3.11.11_p2.ebuild | 25 +- dev-lang/python/python-3.12.9.ebuild | 2 +- dev-lang/python/python-3.13.0.ebuild | 27 +- dev-lang/python/python-3.13.2.ebuild | 2 +- dev-lang/python/python-3.9.21_p1.ebuild | 4 +- dev-lang/ruby/Manifest | 15 +- dev-lang/ruby/metadata.xml | 1 - dev-lang/ruby/ruby-3.1.4-r3.ebuild | 277 ------- dev-lang/ruby/ruby-3.1.5.ebuild | 286 ------- dev-lang/ruby/ruby-3.1.6-r2.ebuild | 285 ------- dev-lang/ruby/ruby-3.2.4-r2.ebuild | 309 -------- dev-lang/ruby/ruby-3.2.4-r3.ebuild | 313 -------- dev-lang/ruby/ruby-3.2.5-r2.ebuild | 291 -------- dev-lang/ruby/ruby-3.2.6-r3.ebuild | 292 -------- dev-lang/ruby/ruby-3.2.6-r4.ebuild | 2 +- dev-lang/rust-bin/Manifest | 2 +- dev-lang/rust-bin/rust-bin-1.84.1-r2.ebuild | 2 +- dev-lang/rust-common/Manifest | 2 +- dev-lang/rust-common/rust-common-1.84.1.ebuild | 2 +- dev-lang/rust/Manifest | 30 +- dev-lang/rust/rust-1.71.1-r101.ebuild | 29 +- dev-lang/rust/rust-1.74.1-r101.ebuild | 29 +- dev-lang/rust/rust-1.75.0-r101.ebuild | 29 +- dev-lang/rust/rust-1.76.0-r101.ebuild | 29 +- dev-lang/rust/rust-1.77.1-r101.ebuild | 29 +- dev-lang/rust/rust-1.78.0-r101.ebuild | 29 +- dev-lang/rust/rust-1.79.0-r101.ebuild | 29 +- dev-lang/rust/rust-1.80.1-r101.ebuild | 29 +- dev-lang/rust/rust-1.81.0-r101.ebuild | 29 +- dev-lang/rust/rust-1.82.0-r102.ebuild | 29 +- dev-lang/rust/rust-1.83.0-r2.ebuild | 29 +- dev-lang/rust/rust-1.84.1-r1.ebuild | 30 +- dev-lang/rust/rust-1.85.0.ebuild | 21 +- dev-lang/rust/rust-1.86.0_beta20250218.ebuild | 32 +- dev-lang/rust/rust-9999.ebuild | 21 +- 58 files changed, 1519 insertions(+), 3505 deletions(-) delete mode 100644 dev-lang/ispc/ispc-1.25.3.ebuild create mode 100644 dev-lang/orc/orc-0.4.41.ebuild delete mode 100644 dev-lang/php/php-8.3.16.ebuild create mode 100644 dev-lang/php/php-8.3.17.ebuild create mode 100644 dev-lang/pypy/pypy-3.11.7.3.18_p20250221-r1.ebuild delete mode 100644 dev-lang/pypy/pypy-3.11.7.3.18_p20250221.ebuild create mode 100644 dev-lang/pypy3-exe-bin/pypy3-exe-bin-3.11.7.3.18_p20250221.ebuild delete mode 100644 dev-lang/ruby/ruby-3.1.4-r3.ebuild delete mode 100644 dev-lang/ruby/ruby-3.1.5.ebuild delete mode 100644 dev-lang/ruby/ruby-3.1.6-r2.ebuild delete mode 100644 dev-lang/ruby/ruby-3.2.4-r2.ebuild delete mode 100644 dev-lang/ruby/ruby-3.2.4-r3.ebuild delete mode 100644 dev-lang/ruby/ruby-3.2.5-r2.ebuild delete mode 100644 dev-lang/ruby/ruby-3.2.6-r3.ebuild (limited to 'dev-lang') diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz index b98e8b1f59b4..2caad20985f3 100644 Binary files a/dev-lang/Manifest.gz and b/dev-lang/Manifest.gz differ diff --git a/dev-lang/algol68g/Manifest b/dev-lang/algol68g/Manifest index 6bd9266a209c..32f4b5bac524 100644 --- a/dev-lang/algol68g/Manifest +++ b/dev-lang/algol68g/Manifest @@ -4,5 +4,5 @@ DIST algol68g-3.5.11.tar.gz 662345 BLAKE2B 67eca74972539071eda7e8dc5d3667b64d2ff 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 946 BLAKE2B 367040f0b742d6374bc889448698f008a5b6aedebd5520371386e3f1db6ba4ac11d813cecfa979194cf59eb7a029a5051242adb50326793d3352a9fbf4241e19 SHA512 8f27f1e5dca69e89e9c5ebdd8f09c6db13f7a241d3dd8862ac7f59964265f77367b52d7b3f86a8b09fc55fb2354dbc4728f421b50ab1873c5279c67444b0e202 -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.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/ispc/Manifest b/dev-lang/ispc/Manifest index 88658362e27b..9cad2a1d7cf0 100644 --- a/dev-lang/ispc/Manifest +++ b/dev-lang/ispc/Manifest @@ -1,5 +1,3 @@ -DIST ispc-1.25.3.gh.tar.gz 19805596 BLAKE2B 6e98d2297b2b9b7da32c74328c0b3883a7bd7dc997624ed5c5eff1193779b28a29b6e505ec09f6ba471f0b3ba4b3c603561717311a370bad5350d7e898b9d5f1 SHA512 12bbf7b15d6ec97658d46d65d1c02103bdada4101dcaa2ebb5c8477c39934a588d1035371ae09636c0fa73267f4d714579b8fffcd8690d4f3d95eb12436908ab DIST ispc-1.26.0.gh.tar.gz 19849065 BLAKE2B db4f287dc0e2a6292875223dfe7b799cdd020384d505b60c13811b782bafd564a2adde4a5d1ca222efac77bfa218670af57dbd129e0d47db001b2c71e5f9aa61 SHA512 bb24cab35d3463b181da2b47ebf6c0836e82a5daff18b2edfccb0d83a066d2c70c30038391b4bcade5e3177bd004068c9ae8c523f09dcecb94d02a8b9e38a2c9 -EBUILD ispc-1.25.3.ebuild 2085 BLAKE2B 35020de6dca6931fc0f089ad2d38017da2935094cea28070b9da0d3b6fd3ace3264f49072498f6aca4ca488cb3bd3f4915ba255824ed2c328b35b7ede1ad3462 SHA512 7959b1d591d171bf69063daa3f631fa5274c3277ccdb6e8538397c19770b94d1ecba64a1bd449e366431d276aa3ce3a9f37a8dc87aefa90f0c3d63049421b18b -EBUILD ispc-1.26.0.ebuild 2086 BLAKE2B 4f5eb95d0743efe940312f057fc2cac586622958b0f86cd9349973448f3b20bc869cc7a3a0f7518696877a6bdb7187d13443f673ed6bbae5b72fba2cf76baa0c SHA512 2bf0e448f523ff9b282230f4d80396a969ecfd6ede03d7ab3e5e8ed62ac58d6f907b4a98b37e94e4ef28f84bb1fb98ad0616568278e5acf835251de619d12c63 +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.25.3.ebuild deleted file mode 100644 index 4ead5bc63352..000000000000 --- a/dev-lang/ispc/ispc-1.25.3.ebuild +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( {17..19} ) -PYTHON_COMPAT=( python3_{10..13} ) - -inherit cmake llvm-r1 multiprocessing python-any-r1 toolchain-funcs - -DESCRIPTION="Intel SPMD Program Compiler" -HOMEPAGE=" - https://ispc.github.io/ - https://github.com/ispc/ispc/ -" -SRC_URI=" - https://github.com/ispc/ispc/archive/v${PV}.tar.gz - -> ${P}.gh.tar.gz -" - -LICENSE="BSD BSD-2 UoI-NCSA" -SLOT="0" -KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~x86" -IUSE="examples gpu openmp test" -RESTRICT="!test? ( test )" - -DEPEND=" - $(llvm_gen_dep ' - llvm-core/clang:${LLVM_SLOT} - ') - sys-libs/ncurses:= - gpu? ( dev-libs/level-zero:= ) - !openmp? ( dev-cpp/tbb:= ) -" -RDEPEND=" - ${DEPEND} -" -BDEPEND=" - app-alternatives/yacc - app-alternatives/lex - ${PYTHON_DEPS} -" - -pkg_pretend() { - [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp -} - -pkg_setup() { - [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp - llvm-r1_pkg_setup - python-any-r1_pkg_setup -} - -src_prepare() { - # do not require bundled gtest - mkdir -p ispcrt/tests/vendor/google/googletest || die - cat > ispcrt/tests/vendor/google/googletest/CMakeLists.txt <<-EOF || die - find_package(GTest) - EOF - # remove hacks that break unbundling - sed -i -e '/gmock/d' -e '/install/,$d' ispcrt/tests/CMakeLists.txt || die - - cmake_src_prepare -} - -src_configure() { - local mycmakeargs=( - -DARM_ENABLED=$(usex arm) - -DCMAKE_SKIP_RPATH=ON - -DISPC_INCLUDE_EXAMPLES=OFF - -DISPC_INCLUDE_TESTS=$(usex test) - -DISPC_INCLUDE_UTILS=OFF - -DISPCRT_BUILD_GPU=$(usex gpu) - -DISPCRT_BUILD_TASK_MODEL=$(usex openmp OpenMP TBB) - # prevent it from trying to find the git repo - -DGIT_BINARY=GIT_BINARY-NOTFOUND - ) - cmake_src_configure -} - -src_test() { - # Inject path to prevent using system ispc - local -x PATH="${BUILD_DIR}/bin:${PATH}" - "${EPYTHON}" ./scripts/run_tests.py "-j$(makeopts_jobs)" -v || - die "Testing failed under ${EPYTHON}" -} - -src_install() { - cmake_src_install - - if use examples; then - docompress -x /usr/share/doc/${PF}/examples - dodoc -r examples - fi -} diff --git a/dev-lang/ispc/ispc-1.26.0.ebuild b/dev-lang/ispc/ispc-1.26.0.ebuild index 907a6ee9849a..74dd086bd123 100644 --- a/dev-lang/ispc/ispc-1.26.0.ebuild +++ b/dev-lang/ispc/ispc-1.26.0.ebuild @@ -20,7 +20,7 @@ SRC_URI=" LICENSE="BSD BSD-2 UoI-NCSA" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" +KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~x86" IUSE="examples gpu openmp test" RESTRICT="!test? ( test )" diff --git a/dev-lang/orc/Manifest b/dev-lang/orc/Manifest index f41fa8180037..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 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.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/perl/Manifest b/dev-lang/perl/Manifest index 8cbff0e4db76..916e4a412e08 100644 --- a/dev-lang/perl/Manifest +++ b/dev-lang/perl/Manifest @@ -5,7 +5,7 @@ DIST perl-5.40.0-patches-2.tar.xz 17072 BLAKE2B 7cc1085a0a701f72cf1fce2b7f18ac94 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-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_rc1.ebuild 28030 BLAKE2B 90aa7da7e7a478d05bdf49a2e1dc6151fa7447ceacc34bf35ac1fa9dfb1beb99dc1b9cb1011fcf80902ce7dc7e8f3d7ae8882d9d3ad7b36f074456432a3188ca SHA512 9732e335ee4757f2e71395352e9bbf4b363f2a517fbaea91b96a6b9ed44bceba5e2e00988db6a64909e2da417dd978f84def43e4dee59a65408469ea3ef148e6 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[-perl_features_ithreads]' ) ) || \ ( ! use perl_features_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[-perl_features_quadmath]' ) ) || \ diff --git a/dev-lang/perl/perl-5.40.1_rc1.ebuild b/dev-lang/perl/perl-5.40.1_rc1.ebuild index 49d74632e547..760c17c59b15 100644 --- a/dev-lang/perl/perl-5.40.1_rc1.ebuild +++ b/dev-lang/perl/perl-5.40.1_rc1.ebuild @@ -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[-perl_features_ithreads]' ) ) || \ ( ! use perl_features_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[-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.16.ebuild deleted file mode 100644 index afb477c73b90..000000000000 --- a/dev-lang/php/php-8.3.16.ebuild +++ /dev/null @@ -1,825 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -WANT_AUTOMAKE="none" -POSTGRES_COMPAT=( {15..17} ) -inherit autotools flag-o-matic multilib postgres systemd - -DESCRIPTION="The PHP language runtime engine" -HOMEPAGE="https://www.php.net/" -SRC_URI="https://www.php.net/distributions/${P}.tar.xz" - -LICENSE="PHP-3.01 - BSD - Zend-2.0 - bcmath? ( LGPL-2.1+ ) - fpm? ( BSD-2 ) - unicode? ( BSD-2 LGPL-2.1 )" - -SLOT="$(ver_cut 1-2)" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" - -# We can build the following SAPIs in the given order -SAPIS="embed cli cgi fpm apache2 phpdbg" - -# SAPIs and SAPI-specific USE flags (cli SAPI is default on): -IUSE="${IUSE} - ${SAPIS/cli/+cli} - threads" - -IUSE="${IUSE} acl apparmor argon2 avif bcmath berkdb bzip2 calendar - capstone cdb +ctype curl debug - enchant exif ffi +fileinfo +filter - +flatfile ftp gd gdbm gmp +iconv imap inifile - intl iodbc ipv6 +jit jpeg kerberos ldap ldap-sasl libedit lmdb - mhash mssql mysql mysqli nls - odbc +opcache +opcache-jit pcntl pdo +phar +posix postgres png - qdbm readline selinux +session session-mm sharedmem - +simplexml snmp soap sockets sodium spell sqlite ssl - sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode - valgrind webp +xml xmlreader xmlwriter xpm xslt zip zlib" - -# Without USE=readline or libedit, the interactive "php -a" CLI will hang. -REQUIRED_USE=" - || ( cli cgi fpm apache2 embed phpdbg ) - cli? ( ^^ ( readline libedit ) ) - !cli? ( ?? ( readline libedit ) ) - gd? ( zlib ) - simplexml? ( xml ) - soap? ( xml ) - xmlreader? ( xml ) - xmlwriter? ( xml ) - xslt? ( xml ) - ldap-sasl? ( ldap ) - qdbm? ( !gdbm ) - session-mm? ( session !threads ) - mysql? ( || ( mysqli pdo ) ) - mssql? ( pdo ) - test? ( cli ) - postgres? ( ${POSTGRES_REQ_USE} ) -" - -RESTRICT="!test? ( test )" - -# The supported (that is, autodetected) versions of BDB are listed in -# the ./configure script. Other versions *work*, but we need to stick to -# the ones that can be detected to avoid a repeat of bug #564824. -COMMON_DEPEND=" - app-eselect/eselect-php[apache2?,fpm?] - dev-libs/libpcre2[jit?,unicode] - virtual/libcrypt:= - fpm? ( acl? ( sys-apps/acl ) apparmor? ( sys-libs/libapparmor ) selinux? ( sys-libs/libselinux ) ) - apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] ) - argon2? ( app-crypt/argon2:= ) - berkdb? ( || ( sys-libs/db:5.3 sys-libs/db:4.8 ) ) - bzip2? ( app-arch/bzip2:0= ) - capstone? ( dev-libs/capstone ) - cdb? ( || ( dev-db/cdb dev-db/tinycdb ) ) - curl? ( net-misc/curl ) - enchant? ( app-text/enchant:2 ) - ffi? ( dev-libs/libffi:= ) - gd? ( - >=media-libs/gd-2.3.3-r4[avif?,jpeg?,png?,truetype?,webp?,xpm?] - ) - gdbm? ( sys-libs/gdbm:0= ) - gmp? ( dev-libs/gmp:0= ) - iconv? ( virtual/libiconv ) - imap? ( net-libs/c-client[kerberos=,ssl=] ) - intl? ( dev-libs/icu:= ) - kerberos? ( virtual/krb5 ) - ldap? ( net-nds/openldap:= ) - ldap-sasl? ( dev-libs/cyrus-sasl ) - libedit? ( dev-libs/libedit ) - lmdb? ( dev-db/lmdb:= ) - mssql? ( dev-db/freetds[mssql] ) - nls? ( sys-devel/gettext ) - odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( dev-db/unixODBC ) ) - postgres? ( ${POSTGRES_DEP} ) - qdbm? ( dev-db/qdbm ) - readline? ( sys-libs/readline:0= ) - session-mm? ( dev-libs/mm ) - snmp? ( net-analyzer/net-snmp ) - sodium? ( dev-libs/libsodium:=[-minimal(-)] ) - spell? ( app-text/aspell ) - sqlite? ( dev-db/sqlite ) - ssl? ( dev-libs/openssl:0= ) - tidy? ( app-text/htmltidy ) - tokyocabinet? ( dev-db/tokyocabinet ) - truetype? ( media-libs/freetype ) - unicode? ( dev-libs/oniguruma:= ) - valgrind? ( dev-debug/valgrind ) - xml? ( >=dev-libs/libxml2-2.12.5 ) - xslt? ( dev-libs/libxslt ) - zip? ( dev-libs/libzip:= ) - zlib? ( sys-libs/zlib:0= ) -" - -IDEPEND="app-eselect/eselect-php[apache2?,fpm?]" - -RDEPEND="${COMMON_DEPEND} - virtual/mta - fpm? ( - selinux? ( sec-policy/selinux-phpfpm ) - systemd? ( sys-apps/systemd ) )" - -# Bison isn't actually needed when building from a release tarball -# However, the configure script will warn if it's absent or if you -# have an incompatible version installed. See bug 593278. -DEPEND="${COMMON_DEPEND} - app-arch/xz-utils - sys-devel/bison" - -BDEPEND="virtual/pkgconfig" - -PATCHES=( - "${FILESDIR}/php-8.3.10-optional-png-testfixen.patch" - "${FILESDIR}/php-8.3.9-gd-cachevars.patch" -) - -PHP_MV="$(ver_cut 1)" - -# ARM/Windows functions (bug 923335) -QA_CONFIG_IMPL_DECL_SKIP=( - __crc32d - _controlfp - _controlfp_s -) - -# Functions from alternate iconv implementations (bug 925268) -QA_CONFIG_IMPL_DECL_SKIP+=( - iconv_ccs_init - cstoccsid -) - -php_install_ini() { - local phpsapi="${1}" - - # work out where we are installing the ini file - php_set_ini_dir "${phpsapi}" - - # Always install the production INI file, bug 611214. - local phpinisrc="php.ini-production-${phpsapi}" - cp php.ini-production "${phpinisrc}" || die - - # Set the include path to point to where we want to find PEAR - # packages - local sed_src='^;include_path = ".:/php.*' - local include_path="." - include_path+=":${EPREFIX}/usr/share/php${PHP_MV}" - include_path+=":${EPREFIX}/usr/share/php" - local sed_dst="include_path = \"${include_path}\"" - sed -e "s|${sed_src}|${sed_dst}|" -i "${phpinisrc}" || die - - insinto "${PHP_INI_DIR#${EPREFIX}}" - newins "${phpinisrc}" php.ini - - elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}" - elog - - dodir "${PHP_EXT_INI_DIR#${EPREFIX}}" - dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}" - - if use opcache; then - elog "Adding opcache to $PHP_EXT_INI_DIR" - echo "zend_extension = opcache.so" >> \ - "${D}/${PHP_EXT_INI_DIR}"/opcache.ini - dosym "../ext/opcache.ini" \ - "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini" - fi - - # SAPI-specific handling - if [[ "${sapi}" == "fpm" ]] ; then - einfo "Installing FPM config files php-fpm.conf and www.conf" - insinto "${PHP_INI_DIR#${EPREFIX}}" - doins sapi/fpm/php-fpm.conf - insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d" - doins sapi/fpm/www.conf - fi - - dodoc php.ini-{development,production} -} - -php_set_ini_dir() { - PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}" - PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext" - PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active" -} - -pkg_setup() { - use postgres && postgres_pkg_setup -} - -src_prepare() { - default - - # In php-7.x, the FPM pool configuration files have been split off - # of the main config. By default the pool config files go in - # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the - # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later - # we'll install the pool configuration file "www.conf" there. - php_set_ini_dir fpm - sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \ - sapi/fpm/php-fpm.conf.in \ - || die 'failed to move the include directory in php-fpm.conf' - - # fails in a network sandbox, - # - # https://github.com/php/php-src/issues/11662 - # - rm ext/sockets/tests/bug63000.phpt || die - - # fails in a network sandbox, - # fixed upstream but not yet included in the stable releases. - # - # https://github.com/php/php-src/pull/17314 - # - rm ext/standard/tests/http/gh16810.phpt || die - - # Tests ignoring the "-n" flag we pass to run-tests.php, - # - # https://github.com/php/php-src/pull/11669 - # - rm ext/standard/tests/file/bug60120.phpt \ - ext/standard/tests/general_functions/proc_open_null.phpt \ - ext/standard/tests/general_functions/proc_open_redirect.phpt \ - ext/standard/tests/general_functions/proc_open_sockets1.phpt \ - ext/standard/tests/general_functions/proc_open_sockets2.phpt \ - ext/standard/tests/general_functions/proc_open_sockets3.phpt \ - ext/standard/tests/ini_info/php_ini_loaded_file.phpt \ - sapi/cli/tests/016.phpt \ - sapi/cli/tests/023.phpt \ - sapi/cli/tests/bug65275.phpt \ - sapi/cli/tests/bug74600.phpt \ - sapi/cli/tests/bug78323.phpt \ - || die - - # This is a memory usage test with hard-coded limits. Whenever the - # limits are surpassed... they get increased... but in the meantime, - # the tests fail. This is not really a test that end users should - # be running pre-install, in my opinion. Bug 927461. - rm ext/fileinfo/tests/bug78987.phpt || die - - # Bug 935382, fixed eventually by - # - # - https://github.com/php/php-src/pull/14788 - # - https://github.com/php/php-src/pull/14814 - # - rm ext/standard/tests/strings/chunk_split_variation1_32bit.phpt || die - rm ext/standard/tests/strings/wordwrap_memory_limit.phpt || die - - # Bug 935379, not yet fixed upstream but looks harmless (ordering - # of keys isn't guaranteed AFAICS): - # - # - https://github.com/php/php-src/issues/14786 - # - rm ext/dba/tests/dba_gdbm.phpt || die - - # Most tests failing with an external libgd have been fixed, - # but there are a few stragglers: - # - # * https://github.com/php/php-src/issues/11252 - # - rm ext/gd/tests/bug43073.phpt \ - ext/gd/tests/bug48732.phpt \ - ext/gd/tests/bug48732-mb.phpt \ - ext/gd/tests/bug48801.phpt \ - ext/gd/tests/bug48801-mb.phpt \ - ext/gd/tests/bug53504.phpt \ - ext/gd/tests/bug65148.phpt \ - ext/gd/tests/bug73272.phpt \ - || die - - # One-off, somebody forgot to update a version constant - rm ext/reflection/tests/ReflectionZendExtension.phpt || die - - eautoconf --force -} - -src_configure() { - addpredict /usr/share/snmp/mibs/.index #nowarn - addpredict /var/lib/net-snmp/mib_indexes #nowarn - - # https://bugs.gentoo.org/866683, https://bugs.gentoo.org/913527 - filter-lto - - PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}" - - # Don't allow ./configure to detect and use an existing version - # of PHP; this can lead to all sorts of weird unpredictability - # as in bug 900210. - export ac_cv_prog_PHP="" - - # The php-fpm config file wants localstatedir to be ${EPREFIX}/var - # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002. - local our_conf=( - --prefix="${PHP_DESTDIR}" - --mandir="${PHP_DESTDIR}/man" - --infodir="${PHP_DESTDIR}/info" - --libdir="${PHP_DESTDIR}/lib" - --with-libdir="$(get_libdir)" - --localstatedir="${EPREFIX}/var" - --without-pear - --without-valgrind - --with-external-libcrypt - $(use_enable threads zts) - ) - - # The slotted man/info pages will be missed by the default list of - # docompress paths. - docompress "${PHP_DESTDIR}/man" "${PHP_DESTDIR}/info" - - our_conf+=( - $(use_with apparmor fpm-apparmor) - $(use_with argon2 password-argon2 "${EPREFIX}/usr") - $(use_enable bcmath) - $(use_with bzip2 bz2 "${EPREFIX}/usr") - $(use_enable calendar) - $(use_with capstone) - $(use_enable ctype) - $(use_with curl) - $(use_enable xml dom) - $(use_with enchant) - $(use_enable exif) - $(use_with ffi) - $(use_enable fileinfo) - $(use_enable filter) - $(use_enable ftp) - $(use_with nls gettext "${EPREFIX}/usr") - $(use_with gmp gmp "${EPREFIX}/usr") - $(use_with mhash mhash "${EPREFIX}/usr") - $(use_with iconv iconv \ - $(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr")) - $(use_enable intl) - $(use_enable ipv6) - $(use_with kerberos) - $(use_with xml libxml) - $(use_enable unicode mbstring) - $(use_with ssl openssl) - $(use_enable pcntl) - $(use_enable phar) - $(use_enable pdo) - $(use_enable opcache) - $(use_enable opcache-jit) - $(use_with postgres pgsql "$("${PG_CONFIG:-true}" --bindir)/..") - $(use_enable posix) - $(use_with selinux fpm-selinux) - $(use_with spell pspell "${EPREFIX}/usr") - $(use_enable simplexml) - $(use_enable sharedmem shmop) - $(use_with snmp snmp "${EPREFIX}/usr") - $(use_enable soap) - $(use_enable sockets) - $(use_with sodium) - $(use_with sqlite sqlite3) - $(use_enable sysvipc sysvmsg) - $(use_enable sysvipc sysvsem) - $(use_enable sysvipc sysvshm) - $(use_with tidy tidy "${EPREFIX}/usr") - $(use_enable tokenizer) - $(use_enable xml) - $(use_enable xmlreader) - $(use_enable xmlwriter) - $(use_with xslt xsl) - $(use_with zip) - $(use_with zlib zlib "${EPREFIX}/usr") - $(use_enable debug) - $(use_with valgrind) - ) - - # Override autoconf cache variables for libcrypt algorithms.These - # otherwise cannot be detected when cross-compiling. Bug 931884. - our_conf+=( - ac_cv_crypt_blowfish=yes - ac_cv_crypt_des=yes - ac_cv_crypt_ext_des=yes - ac_cv_crypt_md5=yes - ac_cv_crypt_sha512=yes - ac_cv_crypt_sha256=yes - ) - - # DBA support - if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ - || use qdbm || use lmdb || use tokyocabinet ; then - our_conf+=( "--enable-dba" ) - fi - - # DBA drivers support - our_conf+=( - $(use_with cdb) - $(use_with berkdb db4 "${EPREFIX}/usr") - $(use_enable flatfile) - $(use_with gdbm gdbm "${EPREFIX}/usr") - $(use_enable inifile) - $(use_with qdbm qdbm "${EPREFIX}/usr") - $(use_with tokyocabinet tcadb "${EPREFIX}/usr") - $(use_with lmdb lmdb "${EPREFIX}/usr") - ) - - # Use the system copy of GD. The autoconf cache variable overrides - # allow cross-compilation to proceed since the corresponding - # features cannot be detected by running a program. - our_conf+=( - $(use_enable gd gd) - $(use_with gd external-gd) - php_cv_lib_gd_gdImageCreateFromAvif=$(usex avif) - php_cv_lib_gd_gdImageCreateFromBmp=yes - php_cv_lib_gd_gdImageCreateFromJpeg=$(usex jpeg) - php_cv_lib_gd_gdImageCreateFromPng=$(usex png) - php_cv_lib_gd_gdImageCreateFromTga=yes - php_cv_lib_gd_gdImageCreateFromWebp=$(usex webp) - php_cv_lib_gd_gdImageCreateFromXpm=$(usex xpm) - ) - - # IMAP support - if use imap ; then - our_conf+=( - $(use_with imap imap "${EPREFIX}/usr") - $(use_with ssl imap-ssl "${EPREFIX}/usr") - ) - fi - - # LDAP support - if use ldap ; then - our_conf+=( - $(use_with ldap ldap "${EPREFIX}/usr") - $(use_with ldap-sasl) - ) - fi - - # MySQL support - our_conf+=( $(use_with mysqli) ) - - local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock" - if use mysql || use mysqli ; then - our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") ) - fi - - # ODBC support - if use odbc && use iodbc ; then - # Obtain the correct -l and -I flags for the actual build from - # pkg-config. We use the "generic" library type to avoid the - # (wrong) hard-coded include dir for iodbc. - # - # We set the pdo_odbc_def_incdir variable because the - # ./configure script checks for the headers using "test -f" and - # ignores your CFLAGS... and pdo_odbc_def_libdir prevents the - # build system from appending a nonsense -L flag. - local iodbc_ldflags=$(pkg-config --libs libiodbc) - local iodbc_cflags=$(pkg-config --cflags libiodbc) - our_conf+=( - pdo_odbc_def_libdir="${EPREFIX}/usr/$(get_libdir)" - pdo_odbc_def_incdir="${EPREFIX}/usr/include/iodbc" - --without-unixODBC - --with-iodbc - $(use_with pdo pdo-odbc "generic,,iodbc,${iodbc_ldlags},${iodbc_cflags}") - ) - elif use odbc ; then - our_conf+=( - --with-unixODBC="${EPREFIX}/usr" - --without-iodbc - $(use_with pdo pdo-odbc "unixODBC,${EPREFIX}/usr") - ) - else - our_conf+=( - --without-unixODBC - --without-iodbc - --without-pdo-odbc - ) - fi - - # PDO support - if use pdo ; then - our_conf+=( - $(use_with mssql pdo-dblib "${EPREFIX}/usr") - $(use_with mysql pdo-mysql "mysqlnd") - $(use_with postgres pdo-pgsql) - $(use_with sqlite pdo-sqlite) - ) - fi - - # readline/libedit support - our_conf+=( - $(use_with readline readline "${EPREFIX}/usr") - $(use_with libedit) - ) - - # Session support - if use session ; then - our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") ) - else - our_conf+=( $(use_enable session) ) - fi - - # Use pic for shared modules such as apache2's mod_php - our_conf+=( --with-pic ) - - # we use the system copy of pcre - # --with-external-pcre affects ext/pcre - our_conf+=( - --with-external-pcre - $(use_with jit pcre-jit) - ) - - # Catch CFLAGS problems - # Fixes bug #14067. - # Changed order to run it in reverse for bug #32022 and #12021. - replace-cpu-flags "k6*" "i586" - - # Cache the ./configure test results between SAPIs. - our_conf+=( --cache-file="${T}/config.cache" ) - - # Support user-passed configuration parameters - our_conf+=( ${EXTRA_ECONF:-} ) - - # Support the Apache2 extras, they must be set globally for all - # SAPIs to work correctly, especially for external PHP extensions - - # Create separate build trees for each enabled SAPI. The upstream - # build system doesn't do this, but we have to do it to use a - # different php.ini for each SAPI (see --with-config-file-path and - # --with-config-file-scan-dir below). The path winds up define'd - # in main/build-defs.h which is included in main/php.h which is - # included by basically everything; so, avoiding a rebuild after - # changing it is not an easy job. - # - # The upstream build system also does not support building the - # apache2 and embed SAPIs at the same time, presumably because they - # both produce a libphp.so. - local one_sapi - local sapi - mkdir "${WORKDIR}/sapis-build" || die - for one_sapi in $SAPIS ; do - use "${one_sapi}" || continue - php_set_ini_dir "${one_sapi}" - - # The BUILD_DIR variable is used to determine where to output - # the files that autotools creates. This was all originally - # based on the autotools-utils eclass. - BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}" - cp -a "${S}" "${BUILD_DIR}" || die - - local sapi_conf=( - --with-config-file-path="${PHP_INI_DIR}" - --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}" - ) - - for sapi in $SAPIS ; do - case "$sapi" in - cli|cgi|embed|fpm|phpdbg) - if [[ "${one_sapi}" == "${sapi}" ]] ; then - sapi_conf+=( "--enable-${sapi}" ) - if [[ "fpm" == "${sapi}" ]] ; then - sapi_conf+=( - $(use_with acl fpm-acl) - $(use_with systemd fpm-systemd) - ) - fi - else - sapi_conf+=( "--disable-${sapi}" ) - fi - ;; - - apache2) - if [[ "${one_sapi}" == "${sapi}" ]] ; then - sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" ) - else - sapi_conf+=( --without-apxs2 ) - fi - ;; - esac - done - - # Construct the $myeconfargs array by concatenating $our_conf - # (the common args) and $sapi_conf (the SAPI-specific args). - local myeconfargs=( "${our_conf[@]}" ) - myeconfargs+=( "${sapi_conf[@]}" ) - - pushd "${BUILD_DIR}" > /dev/null || die - einfo "Running econf in ${BUILD_DIR}" - econf "${myeconfargs[@]}" - popd > /dev/null || die - done -} - -src_compile() { - # snmp seems to run during src_compile, too (bug #324739) - addpredict /usr/share/snmp/mibs/.index #nowarn - addpredict /var/lib/net-snmp/mib_indexes #nowarn - - local sapi - for sapi in ${SAPIS} ; do - use "${sapi}" && emake -C "${WORKDIR}/sapis-build/${sapi}" - done -} - -src_install() { - # see bug #324739 for what happens when we don't have that - addpredict /usr/share/snmp/mibs/.index #nowarn - - # grab the first SAPI that got built and install common files from there - local first_sapi="", sapi="" - for sapi in $SAPIS ; do - if use $sapi ; then - first_sapi=$sapi - break - fi - done - - # Install SAPI-independent targets - cd "${WORKDIR}/sapis-build/$first_sapi" || die - emake INSTALL_ROOT="${D}" \ - install-build install-headers install-programs - use opcache && emake INSTALL_ROOT="${D}" install-modules - - # Create the directory where we'll put version-specific php scripts - keepdir "/usr/share/php${PHP_MV}" - - local sapi_list="" - - for sapi in ${SAPIS}; do - if use "${sapi}" ; then - einfo "Installing SAPI: ${sapi}" - cd "${WORKDIR}/sapis-build/${sapi}" || die - - if [[ "${sapi}" == "apache2" ]] ; then - # We're specifically not using emake install-sapi as libtool - # may cause unnecessary relink failures (see bug #351266) - insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/" - newins ".libs/libphp$(get_libname)" \ - "libphp${PHP_MV}$(get_libname)" - keepdir "/usr/$(get_libdir)/apache2/modules" - else - # needed each time, php_install_ini would reset it - local dest="${PHP_DESTDIR#${EPREFIX}}" - into "${dest}" - case "$sapi" in - cli) - source="sapi/cli/php" - # Install the "phar" archive utility. - if use phar ; then - emake INSTALL_ROOT="${D}" install-pharcmd - dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}" - fi - ;; - cgi) - source="sapi/cgi/php-cgi" - ;; - fpm) - source="sapi/fpm/php-fpm" - ;; - embed) - source="libs/libphp$(get_libname)" - ;; - phpdbg) - source="sapi/phpdbg/phpdbg" - ;; - *) - die "unhandled sapi in src_install" - ;; - esac - - if [[ "${source}" == *"$(get_libname)" ]]; then - dolib.so "${source}" - else - dobin "${source}" - local name="$(basename ${source})" - dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}" - fi - fi - - php_install_ini "${sapi}" - - # construct correct SAPI string for php-config - # thanks to ferringb for the bash voodoo - if [[ "${sapi}" == "apache2" ]]; then - sapi_list="${sapi_list:+${sapi_list} }apache2handler" - else - sapi_list="${sapi_list:+${sapi_list} }${sapi}" - fi - fi - done - - # Install env.d files - newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}" - sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die - sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die - - # set php-config variable correctly (bug #278439) - sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \ - "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die - - if use fpm ; then - if use systemd; then - systemd_newunit "${FILESDIR}/php-fpm_at.service" \ - "php-fpm@${SLOT}.service" - else - systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \ - "php-fpm@${SLOT}.service" - fi - fi -} - -src_test() { - export TEST_PHP_EXECUTABLE="${WORKDIR}/sapis-build/cli/sapi/cli/php" - - # Sometimes when the sub-php launches a sub-sub-php, it uses these. - # Without an "-n" in all instances, the *live* php.ini can be loaded, - # pulling in *live* zend extensions. And those can be incompatible - # with the thing we just built. - export TEST_PHP_EXTRA_ARGS="-n" - - if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then - export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" - fi - - if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then - export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" - fi - - # The IO capture tests need to be disabled because they fail when - # std{in,out,err} are redirected (as they are within portage). - # - # One -n applies to the top-level "php", while the other applies - # to any sub-php that get invoked by the test runner. - SKIP_IO_CAPTURE_TESTS=1 SKIP_PERF_SENSITIVE=1 REPORT_EXIT_STATUS=1 \ - "${TEST_PHP_EXECUTABLE}" -n \ - "${WORKDIR}/sapis-build/cli/run-tests.php" --offline -n -q \ - -d "session.save_path=${T}" \ - || die "tests failed" -} - -pkg_postinst() { - # Output some general info to the user - if use apache2 ; then - elog - elog "To enable PHP in apache, you will need to add \"-D PHP\" to" - elog "your apache2 command. OpenRC users can append that string to" - elog "APACHE2_OPTS in /etc/conf.d/apache2." - elog - elog "The apache module configuration file 70_mod_php.conf is" - elog "provided (and maintained) by eselect-php." - elog - fi - - # Create the symlinks for php - local m - for m in ${SAPIS}; do - [[ ${m} == 'embed' ]] && continue; - if use $m ; then - local ci=$(eselect php show $m) - if [[ -z $ci ]]; then - eselect php set $m php${SLOT} || die - einfo "Switched ${m} to use php:${SLOT}" - einfo - elif [[ $ci != "php${SLOT}" ]] ; then - elog "To switch $m to use php:${SLOT}, run" - elog " eselect php set $m php${SLOT}" - elog - fi - fi - done - - # Remove dead symlinks for SAPIs that were just disabled. For - # example, if the user has the cgi SAPI enabled, then he has an - # eselect-php symlink for it. If he later reinstalls PHP with - # USE="-cgi", that symlink will break. This call to eselect is - # supposed to remove that dead link per bug 572436. - eselect php cleanup || die - - if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then - elog "To build extensions for this version of PHP, you will need to" - elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable." - elog - fi - - # Warn about the removal of PHP_INI_VERSION if the user has it set. - if [[ -n "${PHP_INI_VERSION}" ]]; then - ewarn 'The PHP_INI_VERSION variable has been phased out. You may' - ewarn 'remove it from your configuration at your convenience. See' - ewarn - ewarn ' https://bugs.gentoo.org/611214' - ewarn - ewarn 'for more information.' - fi - - elog "For details on how version slotting works, please see" - elog "the wiki:" - elog - elog " https://wiki.gentoo.org/wiki/PHP" - elog -} - -pkg_postrm() { - # This serves two purposes. First, if we have just removed the last - # installed version of PHP, then this will remove any dead symlinks - # belonging to eselect-php. Second, if a user upgrades slots from - # (say) 5.6 to 7.0 and depcleans the old slot, then this will update - # his existing symlinks to point to the new 7.0 installation. The - # latter is bug 432962. - # - # Note: the eselect-php package may not be installed at this point, - # so we can't die() if this command fails. - eselect php cleanup -} diff --git a/dev-lang/php/php-8.3.17.ebuild b/dev-lang/php/php-8.3.17.ebuild new file mode 100644 index 000000000000..d7b22f70b437 --- /dev/null +++ b/dev-lang/php/php-8.3.17.ebuild @@ -0,0 +1,827 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +WANT_AUTOMAKE="none" +POSTGRES_COMPAT=( {15..17} ) +inherit autotools flag-o-matic multilib postgres systemd + +DESCRIPTION="The PHP language runtime engine" +HOMEPAGE="https://www.php.net/" +SRC_URI="https://www.php.net/distributions/${P}.tar.xz" + +LICENSE="PHP-3.01 + BSD + Zend-2.0 + bcmath? ( LGPL-2.1+ ) + fpm? ( BSD-2 ) + unicode? ( BSD-2 LGPL-2.1 )" + +SLOT="$(ver_cut 1-2)" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" + +# We can build the following SAPIs in the given order +SAPIS="embed cli cgi fpm apache2 phpdbg" + +# SAPIs and SAPI-specific USE flags (cli SAPI is default on): +IUSE="${IUSE} + ${SAPIS/cli/+cli} + threads" + +IUSE="${IUSE} acl apparmor argon2 avif bcmath berkdb bzip2 calendar + capstone cdb +ctype curl debug + enchant exif ffi +fileinfo +filter + +flatfile ftp gd gdbm gmp +iconv imap inifile + intl iodbc ipv6 +jit jpeg kerberos ldap ldap-sasl libedit lmdb + mhash mssql mysql mysqli nls + odbc +opcache +opcache-jit pcntl pdo +phar +posix postgres png + qdbm readline selinux +session session-mm sharedmem + +simplexml snmp soap sockets sodium spell sqlite ssl + sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode + valgrind webp +xml xmlreader xmlwriter xpm xslt zip zlib" + +# Without USE=readline or libedit, the interactive "php -a" CLI will hang. +REQUIRED_USE=" + || ( cli cgi fpm apache2 embed phpdbg ) + cli? ( ^^ ( readline libedit ) ) + !cli? ( ?? ( readline libedit ) ) + gd? ( zlib ) + simplexml? ( xml ) + soap? ( xml ) + xmlreader? ( xml ) + xmlwriter? ( xml ) + xslt? ( xml ) + ldap-sasl? ( ldap ) + qdbm? ( !gdbm ) + session-mm? ( session !threads ) + mysql? ( || ( mysqli pdo ) ) + mssql? ( pdo ) + test? ( cli ) + postgres? ( ${POSTGRES_REQ_USE} ) +" + +RESTRICT="!test? ( test )" + +# The supported (that is, autodetected) versions of BDB are listed in +# the ./configure script. Other versions *work*, but we need to stick to +# the ones that can be detected to avoid a repeat of bug #564824. +COMMON_DEPEND=" + app-eselect/eselect-php[apache2?,fpm?] + dev-libs/libpcre2[jit?,unicode] + virtual/libcrypt:= + fpm? ( acl? ( sys-apps/acl ) apparmor? ( sys-libs/libapparmor ) selinux? ( sys-libs/libselinux ) ) + apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] ) + argon2? ( app-crypt/argon2:= ) + berkdb? ( || ( sys-libs/db:5.3 sys-libs/db:4.8 ) ) + bzip2? ( app-arch/bzip2:0= ) + capstone? ( dev-libs/capstone ) + cdb? ( || ( dev-db/cdb dev-db/tinycdb ) ) + curl? ( net-misc/curl ) + enchant? ( app-text/enchant:2 ) + ffi? ( dev-libs/libffi:= ) + gd? ( + >=media-libs/gd-2.3.3-r4[avif?,jpeg?,png?,truetype?,webp?,xpm?] + ) + gdbm? ( sys-libs/gdbm:0= ) + gmp? ( dev-libs/gmp:0= ) + iconv? ( virtual/libiconv ) + imap? ( net-libs/c-client[kerberos=,ssl=] ) + intl? ( dev-libs/icu:= ) + kerberos? ( virtual/krb5 ) + ldap? ( net-nds/openldap:= ) + ldap-sasl? ( dev-libs/cyrus-sasl ) + libedit? ( dev-libs/libedit ) + lmdb? ( dev-db/lmdb:= ) + mssql? ( dev-db/freetds[mssql] ) + nls? ( sys-devel/gettext ) + odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( dev-db/unixODBC ) ) + postgres? ( ${POSTGRES_DEP} ) + qdbm? ( dev-db/qdbm ) + readline? ( sys-libs/readline:0= ) + session-mm? ( dev-libs/mm ) + snmp? ( net-analyzer/net-snmp ) + sodium? ( dev-libs/libsodium:=[-minimal(-)] ) + spell? ( app-text/aspell ) + sqlite? ( dev-db/sqlite ) + ssl? ( dev-libs/openssl:0= ) + tidy? ( app-text/htmltidy ) + tokyocabinet? ( dev-db/tokyocabinet ) + truetype? ( media-libs/freetype ) + unicode? ( dev-libs/oniguruma:= ) + valgrind? ( dev-debug/valgrind ) + xml? ( >=dev-libs/libxml2-2.12.5 ) + xslt? ( dev-libs/libxslt ) + zip? ( dev-libs/libzip:= ) + zlib? ( sys-libs/zlib:0= ) +" + +IDEPEND="app-eselect/eselect-php[apache2?,fpm?]" + +RDEPEND="${COMMON_DEPEND} + virtual/mta + fpm? ( + selinux? ( sec-policy/selinux-phpfpm ) + systemd? ( sys-apps/systemd ) )" + +# Bison isn't actually needed when building from a release tarball +# However, the configure script will warn if it's absent or if you +# have an incompatible version installed. See bug 593278. +DEPEND="${COMMON_DEPEND} + app-arch/xz-utils + sys-devel/bison" + +BDEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}/php-8.3.10-optional-png-testfixen.patch" + "${FILESDIR}/php-8.3.9-gd-cachevars.patch" +) + +PHP_MV="$(ver_cut 1)" + +# ARM/Windows functions (bug 923335) +QA_CONFIG_IMPL_DECL_SKIP=( + __crc32d + _controlfp + _controlfp_s +) + +# Functions from alternate iconv implementations (bug 925268) +QA_CONFIG_IMPL_DECL_SKIP+=( + iconv_ccs_init + cstoccsid +) + +php_install_ini() { + local phpsapi="${1}" + + # work out where we are installing the ini file + php_set_ini_dir "${phpsapi}" + + # Always install the production INI file, bug 611214. + local phpinisrc="php.ini-production-${phpsapi}" + cp php.ini-production "${phpinisrc}" || die + + # Set the include path to point to where we want to find PEAR + # packages + local sed_src='^;include_path = ".:/php.*' + local include_path="." + include_path+=":${EPREFIX}/usr/share/php${PHP_MV}" + include_path+=":${EPREFIX}/usr/share/php" + local sed_dst="include_path = \"${include_path}\"" + sed -e "s|${sed_src}|${sed_dst}|" -i "${phpinisrc}" || die + + insinto "${PHP_INI_DIR#${EPREFIX}}" + newins "${phpinisrc}" php.ini + + elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}" + elog + + dodir "${PHP_EXT_INI_DIR#${EPREFIX}}" + dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}" + + if use opcache; then + elog "Adding opcache to $PHP_EXT_INI_DIR" + echo "zend_extension = opcache.so" >> \ + "${D}/${PHP_EXT_INI_DIR}"/opcache.ini + dosym "../ext/opcache.ini" \ + "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini" + fi + + # SAPI-specific handling + if [[ "${sapi}" == "fpm" ]] ; then + einfo "Installing FPM config files php-fpm.conf and www.conf" + insinto "${PHP_INI_DIR#${EPREFIX}}" + doins sapi/fpm/php-fpm.conf + insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d" + doins sapi/fpm/www.conf + fi + + dodoc php.ini-{development,production} +} + +php_set_ini_dir() { + PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}" + PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext" + PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active" +} + +pkg_setup() { + use postgres && postgres_pkg_setup +} + +src_prepare() { + default + + # In php-7.x, the FPM pool configuration files have been split off + # of the main config. By default the pool config files go in + # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the + # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later + # we'll install the pool configuration file "www.conf" there. + php_set_ini_dir fpm + sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \ + sapi/fpm/php-fpm.conf.in \ + || die 'failed to move the include directory in php-fpm.conf' + + # fails in a network sandbox, + # + # https://github.com/php/php-src/issues/11662 + # + rm ext/sockets/tests/bug63000.phpt || die + + # depends on truetype support, thus we skip it + # if the "truetype" USE flag is missing + # + # https://github.com/php/php-src/issues/17891 + # + if ! use truetype ; then + rm ext/gd/tests/gh17373.phpt || die + fi + + # Tests ignoring the "-n" flag we pass to run-tests.php, + # + # https://github.com/php/php-src/pull/11669 + # + rm ext/standard/tests/file/bug60120.phpt \ + ext/standard/tests/general_functions/proc_open_null.phpt \ + ext/standard/tests/general_functions/proc_open_redirect.phpt \ + ext/standard/tests/general_functions/proc_open_sockets1.phpt \ + ext/standard/tests/general_functions/proc_open_sockets2.phpt \ + ext/standard/tests/general_functions/proc_open_sockets3.phpt \ + ext/standard/tests/ini_info/php_ini_loaded_file.phpt \ + sapi/cli/tests/016.phpt \ + sapi/cli/tests/023.phpt \ + sapi/cli/tests/bug65275.phpt \ + sapi/cli/tests/bug74600.phpt \ + sapi/cli/tests/bug78323.phpt \ + || die + + # This is a memory usage test with hard-coded limits. Whenever the + # limits are surpassed... they get increased... but in the meantime, + # the tests fail. This is not really a test that end users should + # be running pre-install, in my opinion. Bug 927461. + rm ext/fileinfo/tests/bug78987.phpt || die + + # Bug 935382, fixed eventually by + # + # - https://github.com/php/php-src/pull/14788 + # - https://github.com/php/php-src/pull/14814 + # + rm ext/standard/tests/strings/chunk_split_variation1_32bit.phpt || die + rm ext/standard/tests/strings/wordwrap_memory_limit.phpt || die + + # Bug 935379, not yet fixed upstream but looks harmless (ordering + # of keys isn't guaranteed AFAICS): + # + # - https://github.com/php/php-src/issues/14786 + # + rm ext/dba/tests/dba_gdbm.phpt || die + + # Most tests failing with an external libgd have been fixed, + # but there are a few stragglers: + # + # * https://github.com/php/php-src/issues/11252 + # + rm ext/gd/tests/bug43073.phpt \ + ext/gd/tests/bug48732.phpt \ + ext/gd/tests/bug48732-mb.phpt \ + ext/gd/tests/bug48801.phpt \ + ext/gd/tests/bug48801-mb.phpt \ + ext/gd/tests/bug53504.phpt \ + ext/gd/tests/bug65148.phpt \ + ext/gd/tests/bug73272.phpt \ + || die + + # One-off, somebody forgot to update a version constant + rm ext/reflection/tests/ReflectionZendExtension.phpt || die + + eautoconf --force +} + +src_configure() { + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + # https://bugs.gentoo.org/866683, https://bugs.gentoo.org/913527 + filter-lto + + PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}" + + # Don't allow ./configure to detect and use an existing version + # of PHP; this can lead to all sorts of weird unpredictability + # as in bug 900210. + export ac_cv_prog_PHP="" + + # The php-fpm config file wants localstatedir to be ${EPREFIX}/var + # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002. + local our_conf=( + --prefix="${PHP_DESTDIR}" + --mandir="${PHP_DESTDIR}/man" + --infodir="${PHP_DESTDIR}/info" + --libdir="${PHP_DESTDIR}/lib" + --with-libdir="$(get_libdir)" + --localstatedir="${EPREFIX}/var" + --without-pear + --without-valgrind + --with-external-libcrypt + $(use_enable threads zts) + ) + + # The slotted man/info pages will be missed by the default list of + # docompress paths. + docompress "${PHP_DESTDIR}/man" "${PHP_DESTDIR}/info" + + our_conf+=( + $(use_with apparmor fpm-apparmor) + $(use_with argon2 password-argon2 "${EPREFIX}/usr") + $(use_enable bcmath) + $(use_with bzip2 bz2 "${EPREFIX}/usr") + $(use_enable calendar) + $(use_with capstone) + $(use_enable ctype) + $(use_with curl) + $(use_enable xml dom) + $(use_with enchant) + $(use_enable exif) + $(use_with ffi) + $(use_enable fileinfo) + $(use_enable filter) + $(use_enable ftp) + $(use_with nls gettext "${EPREFIX}/usr") + $(use_with gmp gmp "${EPREFIX}/usr") + $(use_with mhash mhash "${EPREFIX}/usr") + $(use_with iconv iconv \ + $(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr")) + $(use_enable intl) + $(use_enable ipv6) + $(use_with kerberos) + $(use_with xml libxml) + $(use_enable unicode mbstring) + $(use_with ssl openssl) + $(use_enable pcntl) + $(use_enable phar) + $(use_enable pdo) + $(use_enable opcache) + $(use_enable opcache-jit) + $(use_with postgres pgsql "$("${PG_CONFIG:-true}" --bindir)/..") + $(use_enable posix) + $(use_with selinux fpm-selinux) + $(use_with spell pspell "${EPREFIX}/usr") + $(use_enable simplexml) + $(use_enable sharedmem shmop) + $(use_with snmp snmp "${EPREFIX}/usr") + $(use_enable soap) + $(use_enable sockets) + $(use_with sodium) + $(use_with sqlite sqlite3) + $(use_enable sysvipc sysvmsg) + $(use_enable sysvipc sysvsem) + $(use_enable sysvipc sysvshm) + $(use_with tidy tidy "${EPREFIX}/usr") + $(use_enable tokenizer) + $(use_enable xml) + $(use_enable xmlreader) + $(use_enable xmlwriter) + $(use_with xslt xsl) + $(use_with zip) + $(use_with zlib zlib "${EPREFIX}/usr") + $(use_enable debug) + $(use_with valgrind) + ) + + # Override autoconf cache variables for libcrypt algorithms.These + # otherwise cannot be detected when cross-compiling. Bug 931884. + our_conf+=( + ac_cv_crypt_blowfish=yes + ac_cv_crypt_des=yes + ac_cv_crypt_ext_des=yes + ac_cv_crypt_md5=yes + ac_cv_crypt_sha512=yes + ac_cv_crypt_sha256=yes + ) + + # DBA support + if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ + || use qdbm || use lmdb || use tokyocabinet ; then + our_conf+=( "--enable-dba" ) + fi + + # DBA drivers support + our_conf+=( + $(use_with cdb) + $(use_with berkdb db4 "${EPREFIX}/usr") + $(use_enable flatfile) + $(use_with gdbm gdbm "${EPREFIX}/usr") + $(use_enable inifile) + $(use_with qdbm qdbm "${EPREFIX}/usr") + $(use_with tokyocabinet tcadb "${EPREFIX}/usr") + $(use_with lmdb lmdb "${EPREFIX}/usr") + ) + + # Use the system copy of GD. The autoconf cache variable overrides + # allow cross-compilation to proceed since the corresponding + # features cannot be detected by running a program. + our_conf+=( + $(use_enable gd gd) + $(use_with gd external-gd) + php_cv_lib_gd_gdImageCreateFromAvif=$(usex avif) + php_cv_lib_gd_gdImageCreateFromBmp=yes + php_cv_lib_gd_gdImageCreateFromJpeg=$(usex jpeg) + php_cv_lib_gd_gdImageCreateFromPng=$(usex png) + php_cv_lib_gd_gdImageCreateFromTga=yes + php_cv_lib_gd_gdImageCreateFromWebp=$(usex webp) + php_cv_lib_gd_gdImageCreateFromXpm=$(usex xpm) + ) + + # IMAP support + if use imap ; then + our_conf+=( + $(use_with imap imap "${EPREFIX}/usr") + $(use_with ssl imap-ssl "${EPREFIX}/usr") + ) + fi + + # LDAP support + if use ldap ; then + our_conf+=( + $(use_with ldap ldap "${EPREFIX}/usr") + $(use_with ldap-sasl) + ) + fi + + # MySQL support + our_conf+=( $(use_with mysqli) ) + + local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock" + if use mysql || use mysqli ; then + our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") ) + fi + + # ODBC support + if use odbc && use iodbc ; then + # Obtain the correct -l and -I flags for the actual build from + # pkg-config. We use the "generic" library type to avoid the + # (wrong) hard-coded include dir for iodbc. + # + # We set the pdo_odbc_def_incdir variable because the + # ./configure script checks for the headers using "test -f" and + # ignores your CFLAGS... and pdo_odbc_def_libdir prevents the + # build system from appending a nonsense -L flag. + local iodbc_ldflags=$(pkg-config --libs libiodbc) + local iodbc_cflags=$(pkg-config --cflags libiodbc) + our_conf+=( + pdo_odbc_def_libdir="${EPREFIX}/usr/$(get_libdir)" + pdo_odbc_def_incdir="${EPREFIX}/usr/include/iodbc" + --without-unixODBC + --with-iodbc + $(use_with pdo pdo-odbc "generic,,iodbc,${iodbc_ldlags},${iodbc_cflags}") + ) + elif use odbc ; then + our_conf+=( + --with-unixODBC="${EPREFIX}/usr" + --without-iodbc + $(use_with pdo pdo-odbc "unixODBC,${EPREFIX}/usr") + ) + else + our_conf+=( + --without-unixODBC + --without-iodbc + --without-pdo-odbc + ) + fi + + # PDO support + if use pdo ; then + our_conf+=( + $(use_with mssql pdo-dblib "${EPREFIX}/usr") + $(use_with mysql pdo-mysql "mysqlnd") + $(use_with postgres pdo-pgsql) + $(use_with sqlite pdo-sqlite) + ) + fi + + # readline/libedit support + our_conf+=( + $(use_with readline readline "${EPREFIX}/usr") + $(use_with libedit) + ) + + # Session support + if use session ; then + our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") ) + else + our_conf+=( $(use_enable session) ) + fi + + # Use pic for shared modules such as apache2's mod_php + our_conf+=( --with-pic ) + + # we use the system copy of pcre + # --with-external-pcre affects ext/pcre + our_conf+=( + --with-external-pcre + $(use_with jit pcre-jit) + ) + + # Catch CFLAGS problems + # Fixes bug #14067. + # Changed order to run it in reverse for bug #32022 and #12021. + replace-cpu-flags "k6*" "i586" + + # Cache the ./configure test results between SAPIs. + our_conf+=( --cache-file="${T}/config.cache" ) + + # Support user-passed configuration parameters + our_conf+=( ${EXTRA_ECONF:-} ) + + # Support the Apache2 extras, they must be set globally for all + # SAPIs to work correctly, especially for external PHP extensions + + # Create separate build trees for each enabled SAPI. The upstream + # build system doesn't do this, but we have to do it to use a + # different php.ini for each SAPI (see --with-config-file-path and + # --with-config-file-scan-dir below). The path winds up define'd + # in main/build-defs.h which is included in main/php.h which is + # included by basically everything; so, avoiding a rebuild after + # changing it is not an easy job. + # + # The upstream build system also does not support building the + # apache2 and embed SAPIs at the same time, presumably because they + # both produce a libphp.so. + local one_sapi + local sapi + mkdir "${WORKDIR}/sapis-build" || die + for one_sapi in $SAPIS ; do + use "${one_sapi}" || continue + php_set_ini_dir "${one_sapi}" + + # The BUILD_DIR variable is used to determine where to output + # the files that autotools creates. This was all originally + # based on the autotools-utils eclass. + BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}" + cp -a "${S}" "${BUILD_DIR}" || die + + local sapi_conf=( + --with-config-file-path="${PHP_INI_DIR}" + --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}" + ) + + for sapi in $SAPIS ; do + case "$sapi" in + cli|cgi|embed|fpm|phpdbg) + if [[ "${one_sapi}" == "${sapi}" ]] ; then + sapi_conf+=( "--enable-${sapi}" ) + if [[ "fpm" == "${sapi}" ]] ; then + sapi_conf+=( + $(use_with acl fpm-acl) + $(use_with systemd fpm-systemd) + ) + fi + else + sapi_conf+=( "--disable-${sapi}" ) + fi + ;; + + apache2) + if [[ "${one_sapi}" == "${sapi}" ]] ; then + sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" ) + else + sapi_conf+=( --without-apxs2 ) + fi + ;; + esac + done + + # Construct the $myeconfargs array by concatenating $our_conf + # (the common args) and $sapi_conf (the SAPI-specific args). + local myeconfargs=( "${our_conf[@]}" ) + myeconfargs+=( "${sapi_conf[@]}" ) + + pushd "${BUILD_DIR}" > /dev/null || die + einfo "Running econf in ${BUILD_DIR}" + econf "${myeconfargs[@]}" + popd > /dev/null || die + done +} + +src_compile() { + # snmp seems to run during src_compile, too (bug #324739) + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + local sapi + for sapi in ${SAPIS} ; do + use "${sapi}" && emake -C "${WORKDIR}/sapis-build/${sapi}" + done +} + +src_install() { + # see bug #324739 for what happens when we don't have that + addpredict /usr/share/snmp/mibs/.index #nowarn + + # grab the first SAPI that got built and install common files from there + local first_sapi="", sapi="" + for sapi in $SAPIS ; do + if use $sapi ; then + first_sapi=$sapi + break + fi + done + + # Install SAPI-independent targets + cd "${WORKDIR}/sapis-build/$first_sapi" || die + emake INSTALL_ROOT="${D}" \ + install-build install-headers install-programs + use opcache && emake INSTALL_ROOT="${D}" install-modules + + # Create the directory where we'll put version-specific php scripts + keepdir "/usr/share/php${PHP_MV}" + + local sapi_list="" + + for sapi in ${SAPIS}; do + if use "${sapi}" ; then + einfo "Installing SAPI: ${sapi}" + cd "${WORKDIR}/sapis-build/${sapi}" || die + + if [[ "${sapi}" == "apache2" ]] ; then + # We're specifically not using emake install-sapi as libtool + # may cause unnecessary relink failures (see bug #351266) + insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/" + newins ".libs/libphp$(get_libname)" \ + "libphp${PHP_MV}$(get_libname)" + keepdir "/usr/$(get_libdir)/apache2/modules" + else + # needed each time, php_install_ini would reset it + local dest="${PHP_DESTDIR#${EPREFIX}}" + into "${dest}" + case "$sapi" in + cli) + source="sapi/cli/php" + # Install the "phar" archive utility. + if use phar ; then + emake INSTALL_ROOT="${D}" install-pharcmd + dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}" + fi + ;; + cgi) + source="sapi/cgi/php-cgi" + ;; + fpm) + source="sapi/fpm/php-fpm" + ;; + embed) + source="libs/libphp$(get_libname)" + ;; + phpdbg) + source="sapi/phpdbg/phpdbg" + ;; + *) + die "unhandled sapi in src_install" + ;; + esac + + if [[ "${source}" == *"$(get_libname)" ]]; then + dolib.so "${source}" + else + dobin "${source}" + local name="$(basename ${source})" + dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}" + fi + fi + + php_install_ini "${sapi}" + + # construct correct SAPI string for php-config + # thanks to ferringb for the bash voodoo + if [[ "${sapi}" == "apache2" ]]; then + sapi_list="${sapi_list:+${sapi_list} }apache2handler" + else + sapi_list="${sapi_list:+${sapi_list} }${sapi}" + fi + fi + done + + # Install env.d files + newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}" + sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + + # set php-config variable correctly (bug #278439) + sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \ + "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die + + if use fpm ; then + if use systemd; then + systemd_newunit "${FILESDIR}/php-fpm_at.service" \ + "php-fpm@${SLOT}.service" + else + systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \ + "php-fpm@${SLOT}.service" + fi + fi +} + +src_test() { + export TEST_PHP_EXECUTABLE="${WORKDIR}/sapis-build/cli/sapi/cli/php" + + # Sometimes when the sub-php launches a sub-sub-php, it uses these. + # Without an "-n" in all instances, the *live* php.ini can be loaded, + # pulling in *live* zend extensions. And those can be incompatible + # with the thing we just built. + export TEST_PHP_EXTRA_ARGS="-n" + + if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then + export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" + fi + + if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then + export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" + fi + + # The IO capture tests need to be disabled because they fail when + # std{in,out,err} are redirected (as they are within portage). + # + # One -n applies to the top-level "php", while the other applies + # to any sub-php that get invoked by the test runner. + SKIP_IO_CAPTURE_TESTS=1 SKIP_PERF_SENSITIVE=1 REPORT_EXIT_STATUS=1 \ + "${TEST_PHP_EXECUTABLE}" -n \ + "${WORKDIR}/sapis-build/cli/run-tests.php" --offline -n -q \ + -d "session.save_path=${T}" \ + || die "tests failed" +} + +pkg_postinst() { + # Output some general info to the user + if use apache2 ; then + elog + elog "To enable PHP in apache, you will need to add \"-D PHP\" to" + elog "your apache2 command. OpenRC users can append that string to" + elog "APACHE2_OPTS in /etc/conf.d/apache2." + elog + elog "The apache module configuration file 70_mod_php.conf is" + elog "provided (and maintained) by eselect-php." + elog + fi + + # Create the symlinks for php + local m + for m in ${SAPIS}; do + [[ ${m} == 'embed' ]] && continue; + if use $m ; then + local ci=$(eselect php show $m) + if [[ -z $ci ]]; then + eselect php set $m php${SLOT} || die + einfo "Switched ${m} to use php:${SLOT}" + einfo + elif [[ $ci != "php${SLOT}" ]] ; then + elog "To switch $m to use php:${SLOT}, run" + elog " eselect php set $m php${SLOT}" + elog + fi + fi + done + + # Remove dead symlinks for SAPIs that were just disabled. For + # example, if the user has the cgi SAPI enabled, then he has an + # eselect-php symlink for it. If he later reinstalls PHP with + # USE="-cgi", that symlink will break. This call to eselect is + # supposed to remove that dead link per bug 572436. + eselect php cleanup || die + + if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then + elog "To build extensions for this version of PHP, you will need to" + elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable." + elog + fi + + # Warn about the removal of PHP_INI_VERSION if the user has it set. + if [[ -n "${PHP_INI_VERSION}" ]]; then + ewarn 'The PHP_INI_VERSION variable has been phased out. You may' + ewarn 'remove it from your configuration at your convenience. See' + ewarn + ewarn ' https://bugs.gentoo.org/611214' + ewarn + ewarn 'for more information.' + fi + + elog "For details on how version slotting works, please see" + elog "the wiki:" + elog + elog " https://wiki.gentoo.org/wiki/PHP" + elog +} + +pkg_postrm() { + # This serves two purposes. First, if we have just removed the last + # installed version of PHP, then this will remove any dead symlinks + # belonging to eselect-php. Second, if a user upgrades slots from + # (say) 5.6 to 7.0 and depcleans the old slot, then this will update + # his existing symlinks to point to the new 7.0 installation. The + # latter is bug 432962. + # + # Note: the eselect-php package may not be installed at this point, + # so we can't die() if this command fails. + eselect php cleanup +} diff --git a/dev-lang/pypy/Manifest b/dev-lang/pypy/Manifest index d6067f76a84f..3b438bfe5e4c 100644 --- a/dev-lang/pypy/Manifest +++ b/dev-lang/pypy/Manifest @@ -14,5 +14,5 @@ EBUILD pypy-2.7.7.3.18.ebuild 7392 BLAKE2B 4b35786d65011016b75f0e173c047582b025d EBUILD pypy-3.10.7.3.17_p4.ebuild 7140 BLAKE2B db6bfe1c3d44cdf9f4a1639c6bf8e35253c0ac3687f3a1315bfd52ca82c4a6fa0c3626c2aad938f8bcf2b2b6851db6fa1ed5f1847a891a08800040e0e4c27ea4 SHA512 efe64c07cfbdcb2fafbbbb93adeda1fd3ba22164130cb908d8bf26d0d82713fca179463f44673fb262573dca96a468573b53e67ab97d3f51563e23888afadfff EBUILD pypy-3.10.7.3.18.ebuild 7159 BLAKE2B 59ddd1f0922af9c12feb8c0a94e2fb88a15122786fbba7c9f14d2d7e9a542da9058706e563f914e21279ac7513135cf072f55e3f00eea2343a3d7b57498187c3 SHA512 8e8c8ae322d52844628d4cc3fe1af8d26b2b000f2ad2ea62c65fda7beac4dc554981e048c0bac15163aa8f87127b21da9fa1f9229404d02a8f3aaa71e9d7026e EBUILD pypy-3.11.7.3.18_p1.ebuild 7092 BLAKE2B 72c88ab0a8423e7ebaf0077df3e3f7a65a80c1b91320fcfd0ea40995922a3379e69073ef78aadf0b64c7c5882a935a22841c2ef0a72f61fb90e1cc1fd3d4964a SHA512 b99fbdfcd90bff3db8499fcf7c3cf43928a236327e5c29fda50301ee7aba2313ca73f4a2937aa2e52952c1ed28fff3098cdf55d22d2d625e2abc3ba553a3a638 -EBUILD pypy-3.11.7.3.18_p20250221.ebuild 6809 BLAKE2B f4f17ff3576d4d40047f9040be069daca73a9aa1c45fd37473f276856240a5c1139baba9e8e91d75aa34d563b3dac46b4acfafb69b54fa8574c36329e3964d06 SHA512 8f3afe207ee217a5b5564b64a18e12cd3a1bd70bbc0f8f2b8b6a96daeab340b148bbc4e9b47f5f196bdbde6d409c47c1d2e0f8f8caadd31e80874eb985ee44c2 +EBUILD pypy-3.11.7.3.18_p20250221-r1.ebuild 6840 BLAKE2B 6d147f83dbb1c17052bcd4ecdcddbb21d6ae9fe18c7db27f99ff643690fcf7bb01b95717df75f5dad2e34577159cd7217e51670bc99d7ed60e13755c7d38acb7 SHA512 6b7b055f8c0671e3f2cf63074a735e7f802bf09bd279fb7296ae1218b822fc7233466c0c6ce0dc58ec884b805fb502efc82bcb527a1df9ec170135b377736b8d MISC metadata.xml 1124 BLAKE2B f1d09d26175cf20d1440a9a83352cf6f2f2e514d35d95116caf4a5ee86547f0165a6369e7a6b129ded75d28ba5a0c1c8f4da7d664d7c1e3c1e95153593057b3c SHA512 ae95400c9a1efc75372201c2353b128302355d1d087094953d73c325fa72bc24662d31c7287ae6a2583448ac345bb60744ac19391e07f8da8ef0327627e0e462 diff --git a/dev-lang/pypy/pypy-3.11.7.3.18_p20250221-r1.ebuild b/dev-lang/pypy/pypy-3.11.7.3.18_p20250221-r1.ebuild new file mode 100644 index 000000000000..92884286ca4a --- /dev/null +++ b/dev-lang/pypy/pypy-3.11.7.3.18_p20250221-r1.ebuild @@ -0,0 +1,227 @@ +# 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) +SNAPSHOT_PV=$(ver_cut 3-) +PYPY_PV=${SNAPSHOT_PV%_p*} +MY_P=pypy-gentoo-${PYVER}-${SNAPSHOT_PV} + +DESCRIPTION="A fast, compliant alternative implementation of the Python (${PYVER}) language" +HOMEPAGE=" + https://pypy.org/ + https://github.com/pypy/pypy/ +" +SRC_URI=" + https://dev.gentoo.org/~mgorny/dist/python/${MY_P}.tar.xz +" +S="${WORKDIR}/${MY_P}" + +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}[bzip2(+),ncurses?] + ~dev-lang/pypy3-exe-bin-${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= + ) + symlink? ( + !dev-lang/pypy:3.10[symlink] + ! 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=$( pypy_incremental_magic -SLOT="${PYVER}/pypy311-pp73-416" -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] - ! 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=$(Install dev-ruby/rdoc after installing Ruby. Enable SystemTap/DTrace tracing 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-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.2.4-r2.ebuild b/dev-lang/ruby/ruby-3.2.4-r2.ebuild deleted file mode 100644 index 11bb88262f7d..000000000000 --- a/dev-lang/ruby/ruby-3.2.4-r2.ebuild +++ /dev/null @@ -1,309 +0,0 @@ -# Copyright 1999-2025 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)" -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/${MY_SLOT}/${MY_P}.tar.xz" -S=${WORKDIR}/${MY_P} - -LICENSE="|| ( Ruby-BSD BSD-2 )" -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" - -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 3350c3c8f7ba..000000000000 --- a/dev-lang/ruby/ruby-3.2.4-r3.ebuild +++ /dev/null @@ -1,313 +0,0 @@ -# Copyright 1999-2025 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)" -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/${MY_SLOT}/${MY_P}.tar.xz" -S=${WORKDIR}/${MY_P} - -LICENSE="|| ( Ruby-BSD BSD-2 )" -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" - -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 f912e9272740..000000000000 --- a/dev-lang/ruby/ruby-3.2.5-r2.ebuild +++ /dev/null @@ -1,291 +0,0 @@ -# Copyright 1999-2025 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)" -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/${MY_SLOT}/${MY_P}.tar.xz" -S=${WORKDIR}/${MY_P} - -LICENSE="|| ( Ruby-BSD BSD-2 )" -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" - -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-r3.ebuild b/dev-lang/ruby/ruby-3.2.6-r3.ebuild deleted file mode 100644 index 3e8f94cdf13c..000000000000 --- a/dev-lang/ruby/ruby-3.2.6-r3.ebuild +++ /dev/null @@ -1,292 +0,0 @@ -# Copyright 1999-2025 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)" -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/${MY_SLOT}/${MY_P}.tar.xz" -S=${WORKDIR}/${MY_P} - -LICENSE="|| ( Ruby-BSD BSD-2 )" -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" - -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.1[ruby_targets_ruby32(-)] - >=dev-ruby/net-imap-0.3.4.1[ruby_targets_ruby32(-)] - >=dev-ruby/net-pop-0.1.2[ruby_targets_ruby32(-)] - >=dev-ruby/net-smtp-0.3.4[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.3.9[ruby_targets_ruby32(-)] - >=dev-ruby/rss-0.3.1[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}"/014*.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-r4.ebuild b/dev-lang/ruby/ruby-3.2.6-r4.ebuild index b089d1be714b..b0637f6bcdda 100644 --- a/dev-lang/ruby/ruby-3.2.6-r4.ebuild +++ b/dev-lang/ruby/ruby-3.2.6-r4.ebuild @@ -20,7 +20,7 @@ S=${WORKDIR}/${MY_P} LICENSE="|| ( Ruby-BSD BSD-2 )" 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/rust-bin/Manifest b/dev-lang/rust-bin/Manifest index 9e55f0e99e51..70b7f38a74ea 100644 --- a/dev-lang/rust-bin/Manifest +++ b/dev-lang/rust-bin/Manifest @@ -496,7 +496,7 @@ EBUILD rust-bin-1.80.1-r103.ebuild 7842 BLAKE2B c143d63ce8046d461f1a435d29a582d3 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.1-r2.ebuild 7782 BLAKE2B 047e8356a01eb17e421dd5c6d4820954ca00e22e8aa3d95ca5ba59fd6fb63ecef5f2c9bf687f3f973dcfea1f9368468a41fd0fef1c853c7ab3033c48878e55d2 SHA512 56248a684de4def8f3e13886f07490600be8bf0a1c11c5df1dcd8c257db607c694bd502e6150926c99b1ecaf9ec4f99a33ccb1a38b47d3e13e96363192ac3a1a +EBUILD rust-bin-1.84.1-r2.ebuild 7779 BLAKE2B 75f7bac1d775aab5fe98ecd644ac8a7ef71c478a6a446ebaefe8d831b2cba9eb2fa53da26890696610c651bc28106a0fa2da8b38ed271b4cac81e51357c2863f SHA512 3bbbd481a9b21c39ece8dd033699817c15f7e4d579813a1ec57d90bdaa6a529a2102ee12829a98a1d11177fb967a26e9c8edd83cafb77955fa19e69462e04830 EBUILD rust-bin-1.85.0.ebuild 10809 BLAKE2B e55e9cf45d34ba2369e9fdb5b8ace0efed19d897ef51fd68550e12e02193a55309c8c320e6c9f2704635d58a458dcdcacb1521449cc47622d40d67e6235f6e97 SHA512 37a008f404b5fc4f7233d3268a1e7c764c5c4ec30f7d27a839f0a9f64093b0a24a95284044b0b0b9c83615d29b3da0bb09da6cbc391a59709181aade8b8f30c3 EBUILD rust-bin-1.86.0_beta20250218.ebuild 10798 BLAKE2B 671d50e2ffcead1bbb5731ae3a78fd5d688b3070885ab8ad20a39a7b5b0db4e3c8b39a4651c03b2fc15b4ba662c227ac65a1cb0a7cb894a7f1b9c128e0005267 SHA512 116b3e538b32f80472e7966db8f9c6253571eec6a403146632b322cd0d4f6dd1571f1d83f47afb644ff594ca50d8325ff05093b0cae4d794a14879869cd87a26 EBUILD rust-bin-9999.ebuild 10798 BLAKE2B c7dfd0e0bc9043eec03ec51910114c6b96af2b6bd00e5370460bf4d733ddf3348fb9238dae426a05f7d26f99dcb0ea19763c4a311487127a34243e295582565c SHA512 a6b42b0ad30e44956cdcff781e00c56257b015368163d39530d5781e866ab501de44ff446fd0f8b71bf7dda024035fecafda010f49640100fd4ddda2c053d04f diff --git a/dev-lang/rust-bin/rust-bin-1.84.1-r2.ebuild b/dev-lang/rust-bin/rust-bin-1.84.1-r2.ebuild index 901c04bdec4a..df7968f9951f 100644 --- a/dev-lang/rust-bin/rust-bin-1.84.1-r2.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.84.1-r2.ebuild @@ -40,7 +40,7 @@ SRC_URI+=" ppc64? ( elibc_musl? ( 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" +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=" diff --git a/dev-lang/rust-common/Manifest b/dev-lang/rust-common/Manifest index cda9c4a5953b..ff0b37696ae3 100644 --- a/dev-lang/rust-common/Manifest +++ b/dev-lang/rust-common/Manifest @@ -13,7 +13,7 @@ DIST rustc-1.86.0_beta20250218-src.tar.xz.asc 801 BLAKE2B 8a7c489f9087342074262c 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.1.ebuild 1446 BLAKE2B c0cc472f614b0640f0b2ee9160329aa14155ac9f6f218ce8442d63c02c48243621954e65b459c7bb4406a72f9171e79f2add0be01d81e6de4244dfcf0c162fc4 SHA512 515a7fbb99a2a4e72c0c2f10639097c4099036aef8442ebb27b94db446943053ecb8e765a2a51c15eaa3fb89952838db9d3a4201fcf59b157502a6238312e2cb +EBUILD rust-common-1.84.1.ebuild 1443 BLAKE2B 455a9ca194e5968ad9cd535bd4b32124078a7fb7c110d6861f3a09c2441f759674d6f3767086c905c3ccf449c8c2cc4e417a71ac45ac5b36ebc53baaf08c85d0 SHA512 ab74117adce45ec7ca620aad75600f9860a287f077874e2559793d0f8de2cdea71467ee0c4e89f10d229a80e6f65c2906b85371606fccbbf5ea2b14368f02306 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 diff --git a/dev-lang/rust-common/rust-common-1.84.1.ebuild b/dev-lang/rust-common/rust-common-1.84.1.ebuild index 7d7682e1195a..778c5e0324e9 100644 --- a/dev-lang/rust-common/rust-common-1.84.1.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/Manifest b/dev-lang/rust/Manifest index 930a642a6c33..a3fd3d936be2 100644 --- a/dev-lang/rust/Manifest +++ b/dev-lang/rust/Manifest @@ -48,19 +48,19 @@ DIST rustc-1.85.0-src.tar.xz 274011696 BLAKE2B 9cb1c5b9fa9b0ee8a3150d634b58f4d14 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-1.71.1-r101.ebuild 22227 BLAKE2B 72536aa2bbf0db52d40c7ae3784ad909e1c23fe55a1660cefe33be594b18cfe65299911099c2e14694b42c59312d482448408db9f823ee92855929574106d58a SHA512 19d3b7a93f439248bae985c97693aaaa5f5bad7034f3e649fe06aa20fcd119132bb9fbaadd51c7d3dd486b54eb1b6ccfc86764b368a19e701bd0e3dfd1669b15 -EBUILD rust-1.74.1-r101.ebuild 37840 BLAKE2B f0f086aa21c09a9dcfffe9407bd7854175077cb0dd2a7ddc3df65c7bba19bd684b665d4fab2bfecc0ea4b0ae7e901394b0fd12542c735a98790d6e2e03489cfa SHA512 ebc7201c8f337fb06833b426fa8d9fb5d49df19b66a03df1dda6e9aa4f13b71669bbaae5755ed9805bd087cd5c9d26981d6efd63586ec25b3b6d3de8ba0949b8 -EBUILD rust-1.75.0-r101.ebuild 23734 BLAKE2B ec97695484ee0e502f0514c76cde1c7bdfe40c5aad3491030dd9ec319618ca26e7a299bbaf41bb746bdc7957d95d88ef27501f62d3ab0c575085cfb4af8d9f3b SHA512 4c8767e015e2a2adbe7facbc9c80119d79080dc64167ba55ba76a5b526e620d978a64ca84d420dc31a834155ef0851cc192fea1f45dfbe8574459ba3a2eb6179 -EBUILD rust-1.76.0-r101.ebuild 20242 BLAKE2B f24aae8ade3940adaeb4fa32ebd67d2fb19f2bccdc850c1aa42ce26ec7b1643ed33ad9aae9bbd6a041a7cca99fe4e063351c7f0aa09a2357d398f81518bb1e5e SHA512 4374575f2d52efeb9157b2a95803aae541ac983161c5d326c4b19390fa0b807b80f83d9861c57378e441d634e770cec1c067647f4d8b27b8c98cb10c67bef89b -EBUILD rust-1.77.1-r101.ebuild 23698 BLAKE2B e18c7c9b479e90b70846c0464b9111237466db6905294e23d9f9f87bac4f9913a21d8485d4896afc8b51087dd080150a31542fbc06b23b50ab79feabcedeaf7d SHA512 7b0d43d4646bbcf3926094b975a372f34264ea84fc3c135e1e8a4834a0fad6ffa51c6aebc00d96655309047a35ace126ed7b8064410ab2e61272428be4fd3e16 -EBUILD rust-1.78.0-r101.ebuild 23933 BLAKE2B ce944e71f38bffa51f9b3a96e42a7f12b1a1d1646729009989a3309ae4768112b17ff18e7a8ca1613820f824f7a90b37feb4c231c52af3b85be4dc2d523b3c7e SHA512 06553e484aaa5c3c023c707fc07bb8b439f2d21bd9c5735807729130a4ba545137488baea83e7615f304b076fefa7e3a5d421fae8cc77118edce4f818bd3d7d9 -EBUILD rust-1.79.0-r101.ebuild 23933 BLAKE2B ce944e71f38bffa51f9b3a96e42a7f12b1a1d1646729009989a3309ae4768112b17ff18e7a8ca1613820f824f7a90b37feb4c231c52af3b85be4dc2d523b3c7e SHA512 06553e484aaa5c3c023c707fc07bb8b439f2d21bd9c5735807729130a4ba545137488baea83e7615f304b076fefa7e3a5d421fae8cc77118edce4f818bd3d7d9 -EBUILD rust-1.80.1-r101.ebuild 23805 BLAKE2B 4af75da6179b8d0142abab92a99d42dc3cec97f047b57d6887c9709f859c6aa0d525c5e093bd00dcf8d8b782a6c20ffc692a3a3eaf713143bfa09646758ecaba SHA512 98c48ddd4031dd9d9f9c3ecdd1eac3bd17559b0bda944710d09ece271db03f9a69a04ce202aa08846371ffb8eb69eb6264803c37927ac838bc9d17c729eb390d -EBUILD rust-1.81.0-r101.ebuild 24002 BLAKE2B e6be4c9f985e0f1d9f73a95d353d6de9153a5a2e622127060d65b28a72e007200cc1470c39807bc5d69aa2ac0c7901c32c3a2b620f9280257db4d0d0dc9c68d3 SHA512 12edcb3fafb8930d8c95f9cda333630fa5720cf7d825d07fc8dfc88de4ef1150739403afb346862b6787c14d70ddc0c236a252dcf14f4ebda0beaea70745ee5d -EBUILD rust-1.82.0-r102.ebuild 24197 BLAKE2B 8bd9840d112ead2cd2b57c6f0acf49c712c5e3b563d48e1ca80bd9e94a8c37cad57a8b23b8314f25afbf8ac5c4f8be44353ed5344a06e03287108fd0eec169c8 SHA512 2bf5e83878952e0322226dd96934240c43b6b84fa3a7ca9e7e9bf35825bfecc5be7edb48b78a0e2ff65019b66ad0425f9ee173399148303db56e6c58f89776f1 -EBUILD rust-1.83.0-r2.ebuild 23430 BLAKE2B cd6bf56e0e3381178630da0ecdcaca9d686b0e707b25f8a2e12065e723eb105f5a75dde0813fe64e6fe6bc429399440fe21640db08c576674b4fc4c96a684f66 SHA512 108c9fe7b8ca70ef8abc790adcd778d840982037fc0e8ce73e4f754c327f82130068cccac13f207a02ee7a9fb90f4b44331e8e9aadb7f9dc76a0491b9078875c -EBUILD rust-1.84.1-r1.ebuild 22105 BLAKE2B db3ea65511dabd9573c32b6db197af89ac52421fd8c04bad46fe8af1db3dc1743362902a18431524488846cd665f35885fb6fe8f75c65c0414fe8a99025b5c73 SHA512 f6c8f27dcc336c165eddba1f5c181c7c96cda7fe8aade7501b6b37d875152a9252cf7aa359795c4be79405d0c7e2ad0221970b00d8895019d348c59acbb109d2 -EBUILD rust-1.85.0.ebuild 24993 BLAKE2B 38a5bbded924f486d34c0a4162e52a29eeae1ca525b1f4d5aa7ce4ee9990c5cc282c6276e231ab9c70e0d6c01471c99910cb9be5c21c57fc55968e075e1ff11c SHA512 955ec2b886b94318059b7ef533c0f70da6b0589b35016d01b5daeadfcf3a672594d012e317a78a54983c5e03f5e4808dabc87b749ddec8907a570e78b8fa98c2 -EBUILD rust-1.86.0_beta20250218.ebuild 25134 BLAKE2B b694a022ea5838606ad603e79227fad2d603adfb71a66ae12c42269cc44d9ac209a0b0a42ee3351f5a0769534a4ca143cdba2f692fde3b72acaf05531822ecfa SHA512 379584d330bf32d60d494e7ea35faeed71545a6bb1feba6e795b4cab121ea1e9cd10f2b5b0067f41ca11316d9126ffc6cc3991a2b53c60643f4e966c4e29e11a -EBUILD rust-9999.ebuild 24993 BLAKE2B 2a825d4dde8bb697b2c21b35c162d01561bbd3bf5e00505cae94326677aaed095f51cc0f6c00363aefa4f3d15871dd2c4d5a41c56a945b9bd84b980ecc03b0f9 SHA512 46d699d55b7d04c03f00b80c318e202768877dd9525bec5cb3ce8ade18bd48127537993f236e8bd9cb403dedbdb38f237b7a898ee6ee3a4594b3e34fd1179fb6 +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.1-r1.ebuild 22227 BLAKE2B 3b8bc2185e832506e142f291659b42ba8ac0ddeca4a8f7730d3dad1e3a8afdaf8c0d02c91d651eb20f00275d8fd67f23a11f154c833b206f110bda11be6b6993 SHA512 43bc99e3ea0714c74220e686ca533ec85c87e5259accc8459eef42e8d443086c100d3b92eadb2ccc6611c8698593b55d2e72a1c14d82ea13f9710ec14b8afe98 +EBUILD rust-1.85.0.ebuild 25310 BLAKE2B f58fed6c72cd54bcc608695aa67554ab8def3887408f7a7b17ad5e36a7fb3923f196f5b072e788edef11ab5ea7dc8a7b1301799ca29db44649615af38d686844 SHA512 2d3f1f627a4aa666034dff412db54d3e75854769c9bdb04827b306cef8a309200befcf547b12e66b25b6cb9c0b0f7a385a98b92e8ad7262cc2b61b1f22529f8b +EBUILD rust-1.86.0_beta20250218.ebuild 25674 BLAKE2B 5dd040b8ffb35b10f0e64318a627274617476458b98c5413afc0ffae2a03c92c93efc64aceaac5aca5f0e6bb99efb4f00e1471df50310a45b50bda25556ebc0f SHA512 0f9e229acd11cd96b5156ca2f209c2acc7e2e0af9301123068c519beb0396fe05d582f0b0e1c81618753e9e67455293d1223cce916c12a96699cea7c7c7edd8d +EBUILD rust-9999.ebuild 25310 BLAKE2B bdad653d3a1930ca29293c3b6890d4193808effb8303f79d7cfa85900d00ff142fbedfacdd63d5a225b40bc4c6cc48b394f8000d8485b8af6c1666cce6703b39 SHA512 68d1012695871dd5a4bde28524a9e196468c15cda93bf57b0c8fe2bfc299a727342459dba562c76fee40e2b8d1b8837b0d7006d888905a56b374a8b9db7b483d MISC metadata.xml 1841 BLAKE2B 48a8167ae44a7f4892b917895298627ac920af6c488180980e65bdeec53b650455fc6d7dddad0a7a8257d473080082377fb6b6df6a834b294b6e6485e6784a1e SHA512 1f5fd792b65ccac89a61233004980d9f7cbaecea5d05f35f9cc2dc9cab4e3ccfcd46828e88770a1b8ba5ca23064b6a75eea72a0b32bcce52bb399b85ac95f755 diff --git a/dev-lang/rust/rust-1.71.1-r101.ebuild b/dev-lang/rust/rust-1.71.1-r101.ebuild index fa6ca5be0bc8..ae1366fb5ce3 100644 --- a/dev-lang/rust/rust-1.71.1-r101.ebuild +++ b/dev-lang/rust/rust-1.71.1-r101.ebuild @@ -38,8 +38,12 @@ 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 ) -ALL_LLVM_EXPERIMENTAL_TARGETS=( ) +# 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}" @@ -50,12 +54,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}]") )" ) - for _xx in "${_ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if [[ "${_xx}" == "${_x}" ]] ; then - ALL_LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) - break - fi - done + 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}')" ) @@ -246,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 @@ -264,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 diff --git a/dev-lang/rust/rust-1.74.1-r101.ebuild b/dev-lang/rust/rust-1.74.1-r101.ebuild index 060ae389079f..3e8a2fb536d3 100644 --- a/dev-lang/rust/rust-1.74.1-r101.ebuild +++ b/dev-lang/rust/rust-1.74.1-r101.ebuild @@ -44,8 +44,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 ) -ALL_LLVM_EXPERIMENTAL_TARGETS=( ) +# 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}" @@ -56,12 +60,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}]") )" ) - for _xx in "${_ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if [[ "${_xx}" == "${_x}" ]] ; then - ALL_LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) - break - fi - done + 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}')" ) @@ -304,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 @@ -322,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 diff --git a/dev-lang/rust/rust-1.75.0-r101.ebuild b/dev-lang/rust/rust-1.75.0-r101.ebuild index 8dba35567835..c0b81f631aa2 100644 --- a/dev-lang/rust/rust-1.75.0-r101.ebuild +++ b/dev-lang/rust/rust-1.75.0-r101.ebuild @@ -39,8 +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 ) -ALL_LLVM_EXPERIMENTAL_TARGETS=( ) +# 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}" @@ -51,12 +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}]") )" ) - for _xx in "${_ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if [[ "${_xx}" == "${_x}" ]] ; then - ALL_LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) - break - fi - done + 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}')" ) @@ -270,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 @@ -288,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 diff --git a/dev-lang/rust/rust-1.76.0-r101.ebuild b/dev-lang/rust/rust-1.76.0-r101.ebuild index c62acdfc7419..f6114fd34e18 100644 --- a/dev-lang/rust/rust-1.76.0-r101.ebuild +++ b/dev-lang/rust/rust-1.76.0-r101.ebuild @@ -39,8 +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 ) -ALL_LLVM_EXPERIMENTAL_TARGETS=( ) +# 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}" @@ -51,12 +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}]") )" ) - for _xx in "${_ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if [[ "${_xx}" == "${_x}" ]] ; then - ALL_LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) - break - fi - done + 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}')" ) @@ -269,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 @@ -287,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 diff --git a/dev-lang/rust/rust-1.77.1-r101.ebuild b/dev-lang/rust/rust-1.77.1-r101.ebuild index 149b3e8105f4..8ecaf535a291 100644 --- a/dev-lang/rust/rust-1.77.1-r101.ebuild +++ b/dev-lang/rust/rust-1.77.1-r101.ebuild @@ -39,8 +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 ) -ALL_LLVM_EXPERIMENTAL_TARGETS=( ) +# 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}" @@ -51,12 +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}]") )" ) - for _xx in "${_ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if [[ "${_xx}" == "${_x}" ]] ; then - ALL_LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) - break - fi - done + 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}')" ) @@ -268,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 @@ -286,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 diff --git a/dev-lang/rust/rust-1.78.0-r101.ebuild b/dev-lang/rust/rust-1.78.0-r101.ebuild index ad7ef8defa1d..f87df749f847 100644 --- a/dev-lang/rust/rust-1.78.0-r101.ebuild +++ b/dev-lang/rust/rust-1.78.0-r101.ebuild @@ -39,8 +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 ) -ALL_LLVM_EXPERIMENTAL_TARGETS=( ) +# 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}" @@ -51,12 +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}]") )" ) - for _xx in "${_ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if [[ "${_xx}" == "${_x}" ]] ; then - ALL_LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) - break - fi - done + 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}')" ) @@ -268,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 @@ -285,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 diff --git a/dev-lang/rust/rust-1.79.0-r101.ebuild b/dev-lang/rust/rust-1.79.0-r101.ebuild index ad7ef8defa1d..96171bb99b28 100644 --- a/dev-lang/rust/rust-1.79.0-r101.ebuild +++ b/dev-lang/rust/rust-1.79.0-r101.ebuild @@ -39,8 +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 ) -ALL_LLVM_EXPERIMENTAL_TARGETS=( ) +# 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}" @@ -51,12 +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}]") )" ) - for _xx in "${_ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if [[ "${_xx}" == "${_x}" ]] ; then - ALL_LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) - break - fi - done + 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}')" ) @@ -268,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 @@ -285,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 diff --git a/dev-lang/rust/rust-1.80.1-r101.ebuild b/dev-lang/rust/rust-1.80.1-r101.ebuild index fb4c96456714..e535b914f811 100644 --- a/dev-lang/rust/rust-1.80.1-r101.ebuild +++ b/dev-lang/rust/rust-1.80.1-r101.ebuild @@ -39,8 +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 ) -ALL_LLVM_EXPERIMENTAL_TARGETS=( ) +# 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}" @@ -51,12 +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}]") )" ) - for _xx in "${_ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if [[ "${_xx}" == "${_x}" ]] ; then - ALL_LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) - break - fi - done + 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}')" ) @@ -267,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 @@ -284,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 diff --git a/dev-lang/rust/rust-1.81.0-r101.ebuild b/dev-lang/rust/rust-1.81.0-r101.ebuild index 8d664876a184..c6fee6b41ad7 100644 --- a/dev-lang/rust/rust-1.81.0-r101.ebuild +++ b/dev-lang/rust/rust-1.81.0-r101.ebuild @@ -40,8 +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 ) -ALL_LLVM_EXPERIMENTAL_TARGETS=( ) +# 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}" @@ -52,12 +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}]") )" ) - for _xx in "${_ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if [[ "${_xx}" == "${_x}" ]] ; then - ALL_LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) - break - fi - done + 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}')" ) @@ -271,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 @@ -288,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 diff --git a/dev-lang/rust/rust-1.82.0-r102.ebuild b/dev-lang/rust/rust-1.82.0-r102.ebuild index a5f36a0d736d..d68d0e8f12d8 100644 --- a/dev-lang/rust/rust-1.82.0-r102.ebuild +++ b/dev-lang/rust/rust-1.82.0-r102.ebuild @@ -39,8 +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 ) -ALL_LLVM_EXPERIMENTAL_TARGETS=( ) +# 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}" @@ -51,12 +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}]") )" ) - for _xx in "${_ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if [[ "${_xx}" == "${_x}" ]] ; then - ALL_LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) - break - fi - done + 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}')" ) @@ -279,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 @@ -296,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 diff --git a/dev-lang/rust/rust-1.83.0-r2.ebuild b/dev-lang/rust/rust-1.83.0-r2.ebuild index 5a0afd35a715..08cb004f06d1 100644 --- a/dev-lang/rust/rust-1.83.0-r2.ebuild +++ b/dev-lang/rust/rust-1.83.0-r2.ebuild @@ -39,8 +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 ) -ALL_LLVM_EXPERIMENTAL_TARGETS=( ) +# 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}" @@ -51,12 +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}]") )" ) - for _xx in "${_ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if [[ "${_xx}" == "${_x}" ]] ; then - ALL_LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) - break - fi - done + 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}')" ) @@ -279,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 @@ -296,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 diff --git a/dev-lang/rust/rust-1.84.1-r1.ebuild b/dev-lang/rust/rust-1.84.1-r1.ebuild index bdf2e2b0346f..55697833c34d 100644 --- a/dev-lang/rust/rust-1.84.1-r1.ebuild +++ b/dev-lang/rust/rust-1.84.1-r1.ebuild @@ -20,7 +20,7 @@ if [[ ${PV} = *beta* ]]; then else MY_P="rustc-${PV}" SRC="${MY_P}-src.tar.xz" - KEYWORDS="~amd64 arm ~arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc ~x86" + KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86" fi DESCRIPTION="Systems programming language from Mozilla" @@ -40,8 +40,11 @@ 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=( ) +_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}" @@ -52,12 +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}]") )" ) - for _xx in "${_ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do - if [[ "${_xx}" == "${_x}" ]] ; then - ALL_LLVM_EXPERIMENTAL_TARGETS+=( ${_x} ) - break - fi - done + 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}')" ) @@ -279,13 +279,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 @@ -298,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 diff --git a/dev-lang/rust/rust-1.85.0.ebuild b/dev-lang/rust/rust-1.85.0.ebuild index ed5563128cfb..ce74a475077e 100644 --- a/dev-lang/rust/rust-1.85.0.ebuild +++ b/dev-lang/rust/rust-1.85.0.ebuild @@ -61,7 +61,11 @@ 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_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 @@ -77,6 +81,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}')" ) @@ -346,13 +353,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)" local build_channel @@ -378,7 +385,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 diff --git a/dev-lang/rust/rust-1.86.0_beta20250218.ebuild b/dev-lang/rust/rust-1.86.0_beta20250218.ebuild index 1a745a6f2315..c23793c89bc7 100644 --- a/dev-lang/rust/rust-1.86.0_beta20250218.ebuild +++ b/dev-lang/rust/rust-1.86.0_beta20250218.ebuild @@ -14,8 +14,8 @@ elif [[ ${PV} == *beta* ]]; then # 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) - 3)).0" + 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 @@ -62,7 +62,11 @@ 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_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 @@ -78,6 +82,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}')" ) @@ -210,7 +217,12 @@ src_unpack() { directory = "vendor" _EOF_ else - verify-sig_src_unpack + # 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 } @@ -348,13 +360,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)" local build_channel @@ -380,7 +392,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 diff --git a/dev-lang/rust/rust-9999.ebuild b/dev-lang/rust/rust-9999.ebuild index 9a9c089e80e3..d8ef8c5ff649 100644 --- a/dev-lang/rust/rust-9999.ebuild +++ b/dev-lang/rust/rust-9999.ebuild @@ -61,7 +61,11 @@ 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_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 @@ -77,6 +81,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}')" ) @@ -346,13 +353,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)" local build_channel @@ -378,7 +385,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 -- cgit v1.2.3